Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7548003B2 - Execution scheduling determination method and execution scheduling determination program - Google Patents
[go: Go Back, main page]

JP7548003B2 - Execution scheduling determination method and execution scheduling determination program - Google Patents

Execution scheduling determination method and execution scheduling determination program Download PDF

Info

Publication number
JP7548003B2
JP7548003B2 JP2020217001A JP2020217001A JP7548003B2 JP 7548003 B2 JP7548003 B2 JP 7548003B2 JP 2020217001 A JP2020217001 A JP 2020217001A JP 2020217001 A JP2020217001 A JP 2020217001A JP 7548003 B2 JP7548003 B2 JP 7548003B2
Authority
JP
Japan
Prior art keywords
job
time
jobs
execution
timeout
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020217001A
Other languages
Japanese (ja)
Other versions
JP2022102333A (en
Inventor
琴子 宿谷
実久 土肥
二美 飯倉
裕二 和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020217001A priority Critical patent/JP7548003B2/en
Publication of JP2022102333A publication Critical patent/JP2022102333A/en
Application granted granted Critical
Publication of JP7548003B2 publication Critical patent/JP7548003B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、実行スケジューリング決定方法及び実行スケジューリング決定プログラムに関する。 The present invention relates to an execution scheduling determination method and an execution scheduling determination program.

近年、例えば、画像処理やAI(Artificial Inteligence)等の計算処理に使用される、FPGA(Field Programmable Gate Array)が知られている。FPGAは、ロジック回路を内蔵し、専用のハードウェア言語で書かれたファームウェアを書き込むことでロジック回路を何度も書き換えられるデバイスである。FPGAは、計算実行を中断した場合、そこまでの実行結果を捨てることになるため、途中から計算実行を再開できない仕組みとなっている。 In recent years, FPGAs (Field Programmable Gate Arrays) have become known for use in computational processing, such as image processing and AI (Artificial Intelligence). FPGAs are devices that have built-in logic circuits and can be rewritten any number of times by writing firmware written in a dedicated hardware language. When a computation is interrupted, FPGAs discard the results of the computation up to that point, meaning that the computation cannot be resumed from the middle.

しかも、FPGAでは、ファームウェアの書き込みに時間がかかる。FPGA毎に異なるアプリを接続し、他のアプリからファームウェアを書き換えできないようにしている。従って、アプリの種別に応じてFPGAの個数が増えることになる。 Moreover, it takes time to write firmware to an FPGA. A different application is connected to each FPGA, so that the firmware cannot be rewritten by other applications. Therefore, the number of FPGAs increases depending on the type of application.

特開平8-55036号公報Japanese Patent Application Publication No. 8-55036

しかしながら、FPGAは高価なデバイスであるため、FPGAの個数を削減することが求められている。そこで、1個のFPGAで異なる複数のアプリを処理できるFPGAが求められている。更に、単一のFPGAで異なる複数のアプリを処理する場合でも、各アプリの実行要求(ジョブ)を効率よく実行することで、できるだけ多くのジョブを処理できるスケジューリング方法が求められている。 However, because FPGAs are expensive devices, there is a demand to reduce the number of FPGAs. Therefore, there is a demand for FPGAs that can process multiple different applications with one FPGA. Furthermore, even when multiple different applications are processed with a single FPGA, there is a demand for a scheduling method that can process as many jobs as possible by efficiently executing the execution requests (jobs) of each application.

1つの側面では、できるだけ多くのジョブを処理できる実行スケジューリング決定方法及び実行スケジューリング決定プログラムを提供することを目的とする。 In one aspect, the objective is to provide an execution scheduling decision method and an execution scheduling decision program that can process as many jobs as possible.

1つの側面の実行スケジューリング決定方法では、実行中のジョブ及び、キューイングされているジョブが、設定されているタイムアウト条件を満たさない場合に、前記実行中のジョブを中止して再スケジューリングを実行する場合と、前記再スケジューリングを実行しない場合との処理可能なジョブ数を算出する処理を実行する。更に、方法としては、前記再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、当該再スケジューリングを実行する処理を実行する。 In one aspect of the execution schedule determination method, when an active job and a queued job do not satisfy a set timeout condition, a process is executed to calculate the number of jobs that can be processed when the active job is stopped and rescheduled, and when the rescheduling is not executed. Furthermore, the method executes a process to execute the rescheduling when it is determined that the number of jobs that can be processed is greater when the rescheduling is executed.

1つの側面によれば、できるだけ多くのジョブを処理できる。 On the one hand, it can handle as many jobs as possible.

図1は、本実施例のコンピュータの一例を示す説明図である。FIG. 1 is an explanatory diagram showing an example of a computer according to the present embodiment. 図2は、CPU内の機能構成の一例を示す説明図である。FIG. 2 is an explanatory diagram illustrating an example of a functional configuration within the CPU. 図3は、ジョブに使用する用語の定義を示す説明図である。FIG. 3 is an explanatory diagram showing definitions of terms used for jobs. 図4は、ジョブテーブルの一例を示す説明図である。FIG. 4 is an explanatory diagram illustrating an example of a job table. 図5は、アプリ情報テーブルの一例を示す説明図である。FIG. 5 is an explanatory diagram illustrating an example of the application information table. 図6は、実行順序リストの一例を示す説明図である。FIG. 6 is an explanatory diagram illustrating an example of an execution order list. 図7Aは、再スケジューリング実行時に使用するジョブテーブル及びアプリ情報テーブルの一例を示す説明図である。FIG. 7A is an explanatory diagram showing an example of a job table and an application information table used when rescheduling is executed. 図7Bは、再スケジューリング実行時(基本ロジック)の実行順序の一例を示す説明図である。FIG. 7B is an explanatory diagram showing an example of an execution order when rescheduling is executed (basic logic). 図7Cは、ジョブC-1及びC-2のタイムアウト判断時の実行順序の一例を示す説明図である。FIG. 7C is an explanatory diagram showing an example of the execution order when the timeout of jobs C-1 and C-2 is determined. 図7Dは、ジョブA-1中止時の実行順序の一例を示す説明図である。FIG. 7D is an explanatory diagram showing an example of the execution order when job A-1 is stopped. 図8は、キュー管理処理に関わるCPUの処理動作の一例を示すフローチャートである。FIG. 8 is a flowchart showing an example of the processing operation of the CPU related to the queue management processing. 図9は、実行処理に関わるCPUの処理動作の一例を示すフローチャートである。FIG. 9 is a flowchart showing an example of a processing operation of the CPU related to the execution process. 図10は、キューイング処理に関わるCPUの処理動作の一例を示すフローチャートである。FIG. 10 is a flowchart showing an example of a processing operation of the CPU relating to the queuing process. 図11は、タイムアウト調整処理に関わるCPUの処理動作の一例を示すフローチャートである。FIG. 11 is a flowchart showing an example of a processing operation of the CPU related to the timeout adjustment processing. 図12は、限界時刻処理に関わるCPUの処理動作の一例を示すフローチャートである。FIG. 12 is a flowchart showing an example of a processing operation of the CPU relating to the limit time processing. 図13は、終了予定時刻処理に関わるCPUの処理動作の一例を示すフローチャートである。FIG. 13 is a flowchart showing an example of the processing operation of the CPU relating to the estimated end time processing. 図14は、新規ジョブ投入処理に関わるCPUの処理動作の一例を示すフローチャートである。FIG. 14 is a flowchart showing an example of a processing operation of the CPU related to new job input processing. 図15は、実行スケジューリング決定プログラムを実行するコンピュータの一例を示すブロック図である。FIG. 15 is a block diagram illustrating an example of a computer that executes an execution scheduling determination program. 図16は、比較例の再スケジューリング方法の一例を示す説明図である。FIG. 16 is an explanatory diagram showing an example of a rescheduling method according to the comparative example. 図17は、比較例の実行順序の一例を示す説明図である。FIG. 17 is an explanatory diagram illustrating an example of an execution sequence in the comparative example. 図18は、比較例の再スケジューリング実行時の実行順序の一例を示す説明図である。FIG. 18 is an explanatory diagram showing an example of an execution order when rescheduling is executed in the comparative example. 図19は、比較例の再スケジューリング実行時の実行順序の課題の一例を示す説明図である。FIG. 19 is an explanatory diagram illustrating an example of a problem with the execution order when rescheduling is performed in the comparative example.

以下、図面に基づいて、本願の開示する実行スケジューリング決定方法等の実施例を詳細に説明する。尚、各実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。 Below, examples of the execution scheduling determination method and the like disclosed in the present application will be described in detail with reference to the drawings. Note that the disclosed technology is not limited to each example. In addition, each example shown below may be appropriately combined as long as no contradiction occurs.

比較例Comparative Example

先ず、本願の開示する実行スケジューリング決定方法を説明する前に比較例の再スケジューリング方法の一例について説明する。図16は、比較例の再スケジューリング方法の一例を示す説明図である。図16に示すFPGA203は、複数種類のアプリ201でファームウェア202を書き換え可能にし、アプリ201毎にファームウェア202をセットアップし、セットアップ後にアプリ201のジョブを実行する。FPGA203は、アプリ201Aの実行要求(ジョブA-1)を検出した場合、アプリ201Aに対応するファームウェア202Aをセットアップする。FPGA203は、ファームウェア202Aをセットアップした後、ジョブA-1を実行することになる。また、FPGA203は、アプリ201Bの実行要求(ジョブB-1)を検出した場合、アプリ201Bに対応するファームウェア202Bをセットアップする。FPGA203は、ファームウェア202Bをセットアップした後、ジョブB-1を実行することになる。また、FPGA203は、アプリ201Cの実行要求(ジョブC-1)を検出した場合、アプリ201Cに対応するファームウェア202Cをセットアップする。FPGA203は、ファームウェア202Cをセットアップした後、ジョブC-1を実行することになる。 First, before describing the execution scheduling determination method disclosed in the present application, an example of a rescheduling method of a comparative example will be described. FIG. 16 is an explanatory diagram showing an example of a rescheduling method of a comparative example. The FPGA 203 shown in FIG. 16 makes the firmware 202 rewritable by a plurality of types of applications 201, sets up the firmware 202 for each application 201, and executes the job of the application 201 after the setup. When the FPGA 203 detects an execution request (job A-1) of the application 201A, it sets up the firmware 202A corresponding to the application 201A. After setting up the firmware 202A, the FPGA 203 executes the job A-1. Also, when the FPGA 203 detects an execution request (job B-1) of the application 201B, it sets up the firmware 202B corresponding to the application 201B. After setting up the firmware 202B, the FPGA 203 executes the job B-1. Furthermore, when the FPGA 203 detects an execution request (job C-1) for application 201C, it sets up firmware 202C that corresponds to application 201C. After setting up firmware 202C, the FPGA 203 executes job C-1.

しかしながら、FPGA203では、アプリ201の実行要求(ジョブ)がどのタイミングで到来するのかが認識できない。図17は、比較例の実行順序の一例を示す説明図である。そこで、FPGA203に、アプリ201の実行要求として、例えば、ジョブA-1、ジョブB-1、ジョブC-1及びジョブA-2の順に投入された場合を想定する。 However, FPGA 203 cannot recognize the timing at which an execution request (job) for application 201 will arrive. FIG. 17 is an explanatory diagram showing an example of an execution order in a comparative example. Here, assume that, for example, job A-1, job B-1, job C-1, and job A-2 are input to FPGA 203 as execution requests for application 201 in this order.

FPGA203は、ジョブA-1の実行中にアプリ201BからジョブB-1が投入されると、ジョブB-1の実行要求をキューに蓄積する。更に、FPGA203は、ジョブA-1の実行中にアプリ201CからのジョブC-1及び、アプリ201AからのジョブA-2が投入されると、ジョブC-1及びジョブA-2の実行要求をキューに蓄積する。そして、FPGA203は、キューに蓄積中のジョブをジョブA-1→B-1→C-1→A-2の順に蓄積し、蓄積中のジョブを順次実行することになる。 When job B-1 is submitted from application 201B while job A-1 is being executed, FPGA 203 accumulates an execution request for job B-1 in the queue. Furthermore, when job C-1 from application 201C and job A-2 from application 201A are submitted to FPGA 203 while job A-1 is being executed, FPGA 203 accumulates execution requests for jobs C-1 and A-2 in the queue. FPGA 203 then accumulates the jobs being accumulated in the queue in the order of jobs A-1 → B-1 → C-1 → A-2, and executes the accumulated jobs sequentially.

図18は、比較例の再スケジューリング実行時の実行順序の一例を示す説明図である。しかしながら、FPGA203は、同一種類のアプリ201のジョブを連続して実行することでジョブ毎の重複するセットアップ時間を削減できる。つまり、FPGA203は、同一種類のアプリ201のジョブが連続するようにキューに蓄積中のジョブの実行順序を並び替える。例えば、FPGA203は、同一種類のアプリ201Aのジョブを連続実行するために、蓄積中のジョブA-1→B-1→C-1→A-2を、ジョブA-1→A-2→B-1→C-1の実行順序に並び替える。その結果、FPGA203は、ジョブA-1のセットアップでジョブA-2のセットアップが不要になるため、ジョブA-2のセットアップ時間を削減し、ジョブを効率よく実現できる。 FIG. 18 is an explanatory diagram showing an example of the execution order when rescheduling is executed in a comparative example. However, the FPGA 203 can reduce the overlapping setup time for each job by continuously executing jobs of the same type of application 201. In other words, the FPGA 203 rearranges the execution order of jobs stored in the queue so that jobs of the same type of application 201 are consecutive. For example, in order to continuously execute jobs of the same type of application 201A, the FPGA 203 rearranges the execution order of the stored jobs A-1 → B-1 → C-1 → A-2 to jobs A-1 → A-2 → B-1 → C-1. As a result, the FPGA 203 eliminates the need to set up job A-2 when setting up job A-1, thereby reducing the setup time for job A-2 and enabling the jobs to be implemented efficiently.

図19は、比較例の再スケジューリング実行時の実行順序の課題の一例を示す説明図である。しかしながら、FPGA203は、同一種類のアプリ201のジョブが連続するようにジョブの実行順序を並び替えると、他の種類のアプリ201のジョブの実行タイミングが遅れることになる。FPGA203は、例えば、ジョブA-1→B-1→C-1→A-2→A-3をジョブA-1→A-2→A-3→B-1→C-1に並び替えると、各ジョブにはタイムアウト時間があるため、実行タイミングの遅延によって各ジョブがタイムアウトするおそれがある。しかも、FPGA203は、実行中のジョブを中断した場合、実行中のジョブの途中結果を廃棄することになる。その結果、それまでのジョブの実行時間が無駄となる。そこで、ジョブスループットの向上とジョブのタイムアウト時間の確保とはトレードオフの関係にある。 FIG. 19 is an explanatory diagram showing an example of an issue with the execution order when rescheduling is performed in the comparative example. However, when the FPGA 203 rearranges the job execution order so that jobs of the same type of application 201 are consecutive, the execution timing of jobs of other types of applications 201 is delayed. For example, when the FPGA 203 rearranges jobs A-1 → B-1 → C-1 → A-2 → A-3 to jobs A-1 → A-2 → A-3 → B-1 → C-1, each job has a timeout time, so there is a risk that each job will time out due to the delay in execution timing. Moreover, when the FPGA 203 interrupts a job being executed, it will discard the intermediate results of the job being executed. As a result, the execution time of the job up to that point will be wasted. Therefore, there is a trade-off between improving job throughput and ensuring the timeout time of the job.

FPGA203では、ジョブの処理が中断できないため、処理可能なジョブ数が最大になるのであれば、実行中のジョブを中止してでも、実行順序の再スケジューリングを実行した方がよい場合がある。しかも、FPGA203は、アプリ毎に、ファームウェアのセットアップに時間を要することから、同一アプリのジョブを一つのジョブ群にまとめて連続するようにスケジューリングすることが望ましい。そこで、同一アプリのジョブを連続にして他のジョブの遅延が発生した場合でも、実行中のジョブを中止して当該ジョブが含まれるジョブ群の他のジョブの実行順序を後回しにした方が、全体として処理可能なジョブ数が増えることがある。 Since FPGA 203 cannot interrupt job processing, it may be better to reschedule the execution order even if it means canceling the currently running job, if it maximizes the number of jobs that can be processed. Furthermore, since FPGA 203 requires time to set up firmware for each application, it is desirable to schedule jobs of the same application so that they are consecutively grouped into one job group. Therefore, even if consecutive jobs of the same application cause delays to other jobs, canceling the currently running job and postponing the execution order of other jobs in the job group that includes that job may increase the overall number of jobs that can be processed.

そこで、各ジョブのタイムアウト時間を考慮しながら、単位時間当たりのジョブ数をできるだけ増やし、同一種のアプリのジョブを連続実行してジョブの実行スループットの向上を図る本実施例の再スケジューリング実行方法が求められている。 Therefore, there is a demand for the rescheduling execution method of this embodiment, which increases the number of jobs per unit time as much as possible while taking into account the timeout period of each job, and executes jobs of the same type of application continuously to improve job execution throughput.

図1は、本実施例のコンピュータ1の一例を示す説明図である。図1に示すコンピュータ1は、コンテナ2と、FPGA3と、CPU4と、メモリ5とを有する。コンテナ2は、複数種類のアプリを実行する仮想マシンである。FPGA3は、コンテナ2内のアプリの実行要求であるジョブを実行するデバイスである。CPU4は、コンピュータ1全体を制御する。メモリ5は、各種情報を記憶する。メモリ5は、後述する、ジョブテーブル11と、アプリ情報テーブル12と、実行順序リスト13とを有する。 Figure 1 is an explanatory diagram showing an example of a computer 1 of this embodiment. The computer 1 shown in Figure 1 has a container 2, an FPGA 3, a CPU 4, and a memory 5. The container 2 is a virtual machine that executes multiple types of applications. The FPGA 3 is a device that executes jobs, which are requests to execute applications in the container 2. The CPU 4 controls the entire computer 1. The memory 5 stores various information. The memory 5 has a job table 11, an application information table 12, and an execution order list 13, which will be described later.

CPU4は、コンテナ2の実行環境である仮想マシンを提供すると共に、コンテナ2の投入ジョブに対応したアプリ毎のファームウェアをFPGA3内にセットアップする。CPU4は、FPGA3内のファームウェアのセットアップ後に投入ジョブをFPGA3に実行させる。また、CPU4は、機能として、キュー管理部4Aと、実行部4Bとを有する。 The CPU 4 provides a virtual machine that is the execution environment of the container 2, and sets up firmware for each application corresponding to the job submitted to the container 2 in the FPGA 3. After setting up the firmware in the FPGA 3, the CPU 4 causes the FPGA 3 to execute the submitted job. The CPU 4 also has the functions of a queue management unit 4A and an execution unit 4B.

図2は、CPU4内の機能構成の一例を示す説明図である。図2に示すCPU4内のキュー管理部4Aは、実行中のジョブの遅延により、実行中のジョブ及び、キューイングされているジョブが、設定されているタイムアウト条件を満たさないと判定された場合に、各ジョブの再スケジューリングを実行する。更に、キュー管理部4Aは、実行中のジョブを中止して再スケジューリングを実行する場合の処理可能なジョブ数と、再スケジューリングを実行しない場合の処理可能なジョブ数とを算出する。実行部4Bは、実行中ジョブを中止して再スケジューリングを実行する場合のジョブ数の方が多いと判定された場合に、当該再スケジューリングを実行する。 Figure 2 is an explanatory diagram showing an example of the functional configuration within the CPU 4. The queue management unit 4A within the CPU 4 shown in Figure 2 executes rescheduling of each job when it is determined that the currently running job and the queued jobs do not satisfy the set timeout condition due to a delay in the currently running job. Furthermore, the queue management unit 4A calculates the number of jobs that can be processed when the currently running job is stopped and rescheduling is executed, and the number of jobs that can be processed when rescheduling is not executed. The execution unit 4B executes the rescheduling when it is determined that the number of jobs is greater when the currently running job is stopped and rescheduling is executed.

図2に示すCPU4内のキュー管理部4Aは、ジョブ受付部21と、キューイング部22と、タイムアウト調整部23とを有する。ジョブ受付部21は、コンテナ2内のアプリから発行されたジョブを受け付ける。キューイング部22は、ジョブ受付部21にて受け付けられたジョブを実行順序リスト13に蓄積する。更に、キューイング部22は、受け付けられたジョブ毎のジョブ情報をジョブテーブル11に登録する。タイムアウト調整部23は、実行中のジョブの遅延により、実行中のジョブ及び、キューイングされているジョブが、設定されているタイムアウト条件を満たしたか否かを判定する。タイムアウト調整部23は、設定されているタイムアウト条件を満たさないと判定された場合に、実行中のジョブを中止して再スケジューリングを実行する場合の処理可能なジョブ数と、再スケジューリングを実行しない場合の処理可能なジョブ数とを算出する。更に、タイムアウト調整部23は、再スケジューリングを実行する場合のジョブ数と、再スケジューリングを実行しない場合のジョブ数とを比較し、再スケジューリングを実行する場合のジョブ数の方が多いか否かを判定する。 The queue management unit 4A in the CPU 4 shown in FIG. 2 has a job reception unit 21, a queuing unit 22, and a timeout adjustment unit 23. The job reception unit 21 receives jobs issued from an application in the container 2. The queuing unit 22 accumulates the jobs received by the job reception unit 21 in the execution order list 13. Furthermore, the queuing unit 22 registers job information for each received job in the job table 11. The timeout adjustment unit 23 determines whether the job being executed and the queued jobs have satisfied the set timeout condition due to the delay of the job being executed. When it is determined that the set timeout condition is not satisfied, the timeout adjustment unit 23 calculates the number of jobs that can be processed when the job being executed is stopped and rescheduled and the number of jobs that can be processed when rescheduling is not executed. Furthermore, the timeout adjustment unit 23 compares the number of jobs when rescheduling is executed with the number of jobs when rescheduling is not executed, and determines whether the number of jobs when rescheduling is executed is greater.

CPU4内の実行部4Bは、コンテナ制御部31と、FPGA制御部32と、時間情報登録部33と、アプリ情報計算部34と、テーブル書込み部35と、中止処理部36とを有する。コンテナ制御部31は、コンテナ2を制御する。FPGA制御部32は、デバイスプラグインを使用してFPGA3を制御する。時間情報登録部33は、アプリ毎のジョブ実行時間情報を登録する。アプリ情報計算部34は、アプリ毎のジョブ実行時間情報を計算する。ジョブ実行時間情報は、例えば、アプリ情報テーブル12に登録するジョブ実行平均時間、ジョブ実行分散時間及びセットアップ平均時間等である。テーブル書込み部35は、アプリ毎のジョブ実行時間情報をアプリ情報テーブル12内に登録する。中止処理部36は、タイムアウト調整部23からのジョブ中止要求に応じて実行中のジョブを中止する処理部である。 The execution unit 4B in the CPU 4 has a container control unit 31, an FPGA control unit 32, a time information registration unit 33, an application information calculation unit 34, a table writing unit 35, and an abort processing unit 36. The container control unit 31 controls the container 2. The FPGA control unit 32 controls the FPGA 3 using a device plug-in. The time information registration unit 33 registers job execution time information for each application. The application information calculation unit 34 calculates job execution time information for each application. The job execution time information is, for example, the job execution average time, job execution distribution time, and setup average time to be registered in the application information table 12. The table writing unit 35 registers the job execution time information for each application in the application information table 12. The abort processing unit 36 is a processing unit that aborts a job being executed in response to a job abort request from the timeout adjustment unit 23.

図3は、ジョブに使用する用語の定義を示す説明図である。図3に示すアプリ毎のジョブは、セットアップコマンドと、実行コマンドとを有する。セットアップコマンドは、FPGA3内のファームウェアに対して、ジョブのアプリに対応したロジックを設定するコマンドである。実行コマンドは、ファームウェアのセットアップ後にFPGA3にジョブを実行させるコマンドである。 Figure 3 is an explanatory diagram showing definitions of the terms used for jobs. The job for each application shown in Figure 3 has a setup command and an execution command. The setup command is a command that sets logic corresponding to the application of the job in the firmware in FPGA 3. The execution command is a command that causes FPGA 3 to execute the job after the firmware has been set up.

投入時刻は、CPU4内のジョブ受付部21がコンテナ2内のアプリからのジョブを受け付けた時刻である。タイムアウト時刻は、ジョブの投入時刻から当該ジョブのタイムアウト時間(タイムアウト条件)を加算した時刻に相当し、ジョブのタイムアウト時刻である。尚、タイムアウト条件は、ジョブ投入からジョブ完了までのジョブ毎に設定されたタイムアウト時間である。セットアップ時間は、ジョブに対応したアプリのファームウェアに対してセットアップ開始からセットアップ完了までに要する時間である。ジョブ実行時間は、ジョブ毎のセットアップ時間と、ジョブの実行コマンドの処理時間とを加算した時間に相当し、ジョブのセットアップ開始から実行コマンド完了までに要する時間である。限界時刻は、ジョブのタイムアウト時刻からジョブ実行平均時間を差し引いた、ジョブが実行できる限界のジョブ開始予定時刻である。 The submission time is the time when the job receiving unit 21 in the CPU 4 accepts a job from an application in the container 2. The timeout time is the time obtained by adding the timeout time (timeout condition) for the job to the timeout time for the job. The timeout condition is the timeout time set for each job from job submission to job completion. The setup time is the time required from the start of setup to the completion of setup for the firmware of the application corresponding to the job. The job execution time is the time obtained by adding the setup time for each job and the processing time for the job's execution command, and is the time required from the start of job setup to the completion of the execution command. The limit time is the scheduled job start time at the limit at which the job can be executed, which is the timeout time for the job minus the average job execution time.

図4は、ジョブテーブル11の一例を示す説明図である。図4に示すジョブテーブル111は、ジョブを識別するジョブ識別情報11A毎にジョブ情報を管理する。ジョブ情報は、アプリ識別情報11Bと、投入時刻11Cと、タイムアウト条件11Dと、ジョブ開始時刻11Eと、タイムアウト時刻11Fと、限界時刻11Gとを有する。アプリ識別情報11Bは、ジョブを実行するアプリを識別する情報である。投入時刻11Cは、ジョブを投入した時刻である。タイムアウト条件11Dは、ジョブのタイムアウトを満たしたと判定するための条件、例えば、タイムアウト時間である。ジョブ開始時刻11Eは、ジョブを開始する時刻である。タイムアウト時刻11Fは、ジョブの投入時刻からタイムアウト条件のタイムアウト時間を加算した時刻である。限界時刻11Gは、ジョブのタイムアウト時刻からジョブ実行平均時間を差し引いた時刻に相当し、ジョブが実行できる限界のジョブ開始予定時刻である。 FIG. 4 is an explanatory diagram showing an example of the job table 11. The job table 111 shown in FIG. 4 manages job information for each job identification information 11A that identifies a job. The job information has application identification information 11B, submission time 11C, timeout condition 11D, job start time 11E, timeout time 11F, and limit time 11G. Application identification information 11B is information that identifies the application that executes the job. Submission time 11C is the time when the job is submitted. Timeout condition 11D is a condition for determining that the job timeout is satisfied, for example, a timeout time. Job start time 11E is the time when the job is started. Timeout time 11F is the time obtained by adding the timeout time of the timeout condition to the submission time of the job. Limit time 11G corresponds to the time obtained by subtracting the average job execution time from the timeout time of the job, and is the scheduled job start time at the limit at which the job can be executed.

図5は、アプリ情報テーブル12の一例を示す説明図である。図5に示すアプリ情報テーブル12は、アプリ識別情報12A毎にジョブ実行時間情報を管理するテーブルである。ジョブ実行時間情報は、ジョブ実行平均時間12Bと、ジョブ実行分散時間12Cと、セットアップ平均時間12Dとを有する。ジョブ実行平均時間12Bは、アプリ毎のジョブ実行時間の累積平均時間である。ジョブ実行分散時間12Cは、アプリ毎のジョブの実行コマンドの処理にかかる1標準偏差分に相当する分散時間である。セットアップ平均時間12Dは、アプリ毎のジョブのセットアップ時間の累積平均時間である。 Figure 5 is an explanatory diagram showing an example of the app information table 12. The app information table 12 shown in Figure 5 is a table that manages job execution time information for each app identification information 12A. The job execution time information has a job execution average time 12B, a job execution distribution time 12C, and a setup average time 12D. The job execution average time 12B is the cumulative average time of job execution time for each app. The job execution distribution time 12C is the distribution time equivalent to one standard deviation required to process a job execution command for each app. The setup average time 12D is the cumulative average time of job setup time for each app.

図6は、実行順序リスト13の一例を示す説明図である。図6に示す実行順序リスト13は、ジョブの実行順序を管理するリストである。図6に示す実行順序リスト13は、ジョブA-1→A-2→B-1→B-2→C-1→C-2の順にジョブを実行する実行順序を管理している。 Figure 6 is an explanatory diagram showing an example of the execution order list 13. The execution order list 13 shown in Figure 6 is a list that manages the execution order of jobs. The execution order list 13 shown in Figure 6 manages the execution order of jobs A-1 → A-2 → B-1 → B-2 → C-1 → C-2.

次に本実施例のコンピュータ1の動作について説明する。コンピュータ1内のジョブ受付部21は、コンテナ2内のアプリからのジョブを受け付ける。キューイング部22は、受け付けたジョブに関するジョブ情報をジョブテーブル11内に登録する。キューイング部22は、受付順にジョブを実行順序リスト13に順次蓄積する。次に、タイムアウト調整部23は、ジョブテーブル11内のジョブ情報からジョブ毎の限界時間及びタイムアウト時刻を抽出する。タイムアウト調整部23は、抽出したジョブ毎の限界時刻、タイムアウト時刻及び現在時刻に基づき、各ジョブのタイムアウト条件を満たし、かつ、ジョブ数が多くなるように実行順序リスト13内のジョブの実行順序をソートする。タイムアウト調整部23は、実行中のジョブを中止する再スケジューリングを実行する場合のジョブ数と、再スケジューリングを実行する場合のジョブ数とを比較する。更に、タイムアウト調整部23は、実行中のジョブを中止する再スケジューリングを実行する場合のジョブ数の方が多い場合に、実行中のジョブを中止する中止要求を中止処理部36に通知する。中止処理部36は、中止要求を検出した場合、実行中のジョブの中止をFPGA制御部32に設定する。FPGA制御部32は、実行順序リスト13内の実行順序に基づき、各ジョブをFPGA3に実行させる。 Next, the operation of the computer 1 of this embodiment will be described. The job reception unit 21 in the computer 1 receives jobs from the application in the container 2. The queuing unit 22 registers job information related to the received jobs in the job table 11. The queuing unit 22 sequentially accumulates the jobs in the execution order list 13 in the order of reception. Next, the timeout adjustment unit 23 extracts the limit time and timeout time for each job from the job information in the job table 11. The timeout adjustment unit 23 sorts the execution order of the jobs in the execution order list 13 so that the timeout condition of each job is satisfied and the number of jobs is large based on the limit time, timeout time, and current time for each extracted job. The timeout adjustment unit 23 compares the number of jobs when rescheduling is performed to cancel the job being executed with the number of jobs when rescheduling is performed. Furthermore, if the number of jobs when rescheduling is performed to cancel the job being executed is larger, the timeout adjustment unit 23 notifies the cancellation processing unit 36 of a cancellation request to cancel the job being executed. When the stop processing unit 36 detects a stop request, it sets the FPGA control unit 32 to stop the job being executed. The FPGA control unit 32 causes the FPGA 3 to execute each job based on the execution order in the execution order list 13.

図7Aは、再スケジューリング実行時に使用するジョブテーブル11及びアプリ情報テーブル12の一例を示す説明図である。CPU4は、アプリ情報テーブル12を事前に登録しているものとする。 Figure 7A is an explanatory diagram showing an example of the job table 11 and the application information table 12 used when performing rescheduling. It is assumed that the CPU 4 has registered the application information table 12 in advance.

図7Aに示すアプリ情報テーブル12は、アプリ識別情報12A毎に、ジョブ実行平均時間12B、ジョブ実行分散時間12C及びセットアップ平均時間12Dを管理している。また、CPU4は、アプリ識別情報毎の(ジョブ実行平均時間-セットアップ平均時間)に基づき、実行コマンドの実行コマンド平均時間を算出できる。アプリAは、ジョブ実行平均時間12Bとして10秒、ジョブ実行分散時間12Cとして2秒、セットアップ平均時間12Dとして8秒、実行コマンド平均時間として2秒とする。アプリBは、ジョブ実行平均時間12Bとして2秒、ジョブ実行分散時間12Cとして1秒、セットアップ平均時間12Dとして1秒、実行コマンド平均時間として1秒とする。アプリCは、ジョブ実行平均時間12Bとして3秒、ジョブ実行分散時間12Cとして1秒、セットアップ平均時間12Dとして2秒、実行コマンド平均時間として1秒とする。 The application information table 12 shown in FIG. 7A manages the job execution average time 12B, job execution distribution time 12C, and setup average time 12D for each application identification information 12A. The CPU 4 can also calculate the execution command average time of the execution command based on (job execution average time - setup average time) for each application identification information. For application A, the job execution average time 12B is 10 seconds, the job execution distribution time 12C is 2 seconds, the setup average time 12D is 8 seconds, and the execution command average time is 2 seconds. For application B, the job execution average time 12B is 2 seconds, the job execution distribution time 12C is 1 second, the setup average time 12D is 1 second, and the execution command average time is 1 second. For application C, the job execution average time 12B is 3 seconds, the job execution distribution time 12C is 1 second, the setup average time 12D is 2 seconds, and the execution command average time is 1 second.

CPU4は、例えば、コンテナ2からジョブA-1→B-1→C-1→A-2→B-2→C-2の順序でジョブ投入を受け付けたとする。CPU4は、ジョブテーブル11内にジョブ識別情報11A毎のジョブ情報として、アプリ識別情報11B、投入時刻11C、タイムアウト条件11D、ジョブ開始時刻11E、タイムアウト時刻11F及び限界時刻11Gを登録する。尚、タイムアウト条件は、ジョブ毎に異なる。 For example, let us say that the CPU 4 accepts job submissions from the container 2 in the order of jobs A-1 → B-1 → C-1 → A-2 → B-2 → C-2. The CPU 4 registers the application identification information 11B, submission time 11C, timeout condition 11D, job start time 11E, timeout time 11F, and limit time 11G as job information for each job identification information 11A in the job table 11. Note that the timeout condition differs for each job.

例えば、ジョブA-1に着目した場合、ジョブA-1は、アプリ識別情報11BとしてアプリA、投入時刻11Cとして14時18分00秒、タイムアウト条件11Dとして30秒をジョブテーブル11内に登録する。また、ジョブ開始時刻11Eとして14時18分01秒、タイムアウト時刻11Fとして14時18分30秒(=投入時刻14時18分00秒+タイムアウト条件30秒)をジョブテーブル11内に登録する。限界時刻11Gとして14時18分20秒(=タイムアウト時刻14時18分30秒-ジョブ実行平均時間10秒)をジョブテーブル11内に登録する。 For example, when looking at job A-1, job A-1 registers app A as app identification information 11B, 14:18:00 as input time 11C, and 30 seconds as timeout condition 11D in the job table 11. It also registers 14:18:01 as job start time 11E and 14:18:30 (= input time 14:18:00 + timeout condition 30 seconds) as timeout time 11F in the job table 11. It registers 14:18:20 (= timeout time 14:18:30 - average job execution time 10 seconds) as limit time 11G in the job table 11.

また、例えば、ジョブB-1に着目した場合、ジョブB-1は、アプリ識別情報11BとしてアプリB、投入時刻11Cとして14時18分02秒、タイムアウト条件11Dとして15秒をジョブテーブル11内に登録する。ジョブ開始時刻11Eとしては実行前のために「-」、タイムアウト時刻11Fとして14時18分17秒(=投入時刻14時18分02秒+タイムアウト条件15秒)をジョブテーブル11内に登録する。限界時刻11Gとして14時18分15秒(=タイムアウト時刻14時18分17秒-ジョブ実行平均時間2秒)をジョブテーブル11内に登録する。 Furthermore, for example, when looking at job B-1, job B-1 registers in the job table 11 app B as app identification information 11B, 14:18:02 as input time 11C, and 15 seconds as timeout condition 11D. As job start time 11E, "-" is registered in the job table 11 since it is before execution, and as timeout time 11F, 14:18:17 (= input time 14:18:02 + timeout condition 15 seconds) is registered in the job table 11. As limit time 11G, 14:18:15 (= timeout time 14:18:17 - average job execution time 2 seconds) is registered in the job table 11.

また、例えば、ジョブC-2に着目した場合、ジョブC-2は、アプリ識別情報11BとしてアプリC、投入時刻11Cとして14時18分11秒、タイムアウト条件11Dとして12秒をジョブテーブル11内に登録する。ジョブ開始時刻11Eとしては実行前のために「-」、タイムアウト時刻11Fとして14時18分23秒(=投入時刻14時18分11秒+タイムアウト条件12秒)をジョブテーブル11内に登録する。限界時刻11Gとして14時18分20秒(=タイムアウト時刻14時18分23秒-ジョブ実行平均時間3秒)をジョブテーブル11内に登録する。 Furthermore, for example, when looking at job C-2, job C-2 registers in the job table 11 app C as app identification information 11B, 14:18:11 as input time 11C, and 12 seconds as timeout condition 11D. As job start time 11E, "-" is registered in the job table 11 since it is before execution, and as timeout time 11F, 14:18:23 (= input time 14:18:11 + timeout condition 12 seconds) is registered in the job table 11. As limit time 11G, 14:18:20 (= timeout time 14:18:23 - average job execution time 3 seconds) is registered in the job table 11.

図7Bは、再スケジューリング実行時(基本ロジック)の実行順序の一例を示す説明図である。CPU4は、ジョブA-1→B-1→C-1→A-2→B-2→C-2の実行順序を、投入順序が早く、かつ、同一アプリが連続する基本ロジックで、ジョブA-1→A-2→B-1→B-2→C-1→C-2の実行順序に並び替える再スケジューリングを実行する。ジョブA-1及びA-2のジョブ実行時間は、ジョブA-1のセットアップ平均時間(8秒)+ジョブA-1の実行コマンド平均時間(2秒)+ジョブA-2の実行コマンド平均時間(2秒)で12秒である。ジョブB-1及びB-2のジョブ実行時間は、ジョブB-1のセットアップ平均時間(1秒)+ジョブB-1の実行コマンド平均時間(1秒)+ジョブB-2の実行コマンド平均時間(1秒)で3秒である。ジョブC-1及びC-2のジョブ実行時間は、ジョブC-1のセットアップ平均時間(2秒)+ジョブC-1の実行コマンド平均時間(1秒)+ジョブC-2の実行コマンド平均時間(1秒)で3秒である。 Figure 7B is an explanatory diagram showing an example of the execution order when rescheduling is performed (basic logic). The CPU 4 performs rescheduling to rearrange the execution order of jobs A-1 → B-1 → C-1 → A-2 → B-2 → C-2 to the execution order of jobs A-1 → A-2 → B-1 → B-2 → C-1 → C-2, based on the basic logic in which the input order is earlier and the same application is consecutive. The job execution time of jobs A-1 and A-2 is 12 seconds, calculated as the average setup time of job A-1 (8 seconds) + the average execution command time of job A-1 (2 seconds) + the average execution command time of job A-2 (2 seconds). The job execution time of jobs B-1 and B-2 is 3 seconds, calculated as the average setup time of job B-1 (1 second) + the average execution command time of job B-1 (1 second) + the average execution command time of job B-2 (1 second). The job execution time for jobs C-1 and C-2 is 3 seconds, calculated as the average setup time for job C-1 (2 seconds) + the average execution command time for job C-1 (1 second) + the average execution command time for job C-2 (1 second).

先ず、その基本ロジックの判断方法について説明する。ジョブA-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分01秒+ジョブ実行平均時間10秒)=14時18分11秒となる。タイムアウト調整部23は、ジョブA-1のジョブ終了予定時刻が、ジョブA-1のタイムアウト時刻(14時18分30秒)前となるため、ジョブA-1のタイムアウト条件を満たしていると判断できる。 First, we will explain how to determine this basic logic. The scheduled job end time of job A-1 is (job start time 14:18:01 + average job execution time 10 seconds) = 14:18:11. The timeout adjustment unit 23 can determine that the timeout condition for job A-1 is met because the scheduled job end time of job A-1 is before the timeout time of job A-1 (14:18:30).

ジョブA-1のジョブ終了予定時刻はジョブA-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブA-2のジョブ開始時刻14時18分11秒がジョブA-2の限界時刻14時18分21秒よりも早いと判断する。ジョブA-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分11秒+実行コマンド平均時間2秒)=14時18分13秒となる。タイムアウト調整部23は、ジョブA-2のジョブ終了予定時刻が、ジョブA-2のタイムアウト時刻(14時18分31秒)前となるため、ジョブA-2のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、ジョブA-1→A-2の実行順序がタイムアウト条件を満たしていると判断できる。 The scheduled job end time of job A-1 is the job start time of job A-2. The timeout adjustment unit 23 determines that the job start time of job A-2, 14:18:11, is earlier than the limit time of job A-2, 14:18:21. The scheduled job end time of job A-2 is (job start time 14:18:11 + average execution command time 2 seconds) = 14:18:13. The timeout adjustment unit 23 can determine that the timeout condition of job A-2 is met because the scheduled job end time of job A-2 is before the timeout time of job A-2 (14:18:31). As a result, the timeout adjustment unit 23 can determine that the execution order of jobs A-1 → A-2 meets the timeout condition.

更に、ジョブA-2のジョブ終了予定時刻はジョブB-1のジョブ開始時刻となる。タイムアウト調整部23は、ジョブB-1のジョブ開始時刻14時18分13秒がジョブB-1の限界時刻14時18分15秒よりも早いと判断する。ジョブB-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分13秒+ジョブ実行平均時間2秒)=14時18分15秒となる。タイムアウト調整部23は、ジョブB-1のジョブ終了予定時刻が、ジョブB-1のタイムアウト時刻(14時18分17秒)前となるため、ジョブB-1のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、ジョブA-1→A-2→B-1の実行順序がタイムアウト条件を満たしていると判断できる。 Furthermore, the scheduled job end time of job A-2 becomes the job start time of job B-1. The timeout adjustment unit 23 determines that the job start time of job B-1, 14:18:13, is earlier than the limit time of job B-1, 14:18:15. The scheduled job end time of job B-1 is (job start time 14:18:13 + average job execution time 2 seconds) = 14:18:15. The timeout adjustment unit 23 can determine that the timeout condition of job B-1 is met because the scheduled job end time of job B-1 is before the timeout time of job B-1 (14:18:17). As a result, the timeout adjustment unit 23 can determine that the execution order of jobs A-1 → A-2 → B-1 meets the timeout condition.

更に、ジョブB-1のジョブ終了予定時刻はジョブB-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブB-2のジョブ開始時刻14時18分15秒がジョブB-2の限界時刻14時18分17秒よりも早いと判断する。ジョブB-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分15秒+実行コマンド平均時間1秒)=14時18分16秒となる。タイムアウト調整部23は、ジョブB-2のジョブ終了予定時刻が、ジョブB-2のタイムアウト時刻(14時18分19秒)前となるため、ジョブB-2のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、ジョブA-1→A-2→B-1→B-2の実行順序がタイムアウト条件を満たしていると判断できる。 Furthermore, the scheduled job end time of job B-1 is the job start time of job B-2. The timeout adjustment unit 23 determines that the job start time of job B-2, 14:18:15, is earlier than the limit time of job B-2, 14:18:17. The scheduled job end time of job B-2 is (job start time 14:18:15 + average execution command time 1 second) = 14:18:16. The timeout adjustment unit 23 determines that the timeout condition of job B-2 is met because the scheduled job end time of job B-2 is before the timeout time of job B-2 (14:18:19). As a result, the timeout adjustment unit 23 determines that the execution order of jobs A-1 → A-2 → B-1 → B-2 meets the timeout condition.

更に、ジョブB-2のジョブ終了予定時刻はジョブC-1のジョブ開始時刻となる。タイムアウト調整部23は、ジョブC-1のジョブ開始時刻14時18分16秒がジョブC-1の限界時刻14時18分17秒よりも早いと判断する。ジョブC-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分16秒+ジョブ実行平均時間3秒)=14時18分19秒となる。タイムアウト調整部23は、ジョブC-1のジョブ終了予定時刻が、ジョブC-1のタイムアウト時刻(14時18分20秒)前となるため、ジョブC-1のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、ジョブA-1→A-2→B-1→B-2→C-1の実行順序がタイムアウト条件を満たしていると判断できる。 Furthermore, the scheduled job end time of job B-2 is the job start time of job C-1. The timeout adjustment unit 23 determines that the job start time of job C-1, 14:18:16, is earlier than the limit time of job C-1, 14:18:17. The scheduled job end time of job C-1 is (job start time 14:18:16 + average job execution time 3 seconds) = 14:18:19. The timeout adjustment unit 23 determines that the timeout condition of job C-1 is met because the scheduled job end time of job C-1 is before the timeout time of job C-1 (14:18:20). As a result, the timeout adjustment unit 23 determines that the execution order of jobs A-1 → A-2 → B-1 → B-2 → C-1 meets the timeout condition.

更に、ジョブC-2のジョブ終了予定時刻はジョブC-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブC-2のジョブ開始時刻14時18分19秒がジョブC-2の限界時刻14時18分20秒よりも早いと判断する。ジョブC-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分19秒+実行コマンド平均時間1秒)=14時18分20秒となる。タイムアウト調整部23は、ジョブC-2のジョブ終了予定時刻が、ジョブC-2のタイムアウト時刻(14時18分23秒)前となるため、ジョブC-2のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、タイムアウト条件を満たした、ジョブA-1→A-2→B-1→B-2→C-1→C-2の実行順序を実行順序リスト13に更新することになる。 Furthermore, the scheduled job end time of job C-2 becomes the job start time of job C-2. The timeout adjustment unit 23 determines that the job start time of job C-2, 14:18:19, is earlier than the limit time of job C-2, 14:18:20. The scheduled job end time of job C-2 is (job start time 14:18:19 + average execution command time 1 second) = 14:18:20. The timeout adjustment unit 23 determines that the timeout condition of job C-2 is met because the scheduled job end time of job C-2 is before the timeout time of job C-2 (14:18:23). As a result, the timeout adjustment unit 23 updates the execution order list 13 to the execution order of jobs A-1 → A-2 → B-1 → B-2 → C-1 → C-2, which satisfies the timeout condition.

図7Cは、ジョブC-1及びC-2のタイムアウト判断時の実行順序の一例を示す説明図である。CPU4は、ジョブA-1→A-2→B-1→B-2→C-1→C-2の実行順序でジョブA-1の実行中に、ジョブA-1のジョブ実行時間がジョブ実行平均時間内に終了しない場合に1標準偏差分延伸と仮定する。尚、1標準偏差分とは、アプリ毎に異なる、例えば、ジョブ実行分散時間分である。CPU4は、ジョブA-1の実行を継続した再スケジューリングを実行した場合の処理可能なジョブ数を計算することになる。 Figure 7C is an explanatory diagram showing an example of the execution order when jobs C-1 and C-2 are judged to have timed out. When job A-1 is being executed in the execution order of jobs A-1 → A-2 → B-1 → B-2 → C-1 → C-2, CPU 4 assumes that the job execution time of job A-1 will be extended by one standard deviation if it does not end within the average job execution time. Note that one standard deviation is different for each application and is, for example, the job execution distribution time. CPU 4 calculates the number of jobs that can be processed when rescheduling is performed to continue the execution of job A-1.

その計算ロジックの内容について説明する。例えば、ジョブA-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分01秒+ジョブ実行平均時間10秒+ジョブ実行分散時間2秒)=14時18分13秒となる。タイムアウト調整部23は、ジョブA-1のジョブ終了予定時刻が、ジョブA-1のタイムアウト時刻(14時18分30秒)前となるため、ジョブA-1のタイムアウト条件を満たしていると判断できる。 The contents of this calculation logic will be explained below. For example, the scheduled job end time of job A-1 is (job start time 14:18:01 + average job execution time 10 seconds + job execution distribution time 2 seconds) = 14:18:13. The timeout adjustment unit 23 can determine that the timeout condition for job A-1 is met because the scheduled job end time of job A-1 is before the timeout time of job A-1 (14:18:30).

ジョブA-1のジョブ終了予定時刻はジョブA-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブA-2のジョブ開始時刻14時18分13秒がジョブA-2の限界時刻14時18分23秒よりも早いと判断する。ジョブA-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分13秒+実行コマンド平均時間2秒)=14時18分15秒となる。タイムアウト調整部23は、ジョブA-2のジョブ終了予定時刻が、ジョブA-2のタイムアウト時刻(14時18分31秒)前となるため、ジョブA-2のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、ジョブA-1→A-2の実行順序がタイムアウト条件を満たしていると判断できる。 The scheduled job end time of job A-1 is the job start time of job A-2. The timeout adjustment unit 23 determines that the job start time of job A-2, 14:18:13, is earlier than the limit time of job A-2, 14:18:23. The scheduled job end time of job A-2 is (job start time 14:18:13 + average execution command time 2 seconds) = 14:18:15. The timeout adjustment unit 23 can determine that the timeout condition of job A-2 is met because the scheduled job end time of job A-2 is before the timeout time of job A-2 (14:18:31). As a result, the timeout adjustment unit 23 can determine that the execution order of jobs A-1 → A-2 meets the timeout condition.

更に、ジョブA-2のジョブ終了予定時刻はジョブB-1のジョブ開始時刻となる。タイムアウト調整部23は、ジョブB-1のジョブ開始時刻14時18分15秒がジョブB-1の限界時刻14時18分15秒と同一と判断する。ジョブB-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分15秒+ジョブ実行平均時間2秒)=14時18分17秒となる。タイムアウト調整部23は、ジョブB-1のジョブ終了予定時刻が、ジョブB-1のタイムアウト時刻(14時18分17秒)前となるため、ジョブB-1のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、ジョブA-1→A-2→B-1の実行順序がタイムアウト条件を満たしていると判断できる。 Furthermore, the scheduled job end time of job A-2 becomes the job start time of job B-1. The timeout adjustment unit 23 determines that the job start time of job B-1, 14:18:15, is the same as the limit time of job B-1, 14:18:15. The scheduled job end time of job B-1 is (job start time 14:18:15 + average job execution time 2 seconds) = 14:18:17. The timeout adjustment unit 23 can determine that the timeout condition of job B-1 is met because the scheduled job end time of job B-1 is before the timeout time of job B-1 (14:18:17). As a result, the timeout adjustment unit 23 can determine that the execution order of jobs A-1 → A-2 → B-1 meets the timeout condition.

更に、ジョブB-1のジョブ終了予定時刻はジョブB-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブB-2のジョブ開始時刻14時18分17秒がジョブB-2の限界時刻14時18分17秒と同一と判断する。ジョブB-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分17秒+実行コマンド平均時間1秒)=14時18分18秒となる。タイムアウト調整部23は、ジョブB-2のジョブ終了予定時刻が、ジョブB-2のタイムアウト時刻(14時18分19秒)前となるため、ジョブB-2のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、ジョブA-1→A-2→B-1→B-2の実行順序がタイムアウト条件を満たしていると判断できる。 Furthermore, the scheduled job end time of job B-1 becomes the job start time of job B-2. The timeout adjustment unit 23 determines that the job start time of job B-2, 14:18:17, is the same as the limit time of job B-2, 14:18:17. The scheduled job end time of job B-2 is (job start time 14:18:17 + average execution command time 1 second) = 14:18:18. The timeout adjustment unit 23 determines that the timeout condition of job B-2 is met because the scheduled job end time of job B-2 is before the timeout time of job B-2 (14:18:19). As a result, the timeout adjustment unit 23 determines that the execution order of jobs A-1 → A-2 → B-1 → B-2 meets the timeout condition.

更に、ジョブB-2のジョブ終了予定時刻はジョブC-1のジョブ開始時刻となる。タイムアウト調整部23は、ジョブC-1のジョブ開始時刻14時18分18秒がジョブC-1の限界時刻14時18分17秒よりも遅いと判断する。ジョブC-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分18秒+ジョブ実行平均時間3秒)=14時18分21秒となる。タイムアウト調整部23は、ジョブC-1のジョブ終了予定時刻が、ジョブC-1のタイムアウト時刻(14時18分20秒)を超過するため、ジョブC-1のタイムアウト条件を満たしていないと判断できる。その結果、ジョブA-1→A-2→B-1→B-2→C-1の実行順序が不成立となる。従って、タイムアウト調整部23は、ジョブC-1及びC-2がタイムアウト条件を満たさないため、ジョブA-1→A-2→B-1→B-2の実行順序がタイムアウト条件を満たしていると判断できる。従って、実行中のジョブを継続した場合のジョブの実行順序における処理可能なジョブ数は、「4」となる。 Furthermore, the scheduled job end time of job B-2 becomes the job start time of job C-1. The timeout adjustment unit 23 determines that the job start time of job C-1, 14:18:18, is later than the limit time of job C-1, 14:18:17. The scheduled job end time of job C-1 is (job start time 14:18:18 + average job execution time 3 seconds) = 14:18:21. The timeout adjustment unit 23 determines that the scheduled job end time of job C-1 exceeds the timeout time of job C-1 (14:18:20), and therefore does not satisfy the timeout condition of job C-1. As a result, the execution order of jobs A-1 → A-2 → B-1 → B-2 → C-1 is invalid. Therefore, since jobs C-1 and C-2 do not satisfy the timeout condition, the timeout adjustment unit 23 can determine that the execution order of jobs A-1 → A-2 → B-1 → B-2 satisfies the timeout condition. Therefore, the number of jobs that can be processed in the job execution order if the currently running job is continued will be "4".

図7Dは、ジョブA-1中止時の実行順序の一例を示す説明図である。CPU4は、ジョブA-1→A-2→B-1→B-2→C-1→C-2の実行順序でジョブA-1の実行中に、ジョブA-1のジョブ実行時間がジョブ実行平均時間内に終了しない場合に1標準偏差延伸と仮定する。CPU4は、実行中のジョブA-1を中止する再スケジューリングを実行した場合の処理可能なジョブ数を計算することになる。 Figure 7D is an explanatory diagram showing an example of the execution order when job A-1 is stopped. When job A-1 is being executed in the execution order of jobs A-1 → A-2 → B-1 → B-2 → C-1 → C-2, CPU 4 assumes that the job execution time of job A-1 is extended by one standard deviation if it does not end within the average job execution time. CPU 4 will calculate the number of jobs that can be processed when rescheduling is performed to stop job A-1 that is currently being executed.

CPU4は、ジョブA-1→B-1→C-1→A-2→B-2→C-2の実行順序でジョブA-1の実行を中止した場合、投入順序が早く、かつ、同一アプリが連続する基本ロジックの実行順序に並び替える。CPU4は、基本ロジックの実行順序として、ジョブB-1→B-2→C-1→C-2→A-2の実行順序に並び替える再スケジューリングを実行した場合の処理可能なジョブ数を計算することになる。 When CPU 4 cancels the execution of job A-1 in the execution order of jobs A-1 → B-1 → C-1 → A-2 → B-2 → C-2, it rearranges the execution order of the basic logic in which the jobs were submitted earlier and in which the same application is consecutive. CPU 4 calculates the number of jobs that can be processed when rescheduling is performed to rearrange the execution order of the basic logic to the execution order of jobs B-1 → B-2 → C-1 → C-2 → A-2.

その計算ロジックの内容について説明する。ジョブA-1のジョブ終了時刻は、ジョブA-1をジョブ実行平均時間以内に中止し、遅くとも、(ジョブ開始時刻14時18分01秒+ジョブ実行平均時間10秒)=14時18分11秒となる。ジョブA-1のジョブ終了時刻はジョブB-1のジョブ開始時刻となる。タイムアウト調整部23は、ジョブB-1のジョブ開始時刻14時18分11秒がジョブB-1の限界時刻14時18分15秒よりも早いと判断する。ジョブB-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分11秒+ジョブ実行平均時間2秒)=14時18分13秒となる。タイムアウト調整部23は、ジョブB-1のジョブ終了予定時刻が、ジョブB-1のタイムアウト時刻(14時18分17秒)前となるため、ジョブB-1のタイムアウト条件を満たしていると判断できる。 The contents of the calculation logic will be explained. The job end time of job A-1 is determined by canceling job A-1 within the average job execution time and at the latest being (job start time 14:18:01 + average job execution time 10 seconds) = 14:18:11. The job end time of job A-1 is the job start time of job B-1. The timeout adjustment unit 23 determines that the job start time of job B-1 is 14:18:11, which is earlier than the limit time of job B-1, 14:18:15. The scheduled job end time of job B-1 is (job start time 14:18:11 + average job execution time 2 seconds) = 14:18:13. The timeout adjustment unit 23 determines that the scheduled job end time of job B-1 is before the timeout time of job B-1 (14:18:17), and therefore the timeout condition of job B-1 is satisfied.

更に、ジョブB-1のジョブ終了予定時刻はジョブB-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブB-2のジョブ開始時刻14時18分13秒がジョブB-2の限界時刻14時18分17秒よりも早いと判断する。ジョブB-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分13秒+実行コマンド平均時間1秒)=14時18分14秒となる。タイムアウト調整部23は、ジョブB-2のジョブ終了予定時刻が、ジョブB-2のタイムアウト時刻(14時18分19秒)前となるため、ジョブB-2のタイムアウト条件を満たしていると判断できる。その結果、ジョブB-1→B-2の実行順序がタイムアウト条件を満たしている判断できる。 Furthermore, the scheduled job end time of job B-1 is the job start time of job B-2. The timeout adjustment unit 23 determines that the job start time of job B-2, 14:18:13, is earlier than the limit time of job B-2, 14:18:17. The scheduled job end time of job B-2 is (job start time 14:18:13 + average execution command time 1 second) = 14:18:14. The timeout adjustment unit 23 determines that the timeout condition of job B-2 is met because the scheduled job end time of job B-2 is before the timeout time of job B-2 (14:18:19). As a result, it can be determined that the execution order of jobs B-1 → B-2 meets the timeout condition.

更に、ジョブB-2のジョブ終了予定時刻はジョブC-1のジョブ開始時刻となる。タイムアウト調整部23は、ジョブC-1のジョブ開始時刻14時18分14秒がジョブC-1の限界時刻14時18分17秒よりも早いと判断する。ジョブC-1のジョブ終了予定時刻は、(ジョブ開始時刻14時18分14秒+ジョブ実行平均時間3秒)=14時18分17秒となる。タイムアウト調整部23は、ジョブC-1のジョブ終了予定時刻が、ジョブC-1のタイムアウト時刻(14時18分20秒)前となるため、ジョブC-1のタイムアウト条件を満たしていると判断できる。その結果、ジョブB-1→B-2→C-1の実行順序がタイムアウト条件を満たしている判断できる。 Furthermore, the scheduled job end time of job B-2 is the job start time of job C-1. The timeout adjustment unit 23 determines that the job start time of job C-1, 14:18:14, is earlier than the limit time of job C-1, 14:18:17. The scheduled job end time of job C-1 is (job start time 14:18:14 + average job execution time 3 seconds) = 14:18:17. The timeout adjustment unit 23 determines that the timeout condition of job C-1 is met because the scheduled job end time of job C-1 is before the timeout time of job C-1 (14:18:20). As a result, it can be determined that the execution order of jobs B-1 → B-2 → C-1 meets the timeout condition.

更に、ジョブC-1のジョブ終了予定時刻はジョブC-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブC-2のジョブ開始時刻14時18分17秒がジョブC-2の限界時刻14時18分20秒よりも早いと判断する。ジョブC-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分17秒+実行コマンド平均時間1秒)=14時18分18秒となる。タイムアウト調整部23は、ジョブC-2のジョブ終了予定時刻が、ジョブC-2のタイムアウト時刻(14時18分23秒)前となるため、ジョブC-2のタイムアウト条件を満たしていると判断できる。その結果、ジョブB-1→B-2→C-1→C-2の実行順序がタイムアウト条件を満たしている判断できる。 Furthermore, the scheduled job end time of job C-1 is the job start time of job C-2. The timeout adjustment unit 23 determines that the job start time of job C-2, 14:18:17, is earlier than the limit time of job C-2, 14:18:20. The scheduled job end time of job C-2 is (job start time 14:18:17 + average execution command time 1 second) = 14:18:18. The timeout adjustment unit 23 determines that the timeout condition of job C-2 is met because the scheduled job end time of job C-2 is before the timeout time of job C-2 (14:18:23). As a result, it can be determined that the execution order of jobs B-1 → B-2 → C-1 → C-2 meets the timeout condition.

更に、ジョブC-2のジョブ終了予定時刻はジョブA-2のジョブ開始時刻となる。タイムアウト調整部23は、ジョブA-2のジョブ開始時刻14時18分18秒がジョブA-2の限界時刻14時18分21秒よりも早いと判断する。ジョブA-2のジョブ終了予定時刻は、(ジョブ開始時刻14時18分18秒+ジョブ実行平均時間10秒)=14時18分28秒となる。タイムアウト調整部23は、ジョブA-2のジョブ終了予定時刻が、ジョブA-2のタイムアウト時刻(14時18分31秒)前となるため、ジョブA-2のタイムアウト条件を満たしていると判断できる。その結果、タイムアウト調整部23は、タイムアウト条件を満たした、ジョブB-1→B-2→C-1→C-2→A-2の実行順序がタイムアウト条件を満たしていると判断できる。従って、実行中のジョブを中止する場合のジョブの実行順序における処理可能なジョブ数は、「5」となる。 Furthermore, the scheduled job end time of job C-2 is the job start time of job A-2. The timeout adjustment unit 23 determines that the job start time of job A-2, 14:18:18, is earlier than the limit time of job A-2, 14:18:21. The scheduled job end time of job A-2 is (job start time 14:18:18 + average job execution time 10 seconds) = 14:18:28. The timeout adjustment unit 23 determines that the timeout condition of job A-2 is met because the scheduled job end time of job A-2 is before the timeout time of job A-2 (14:18:31). As a result, the timeout adjustment unit 23 determines that the execution order of jobs B-1 → B-2 → C-1 → C-2 → A-2, which satisfies the timeout condition, satisfies the timeout condition. Therefore, the number of jobs that can be processed in the job execution order when the currently running job is canceled is "5".

CPU4は、実行中のジョブA-1を中止する再スケジューリングを実行した場合の処理可能なジョブ数「5」と、実行中のジョブA-1を継続する(再スケジューリングを実行しない)場合の処理可能なジョブ数「4」とを比較する。CPU4は、比較結果に基づき、実行中のジョブA-1を中止する再スケジューリングを実行した場合のジョブ数の方が多いため、実行中のジョブA-1を中止する再スケジューリングを実行した場合の実行順序を実行順序リスト13内に更新することになる。 CPU 4 compares the number of jobs that can be processed ("5") when rescheduling is performed to stop the currently running job A-1 with the number of jobs that can be processed ("4") when the currently running job A-1 is continued (without rescheduling). Based on the comparison result, CPU 4 finds that the number of jobs is greater when rescheduling is performed to stop the currently running job A-1, and so updates the execution order in execution order list 13 to the order when rescheduling is performed to stop the currently running job A-1.

図8は、キュー管理処理に関わるCPU4の処理動作の一例を示すフローチャートである。図8に示すCPU4内のキュー管理部4Aは、イベント発生を監視するイベント待機を実行する(ステップS11)。尚、ステップS11の発生イベントとしては、例えば、ジョブ投入、ジョブの限界時刻の到達及びジョブの終了予定時刻の超過である。 Figure 8 is a flowchart showing an example of the processing operation of CPU 4 related to queue management processing. Queue management unit 4A in CPU 4 shown in Figure 8 executes event standby to monitor the occurrence of an event (step S11). Note that the events that occur in step S11 are, for example, job submission, reaching the job's limit time, and exceeding the scheduled end time of the job.

キュー管理部4Aは、発生イベントがジョブ投入であるか否かを判定する(ステップS12)。キュー管理部4A内のジョブ受付部21は、発生イベントがジョブ投入の場合(ステップS12:Yes)、投入ジョブを受け付ける(ステップS13)。キュー管理部4A内のキューイング部22は、受け付けた投入ジョブに対する、図10に示すキューイング処理を実行する(ステップS14)。 The queue management unit 4A determines whether the occurring event is job submission (step S12). If the occurring event is job submission (step S12: Yes), the job reception unit 21 in the queue management unit 4A accepts the submitted job (step S13). The queuing unit 22 in the queue management unit 4A executes the queuing process shown in FIG. 10 for the accepted submitted job (step S14).

キュー管理部4A内のタイムアウト調整部23は、キューイング処理実行後に、図11に示すタイムアウト調整処理を実行する(ステップS15)。更に、タイムアウト調整部23は、ジョブテーブル11内の各ジョブの限界時刻11Gを参照して最短限界時刻を確認し(ステップS16)、発生イベントを監視すべく、ステップS11に移行する。また、タイムアウト調整部23は、発生イベントがジョブ投入でない場合(ステップS12:No)、ジョブの限界時刻の到達又はジョブの終了予定時刻の超過と判断し、図11に示すタイムアウト調整処理を実行する。 After executing the queuing process, the timeout adjustment unit 23 in the queue management unit 4A executes the timeout adjustment process shown in FIG. 11 (step S15). Furthermore, the timeout adjustment unit 23 checks the shortest limit time by referring to the limit time 11G of each job in the job table 11 (step S16), and proceeds to step S11 to monitor the occurring event. Furthermore, if the occurring event is not job input (step S12: No), the timeout adjustment unit 23 determines that the limit time of the job has been reached or the scheduled end time of the job has been exceeded, and executes the timeout adjustment process shown in FIG. 11.

図9は、実行処理に関わるCPU4の処理動作の一例を示すフローチャートである。図9に示すCPU4内の実行部4Bは、イベント発生を監視するイベント待機を実行する(ステップS21)。尚、ステップS21の発生イベントとしては、例えば、ジョブの中止要求、ジョブの実行終了、ジョブの投入等である。 Figure 9 is a flowchart showing an example of the processing operation of CPU 4 related to execution processing. Execution unit 4B in CPU 4 shown in Figure 9 executes event standby to monitor the occurrence of an event (step S21). Note that an event that occurs in step S21 is, for example, a request to stop a job, completion of job execution, submission of a job, etc.

実行部4B内の中止処理部36は、イベント待機中に中止要求を検出したか否かを判定する(ステップS21)。実行部4Bは、中止要求を検出しなかった場合(ステップS22:No)、ジョブの実行終了又はジョブの投入と判断し、アプリ情報テーブル12及びジョブテーブル11を更新登録する(ステップS23)。 The abort processing unit 36 in the execution unit 4B determines whether an abort request has been detected during event standby (step S21). If an abort request has not been detected (step S22: No), the execution unit 4B determines that the job has ended or been submitted, and updates and registers the application information table 12 and the job table 11 (step S23).

例えば、実行部4Bは、発生イベントとして実行終了を検出した場合、ジョブテーブル11内の該当ジョブのジョブ情報を削除する。実行部4Bは、実行終了のジョブのジョブ実行時間、実行コマンド時間及びセットアップ時間に基づき、該当ジョブに対応するアプリのジョブ実行平均時間12B、ジョブ実行分散時間12C及びセットアップ平均時間12Dを算出する。実行部4Bは、算出したアプリのジョブ実行平均時間12B、ジョブ実行分散時間12C及びセットアップ平均時間12Dをジョブテーブル11内に更新する。また、実行部4Bは、発生イベントとしてジョブ投入を検出した場合、該当ジョブの投入を登録すべく、ジョブテーブル11内の該当ジョブのジョブ情報を登録する。 For example, when the execution unit 4B detects an execution end as an occurring event, it deletes the job information of the corresponding job in the job table 11. The execution unit 4B calculates the job execution average time 12B, job execution distribution time 12C, and setup average time 12D of the application corresponding to the corresponding job based on the job execution time, execution command time, and setup time of the job that has finished execution. The execution unit 4B updates the calculated job execution average time 12B, job execution distribution time 12C, and setup average time 12D of the application in the job table 11. Furthermore, when the execution unit 4B detects a job submission as an occurring event, it registers the job information of the corresponding job in the job table 11 to register the submission of the corresponding job.

実行部4Bは、ステップS23にてアプリ情報テーブル12及びジョブテーブル11を更新登録した後、実行順序リスト13内の次に実行するジョブを決定する(ステップS24)。更に、実行部4B内のFPGA制御部32は、決定したジョブをFPGA3内のファームウェア上で実行させ(ステップS25)、発生イベントを監視すべく、ステップS21に移行する。 After updating and registering the application information table 12 and the job table 11 in step S23, the execution unit 4B determines the next job to be executed in the execution order list 13 (step S24). Furthermore, the FPGA control unit 32 in the execution unit 4B executes the determined job on the firmware in the FPGA 3 (step S25), and proceeds to step S21 to monitor the occurring event.

また、実行部4B内の中止処理部36は、中止要求を検出した場合(ステップS22:Yes)、該当ジョブを中止する(ステップS26)。更に、実行部4Bは、該当ジョブの中止に伴う情報のアプリ情報テーブル12又はジョブテーブル11を更新登録すべく、ステップS23に移行する。 If the cancellation processing unit 36 in the execution unit 4B detects a cancellation request (step S22: Yes), it cancels the job (step S26). Furthermore, the execution unit 4B proceeds to step S23 to update and register the information associated with the cancellation of the job in the application information table 12 or the job table 11.

実行処理を実行するCPU4は、中止要求を検出した場合、実行中のジョブを中止する。その結果、実行中のジョブを途中で中止できる。 When the CPU 4 that executes the execution process detects a request to stop, it stops the job that is being executed. As a result, the job that is being executed can be stopped midway.

図10は、キューイング処理に関わるCPU4の処理動作の一例を示すフローチャートである。図10においてCPU4内のキューイング部22は、ジョブのジョブ情報をジョブテーブル11内に登録する(ステップS31)。キューイング部22は、ジョブテーブル11内の各ジョブのアプリ識別情報を取得する(ステップS32)。キューイング部22は、ジョブテーブル11内の同一アプリ識別情報11Bのジョブが連続するように実行順序リスト13内の蓄積ジョブの実行順序を基本ロジックでソートする(ステップS33)。基本ロジックとは、同一アプリのセットアップ時間の重複を回避しながら、投入順序に応じてジョブの実行順序を並び替える、図7Bに示すロジックである。キューイング部22は、基本ロジックでソート後の実行順序で実行順序リスト13を更新し(ステップS34)、図10に示す処理動作を終了する。 Figure 10 is a flowchart showing an example of the processing operation of CPU 4 related to queuing processing. In Figure 10, the queuing unit 22 in CPU 4 registers job information of a job in job table 11 (step S31). The queuing unit 22 acquires application identification information of each job in job table 11 (step S32). The queuing unit 22 sorts the execution order of accumulated jobs in execution order list 13 by basic logic so that jobs with the same application identification information 11B in job table 11 are consecutive (step S33). The basic logic is the logic shown in Figure 7B, which rearranges the execution order of jobs according to the input order while avoiding overlapping setup times of the same application. The queuing unit 22 updates the execution order list 13 with the execution order after sorting by basic logic (step S34), and ends the processing operation shown in Figure 10.

キューイング処理を実行するCPU4は、投入順序に蓄積された蓄積ジョブを同一アプリのジョブが連続するように基本ロジックで実行順序を並び替える。その結果、同一アプリ内で重複するセットアップ時間を削減できるため、各ジョブの実行効率の向上を図ることができる。 The CPU 4 that executes the queuing process rearranges the execution order of the jobs that are stored in the order they are submitted, using basic logic, so that jobs of the same application are executed consecutively. As a result, it is possible to reduce the setup time that is duplicated within the same application, thereby improving the execution efficiency of each job.

図11は、タイムアウト調整処理に関わるCPU4の処理動作の一例を示すフローチャートである。図11においてCPU4内のタイムアウト調整部23は、ジョブテーブル11からジョブ毎のジョブ情報を取得する(ステップS41)。タイムアウト調整部23は、取得したジョブ情報から、ジョブ毎の投入時刻11C及びタイムアウト条件11Dに基づきジョブ毎の限界時刻11Gを算出する(ステップS42)。尚、タイムアウト調整部23は、ジョブ毎の(投入時刻11C+タイムアウト条件11D)に基づき、ジョブ毎のタイムアウト時刻11Fを算出する。更に、タイムアウト調整部23は、ジョブ毎の(タイムアウト時刻11F-該当アプリのジョブ実行平均時間)に基づき、ジョブ毎の限界時刻11Gを算出する。 Figure 11 is a flowchart showing an example of the processing operation of CPU 4 related to the timeout adjustment process. In Figure 11, the timeout adjustment unit 23 in CPU 4 acquires job information for each job from the job table 11 (step S41). From the acquired job information, the timeout adjustment unit 23 calculates the limit time 11G for each job based on the input time 11C and timeout condition 11D for each job (step S42). The timeout adjustment unit 23 calculates the timeout time 11F for each job based on (input time 11C + timeout condition 11D) for each job. Furthermore, the timeout adjustment unit 23 calculates the limit time 11G for each job based on (timeout time 11F - average job execution time of the relevant application) for each job.

タイムアウト調整部23は、ジョブ毎の限界時刻11Gを算出した後、ジョブ毎に、限界時刻11Gとジョブ開始時刻とを比較する(ステップS43)。尚、ジョブ開始時刻は、複数のアプリの内、同一アプリのジョブがある場合は同一のアプリ内のジョブを優先する基本ロジックとし、優先したジョブの内、投入順序が早い順に実行順序を並び替えて算出した時刻である。タイムアウト調整部23は、ジョブ開始時刻よりも限界時刻が早いジョブがあるか否かを判定する(ステップS44)。 After calculating the limit time 11G for each job, the timeout adjustment unit 23 compares the limit time 11G with the job start time for each job (step S43). The job start time is calculated by rearranging the execution order of the prioritized jobs in the order of earliest submission, based on basic logic that prioritizes jobs in the same app when there are jobs for the same app among multiple apps. The timeout adjustment unit 23 determines whether there is a job whose limit time is earlier than the job start time (step S44).

タイムアウト調整部23は、ジョブ開始時刻よりも限界時刻が早いジョブがある場合(ステップS44:Yes)、ジョブ開始時刻が限界時刻に到達したジョブがあるか否かを判定する(ステップS45)。タイムアウト調整部23は、ジョブ開始時刻が限界時刻に到達したジョブがある場合(ステップS45:Yes)、図12に示す限界時刻処理を実行する(ステップS46)。そして、タイムアウト調整部23は、実行順序リスト13を更新し(ステップS50)、図11に示す処理動作を終了する。 If there is a job whose limit time is earlier than the job start time (step S44: Yes), the timeout adjustment unit 23 determines whether there is a job whose job start time has reached the limit time (step S45). If there is a job whose job start time has reached the limit time (step S45: Yes), the timeout adjustment unit 23 executes the limit time processing shown in FIG. 12 (step S46). Then, the timeout adjustment unit 23 updates the execution order list 13 (step S50) and ends the processing operation shown in FIG. 11.

タイムアウト調整部23は、ジョブ開始時刻が限界時刻に到達したジョブがない場合(ステップS45:No)、現在時刻が実行中ジョブの終了予定時刻を超過しているか否かを判定する(ステップS47)。タイムアウト調整部23は、現在時刻が実行中ジョブの終了予定時刻を超過している場合(ステップS47:Yes)、図13に示す終了予定時刻処理を実行し(ステップS48)、ステップS50に移行する。 If there is no job whose job start time has reached the limit time (step S45: No), the timeout adjustment unit 23 determines whether the current time exceeds the scheduled end time of the job being executed (step S47). If the current time exceeds the scheduled end time of the job being executed (step S47: Yes), the timeout adjustment unit 23 executes the scheduled end time process shown in FIG. 13 (step S48) and proceeds to step S50.

また、タイムアウト調整部23は、現在時刻が実行中ジョブの終了予定時刻を超過していない場合(ステップS47:No)、図14に示す新規ジョブ投入処理を実行し(ステップS49)、ステップS50に移行する。また、タイムアウト調整部23は、ジョブ開始時刻よりも限界時刻が早いジョブがない場合(ステップS44:No)、実行順序リスト13を更新すべく、ステップS50に移行する。 If the current time does not exceed the scheduled end time of the job being executed (step S47: No), the timeout adjustment unit 23 executes the new job submission process shown in FIG. 14 (step S49) and proceeds to step S50. If there is no job whose limit time is earlier than the job start time (step S44: No), the timeout adjustment unit 23 proceeds to step S50 to update the execution order list 13.

タイムアウト調整処理を実行するCPU4は、ジョブ開始時刻より限界時刻が早いジョブがあって、ジョブ開始時刻が限界時刻に到達したジョブがある場合に、限界時刻処理を実行できる。CPU4は、ジョブ開始時刻が限界時刻に到達したジョブがなく、現在時刻が実行中ジョブの終了予定時刻を超過した場合に、終了予定時刻処理を実行できる。更に、CPU4は、ジョブ開始時刻が限界時刻に到達したジョブがなく、現在時刻が実行中ジョブの終了予定時刻を超過していない場合に、新規ジョブ投入処理を実行できる。 The CPU 4 executing the timeout adjustment process can execute limit time processing when there is a job whose limit time is earlier than the job start time and there is a job whose job start time has reached the limit time. The CPU 4 can execute scheduled end time processing when there is no job whose job start time has reached the limit time and the current time has exceeded the scheduled end time of the job being executed. Furthermore, the CPU 4 can execute new job submission processing when there is no job whose job start time has reached the limit time and the current time has not exceeded the scheduled end time of the job being executed.

図12は、限界時刻処理に関わるCPU4の処理動作の一例を示すフローチャートである。図12においてCPU4内のタイムアウト調整部23は、図11に示すステップS45にてジョブ開始時刻が限界時刻に到達したジョブがある場合に限界時刻処理を起動する。タイムアウト調整部23は、ジョブ開始時刻が限界時刻に到達したジョブを検出した場合(ステップS51)、限界時刻に到達したジョブを優先実行した場合のジョブ数と、限界時刻に到達したジョブを実行中止した場合のジョブ数とを算出する(ステップS52)。尚、限界時刻に到達したジョブを実行中止した場合とは、限界時刻を到達したジョブを中止して再スケジューリングを実行する場合に相当する。限界時刻に到達したジョブを優先実行する場合とは、限界時刻に到達したジョブを継続する再スケジューリングを実行する場合に相当する。 FIG. 12 is a flowchart showing an example of the processing operation of the CPU 4 related to the limit time processing. In FIG. 12, the timeout adjustment unit 23 in the CPU 4 starts the limit time processing when there is a job whose job start time has reached the limit time in step S45 shown in FIG. 11. When the timeout adjustment unit 23 detects a job whose job start time has reached the limit time (step S51), it calculates the number of jobs when the job whose job start time has reached the limit time is executed with priority and the number of jobs when the job whose job whose limit time has been reached is stopped (step S52). Note that the case where the job whose limit time has been stopped corresponds to the case where the job whose limit time has been reached is stopped and rescheduled. The case where the job whose limit time has been reached is executed with priority corresponds to the case where rescheduling is performed to continue the job whose limit time has been reached.

タイムアウト調整部23は、優先実行した場合のジョブ数と実行中止した場合のジョブ数とを比較し、優先実行した場合のジョブ数の方が多いか否かを判定する(ステップS53)。タイムアウト調整部23は、優先実行した場合のジョブ数の方が多い場合(ステップS53:Yes)、限界時刻に到達したジョブを優先実行するようにジョブの実行順序をソートし(ステップS54)、図12に示す処理動作を終了する。図11に示すステップS50にてソート後の実行順序で実行順序リスト13を更新する。 The timeout adjustment unit 23 compares the number of jobs when priority execution is performed with the number of jobs when execution is canceled, and determines whether the number of jobs when priority execution is performed is greater (step S53). If the number of jobs when priority execution is greater (step S53: Yes), the timeout adjustment unit 23 sorts the job execution order so that the job that has reached the limit time is executed with priority (step S54), and ends the processing operation shown in FIG. 12. The execution order list 13 is updated with the execution order after sorting in step S50 shown in FIG. 11.

タイムアウト調整部23は、優先実行した場合のジョブ数の方が多くない場合(ステップS53:No)、限界時刻に到達したジョブを拒否するジョブ拒否を実行し(ステップS55)、図12に示す処理動作を終了する。図11に示すステップS50にて、ジョブ拒否後の実行順序で実行順序リスト13を更新する。 If the number of jobs in the case of priority execution is not greater (step S53: No), the timeout adjustment unit 23 executes job rejection to reject the job that has reached the limit time (step S55), and ends the processing operation shown in FIG. 12. In step S50 shown in FIG. 11, the execution order list 13 is updated with the execution order after the job rejection.

限界時刻処理を実行するCPU4は、限界時刻に到達したジョブを検出した場合、限界時刻に到達したジョブを優先実行する場合のジョブ数と、限界時刻に到達したジョブを実行中止する場合のジョブ数とを比較する。更に、CPU4は、比較結果に基づき、限界時刻に到達したジョブを優先実行する場合のジョブ数の方が多い場合に、限界時刻に到達したジョブを優先実行する実行順序の再スケジューリングを実行する。その結果、限界時刻に到達したジョブを優先実行しながら、できるだけ多くのジョブ数を処理できる。 When the CPU 4 executing the limit time processing detects a job that has reached the limit time, it compares the number of jobs that will be executed with priority when the job that has reached the limit time is executed with the number of jobs that will be aborted when the job that has reached the limit time is executed. Furthermore, based on the comparison result, if the number of jobs that will be executed with priority when the job that has reached the limit time is greater, the CPU 4 reschedules the execution order to execute the job that has reached the limit time with priority. As a result, it is possible to process as many jobs as possible while executing the job that has reached the limit time with priority.

CPU4は、比較結果に基づき、限界時刻に到達したジョブを優先実行する場合のジョブ数の方が多くない場合に、限界時刻に到達したジョブを拒否する。その結果、限界時刻に到達したジョブを拒否しながら、できるだけ多くのジョブ数を処理できる。 Based on the comparison result, if the number of jobs that would be executed preferentially for the job that has reached its limit time is not greater, the CPU 4 rejects the job that has reached its limit time. As a result, it is possible to process as many jobs as possible while rejecting jobs that have reached their limit time.

図13は、終了予定時刻処理に関わるCPU4の処理動作の一例を示すフローチャートである。図13においてCPU4内のタイムアウト調整部23は、図11に示すステップS47にて現在時刻が実行中ジョブの終了予定時刻が超過している場合に終了予定時刻処理を起動する。タイムアウト調整部23は、実行中ジョブが1標準偏差分延伸すると仮定し、実行中ジョブを中止した場合のジョブ数と、実行中ジョブを継続した場合のジョブ数とを算出する(ステップS61)。尚、実行中ジョブを中止した場合とは、実行中ジョブを中止して再スケジューリングを実行する場合に相当し、実行中ジョブを継続した場合とは、実行中ジョブを継続する再スケジューリングを実行する場合に相当する。タイムアウト調整部23は、実行中ジョブを中止した場合のジョブ数と実行中ジョブを継続した場合のジョブ数とを比較し、実行中ジョブを中止した場合のジョブ数の方が多いか否かを判定する(ステップS62)。 13 is a flowchart showing an example of the processing operation of the CPU 4 related to the scheduled end time processing. In FIG. 13, the timeout adjustment unit 23 in the CPU 4 starts the scheduled end time processing when the current time exceeds the scheduled end time of the job in progress in step S47 shown in FIG. 11. The timeout adjustment unit 23 assumes that the job in progress is extended by one standard deviation and calculates the number of jobs when the job in progress is stopped and the number of jobs when the job in progress is continued (step S61). The case where the job in progress is stopped corresponds to the case where the job in progress is stopped and rescheduled, and the case where the job in progress is continued corresponds to the case where rescheduling is performed to continue the job in progress. The timeout adjustment unit 23 compares the number of jobs when the job in progress is stopped and the number of jobs when the job in progress is continued, and determines whether the number of jobs when the job in progress is stopped is greater (step S62).

タイムアウト調整部23は、実行中ジョブを中止した場合のジョブ数の方が多い場合(ステップS62:Yes)、実行中ジョブの中止要求を実行部4B内の中止処理部36に送信し(ステップS63)、図13に示す処理動作を終了する。図11に示すステップS50にて実行中ジョブを中止した実行順序で実行順序リスト13を更新する。 If the number of jobs would be greater if the currently running jobs were canceled (step S62: Yes), the timeout adjustment unit 23 sends a request to cancel the currently running jobs to the cancellation processing unit 36 in the execution unit 4B (step S63) and ends the processing operation shown in FIG. 13. The execution order list 13 is updated to the execution order in which the currently running jobs were canceled in step S50 shown in FIG. 11.

また、タイムアウト調整部23は、実行中ジョブを中止した場合のジョブ数の方が多くない場合(ステップS62:No)、実行中ジョブを継続し(ステップS64)、図13に示す処理動作を終了する。図11に示すステップS50にて実行中ジョブを継続した実行順序で実行順序リスト13を更新する。 If the number of jobs would not be greater if the currently running jobs were stopped (step S62: No), the timeout adjustment unit 23 continues the currently running jobs (step S64) and ends the processing operation shown in FIG. 13. The execution order list 13 is updated to the execution order in which the currently running jobs were continued in step S50 shown in FIG. 11.

終了予定時刻処理を実行するCPU4は、実行中ジョブが1標準偏差分延伸すると仮定し、実行中ジョブを中止した場合のジョブ数と、実行中ジョブを継続した場合のジョブ数とを比較する。CPU4は、比較結果に基づき、実行中ジョブを中止した場合のジョブ数の方が多い場合に、実行中ジョブを中止する中止要求を中止処理部36に送信する。その結果、その結果、実行中ジョブを中止することで、できるだけ多くのジョブ数を処理できる。 The CPU 4 that executes the scheduled end time processing assumes that the running job will be extended by one standard deviation, and compares the number of jobs when the running job is stopped with the number of jobs when the running job is continued. If the CPU 4 determines based on the comparison result that the number of jobs would be greater when the running job is stopped, it sends a stop request to the stop processing unit 36 to stop the running job. As a result, by stopping the running job, it is possible to process as many jobs as possible.

CPU4は、比較結果に基づき、実行中ジョブを中止した場合のジョブ数の方が多くない場合に、実行中ジョブを継続する。その結果、その結果、実行中ジョブを継続しながら、できるだけ多くのジョブ数を処理できる。 Based on the comparison result, if the number of jobs that would be processed if the currently running job were stopped is not greater, the CPU 4 continues the currently running job. As a result, as many jobs as possible can be processed while continuing the currently running job.

図14は、新規ジョブ投入処理に関わるCPU4の処理動作の一例を示すフローチャートである。図14においてCPU4内のタイムアウト調整部23は、図11に示すステップS47にて実行中ジョブの終了予定時刻が超過していない場合に新規ジョブ投入処理を起動する。タイムアウト調整部23は、新規ジョブを含む実行順序のジョブ数と、新規ジョブを含まない実行順序のジョブ数とを算出する(ステップS71)。尚、新規ジョブを含む実行順序とは、新規ジョブを含む実行順序の再スケジューリングを実行する場合に相当し、新規ジョブを含まない実行順序とは、新規ジョブを含まない実行順序の再スケジューリングを実行する場合に相当する。タイムアウト調整部23は、新規ジョブを含む実行順序のジョブ数の方が多いか否かを判定する(ステップS72)。 Figure 14 is a flowchart showing an example of the processing operation of CPU 4 related to new job submission processing. In Figure 14, the timeout adjustment unit 23 in CPU 4 starts new job submission processing when the scheduled end time of the job being executed has not been exceeded in step S47 shown in Figure 11. The timeout adjustment unit 23 calculates the number of jobs in the execution order including the new job and the number of jobs in the execution order not including the new job (step S71). Note that the execution order including the new job corresponds to a case where the execution order including the new job is rescheduled, and the execution order not including the new job corresponds to a case where the execution order not including the new job is rescheduled. The timeout adjustment unit 23 determines whether the number of jobs in the execution order including the new job is greater (step S72).

タイムアウト調整部23は、新規ジョブを含む実行順序のジョブ数の方が多い場合(ステップS72:Yes)、新規ジョブが実行できるように実行順序をソートし(ステップS73)、図14に示す処理動作を終了する。図11に示すステップS50にて、ソート後の実行順序で実行順序リスト13を更新する。 If the number of jobs in the execution order, including the new job, is greater (step S72: Yes), the timeout adjustment unit 23 sorts the execution order so that the new job can be executed (step S73) and ends the processing operation shown in FIG. 14. In step S50 shown in FIG. 11, the execution order list 13 is updated with the sorted execution order.

また、タイムアウト調整部23は、新規ジョブを含む実行順序のジョブ数の方が多くない場合(ステップS72:No)、新規ジョブのジョブ拒否を実行し(ステップS74)、図14に示す処理動作を終了する。図11に示すステップS50にて、ジョブ拒否後の実行順序で実行順序リスト13を更新する。 If the number of jobs in the execution order including the new job is not greater (step S72: No), the timeout adjustment unit 23 executes job rejection of the new job (step S74) and ends the processing operation shown in FIG. 14. In step S50 shown in FIG. 11, the execution order list 13 is updated with the execution order after the job rejection.

新規ジョブ投入処理を実行するCPU4は、新規ジョブを含む実行順序のジョブ数と、新規ジョブを含まない実行順序のジョブ数とを比較する。更に、CPU4は、比較結果に基づき、新規ジョブを含む実行順序のジョブ数の方が多い場合に、新規ジョブが実行できるように実行順序をソートする。その結果、新規ジョブを実行しながら、できるだけ多くのジョブ数を処理できる。 The CPU 4, which executes the new job submission process, compares the number of jobs in the execution order that includes the new job with the number of jobs in the execution order that does not include the new job. Furthermore, if the number of jobs in the execution order that includes the new job is greater based on the comparison result, the CPU 4 sorts the execution order so that the new job can be executed. As a result, it is possible to process as many jobs as possible while executing the new job.

CPU4は、比較結果に基づき、比較結果に基づき、新規ジョブを含む実行順序のジョブ数の方が多くない場合に、新規ジョブを拒否する。その結果、新規ジョブを拒否しながら、できるだけ多くのジョブ数を処理できる。 Based on the comparison result, if the number of jobs in the execution order including the new job is not greater, the CPU 4 rejects the new job. As a result, it is possible to process as many jobs as possible while rejecting new jobs.

本実施例のCPU4は、実行中のジョブを中止して再スケジューリングを実行する場合と、再スケジューリングを実行しない場合との処理可能なジョブ数を算出する。CPU4は、再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、当該再スケジューリングを実行する。その結果、実行中のジョブを中止することも含め、できるだけ多くのジョブを処理できるスケジューリングが可能となる。 In this embodiment, the CPU 4 calculates the number of jobs that can be processed when rescheduling is not performed and when currently running jobs are stopped, and the number of jobs that can be processed when currently running jobs are stopped. If it is determined that the number of jobs that can be processed when currently running jobs are stopped is greater, the CPU 4 performs the rescheduling. As a result, it becomes possible to perform scheduling that can process as many jobs as possible, including stopping currently running jobs.

CPU4は、ジョブ開始時刻がタイムアウト条件を満たすことができる限界時刻に到達したジョブを優先実行する再スケジューリングを実行する場合と、限界時刻に到達したジョブを中止する再スケジューリングを実行する場合との処理可能なジョブ数を算出する。更に、CPU4は、限界時刻に到達したジョブを優先実行する再スケジューリングを実行する場合のジョブ数の方が多いと判定された場合に、限界時刻に到達したジョブを優先実行する当該再スケジューリングを実行する。その結果、限界時刻に到達したジョブを優先実行することも含め、できるだけ多くのジョブを処理できるスケジューリングが可能となる。 The CPU 4 calculates the number of jobs that can be processed when rescheduling is performed to prioritize execution of a job whose job start time has reached the limit time at which the timeout condition can be satisfied, and when rescheduling is performed to cancel the job whose limit time has been reached. Furthermore, if it is determined that the number of jobs is greater when rescheduling is performed to prioritize execution of a job whose limit time has been reached, the CPU 4 performs the rescheduling to prioritize execution of the job whose limit time has been reached. As a result, it becomes possible to perform scheduling that can process as many jobs as possible, including priority execution of a job whose limit time has been reached.

CPU4は、新規ジョブを含む実行順序の再スケジューリングを実行する場合と、再スケジューリングを実行しない場合との処理可能なジョブ数を算出する。CPU4は、新規ジョブを含む実行順序の再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、当該新規ジョブを含む実行順序の再スケジューリングを実行する。その結果、新規ジョブが投入された場合に、新規ジョブを含め、できるだけ多くのジョブを処理できるスケジューリングが可能となる。 The CPU 4 calculates the number of jobs that can be processed when rescheduling the execution order including the new job and when not performing rescheduling. When it is determined that the number of jobs that can be processed when rescheduling the execution order including the new job is greater, the CPU 4 performs rescheduling of the execution order including the new job. As a result, when a new job is submitted, it becomes possible to perform scheduling that can process as many jobs as possible, including the new job.

本実施例では、基本は同一アプリのジョブを連続し、かつ、タイムアウト条件を満たすようにジョブを並び替え、必要であれば実行中のジョブを中止する。また、ジョブの実行時間は扱うデータに応じて変動するが、このような場合にも十分に対応できる。 In this embodiment, the basic approach is to run consecutive jobs of the same application, rearrange the jobs so that the timeout conditions are met, and if necessary, cancel the job in progress. In addition, the execution time of a job varies depending on the data being handled, and this can be fully handled in such cases.

尚、上記実施例では、アプリ毎に異なるジョブ実行平均時間、ジョブ実行分散時間及びセットアップ平均時間を算出する場合を例示したが、アプリ毎のジョブ実行時間及びセットアップ時間が固定の場合には予め設定しても良く、適宜変更可能である。 In the above embodiment, an example was given of calculating the average job execution time, job execution distribution time, and average setup time, which differ for each application, but if the job execution time and setup time for each application are fixed, they may be set in advance or can be changed as appropriate.

上記実施例では、ステップS45にてジョブ開始時刻が限界時刻に到達したジョブがあるか否かを判定する場合を例示したが、ステップS45の処理の代わりに、ジョブ終了時刻がタイムアウト時刻に到達したジョブがあるか否かを判定する処理を実行しても良い。この場合、タイムアウト時刻に到達したジョブを優先実行した場合のジョブ数とタイムアウト時刻に到達したジョブを実行中止した場合のジョブ数とを比較する。タイムアウト時刻に到達したジョブを優先実行した場合のジョブ数が多い場合に、タイムアウト時刻に到達したジョブを優先実行した場合の実行順序にソートする。また、タイムアウト時刻に到達したジョブを優先実行した場合のジョブ数が多くない場合に、タイムアウト時刻に到達したジョブを拒否しても良い。 In the above embodiment, step S45 is used to determine whether there is a job whose job start time has reached the limit time. However, instead of the process of step S45, a process may be executed to determine whether there is a job whose job end time has reached the timeout time. In this case, the number of jobs that would result from the priority execution of a job that has reached the timeout time is compared with the number of jobs that would result from the job that has reached the timeout time being aborted. If the number of jobs that would result from the priority execution of a job that has reached the timeout time is large, the jobs that have reached the timeout time are sorted into the order of execution that would result from the priority execution of a job that has reached the timeout time. Also, if the number of jobs that would result from the priority execution of a job that has reached the timeout time is not large, the job that has reached the timeout time may be rejected.

また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。 Furthermore, each component of each part shown in the figure does not necessarily have to be physically configured as shown in the figure. In other words, the specific form of distribution and integration of each part is not limited to that shown in the figure, and all or part of them can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc.

更に、各装置で行われる各種処理機能は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)やFPGA(Field Programmable Gate Array)等上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU等で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良い。 Furthermore, the various processing functions performed by each device may be executed in whole or in part on a CPU (Central Processing Unit), DSP (Digital Signal Processor), FPGA (Field Programmable Gate Array), etc. Also, the various processing functions may be executed in whole or in part on a program that is analyzed and executed by a CPU, etc., or on hardware using wired logic.

各種情報を記憶する領域は、例えば、ROM(Read Only Memory)や、SDRAM(Synchronous Dynamic Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)やNVRAM(Non-Volatile Random Access Memory)等のRAM(Random Access Memory)で構成しても良い。 The area for storing various information may be configured, for example, with ROM (Read Only Memory), RAM (Random Access Memory) such as SDRAM (Synchronous Dynamic Random Access Memory), MRAM (Magnetoresistive Random Access Memory), or NVRAM (Non-Volatile Random Access Memory).

ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータ内のCPU等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図15は、実行スケジューリング決定プログラムを実行するコンピュータ100の一例を示すブロック図である。 The various processes described in this embodiment can be realized by executing a prepared program in a processor such as a CPU in a computer. Therefore, an example of a computer that executes a program having the same functions as those in the above embodiment will be described below. FIG. 15 is a block diagram showing an example of a computer 100 that executes an execution scheduling determination program.

図15に示す実行スケジューリング決定プログラムを実行するコンピュータ100は、操作部101と、表示部102と、通信部103と、FPGA104と、ROM105と、RAM106と、CPU107とを有する。CPU107は、ジョブをFPGA104に実行させる。 The computer 100 that executes the execution scheduling determination program shown in FIG. 15 has an operation unit 101, a display unit 102, a communication unit 103, an FPGA 104, a ROM 105, a RAM 106, and a CPU 107. The CPU 107 causes the FPGA 104 to execute a job.

そして、ROM105には、上記実施例と同様の機能を発揮する実行スケジューリング決定プログラムが予め記憶されている。ROM105は、実行スケジューリング決定プログラムとしてキュー管理プログラム105A及び実行プログラム105Bが記憶されている。尚、ROM105ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に実行スケジューリング決定プログラムが記録されていても良い。また、記録媒体としては、例えば、CD-ROM、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。 The ROM 105 is pre-stored with an execution scheduling determination program that performs the same functions as the above embodiment. The ROM 105 stores a queue management program 105A and an execution program 105B as execution scheduling determination programs. The execution scheduling determination program may be recorded on a computer-readable recording medium, not on the ROM 105, but on a drive (not shown). The recording medium may also be, for example, a portable recording medium such as a CD-ROM, a DVD disk, or a USB memory, or a semiconductor memory such as a flash memory.

そして、CPU107は、キュー管理プログラム105AをROM105から読み出し、RAM106上でキュー管理プロセス106Aとして機能する。更に、CPU107は、実行プログラム105BをROM105から読み出し、RAM106上で実行プロセス106Bとして機能する。 Then, the CPU 107 reads the queue management program 105A from the ROM 105, and functions as the queue management process 106A on the RAM 106. Furthermore, the CPU 107 reads the execution program 105B from the ROM 105, and functions as the execution process 106B on the RAM 106.

CPU107は、実行中のジョブ及び、キューイングされているジョブが、設定されているタイムアウト条件を満たさない場合に、各ジョブの再スケジューリングを実行する。CPU107は、前記実行中のジョブを中止して再スケジューリングを実行する場合と、前記再スケジューリングを実行しない場合との処理可能なジョブ数を算出する。CPU107は、前記再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、当該再スケジューリングを実行する。その結果、できるだけ多くのジョブを処理できる。 When an active job and a queued job do not satisfy the set timeout condition, the CPU 107 reschedules each job. The CPU 107 calculates the number of jobs that can be processed when the active job is stopped and rescheduling is performed, and when the rescheduling is not performed. When it is determined that the number of jobs that can be processed when the rescheduling is performed is greater, the CPU 107 performs the rescheduling. As a result, as many jobs as possible can be processed.

1 コンピュータ
2 コンテナ
3 FPGA
4 CPU
4A キュー管理部
4B 実行部
23 タイムアウト調整部
36 中止処理部
1 Computer 2 Container 3 FPGA
4 CPU
4A Queue management unit 4B Execution unit 23 Timeout adjustment unit 36 Cancellation processing unit

Claims (4)

実行中のジョブ及び、キューイングされているジョブが、設定されているタイムアウト条件を満たさない場合に、前記実行中のジョブを中止して再スケジューリングを実行する場合と、前記再スケジューリングを実行しない場合との処理可能なジョブ数を算出し、
前記再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、当該再スケジューリングを実行する
処理をコンピュータが実行することを特徴とする実行スケジューリング決定方法。
When the currently running job and the queued job do not satisfy the set timeout condition, the number of jobs that can be processed is calculated in a case where the currently running job is stopped and rescheduled, and in a case where the rescheduling is not performed;
a process for executing the rescheduling when it is determined that the number of jobs that can be processed is greater when the rescheduling is executed, the process being performed by a computer.
ジョブ開始時刻がタイムアウト条件を満たす限界時刻に到達したジョブを優先実行する再スケジューリングを実行する場合と、前記限界時刻に到達したジョブを中止する再スケジューリングを実行する場合との処理可能なジョブ数を算出し、
前記限界時刻に到達したジョブを中止する再スケジューリングを実行する場合のジョブ数に比較して、前記限界時刻に到達したジョブを優先実行する前記再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、前記限界時刻に到達したジョブを優先実行する当該再スケジューリングを実行する
処理を実行することを特徴とする請求項1に記載の実行スケジューリング決定方法。
Calculating the number of jobs that can be processed when rescheduling is performed to preferentially execute a job whose job start time has reached a limit time that satisfies a timeout condition, and when rescheduling is performed to cancel the job whose job start time has reached the limit time;
2. The execution scheduling determination method according to claim 1, further comprising the step of: executing a process for executing rescheduling for preferential execution of a job that has reached its limit time when it is determined that the number of jobs that can be processed when rescheduling is performed to cancel the job that has reached its limit time is greater than the number of jobs that can be processed when rescheduling is performed to preferentially execute the job that has reached its limit time.
新規ジョブを含む実行順序の再スケジューリングを実行する場合と、前記再スケジューリングを実行しない場合との処理可能なジョブ数を算出し、
前記再スケジューリングを実行しない場合のジョブ数に比較して、前記新規ジョブを含む実行順序の再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、当該新規ジョブを含む実行順序の再スケジューリングを実行する
処理を実行することを特徴とする請求項1又は2に記載の実行スケジューリング決定方法。
Calculating the number of jobs that can be processed when rescheduling the execution order including the new job and when not performing the rescheduling;
3. The execution scheduling determination method according to claim 1, further comprising the step of: executing rescheduling of the execution order including the new job when it is determined that the number of jobs that can be processed when rescheduling the execution order including the new job is greater than the number of jobs when the rescheduling is not executed.
実行中のジョブ及び、キューイングされているジョブが、設定されているタイムアウト条件を満たさない場合に、実行中のジョブを中止して再スケジューリングを実行する場合と、前記再スケジューリングを実行しない場合との処理可能なジョブ数を算出し、
前記再スケジューリングを実行する場合の処理可能なジョブ数の方が多いと判定された場合に、当該再スケジューリングを実行する
処理をコンピュータに実行させることを特徴とする実行スケジューリング決定プログラム。
Calculate the number of jobs that can be processed when the currently running job and the queued job do not satisfy the set timeout condition, in a case where the currently running job is stopped and rescheduled, and in a case where the rescheduling is not performed;
an execution schedule determination program for causing a computer to execute a process of executing the rescheduling when it is determined that the number of jobs that can be processed is greater when the rescheduling is executed;
JP2020217001A 2020-12-25 2020-12-25 Execution scheduling determination method and execution scheduling determination program Active JP7548003B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020217001A JP7548003B2 (en) 2020-12-25 2020-12-25 Execution scheduling determination method and execution scheduling determination program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020217001A JP7548003B2 (en) 2020-12-25 2020-12-25 Execution scheduling determination method and execution scheduling determination program

Publications (2)

Publication Number Publication Date
JP2022102333A JP2022102333A (en) 2022-07-07
JP7548003B2 true JP7548003B2 (en) 2024-09-10

Family

ID=82273446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020217001A Active JP7548003B2 (en) 2020-12-25 2020-12-25 Execution scheduling determination method and execution scheduling determination program

Country Status (1)

Country Link
JP (1) JP7548003B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116073890B (en) * 2023-03-06 2023-06-02 成都星联芯通科技有限公司 Service data processing method, device, receiving equipment, earth station and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065566A (en) 2004-08-26 2006-03-09 Casio Comput Co Ltd Batch processing apparatus and program
JP2012252422A (en) 2011-05-31 2012-12-20 Fujitsu Ltd Prediction program, prediction device, and prediction method
JP2015530656A (en) 2012-10-05 2015-10-15 株式会社日立製作所 Job management system and job control method
JP2020047137A (en) 2018-09-21 2020-03-26 キヤノン株式会社 Information processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065566A (en) 2004-08-26 2006-03-09 Casio Comput Co Ltd Batch processing apparatus and program
JP2012252422A (en) 2011-05-31 2012-12-20 Fujitsu Ltd Prediction program, prediction device, and prediction method
JP2015530656A (en) 2012-10-05 2015-10-15 株式会社日立製作所 Job management system and job control method
JP2020047137A (en) 2018-09-21 2020-03-26 キヤノン株式会社 Information processing system

Also Published As

Publication number Publication date
JP2022102333A (en) 2022-07-07

Similar Documents

Publication Publication Date Title
Ramos-Thuel et al. On-line scheduling of hard deadline aperiodic tasks in fixed-priority systems
US8875151B2 (en) Load balancing method and apparatus in symmetric multi-processor system
US7853743B2 (en) Processor and interrupt controlling method
CN102473118B (en) Information processing system
JP6191301B2 (en) Information processing apparatus, job scheduling method, and job scheduling program
US11113115B2 (en) Dynamic resource optimization
JP7461947B2 (en) Latency-aware dynamic priority changing in a processor - Patents.com
JP5050601B2 (en) Resource allocation method for job, resource allocation method for job, and program
US20110016247A1 (en) Multiprocessor system and multiprocessor system interrupt control method
KR101703328B1 (en) Apparatus and method for optimizing data processing over the heterogeneous multi-processor environment
US7003610B2 (en) System and method for handling shared resource writes arriving via non-maskable interrupts (NMI) in single thread non-mission critical systems with limited memory space
JP7548003B2 (en) Execution scheduling determination method and execution scheduling determination program
CN100419688C (en) Interrupt control device and control method
US20230418667A1 (en) Computing device for handling tasks in a multi-core processor, and method for operating computing device
CN100462923C (en) Task management system
US11789773B2 (en) Computing device for handling tasks in a multi-core processor, and method for operating computing device
CN117453379B (en) Scheduling method and system for AOE network computing tasks in Linux system
JP2002073354A (en) Task control device and task control method
JPH1063515A (en) Scheduling method of multitask control
JP2014225137A (en) Task scheduler, microprocessor, and task scheduling method
CN118260033A (en) A task scheduling method and heterogeneous processor
JP2004070582A (en) Event notification task control processing method and method, and program
TWI463406B (en) Real-time interrupt handling system with preempt function and method thereof
JPH11249917A (en) Parallel computers, their batch processing method, and storage medium
US7444316B1 (en) Method for scheduling jobs using distributed utility-based preemption policies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240812

R150 Certificate of patent or registration of utility model

Ref document number: 7548003

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150