JP7273383B2 - Scheduling method and scheduling device - Google Patents

Scheduling method and scheduling device Download PDF

Info

Publication number
JP7273383B2
JP7273383B2 JP2020056884A JP2020056884A JP7273383B2 JP 7273383 B2 JP7273383 B2 JP 7273383B2 JP 2020056884 A JP2020056884 A JP 2020056884A JP 2020056884 A JP2020056884 A JP 2020056884A JP 7273383 B2 JP7273383 B2 JP 7273383B2
Authority
JP
Japan
Prior art keywords
processes
time
fpga
order
binary file
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
JP2020056884A
Other languages
Japanese (ja)
Other versions
JP2021157482A (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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2020056884A priority Critical patent/JP7273383B2/en
Publication of JP2021157482A publication Critical patent/JP2021157482A/en
Application granted granted Critical
Publication of JP7273383B2 publication Critical patent/JP7273383B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、FPGAを時分割で利用するスケジューリング方法、およびスケジューリング装置に関する。 The present invention relates to a scheduling method and a scheduling apparatus that use FPGAs in time division.

ネットワーク通信機器において、NFV(Network Function Virtualization)などに代表されるように仮想化技術を用いて、通信機器を実現する事例が増えてきている。仮想化の技術には、仮想マシンよりも軽量なコンテナ技術を用いて通信機器を実現する事例も増えてきている。 2. Description of the Related Art In network communication equipment, there have been an increasing number of cases where communication equipment is realized using virtualization technology such as NFV (Network Function Virtualization). In virtualization technology, there are increasing cases of implementing communication devices using container technology, which is lighter than virtual machines.

一方で、仮想化技術は専用に作られたハードウェアではなく、汎用のサーバ上などで動作するため、これまでASIC(Application Specific Integrated Circuit)などで処理されてきた通信機器の機能が汎用CPU(Central Processing Unit)上で処理されることにより、処理速度の低下などの問題も顕在化し、CPUの代わりにGPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)などに一部の処理をオフロードし、その問題解決の1つとして利用させる事例も増えてきている。 On the other hand, virtualization technology runs on general-purpose servers, not dedicated hardware. By processing on the Central Processing Unit), problems such as a decrease in processing speed become apparent, and some processing is offloaded to GPUs (Graphics Processing Units) and FPGAs (Field Programmable Gate Arrays) instead of CPUs. However, the number of cases where it is used as one of the solutions to the problem is increasing.

FPGAを様々な機能で利用することを考えた場合、単純にはそれぞれの機能で利用するための回路情報を作成し、その回路情報を設定したFPGAを様々な機能分だけ用意すればよいが、特にコンテナなどで通信機器を構成し、機能(コンテナ)の種類が膨大になった場合に、その手法は費用がかかりすぎる。 When considering using an FPGA for various functions, it is sufficient to simply create circuit information for use in each function and prepare FPGAs with the circuit information set for the various functions. Especially when communication equipment is configured with containers and the number of types of functions (containers) becomes enormous, the cost is too high.

一般にはFPGAを複数のプロセス(コンテナ)で共有する場合には、物理的に領域を分割するか、利用時間を分割(時分割)させるかの手法が考えられるが、前者は1つのプロセスで利用する回路規模が大きくなった場合に、やはりコストがかかるのと、後者は例えばCPUのタスクスケジューリング方式などは単純に利用すると問題がでる。 In general, when an FPGA is shared by multiple processes (containers), it is possible to physically divide the area or divide the usage time (time division). When the scale of the circuit to be used is large, the cost is still required, and the latter, for example, the task scheduling method of the CPU, for example, is problematic if it is simply used.

特許文献1は、サービスとしてのFPGAへのアクセスを提供するための仕組みが開示されている。共用のFPGA使用のためのプロビジョニング管理などが記述されている。ユーザからFPGAの回路内容である設計パッケージを受け取ると、管理ペイロードを付与し、更に管理ペイロードに適合するユーザキーを付与してコンパイルすることで、ユーザの認証や利用の開始・終了を管理し、サービスとして複数のユーザにFPGAを共有させることができる。 Patent Literature 1 discloses a mechanism for providing access to FPGAs as a service. Provisioning management for shared FPGA usage is described. When receiving a design package, which is the contents of the FPGA circuit from the user, a management payload is given, and a user key that conforms to the management payload is given and compiled, thereby managing user authentication and the start and end of use, Multiple users can share an FPGA as a service.

特表2015-507234号公報Japanese Patent Publication No. 2015-507234

しかし、複数のプロセスによる共有となると、一つ一つの利用時間が短いため、特許文献1記載の方法は、そのような場合の管理手法としては利用できない。また、CPUのタスクスケジューリングを単純に利用する場合に生じ得る問題とは、例えば、ラウンドロビン方式において論ずることができる。図2(a)はある時点で、タスクキューに入っているプロセスを示している。プロセス時間とは、FPGA上で実行される機能の実行開始から終了までの時間である。例えば、これらのプロセスをタイムクォンタム5のラウンドロビン方式で実行した場合、図2(b)のように実行され、「プロセス-い」は実行がいつまでも終わらないことになる。これは、FPGAはサーバのホスト上に置かれているコンパイルされた回路情報のバイナリファイルをFPGAに設定する時間(例えば、OpenCLで言えば、clCreateProgramWithBinary, clCreateKernelの実行時間)を要するため、プロセス時間のみだけでなく、その前処理の時間を測定し、それを考慮に入れる必要があるためである。 However, when shared by a plurality of processes, the usage time of each process is short, so the method described in Patent Document 1 cannot be used as a management method in such a case. In addition, problems that may arise when simply using task scheduling of the CPU can be discussed in, for example, the round-robin method. FIG. 2(a) shows the processes in the task queue at a given time. The process time is the time from the start of execution of the function executed on the FPGA to the end. For example, when these processes are executed in a round robin method with a time quantum of 5, they are executed as shown in FIG. This is because the FPGA requires time to set the compiled circuit information binary file placed on the server host to the FPGA (for example, in OpenCL, the execution time of clCreateProgramWithBinary, clCreateKernel), so only the process time but also because the time of its pretreatment must be measured and taken into account.

本発明は、このような事情に鑑みてなされたものであり、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせるスケジューリング方法、およびスケジューリング装置を提供することを目的とする。 The present invention has been made in view of such circumstances, and when a plurality of processes uses an FPGA in a time-sharing manner, scheduling is performed in consideration of the time for setting the circuit information of the process to be executed in the FPGA. It is an object to provide a method and a scheduling device.

(1)上記の目的を達成するため、本発明は、以下のような手段を講じた。すなわち、本発明の方法は、1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、タスクキューにセットされている前記プロセスを確認するステップと、セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定される。 (1) In order to achieve the above objects, the present invention takes the following measures. That is, the method of the present invention is a scheduling method in which a plurality of processes of one or a plurality of virtual communication devices uses an FPGA in a time-sharing manner, comprising the steps of: checking the processes set in a task queue; a step of acquiring a preprocessing time set in the FPGA for a binary file of the process to be executed; determining an order of the processes to be executed when a plurality of the processes are set in the task queue; and setting the binary file of the process, which is due to be executed, in the FPGA according to the determined order and executing the process, wherein the order of the process or the predetermined time for setting and executing the process is the It is determined based on the pretreatment time for each process.

これにより、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間(前処理時間)を考慮してスケジューリングさせることができる。 As a result, when the FPGA is used by a plurality of processes in a time-sharing manner, scheduling can be performed in consideration of the time (preprocessing time) for setting the circuit information of the process to be executed in the FPGA.

(2)また、本発明の方法は、前記プロセスの順序または前記所定の時間を決定する方法を示すポリシの設定要求を受け付け、設定するステップを有し、前記プロセスの順序または前記所定の時間は、設定された前記ポリシおよび前記プロセスごとの前処理時間に基づいて決定される。 (2) Also, the method of the present invention has a step of receiving and setting a policy setting request indicating a method for determining the order of the processes or the predetermined time, wherein the order of the processes or the predetermined time is , is determined based on the set policy and the preprocessing time for each process.

これにより、設定したポリシごとに異なる観点でプロセスの順序またはプロセスを設定し実行する所定の時間を決定できる。 This makes it possible to determine the order of the processes or the predetermined time to set and execute the processes from different perspectives for each set policy.

(3)また、本発明の方法において、前記所定の時間は、前記プロセスごとの前処理時間とすべての前記プロセスに同一のタイムクォンタムとの和として前記プロセスごとに決定される。 (3) Also, in the method of the present invention, the predetermined time is determined for each process as the sum of the preprocessing time for each process and a time quantum that is the same for all the processes.

このように、前処理時間+タイムクォンタムを割当時間とすることで、前処理時間が長いプロセスがあっても、タイムクォンタムの分だけ実際の処理時間として与えられるので、終了しない処理が発生することはない。また、全てのプロセスでプロセス時間(実際の処理時間)が等しくなるため、実質的な意味での割当時間は公平になる。 In this way, by setting the preprocessing time + time quantum as the allocated time, even if there is a process with a long preprocessing time, the time quantum is given as the actual processing time, so that unfinished processing does not occur. no. In addition, since the process time (actual processing time) is the same for all processes, the allocated time is substantially fair.

(4)また、本発明の方法は、前記前処理時間を取得するステップにおいて、前記プロセスごとのプロセス時間をさらに取得し、前記プロセスの順序は、前記プロセスごとの前処理時間とプロセス時間との和である初回プロセス時間に基づいて決定される。 (4) Further, in the method of the present invention, in the step of obtaining the preprocessing time, the process time for each process is further obtained, and the order of the processes is determined according to the preprocessing time and the process time for each process. It is determined based on the initial process time which is the sum.

このように、前処理時間とプロセス時間を足し合わせた初回プロセス時間に基づいてプロセスの順序を決定することで、前処理時間を考慮しない方法よりターンアラウンドタイムを小さくできる。 In this way, by determining the order of processes based on the initial process time that is the sum of the pretreatment time and the process time, the turnaround time can be reduced compared to the method that does not consider the pretreatment time.

(5)また、本発明の方法において、前記タスクキューにセットされている複数の前記プロセスに同一のプロセスが含まれる場合、前記同一のプロセスを連続して実行する場合に限定して、それぞれのプロセスの前記初回プロセス時間を算出する。 (5) In addition, in the method of the present invention, when the same process is included in the plurality of processes set in the task queue, each Calculate the initial process time of the process.

このように、プロセスの順序をプロセスごとの前処理時間とプロセス時間との和である初回プロセス時間に基づいて決定する方法において、タスクキューに同一のプロセスが複数入っていた場合は、同一のプロセスを連続して実行する場合に限定して前処理時間を算出することで、より適切なプロセスの順序を設定できる。 In this way, in the method of determining the order of processes based on the initial process time, which is the sum of the preprocessing time and the process time for each process, if there are multiple identical processes in the task queue, the same process By calculating the preprocessing time limited to the case of continuously executing , a more appropriate process order can be set.

(6)また、本発明の方法は、複数の前記プロセスの順序の制約を示す順序情報を取得するステップを有し、前記プロセスの順序は、取得した前記ポリシ、前記プロセスごとの前処理時間、および前記順序情報に基づいて決定される。 (6) Further, the method of the present invention has a step of obtaining order information indicating constraints on the order of a plurality of the processes, and the order of the processes includes the obtained policy, preprocessing time for each process, and the order information.

これにより、プロセスに順序の制約がある場合も、取得したポリシ、プロセスごとの前処理時間、および順序情報に基づいて適切なプロセスの順序を設定できる。 As a result, even if processes have order restrictions, an appropriate process order can be set based on the acquired policy, preprocessing time for each process, and order information.

(7)また、本発明の方法は、複数の前記プロセスの優先度の高さを示す優先度情報を取得するステップを有し、前記プロセスの順序は、取得した前記ポリシ、前記プロセスごとの前処理時間、および前記優先度情報に基づいて決定される。 (7) In addition, the method of the present invention has a step of obtaining priority information indicating the priority of a plurality of the processes, and the order of the processes is the obtained policy, the previous process for each process. It is determined based on the processing time and the priority information.

これにより、プロセスに優先度がある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 As a result, even when processes have priorities, the appropriate process order can be set based on the obtained policy, the preprocessing time for each process, and the priority information.

(8)また、本発明の方法において、前記タスクキューにセットされている複数の前記プロセスに前記優先度情報が同一のプロセスが含まれる場合、前記優先度情報が同一のプロセスごとに前記プロセスの順序が決定される。 (8) Further, in the method of the present invention, when a plurality of processes set in the task queue include a process having the same priority information, each process having the same priority information Order is determined.

これにより、プロセスに優先度があり、さらに同一の優先度を有するプロセスがある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 As a result, even when processes have priorities and there are processes with the same priority, an appropriate process order can be set based on the obtained policy, preprocessing time for each process, and priority information.

(9)また、本発明の方法において、前記タスクキューにセットされている前記プロセスの実行中に、実行中の前記プロセスの前記優先度情報よりも優先度の高い前記優先度情報を有する他のプロセスが前記タスクキューにセットされた場合、実行中の前記プロセスの実行を中断し、前記他のプロセスの実行後に、中断した前記プロセスの実行を再開する。 (9) Also, in the method of the present invention, during execution of the process set in the task queue, another When a process is set in the task queue, the execution of the process being executed is suspended, and execution of the suspended process is resumed after execution of the other process.

これにより、プロセスの実行中に優先度の高いプロセスを割り込ませることができ、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 As a result, a high-priority process can be interrupted during process execution, and an appropriate process order can be set based on the obtained policy, preprocessing time for each process, and priority information.

(10)また、本発明の方法は、過去の一定の時間内に実行された前記プロセスの現在の実行される可能性の高さを示す待機順位情報を取得するステップを有し、前記FPGAを利用する前記プロセスが存在しないときに、前記待機順位情報に基づいて選択された前記プロセスのバイナリファイルを前記FPGAにあらかじめ設定する。 (10) In addition, the method of the present invention has a step of acquiring wait ranking information indicating the current execution probability of the process executed within a certain past time, When the process to be used does not exist, the binary file of the process selected based on the waiting order information is preset in the FPGA.

これにより、次回設定される可能性の高いプロセスのバイナリファイルをあらかじめFPGAに設定し待機させることができ、予想が的中した場合に前処理時間を短縮できる。 As a result, the binary file of the process that is likely to be set next time can be set in the FPGA in advance and waited, and the preprocessing time can be shortened when the prediction is correct.

(11)また、本発明のスケジューリング装置は、1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用させるスケジューリング装置であって、前記プロセスの実行命令を格納するタスクキューと、前記タスクキューにセットされている前記プロセスを確認し、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定し、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルの前記FPGAへの設定を依頼し、設定されたバイナリファイルを実行するスケジュール部と、前記スケジュール部に依頼された前記プロセスのバイナリファイルを前記FPGAに設定するバイナリ設定部と、セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得する前処理測定部と、を備え、前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定される。 (11) Further, the scheduling device of the present invention is a scheduling device that allows a plurality of processes of one or a plurality of virtual communication devices to use an FPGA in a time-sharing manner, comprising: a task queue storing execution instructions of the processes; The processes set in the task queue are confirmed, and if a plurality of the processes are set in the task queue, the order of the processes to be executed is determined, and the order of execution arrives according to the determined order. a scheduling unit that requests setting of the binary file of the process to the FPGA and executes the set binary file; and a binary setting unit that sets the binary file of the process requested by the scheduling unit to the FPGA. , a preprocessing measurement unit that acquires the preprocessing time set in the FPGA for the set binary file of the process, and the order of the process or the predetermined time for setting and executing the process is determined by the It is determined based on the pretreatment time for each process.

これにより、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間(前処理時間)を考慮してスケジューリングさせることができる。 As a result, when the FPGA is used by a plurality of processes in a time-sharing manner, scheduling can be performed in consideration of the time (preprocessing time) for setting the circuit information of the process to be executed in the FPGA.

本発明によれば、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせることで、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できる。 According to the present invention, when the FPGA is used by a plurality of processes in a time-sharing manner, the time-sharing is usually supported by scheduling the circuit information of the process to be executed in consideration of the time to set it in the FPGA. Even an FPGA that does not have a memory can be used in a time-sharing manner, and the resources of the FPGA can be used efficiently without increasing the cost.

本実施形態に係るスケジューリング方法およびスケジューリング装置の基となる、コンテナ技術を用いた通信機器の仮想化およびコンテナ技術とFPGAとの関係の概念の一例を示す図である。BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a diagram showing an example of the concept of virtualization of communication devices using container technology and the relationship between container technology and FPGA, which is the basis of the scheduling method and scheduling device according to the present embodiment; 従来方法のプロセスの具体例を示す表、およびそれに対する割当時間を示す概念図である。FIG. 2 is a conceptual diagram showing a table showing an example of the process of the conventional method and allotted time therefor; 第1の実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。1 is a block diagram showing an example of a schematic configuration of a scheduling device according to a first embodiment; FIG. (a)、(b)それぞれ、DBに保存される情報の例を示す表である。(a) and (b) are tables respectively showing examples of information stored in a DB. 第2の実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。FIG. 11 is a block diagram showing an example of a schematic configuration of a scheduling device according to a second embodiment; FIG. 第2の実施形態に係るスケジューリング装置の動作の一例を示すフローチャートである。9 is a flow chart showing an example of the operation of the scheduling device according to the second embodiment; 第2の実施形態に係るスケジューリング装置の動作の一例を示すフローチャートである。9 is a flow chart showing an example of the operation of the scheduling device according to the second embodiment; (a)、(b)それぞれ、実施例1のプロセスの具体例を示す表、およびそれに対する割当時間を示す概念図である。4A and 4B are conceptual diagrams showing a table showing a specific example of the process of Example 1 and allocation time therefor, respectively; FIG. 実施例1のプロセスの具体例を示す表である。4 is a table showing a specific example of the process of Example 1. FIG. 図9に示されるプロセスの具体例に対する実施例1の割当時間を示す概念図である。FIG. 10 is a conceptual diagram showing the allocated time of Example 1 for the specific example of the process shown in FIG. 9; (a)~(c)それぞれ、第2の実施例のプロセスの具体例を示す表、通常の最短ジョブ優先方式の順序を示す概念図、および本発明の最短ジョブ優先方式の順序を示す概念図である。(a) to (c) are respectively a table showing a specific example of the process of the second embodiment, a conceptual diagram showing the order of the normal shortest job priority method, and a conceptual diagram showing the order of the shortest job priority method of the present invention. is. (a)、(b)それぞれ、第3の実施例のプロセスの具体例を示す表、および本発明の最短ジョブ優先方式の順序を示す概念図である。8A and 8B are a table showing a specific example of the process of the third embodiment and a conceptual diagram showing the order of the shortest job priority method of the present invention, respectively; FIG. (a)、(b)それぞれ、第3の実施例のプロセスの具体例を示す表、および本発明の最短ジョブ優先方式の順序を示す概念図である。8A and 8B are a table showing a specific example of the process of the third embodiment and a conceptual diagram showing the order of the shortest job priority method of the present invention, respectively; FIG. 実施例3のスケジューリング装置の動作の一例を示すフローチャートである。11 is a flow chart showing an example of the operation of the scheduling device of Example 3; 第4の実施例のプロセスの具体例を示す表である。It is a table showing a specific example of the process of the fourth embodiment. 図15に示されるプロセスの具体例に対する第4の実施例の順序と割当時間を示す概念図である。FIG. 16 is a conceptual diagram showing a fourth example order and allotted times for the process embodiment shown in FIG. 15; 図15に示されるプロセスの具体例に対する第4の実施例の順序と割当時間を示す概念図である。FIG. 16 is a conceptual diagram showing a fourth example order and allotted times for the process embodiment shown in FIG. 15; 第4の実施例の変形例のプロセスの具体例を示す表である。FIG. 14 is a table showing a specific example of a process of a modification of the fourth embodiment; FIG. (a)、(b)それぞれ、第5の実施例のプロセスの具体例を示す表、および順序と割当時間を示す概念図である。10A and 10B are a table showing a specific example of the process of the fifth embodiment and a conceptual diagram showing the order and allocation time, respectively; FIG. 第6の実施例のプロセスの具体例を示す表である。FIG. 13 is a table showing a specific example of the process of the sixth embodiment; FIG.

本発明者らは、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせることで、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができることを見出し、本発明をするに至った。 When the FPGA is used in multiple processes in a time-sharing manner, the inventors of the present invention usually cope with the use of time-sharing by scheduling in consideration of the time for setting the circuit information of the process to be executed in the FPGA. The present inventors have found that even an FPGA that does not have a circuit can be used in a time-sharing manner, leading to the present invention.

すなわち、本発明の方法は、1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、タスクキューにセットされている前記プロセスを確認するステップと、セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定される。 That is, the method of the present invention is a scheduling method in which a plurality of processes of one or a plurality of virtual communication devices uses an FPGA in a time-sharing manner, comprising the steps of: checking the processes set in a task queue; a step of acquiring a preprocessing time set in the FPGA for a binary file of the process to be executed; determining an order of the processes to be executed when a plurality of the processes are set in the task queue; and setting the binary file of the process, which is due to be executed, in the FPGA according to the determined order and executing the process, wherein the order of the process or the predetermined time for setting and executing the process is the It is determined based on the pretreatment time for each process.

これにより、本発明者らは、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できることを可能とした。以下、本発明の実施形態について、図面を参照しながら具体的に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては同一の参照番号を付し、重複する説明は省略する。 As a result, the inventors of the present invention have found that even an FPGA that does not normally support time-division use can be used in time-division, and FPGA resources can be efficiently used without increasing costs. bottom. Hereinafter, embodiments of the present invention will be specifically described with reference to the drawings. In order to facilitate understanding of the description, the same reference numerals are given to the same components in each drawing, and overlapping descriptions are omitted.

[コンテナ技術とFPGAとの関係の概念]
図1は、本実施形態に係るスケジューリング方法およびスケジューリング装置の基となる、コンテナ技術を用いた通信機器の仮想化およびコンテナ技術とFPGAとの関係の概念の一例を示す図である。仮想通信機器は、1つ以上のコンテナで構成されて動作している。それぞれのコンテナは、1つ以上のプロセスの集合として構成されている。仮想通信機器は、例えば、ルータ、ファイアウォール、基地局、モバイルコア等が考えられるが、これに限定されるわけではない。プロセスとは、仮想通信機器の行なう処理を1つまたは複数の機能ごとに分割したものである。例えば、仮想通信機器がルータである場合、パケットをフィルタリングする機能、通信プロトコルを管理する機能等がプロセスとして考えられるが、これに限定されるわけではない。
[Concept of relationship between container technology and FPGA]
FIG. 1 is a diagram showing an example of the concept of virtualization of communication equipment using container technology and the relationship between container technology and FPGA, which is the basis of the scheduling method and scheduling apparatus according to the present embodiment. A virtual communication device operates by being composed of one or more containers. Each container is configured as a set of one or more processes. A virtual communication device can be, for example, a router, a firewall, a base station, a mobile core, etc., but is not limited to these. A process is a division of processing performed by a virtual communication device for each one or a plurality of functions. For example, if the virtual communication device is a router, the process may include a packet filtering function, a communication protocol managing function, etc., but is not limited to this.

個々のプロセスは、ハードウェアリソースを消費することで実行されるが、プロセスごとに消費するリソースには違いがある。例えば、図1の「プロセス-え」はCPUを利用して実行されることを表している。一方、図1の「プロセス-あ」、「プロセス-い」、および「プロセス-う」は、FPGAに設定されるプロセスごとの回路設定であるバイナリファイルを介して、FPGAを利用して実行されることを表している。図1は、「プロセス-あ」、「プロセス-い」、および「プロセス-う」が、それぞれ「バイナリ-A」、「バイナリ-B」、および「バイナリ-C」というFPGAに設定される回路設定と対応していることを表している。 Individual processes are executed by consuming hardware resources, but the resources consumed by each process are different. For example, "process-e" in FIG. 1 indicates that it is executed using the CPU. On the other hand, "process-a", "process-i", and "process-u" in FIG. It means that FIG. 1 shows a circuit in which "process-a", "process-i", and "process-u" are set to FPGAs named "binary-A", "binary-B", and "binary-C", respectively. Indicates that it corresponds to the setting.

このように、1つのFPGAは、1つのバイナリファイルが設定された場合、そのバイナリファイルに対応するプロセスの実行に対して使用され、他のバイナリファイルに対応するプロセスの実行に対して同時に使用されることはない。また、そのFPGAが他のバイナリファイルに対応するプロセスの実行に使用される場合、そのバイナリファイルを新たに設定して、その後使用される。すなわち、本発明において、1つのFPGAが異なるプロセスに対して使用される場合、時分割で使用される。なお、FPGAは、それぞれのFPGAごとに管理されるため、複数存在していてもよい。 In this way, when one binary file is set, one FPGA is used for executing processes corresponding to that binary file, and is simultaneously used for executing processes corresponding to other binary files. never Also, when the FPGA is used to execute a process corresponding to another binary file, the binary file is newly set up and then used. That is, in the present invention, when one FPGA is used for different processes, it is used in time division. A plurality of FPGAs may exist because they are managed individually.

[第1の実施形態]
(スケジューリング装置の構成)
図3は、本実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。図3では1つのサーバ10内での実装を説明しているが、それぞれの要素が別のサーバで実装されていてもよい。「プロセス-あ」は、ある仮想化されたネットワーク機器のプロセスを示している。FPGA20はサーバ内に実装されたFPGAであり、サーバ10内に1つのFPGAが実装された例で説明を行う。スケジューリング装置100は、タスクキュー110、スケジュール部120、バイナリ設定部130、および前処理測定部140によって構成されている。
[First Embodiment]
(Configuration of scheduling device)
FIG. 3 is a block diagram showing an example of a schematic configuration of a scheduling device according to this embodiment. Although FIG. 3 describes implementation within one server 10, each element may be implemented in a separate server. "Process-a" indicates a process of a certain virtualized network device. The FPGA 20 is an FPGA mounted in the server, and an example in which one FPGA is mounted in the server 10 will be described. The scheduling device 100 comprises a task queue 110 , a scheduling section 120 , a binary setting section 130 and a preprocessing measurement section 140 .

タスクキュー110は、FPGA20によって処理を行うプロセスの実行命令を格納する場所であり、タスクキュー110に格納された命令をポリシに沿って実行していく。ポリシとは、プロセスの実行順序や実行時間の決め方の基準である。例えば、公平性重視やターンアラウンドタイムの縮小重視などの基準がある。本実施形態では、ポリシはあらかじめ設定されているものとする。 The task queue 110 is a place for storing execution instructions of processes processed by the FPGA 20, and the instructions stored in the task queue 110 are executed according to the policy. A policy is a standard for determining the process execution order and execution time. For example, there are criteria such as emphasizing fairness and emphasizing reduction in turnaround time. In this embodiment, it is assumed that the policy is set in advance.

スケジュール部120は、タスクキュー110にセットされているプロセスを確認する。なお、本実施形態では、スケジュール部120が定期的にタスクキュー110を確認する例で説明しているが、タスクキュー110にプロセスがセットされたタイミングでスケジュールをスタートさせてもよい。 The scheduler 120 checks the processes set in the task queue 110 . In this embodiment, the scheduler 120 periodically checks the task queue 110 .

タスクキュー110に複数のプロセスがセットされている場合、スケジュール部120は、実行するプロセスの順序を決定し、決定された順序に従い、バイナリ設定部130に対し、実行する順序が到来したプロセスのバイナリファイルのFPGA20への設定を依頼する。また、タスクキュー110に1つのプロセスがセットされている場合、スケジュール部120は、バイナリ設定部130に対し、そのプロセスのバイナリファイルのFPGA20への設定を依頼する。また、スケジュール部120は、FPGA20に設定されたバイナリファイルを実行する。 When a plurality of processes are set in the task queue 110, the scheduling unit 120 determines the order of the processes to be executed, and in accordance with the determined order, sends the binary data of the processes whose execution order has arrived to the binary setting unit 130. Request the setting of the file to the FPGA 20 . Also, when one process is set in the task queue 110 , the scheduling unit 120 requests the binary setting unit 130 to set the binary file of that process to the FPGA 20 . Also, the scheduler 120 executes a binary file set in the FPGA 20 .

プロセスの順序またはプロセスを設定し実行する所定の時間(割当時間)は、後述するプロセスごとの前処理時間に基づいて決定される。これにより、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できる。 The order of the processes or the predetermined time (allocation time) for setting and executing the processes is determined based on the preprocessing time for each process, which will be described later. As a result, even an FPGA that does not normally support time-division use can be used in time-division, and FPGA resources can be efficiently used without increasing costs.

バイナリ設定部130は、スケジュール部120に依頼されたプロセスのバイナリファイルをFPGA20に設定する。本発明では、1つのプロセスに対応するFPGAの回路情報は事前にコンパイルされ、バイナリファイルとして管理される。各プロセスに対応するバイナリファイルは、DB50に保存される。バイナリ設定部130は、DB50から必要な情報を取得する。 The binary setting unit 130 sets the binary file of the process requested by the scheduling unit 120 to the FPGA 20 . In the present invention, FPGA circuit information corresponding to one process is compiled in advance and managed as a binary file. A binary file corresponding to each process is stored in the DB50. The binary setting unit 130 acquires necessary information from the DB50.

前処理測定部140は、タスクキュー110にセットされているプロセスのバイナリファイルがFPGA20に設定される前処理時間を取得する。前処理時間は、あらかじめプロセスごとまたはバイナリファイルごとに設定されている値を取得してもよいが、バイナリファイルがFPGA20に設定されるごとに前処理測定部140が設定時間を測定して、測定した複数の値の平均値を前処理時間とすることが好ましい。これは、FPGAに対するバイナリファイルの設定は、その回路規模によって設定時間が異なるため、実際に設定する度に、どの程度の時間がかかるかを測定した方が、より現実的な前処理時間に基づいてプロセスの順序またはプロセスを設定し実行する所定の時間を決定することができるからである。 The preprocessing measurement unit 140 acquires the preprocessing time when the binary file of the process set in the task queue 110 is set in the FPGA 20 . The preprocessing time may acquire a value set in advance for each process or for each binary file. It is preferable to use the average value of the obtained values as the pretreatment time. This is because setting the binary file for the FPGA differs in setting time depending on the circuit scale, so it is better to measure how much time it takes each time the setting is actually made, based on a more realistic preprocessing time. can determine the order of the processes or the predetermined time at which to set and execute the processes.

測定された設定時間はDB(データベース)50に送信され、DB50にはこれまでの測定値、それらの平均値、所定の測定回数分の平均値などのうち少なくとも1つが保持される。測定方法は限定されないが、例えば、スケジューリング装置100が、OpenCLに基づいて構成される場合、バイナリ設定時のclCreateProgramWithBinary,clCreateKernelの実行時間を前処理時間として測定することができる。 The measured set times are sent to a DB (database) 50, which holds at least one of the measured values up to now, their average values, average values for a predetermined number of measurements, and the like. Although the measurement method is not limited, for example, when the scheduling device 100 is configured based on OpenCL, the execution time of clCreateProgramWithBinary and clCreateKernel during binary setting can be measured as the preprocessing time.

図4(a)、(b)は、それぞれDB50に保存される情報の例を示す表である。DB50は、プロセスごとのバイナリファイル、前処理測定部140で測定したプロセスごとの前処理時間、プロセスごとのプロセス時間、プロセスごとの前処理時間とプロセス時間を合計した初回処理時間(初回プロセス時間)などの情報が格納されている。また、後述する実施例で使用される複数のプロセスの順序の制約を示す順序情報、複数のプロセスの優先度の高さを示す優先度情報、過去の一定の時間内に実行されたプロセスの現在の実行される可能性の高さを示す待機順位情報などの様々なポリシに対応するために必要な情報が格納されていてもよい。また、DBに保存される情報は、必要に応じて更新される。 FIGS. 4A and 4B are tables showing examples of information stored in the DB 50, respectively. The DB 50 stores the binary file for each process, the preprocessing time for each process measured by the preprocessing measurement unit 140, the process time for each process, and the initial processing time (initial processing time) that is the sum of the preprocessing time and the process time for each process. and other information is stored. In addition, order information indicating restrictions on the order of a plurality of processes used in an embodiment described later, priority information indicating the priority of a plurality of processes, current status of processes executed within a certain time in the past. Information necessary for coping with various policies, such as waiting order information indicating a high possibility of execution of a task, may be stored. Information stored in the DB is updated as necessary.

[第2の実施形態]
(スケジューリング装置の構成)
図5は、本実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。スケジューリング装置200は、タスクキュー110、スケジュール部120、バイナリ設定部130、前処理測定部140、およびポリシ設計部210によって構成されている。タスクキュー110、スケジュール部120、バイナリ設定部130、および前処理測定部140の機能は、第1の実施形態と同様であるため、説明は省略する。
[Second embodiment]
(Configuration of scheduling device)
FIG. 5 is a block diagram showing an example of a schematic configuration of a scheduling device according to this embodiment. The scheduling device 200 is composed of a task queue 110 , a scheduling section 120 , a binary setting section 130 , a preprocessing measurement section 140 and a policy design section 210 . The functions of the task queue 110, the scheduling unit 120, the binary setting unit 130, and the preprocessing measurement unit 140 are the same as those of the first embodiment, and thus description thereof is omitted.

ポリシ設計部210は、プロセスの順序またはプロセスのバイナリファイルをFPGA20に設定し実行する所定の時間を決定する方法を示すポリシを設定する。ポリシ設計部210は、プロセススケジューリングの際に何を重視するかを、ユーザが設定要求する機能部であり、例えば、公平性重視やターンアラウンドタイムの縮小重視などが設定される。 The policy design unit 210 sets a policy indicating how to determine the predetermined time for setting and executing the process order or the binary file of the process in the FPGA 20 . The policy design unit 210 is a functional unit that the user requests to set what is to be emphasized in process scheduling.

スケジューリング装置200は、ポリシ設計部210を備えることで、ユーザが重視するポリシを設定することができ、FPGA20に処理させるプロセスや処理量に応じたポリシをユーザが選択することができる。 The scheduling apparatus 200 includes the policy design unit 210 so that the user can set a policy that the user places importance on, and the user can select a policy according to the process to be processed by the FPGA 20 and the amount of processing.

(動作の一例の説明)
次に、本実施形態に係るスケジューリング装置の動作の一例を、図6および図7のフローチャートを用いて説明する。図6および図7は、本実施形態に係るスケジューリング装置の動作の一例を示すフローチャートである。
(Description of an example of operation)
Next, an example of the operation of the scheduling apparatus according to this embodiment will be described using the flowcharts of FIGS. 6 and 7. FIG. 6 and 7 are flowcharts showing an example of the operation of the scheduling device according to this embodiment.

図6および図7は、スケジューリング装置を構成する各機能部、DB、およびユーザの設定要求を含む。DBからの情報の取得は、各機能部がそれぞれ受け持つ。まず、ユーザがスケジューリング装置にポリシの設定を要求する(ステップS1)。次に、ポリシ設計部は、設定するポリシに応じて考慮する時間を決定する(ステップS2)。考慮する時間(考慮時間)は、少なくとも前処理時間を含む。例えば、設定するポリシに応じて前処理時間、または前処理時間とプロセス時間を合わせた初回プロセス時間のいずれを考慮するかを決定することができる。考慮時間は、前処理時間に基づいて算出されていれば、ポリシごとにどのような時間を考慮時間としてもよい。次にポリシ設計部は、スケジュール部にポリシの設定(セット)を通知する(ステップS3)。 6 and 7 include functional units, DBs, and user setting requests that make up the scheduling apparatus. Each functional unit takes charge of obtaining information from the DB. First, a user requests the scheduling device to set a policy (step S1). Next, the policy design unit determines the time to consider according to the set policy (step S2). The time to consider (consideration time) includes at least the preprocessing time. For example, it is possible to decide whether to consider the preprocessing time or the initial processing time, which is the sum of the preprocessing time and the processing time, according to the set policy. The consideration time may be any time for each policy as long as it is calculated based on the preprocessing time. Next, the policy design unit notifies the schedule unit of policy setting (set) (step S3).

次に、スケジュール部はポリシの設定(セット)を受領し(ステップS4)、考慮時間を決定する(ステップS5)。その間、タスクキューにはプロセスがセットされる(ステップS6)。そして、タスクキューを確認し(ステップS7)、プロセスがセットされている場合(ステップS8-YES)、DBに考慮時間の値の確認をする(ステップS9)。DBは、考慮時間の値の確認メッセージを受領し(ステップS10)、値を返信する(ステップS11)。そして、スケジュール部は、考慮時間の値に基づいて、スケジュールの決定をする(ステップS12)。なお、考慮時間の値とは、少なくともセットされたプロセスに対応するバイナリファイルの前処理時間を含む。また、スケジュールの決定は、少なくともプロセスの実行する順序またはプロセスを設定し実行する所定の時間を決定することを含む。 Next, the scheduler receives the policy setting (set) (step S4) and determines the consideration time (step S5). During that time, processes are set in the task queue (step S6). Then, the task queue is checked (step S7), and if the process is set (step S8-YES), the value of the consideration time is checked in the DB (step S9). The DB receives the confirmation message of the value of the consideration time (step S10), and returns the value (step S11). Then, the scheduler determines the schedule based on the value of the consideration time (step S12). Note that the value of the consideration time includes at least the preprocessing time of the binary file corresponding to the set process. Determining the schedule also includes determining at least the order in which the processes are to be executed or the predetermined time at which the processes are to be set and executed.

また、タスクキューを確認し(ステップS7)、プロセスがセットされていない場合(ステップS8-NO)、ステップS7に戻り、再度タスクキューの確認をする。 Also, the task queue is checked (step S7), and if the process is not set (step S8-NO), the process returns to step S7 and the task queue is checked again.

スケジュールの決定の後、スケジュール部は、回路情報を変更するかどうかを判断し、変更する場合(ステップS13-YES)、バイナリ設定部に該当プロセスの回路の設定を指示する(ステップS14)。回路情報を変更するかどうかの判断は、実行しようとしているプロセスのバイナリファイルがFPGAに設定されているかどうかを確認し判断することであり、直接FPGAを確認してもよいが、前回の処理を確認するか、バイナリ設定部に問い合わせることが好ましい。また、該当プロセスの回路の設定とは、該当プロセスに対応するバイナリファイルの設定である。 After determining the schedule, the scheduling section determines whether or not to change the circuit information, and if so (step S13-YES), instructs the binary setting section to set the circuit of the corresponding process (step S14). Judgment whether to change the circuit information is to check and judge whether the binary file of the process to be executed is set in the FPGA. It is preferable to confirm or query the binary setting unit. Also, the setting of the circuit of the relevant process is the setting of the binary file corresponding to the relevant process.

バイナリ設定部は、該当プロセスの回路の設定の指示を受領(ステップS15)し、DBにプロセスの該当バイナリ(バイナリファイル)の確認をする(ステップS16)。DBは、バイナリ確認メッセージを受領(ステップS17)し、バイナリ設定部にバイナリ情報(バイナリファイル)の返信をする(ステップS18)。バイナリ設定部は、FPGAにバイナリを設定し(ステップS19)、前処理測定部にバイナリ設定時間の測定を依頼する(ステップS20)。 The binary setting unit receives the instruction to set the circuit of the process (step S15), and confirms the binary (binary file) of the process in the DB (step S16). The DB receives the binary confirmation message (step S17) and returns the binary information (binary file) to the binary setting section (step S18). The binary setting unit sets the binary in the FPGA (step S19), and requests the preprocessing measurement unit to measure the binary setting time (step S20).

前処理測定部は、バイナリ設定時間の測定依頼メッセージを受領し(ステップS21)、測定を開始する。そして、測定が完了(ステップS22)したら、DBに測定値を通知する(ステップS23)。DBは、測定値を受領し(ステップS24)、前処理時間の平均値の算出と格納をする(ステップS25)。 The preprocessing measurement unit receives the binary set time measurement request message (step S21) and starts measurement. Then, when the measurement is completed (step S22), the DB is notified of the measured value (step S23). The DB receives the measured value (step S24), calculates and stores the average value of the pretreatment time (step S25).

一方、バイナリ設定部は、バイナリ設定完了(ステップS26)後、スケジュール部に該当プロセスの回路設定完了を通知する(ステップS27)。スケジュール部は、該当プロセスの回路設定完了通知を受領し(ステップS28)、該当プロセスの実行をする(ステップS29)。実行後、全てのプロセスが完了したかを判断し、完了した場合(ステップS30-YES)、終了する。終了後、ポリシの変更をしない場合、ステップS7に戻ってタスクキューの確認をするように動作してもよい。 On the other hand, after completing the binary setting (step S26), the binary setting unit notifies the scheduling unit of the completion of the circuit setting of the corresponding process (step S27). The scheduler receives the circuit setting completion notification of the relevant process (step S28), and executes the relevant process (step S29). After execution, it is determined whether all the processes have been completed, and if completed (step S30--YES), the process ends. After the end, if the policy is not to be changed, the process may return to step S7 and check the task queue.

また、スケジュール部は、全てのプロセスが完了したかを判断し、完了していない場合(ステップS30-NO)、ステップS13に戻り、回路情報を変更するかを判断する。 Also, the scheduler determines whether all the processes have been completed, and if not (step S30-NO), returns to step S13 and determines whether to change the circuit information.

また、スケジュール部は、ステップS13で回路情報を変更するかどうかを判断し、変更しない場合(ステップS13-NO)、該当プロセスの実行をする(ステップS29)。 Also, the scheduler determines whether or not to change the circuit information in step S13, and if not (step S13-NO), executes the corresponding process (step S29).

本実施形態に係るスケジューリング装置は、このようにして、動作することができる。なお、第1の実施形態に係るスケジューリング装置も、ポリシ設計部がないだけで、それ以外は同様の動作をすることができる。なお、上記の動作説明は、動作の一例を説明したものであり、本発明は、これに限定されるわけではない。 The scheduling device according to this embodiment can operate in this manner. It should be noted that the scheduling apparatus according to the first embodiment can also perform the same operation except that the policy design unit is not provided. It should be noted that the above description of operation is an example of operation, and the present invention is not limited to this.

第1の実施形態および第2の実施形態の上記の説明では、説明が理解されやすいように、スケジューリング装置がハードウェアで実装されている例で説明したが、上記のフローチャートの説明で理解されるように、本発明は、スケジューリング装置の一部または全部がソフトウェアで実装されることが可能である。また、本発明は、1のソフトウェアとしてだけではなく、1または複数のサーバ上に実装された複数の機能の要素間で実行される処理方法として実装されることが可能である。以下の実施例も同様である。 In the above descriptions of the first embodiment and the second embodiment, an example in which the scheduling device is implemented in hardware was described to facilitate understanding of the description. As such, the present invention can be partially or wholly implemented in software. Also, the present invention can be implemented not only as one piece of software, but also as a processing method executed between multiple functional elements implemented on one or more servers. The same applies to the following examples.

[実施例]
次に実施例を説明する。以下の実施例では、プロセス間の公平性を重視して各プロセスにFPGAを割り当てる時間を決定する、いわゆるラウンドロビン方式と、ターンアラウンドタイムを小さくする、いわゆる最短ジョブ優先方式に基づいた方法を採用した場合の実施例を説明するが、本発明は、これに限定されるわけではない。各プロセスで利用する回路データのバイナリファイルを、時分割でFPGAに設定する際に、FPGAへの設定時間(前処理時間)を考慮したスケジューリングをする方法は、本発明に含まれる。
[Example]
Next, an example will be described. In the following embodiments, the so-called round-robin method, which determines the time to allocate FPGAs to each process with an emphasis on fairness between processes, and the so-called shortest job priority method, which reduces the turnaround time, are adopted. Although an example in the case of the case will be described, the present invention is not limited to this. The present invention includes a method of scheduling in consideration of the setting time (preprocessing time) for the FPGA when the binary file of the circuit data used in each process is set in the FPGA in a time division manner.

(実施例1)
まず、公平性を重視する方法について説明する。ポリシ設計部に公平性重視が設定された場合は、スケジューリング装置は、プロセス間の割当時間を実質的に公平に割り当てることを重視することとする。この場合、スケジュール部は全プロセスに共通のタイムクウォンタムにプロセスごとの前処理時間を足したものを各プロセスに割り当てる時間とする。具体的な例として、図8(a)のプロセスをスケジュールする場合、および図9のプロセスをスケジュールする場合で説明する。図8(a)、(b)は、それぞれ、本実施例のプロセスの具体例を示す表および割当時間を示す概念図である。図9は、本実施例のプロセスの具体例を示す表である。図10は、図9に示されるプロセスの具体例に対する割当時間を示す概念図である。
(Example 1)
First, the method of emphasizing fairness will be explained. When the policy design unit is set to emphasize fairness, the scheduling device emphasizes substantially fair allocation of the allocated time between processes. In this case, the scheduling unit allocates the time to each process by adding the preprocessing time for each process to the time quantum common to all processes. As specific examples, the case of scheduling the process in FIG. 8A and the case of scheduling the process in FIG. 9 will be described. FIGS. 8A and 8B are conceptual diagrams showing a table showing a specific example of the process of this embodiment and allocation times, respectively. FIG. 9 is a table showing a specific example of the process of this embodiment. FIG. 10 is a conceptual diagram illustrating the allotted time for the specific example of the process shown in FIG.

例えば、タイムクウォンタムを5として図8(a)のプロセスをスケジュールする場合、「プロセス-あ」には前処理時間2+タイムクォンタム5で割当時間7、「プロセス-い」には前処理時間5+タイムクォンタム5で割当時間10、「プロセス-う」には前処理時間4+タイムクォンタム5で割当時間9を割り当てることをスケジュールし、図8(b)のように実行する。 For example, when scheduling the process in FIG. 8(a) with a time quantum of 5, the preprocessing time 2 + time quantum 5 is allocated to 'process-a', and the pre-processing time 5 + time is allocated to 'process-i'. Quantum 5 is assigned time 10, and "process-u" is scheduled to be assigned time 9 with preprocessing time 4+time quantum 5, and is executed as shown in FIG. 8(b).

また、プロセス時間が上記より長い例として、図9のプロセスをスケジュールする場合で説明する。例えば、タイムクウォンタムを上記と同様に5として、図9のプロセスをスケジュールする場合、「プロセス-あ」には前処理時間2+タイムクォンタム5で割当時間7、「プロセス-い」には前処理時間5+タイムクォンタム5で割当時間10、「プロセス-う」には前処理時間4+タイムクォンタム5で割当時間9を割り当てることをスケジュールし、図10のように実行する。 Also, as an example where the process time is longer than the above, the case of scheduling the process in FIG. 9 will be described. For example, if the time quantum is set to 5 in the same way as above, and the process in FIG. 5+time quantum 5 is assigned time 10, and "process-u" is scheduled to be assigned time 9 with preprocessing time 4+time quantum 5, and is executed as shown in FIG.

このように、前処理時間+タイムクォンタムを割当時間とすることで、前処理時間が長いプロセスがあっても、タイムクォンタムの分だけ実際の処理時間として与えられるので、図2(a)、(b)に示される例のように、終了しない処理が発生することはない。また、全てのプロセスでタイムクォンタム(実際の処理時間)が等しくなるため、実質的な意味での割当時間は公平になる。 In this way, by setting the preprocessing time + time quantum as the allocated time, even if there is a process with a long preprocessing time, the time quantum is given as the actual processing time. No unfinished processing occurs, as in the example shown in b). In addition, all processes have the same time quantum (actual processing time), so the allocated time is substantially fair.

(実施例2)
次に、ターンアラウンドタイムを小さくする方法を説明する。ターンアラウンドタイムを小さくする代表的なスケジューリング方式として最短ジョブ優先方式がある。通常、最短ジョブ優先方式ではプロセス時間が最短であるものが優先して実行されるが、本発明では前処理時間とプロセス時間を足し合わせた初回プロセス時間が最短であるものが優先して実行される。
(Example 2)
Next, a method for reducing the turnaround time will be explained. As a typical scheduling method for reducing the turnaround time, there is the shortest job priority method. Normally, in the shortest job priority method, the job with the shortest process time is preferentially executed, but in the present invention, the job with the shortest initial process time, which is the sum of the preprocessing time and the process time, is preferentially executed. be.

具体的な例として、図11(a)のプロセスをスケジュールする場合で説明する。図11(a)~(c)は、それぞれ、本実施例のプロセスの具体例を示す表、通常の最短ジョブ優先方式の順序を示す概念図、および本発明の最短ジョブ優先方式の順序を示す概念図である。通常の最短ジョブ優先方式は、プロセス時間が最短であるものが優先して実行されるため、図11(a)のプロセスでは、図11(b)に示されるように、「プロセス-い」、「プロセス-う」、「プロセス-あ」の順序で実行される。この場合のターンアラウンドタイムは、(7+13+18)/3≒12.67となる。これに対し、本発明の最短ジョブ優先方式は、前処理時間とプロセス時間を足し合わせた初回プロセス時間が最短であるものが優先して実行される。そのため、図11(a)のプロセスでは、「プロセス-あ」、「プロセス-う」、「プロセス-い」の順序で実行される。この場合のターンアラウンドタイムは、(5+11+18)/3≒11.33となる。 As a specific example, the case of scheduling the process of FIG. 11(a) will be described. 11A to 11C respectively show a table showing a specific example of the process of this embodiment, a conceptual diagram showing the order of the normal shortest job priority system, and the order of the shortest job priority system of the present invention. It is a conceptual diagram. In the normal shortest job priority method, the job with the shortest process time is preferentially executed. It is executed in the order of "process-u" and "process-a". The turnaround time in this case is (7+13+18)/3≈12.67. On the other hand, in the shortest job priority method of the present invention, the job having the shortest initial process time, which is the sum of the preprocessing time and the process time, is preferentially executed. Therefore, the process in FIG. 11A is executed in the order of "process-a", "process-u", and "process-i". The turnaround time in this case is (5+11+18)/3≈11.33.

このように、前処理時間とプロセス時間を足し合わせた初回プロセス時間が最短であるものを優先して実行することで、前処理時間を考慮しない方法よりターンアラウンドタイムを小さくできる。 In this way, by preferentially executing the process with the shortest initial process time, which is the sum of the pretreatment time and the process time, the turnaround time can be reduced compared to the method that does not consider the pretreatment time.

(実施例3)
次に、ターンアラウンドタイムを小さくする方法において、タスクキューに同一のプロセスが複数入っていた場合の方法を説明する。タスクキューにセットされている複数の前記プロセスに同一のプロセスが含まれる場合、同一のプロセスを連続して実行する場合に限定して、それぞれのプロセスの初回プロセス時間を算出することが好ましい。言い換えると、タスクキューに同一のプロセスが複数入っていた場合には、各プロセスの順番の組み合わせから、同一プロセスが連続しないものを除き、その他の組み合わせの、各プロセスが終了する時間をそれぞれ足し合わせ、その合計値が一番小さいパターンでスケジュールする。
(Example 3)
Next, in the method of reducing the turnaround time, a method will be described in which a plurality of identical processes are contained in the task queue. When the same process is included in the plurality of processes set in the task queue, it is preferable to calculate the initial process time of each process only when the same process is executed continuously. In other words, if there are multiple identical processes in the task queue, add up the time at which each process ends in the other combinations, excluding those in which the same processes are not consecutive, from the combination of the order of each process. , the pattern with the smallest total value is scheduled.

具体的な例として、図12(a)のプロセスをスケジュールする場合、および図13(a)のプロセスをスケジュールする場合で説明する。図12(a)、(b)は、それぞれ、本実施例のプロセスの具体例を示す表、および本発明の最短ジョブ優先方式の順序を示す概念図である。タスクキューに「プロセス-あ、い、い、う」がセットされているとする。このとき、2つの「プロセス-い」を連続して実行した場合のそれぞれのプロセスの初回プロセス時間を算出する。そうすると、「プロセス-あ」の初回プロセス時間は5、1つ目の「プロセス-い」の初回プロセス時間は7、2つ目の「プロセス-い」の初回プロセス時間は9、「プロセス-う」の初回プロセス時間は6となる。ただし、2つの「プロセス-い」は連続して実行される。このときの考えられる順番は、「いいあう」、「いいうあ」、「あいいう」、「ういいあ」、「うあいい」、「あういい」の6通りであるが、このうちターンアラウンドタイムが最小となる順番は、図11に示した「いいあう」であり、その値は12.5である。 As specific examples, the case of scheduling the process in FIG. 12(a) and the case of scheduling the process in FIG. 13(a) will be described. 12(a) and 12(b) are respectively a table showing a specific example of the process of this embodiment and a conceptual diagram showing the order of the shortest job priority method of the present invention. Assume that the task queue has "process - ah, ah, ah, ah". At this time, the initial process time of each process when two "processes" are executed in succession is calculated. Then, the initial process time for "process-a" is 5, the first process time for the first "process-i" is 7, the first process time for the second "process-i" is 9, and the first process time for "process-i" is 9. , the initial process time is 6. However, the two "processes" are executed consecutively. At this time, there are six possible orders: "I agree," "I agree," "I agree," "I agree," "I agree," and "I agree." The order in which the around time is the shortest is "matching" shown in FIG. 11, and its value is 12.5.

一方、連続するプロセスは、最初に実行されるほうがターンアラウンドタイムが小さくなるとは限らない。図13(a)に示されるプロセスは、図12(a)の「プロセス-い」の前処理時間を10に変更したプロセスである。図13(a)に示されるプロセスをスケジュールする場合、考えられる順番は上記と同様に、「いいあう」、「いいうあ」、「あいいう」、「ういいあ」、「うあいい」、「あういい」の6通りであるが、このうちターンアラウンドタイムが最小となる順番は、図13(b)に示した「あういい」である。 Consecutive processes, on the other hand, do not necessarily have shorter turnaround times if they are executed first. The process shown in FIG. 13(a) is a process in which the pretreatment time of "process-i" in FIG. 12(a) is changed to 10. FIG. When scheduling the process shown in Figure 13(a), the possible order is the same as above: , "good", and the order with the shortest turnaround time is "good" shown in FIG. 13(b).

(実施例3の動作の一例)
実施例3の動作の一例を図14のフローチャートを用いて説明する。図14は、実施例3のスケジューリング装置の動作の一例を示すフローチャートである。まず、タスクキューを確認する(ステップT1)。次に、タスクキューに同一プロセスが存在するかどうか確認し、同一プロセスが存在しない場合(ステップT2-NO)、初回プロセス時間が短い順に並び替え(ステップT3)、その順番でプロセスを実行し(ステップT8)、全てのプロセスが実行されたら終了する。
(Example of operation of embodiment 3)
An example of the operation of Example 3 will be described with reference to the flowchart of FIG. 14 is a flowchart illustrating an example of the operation of the scheduling device according to the third embodiment; FIG. First, the task queue is checked (step T1). Next, it is checked whether or not the same process exists in the task queue. If the same process does not exist (step T2-NO), the processes are sorted in ascending order of initial process time (step T3), and the processes are executed in that order ( Step T8), the process ends when all the processes are executed.

一方、タスクキューに同一プロセスが存在するかどうか確認し、同一プロセスが存在する場合(ステップT2-YES)、プロセスの順番のパターンを算出する(ステップT4)。次に、算出した順番のパターンから同一プロセスが連続しないものを除き(ステップT5)、算出された順番のパターンにおいて、それぞれのプロセス終了時間の合計値を算出する(ステップT6)。そして、算出した合計値の小さい順に並び替え(ステップT7)、その順番でプロセスを実行し(ステップT8)、全てのプロセスが実行されたら終了する。 On the other hand, it is checked whether or not the same process exists in the task queue, and if the same process exists (step T2--YES), the process order pattern is calculated (step T4). Next, discontinuous identical processes are excluded from the calculated order patterns (step T5), and the total value of the process end times of the calculated order patterns is calculated (step T6). Then, the calculated total values are rearranged in ascending order (step T7), the processes are executed in that order (step T8), and the process ends when all the processes have been executed.

このように、ターンアラウンドタイムを小さくする方法において、タスクキューに同一のプロセスが複数入っていた場合も、前処理時間を考慮することで、ターンアラウンドタイムを小さくすることができる。 In this way, in the method of reducing the turnaround time, the turnaround time can be reduced by considering the preprocessing time even when the task queue contains a plurality of identical processes.

(実施例4)
FPGAの時分割を適用する際、プロセス間に順序の制約や優先度を考慮する場合においても、前処理時間などの考慮が活用できる。例えば、図15のように優先値(優先度情報)を設けることで、プロセス間の順序制約や優先度などを表現することができる。図15の例では、優先値が大きいほど優先することを示し、「プロセス-あ」および「プロセス-う」は、「プロセス-い」の後に実行することを示している。例えば、これをラウンドロビン、タイムクォンタム5で実行した場合、図16のように、タイムクォンタムに前処理時間を加算したものがそれぞれに割り当てられつつ、「プロセス-い」を先に実行することになる。
(Example 4)
Consideration of preprocessing time and the like can also be utilized when taking into consideration order restrictions and priorities between processes when applying FPGA time division. For example, by providing priority values (priority information) as shown in FIG. 15, it is possible to express order restrictions and priorities between processes. In the example of FIG. 15, the larger the priority value, the higher the priority, and "process-a" and "process-u" are executed after "process-i". For example, when this is executed with round robin and time quantum 5, as shown in Fig. 16, the time quantum plus the preprocessing time is assigned to each, and "process-i" is executed first. Become.

また、タスクキュー内のプロセスが図15の場合で、且つ最短ジョブ優先を行う場合は図17のように実行される。 Also, when the processes in the task queue are as shown in FIG. 15 and the shortest job is prioritized, the processes are executed as shown in FIG.

このように、プロセスに優先度がある場合のプロセスの順序は、設定されたポリシ、プロセスごとの前処理時間、および優先度情報に基づいて決定される。これにより、プロセスに優先度がある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 In this way, the order of processes when processes have priorities is determined based on the set policy, preprocessing time for each process, and priority information. As a result, even when processes have priorities, the appropriate process order can be set based on the obtained policy, the preprocessing time for each process, and the priority information.

また、タスクキューにセットされている複数のプロセスに優先度情報が同一のプロセスが含まれる場合、優先度情報が同一のプロセスごとにプロセスの順序が決定されることが好ましい。これにより、プロセスに優先度があり、さらに同一の優先度を有するプロセスがある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 Further, when a plurality of processes set in the task queue include processes having the same priority information, it is preferable that the order of the processes is determined for each process having the same priority information. As a result, even when processes have priorities and there are processes with the same priority, an appropriate process order can be set based on the obtained policy, preprocessing time for each process, and priority information.

(実施例4変形例)
なお、図15に示される優先値の場合、全てのプロセス間で同一の値を含め優先度の差異があり、これを用いて順序の制約を表すこともできるが、一部のプロセス間にのみ順序の制約を示す順序情報を設けてもよい。例えば、図18に示されるプロセスは、順序情報の数字の順序でプロセスが実行される必要があることを表し、「プロセス-あ」は「プロセス-い」の後に実行することを示し、「プロセス-う」は「プロセス-い」の前、「プロセス-い」と「プロセス-あ」の間、「プロセス-あ」の後の、どの段階で実行してもよいことを示している。
(Modification of Example 4)
In the case of the priority values shown in FIG. 15, there are differences in priority, including the same value, among all processes, and this can be used to express order constraints, but only among some processes. Order information indicating order constraints may be provided. For example, the process shown in FIG. 18 indicates that the process must be executed in numerical order of the order information, "process-a" indicates execution after "process-i", and "process "-u" indicates that it can be executed at any stage before "process-i", between "process-i" and "process-a", or after "process-a".

このように、順序情報がある場合のプロセスの順序は、設定されたポリシ、プロセスごとの前処理時間、および順序情報に基づいて決定される。これにより、プロセスに順序の制約がある場合も、取得したポリシ、プロセスごとの前処理時間、および順序情報に基づいて適切なプロセスの順序を設定できる。 Thus, the order of processes when there is order information is determined based on the set policy, the preprocessing time for each process, and the order information. As a result, even if processes have order restrictions, an appropriate process order can be set based on the acquired policy, preprocessing time for each process, and order information.

(実施例5)
プリエンプション(優先度の高いものがタスクキューに新たに到着した際に、実行中のプロセスを停止して、優先度の高いプロセスを実行すること)方式が選択される場合においても、FPGAの時分割適用には、前処理時間等の考慮が必要になる。例えば、最短ジョブ優先方式が選択され、さらに図19(a)のように「プロセス-い」が遅れて到着し、プリエンプションが行われる場合は図19(b)のように実行される。但し、本実施例は図6、7のフローチャートとは少し異なることに注意が必要である。図6、7のフローチャートに従うと、到着時間0の「プロセス-あ、う」を実行した後で、タスクキューの確認に行くので、「プロセス-い」の到着に気が付けない。
(Example 5)
Even when the preemption (stopping the running process and executing the high priority process when a high priority task newly arrives in the task queue) method is selected, the time division of the FPGA For application, it is necessary to consider the pretreatment time and the like. For example, when the shortest job priority method is selected and the "process" arrives late as shown in FIG. 19(a) and preemption is performed, the process is executed as shown in FIG. 19(b). However, it should be noted that this embodiment is slightly different from the flow charts of FIGS. According to the flow charts of FIGS. 6 and 7, after executing "process-a, u" with an arrival time of 0, the task queue is checked, so the arrival of "process-i" is not noticed.

よって、図19(b)のように実行するには、タスクキューの定期確認を、プロセス実行とは独立して、実施するか、優先度の高いプロセスがタスクキューに入ったことを(タスクキューなど)別の機構がスケジュール部に知らせる必要がある。 Therefore, in order to execute as shown in FIG. 19(b), periodic confirmation of the task queue should be performed independently of process execution, or it should be confirmed that a high-priority process has entered the task queue (task queue etc.) must inform the scheduler.

(実施例6)
次に、FPGAを利用するプロセスが存在しない時間に、FPGAにいずれかの回路情報(バイナリファイル)を設定して待機しておくことで、プロセスの処理時間を短縮する方法を説明する。次に実行される、FPGAを利用するプロセスの回路情報をFPGAに設定し待機しておけば、前処理時間を削減することができる。
(Example 6)
Next, a method of shortening the processing time of a process by setting some circuit information (binary file) in the FPGA and waiting while there is no process using the FPGA will be described. Preprocessing time can be reduced by setting the circuit information of the process using the FPGA to be executed next in the FPGA and waiting.

そこで新たに、DBに図20のような待機順位情報を設ける。これは、過去の一定の時間当たりでどのプロセスが何回呼ばれたかという情報を保持し、更にそれに前処理時間を乗じた値を重みとして保持している。この重みが大きいということは頻繁に利用される、またはボトルネックとなる前処理時間が大きいことを意味し、この順位が1位のものをFPGAの待機時間に設定する。また、この方式はFPGAが複数ある場合にも有用であり、例えば、FPGAが2枚ある場合には、1枚目に1位のバイナリを設定し、2枚目に2位のバイナリを設定して待機することで、より効率的にターンアラウンドタイムを小さくすることができる。なお、この方法は、ターンアラウンドタイムを小さくする方法において効果的に使用されるが、ラウンドロビンで実行される場合も、少なくとも初回の前処理時間が短縮される意味において効果を有する。 Therefore, the waiting order information as shown in FIG. 20 is newly provided in the DB. This holds information about which process was called how many times per fixed time in the past, and further holds the value obtained by multiplying it by the preprocessing time as a weight. A large weight means that the preprocessing time that is frequently used or becomes a bottleneck is large, and the one with the highest priority is set as the waiting time of the FPGA. This method is also useful when there are a plurality of FPGAs. For example, when there are two FPGAs, the 1st binary is set to the first FPGA, and the 2nd binary is set to the second FPGA. By waiting for a long time, the turnaround time can be reduced more efficiently. Note that this method is effectively used in a method for reducing turnaround time, but even when it is executed in round robin, it is effective at least in the sense that the initial preprocessing time is shortened.

以上説明したように、本発明のスケジューリング方法、およびスケジューリング装置は、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせることで、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できる。 INDUSTRIAL APPLICABILITY As described above, the scheduling method and scheduling apparatus of the present invention allow scheduling in consideration of the time for setting the circuit information of the process to be executed in the FPGA when the FPGA is used in a time-sharing manner for a plurality of processes. Therefore, even an FPGA that does not normally support time-division use can be used in time-division, and FPGA resources can be used efficiently without increasing costs.

10 サーバ
20 FPGA
50 DB
100、200 スケジューリング装置
110 タスクキュー
120 スケジュール部
130 バイナリ設定部
140 前処理測定部
210 ポリシ設計部
10 server 20 FPGA
50 DB
100, 200 scheduling device 110 task queue 120 scheduling unit 130 binary setting unit 140 preprocessing measurement unit 210 policy design unit

Claims (10)

1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、
タスクキューにセットされている前記プロセスを確認するステップと、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、
前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、
前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、
前記プロセスのバイナリファイル前記FPGAに設定し実行する割当時間は、前記プロセスごとの前処理時間とすべての前記プロセスに同一のタイムクォンタムとの和として前記プロセスごとに決定されることを特徴とする方法。
A scheduling method for using an FPGA in a time division manner in a plurality of processes of one or more virtual communication devices,
verifying the processes set in a task queue;
obtaining a preprocessing time at which the set binary file of the process is set in the FPGA;
determining the order of the processes to be executed when a plurality of the processes are set in the task queue;
setting the binary file of the process, which has reached the order to be executed, in the FPGA according to the determined order and executing it;
The allotted time for setting the binary file of the process to the FPGA and executing it is determined for each process as the sum of the preprocessing time for each process and a time quantum that is the same for all the processes. Method.
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、
タスクキューにセットされている前記プロセスを確認するステップと、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、
前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、
前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、
前記前処理時間を取得するステップにおいて、前記プロセスごとのプロセス時間をさらに取得し、
前記プロセスの順序は、前記プロセスごとの前処理時間と前記プロセス時間との和である初回プロセス時間に基づいて決定されることを特徴とする方法。
A scheduling method for using an FPGA in a time division manner in a plurality of processes of one or more virtual communication devices,
verifying the processes set in a task queue;
obtaining a preprocessing time at which the set binary file of the process is set in the FPGA;
determining the order of the processes to be executed when a plurality of the processes are set in the task queue;
setting the binary file of the process, which has reached the order to be executed, in the FPGA according to the determined order and executing it;
In the step of acquiring the preprocessing time, further acquiring the process time for each process;
The method, wherein the order of the processes is determined based on an initial process time which is the sum of the pretreatment time and the process time for each process.
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、
前記プロセスの順序または前記プロセスのバイナリファイルを前記FPGAに設定し実行する割当時間を決定する方法を示すポリシの設定要求を受け付け、設定するステップと、
タスクキューにセットされている前記プロセスを確認するステップと、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、
複数の前記プロセスのうち一部の前記プロセスの順序の制約を示す順序情報を取得するステップと、
前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、
前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、
前記プロセスの順序は、設定された前記ポリシ、前記プロセスごとの前処理時間を含む考慮時間、および前記順序情報に基づいて決定されることを特徴とする方法。
A scheduling method for using an FPGA in a time division manner in a plurality of processes of one or more virtual communication devices,
receiving and setting a policy setting request indicating how to determine the order of the processes or the allotted time for setting and executing the binary files of the processes on the FPGA;
verifying the processes set in a task queue;
obtaining a preprocessing time at which the set binary file of the process is set in the FPGA;
obtaining order information indicating a constraint on the order of some of the processes among the plurality of processes;
determining the order of the processes to be executed when a plurality of the processes are set in the task queue;
setting the binary file of the process, which has reached the order to be executed, in the FPGA according to the determined order and executing it;
The method, wherein the order of the processes is determined based on the set policy, the consideration time including the preprocessing time for each process, and the order information .
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、
タスクキューにセットされている前記プロセスを確認するステップと、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、
前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、
前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、
過去の一定の時間内に実行された前記プロセスの現在の実行される可能性の高さを示す待機順位情報を取得するステップと、を含み、
前記プロセスの順序または前記プロセスのバイナリファイル前記FPGAに設定し実行する割当時間は、前記プロセスごとの前処理時間を含む考慮時間に基づいて決定され
前記FPGAを利用する前記プロセスが存在しないときに、前記待機順位情報に基づいて選択された前記プロセスのバイナリファイルを前記FPGAにあらかじめ設定することを特徴とする方法。
A scheduling method for using an FPGA in a time division manner in a plurality of processes of one or more virtual communication devices,
verifying the processes set in a task queue;
obtaining a preprocessing time at which the set binary file of the process is set in the FPGA;
determining the order of the processes to be executed when a plurality of the processes are set in the task queue;
a step of setting a binary file of the process whose execution order has arrived in the FPGA according to the determined order and executing it;
obtaining wait ranking information indicating the current execution probability of the process that was executed within a certain period of time in the past;
The order of the processes or the allocated time for setting and executing the binary files of the processes in the FPGA is determined based on the consideration time including the preprocessing time for each process ,
A method, wherein a binary file of the process selected based on the waiting order information is preset in the FPGA when the process using the FPGA does not exist.
前記タスクキューにセットされている複数の前記プロセスに同一のプロセスが含まれる場合、前記同一のプロセスを連続して実行する場合に限定して、それぞれのプロセスの前記初回プロセス時間を算出することを特徴とする請求項記載の方法。 When the same process is included in the plurality of processes set in the task queue, the initial process time of each process is calculated only when the same process is executed continuously. 3. A method as claimed in claim 2 . 過去の一定の時間内に実行された前記プロセスの現在の実行される可能性の高さを示す待機順位情報を取得するステップを有し、
前記FPGAを利用する前記プロセスが存在しないときに、前記待機順位情報に基づいて選択された前記プロセスのバイナリファイルを前記FPGAにあらかじめ設定することを特徴とする請求項1から請求項のいずれかに記載の方法。
Acquiring waiting order information indicating the current execution probability of the process that was executed within a certain time in the past;
4. The method according to any one of claims 1 to 3 , wherein when the process using the FPGA does not exist, the binary file of the process selected based on the waiting order information is preset in the FPGA. The method described in .
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用させるスケジューリング装置であって、
前記プロセスの実行命令を格納するタスクキューと、
前記タスクキューにセットされている前記プロセスを確認し、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定し、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルの前記FPGAへの設定を依頼し、設定されたバイナリファイルを実行するスケジュール部と、
前記スケジュール部に依頼された前記プロセスのバイナリファイルを前記FPGAに設定するバイナリ設定部と、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得する前処理測定部と、を備え、
前記プロセスのバイナリファイル前記FPGAに設定し実行する割当時間は、前記プロセスごとの前処理時間とすべての前記プロセスに同一のタイムクォンタムとの和として前記プロセスごとに決定されることを特徴とするスケジューリング装置。
A scheduling device that allows multiple processes of one or more virtual communication devices to use an FPGA in a time-sharing manner,
a task queue storing execution instructions of the process;
confirming the processes set in the task queue, determining the order of the processes to be executed when a plurality of the processes are set in the task queue, and determining the order of execution according to the determined order; a scheduling unit that requests setting of the binary file of the process that has arrived to the FPGA and executes the set binary file;
a binary setting unit that sets the binary file of the process requested by the schedule unit in the FPGA;
a preprocessing measurement unit that acquires the preprocessing time set in the FPGA by the binary file of the set process,
The allotted time for setting the binary file of the process to the FPGA and executing it is determined for each process as the sum of the preprocessing time for each process and a time quantum that is the same for all the processes. scheduling device.
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用させるスケジューリング装置であって、
前記プロセスの実行命令を格納するタスクキューと、
前記タスクキューにセットされている前記プロセスを確認し、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定し、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルの前記FPGAへの設定を依頼し、設定されたバイナリファイルを実行するスケジュール部と、
前記スケジュール部に依頼された前記プロセスのバイナリファイルを前記FPGAに設定するバイナリ設定部と、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得する前処理測定部と、を備え、
前記スケジュール部は、前記プロセスごとのプロセス時間を取得し、
前記プロセスの順序は、前記プロセスごとの前処理時間とプロセス時間との和である初回プロセス時間に基づいて決定されることを特徴とするスケジューリング装置。
A scheduling device that allows multiple processes of one or more virtual communication devices to use an FPGA in a time-sharing manner,
a task queue storing execution instructions of the process;
confirming the processes set in the task queue, determining the order of the processes to be executed when a plurality of the processes are set in the task queue, and determining the order of execution according to the determined order; a scheduling unit that requests setting of the binary file of the process that has arrived to the FPGA and executes the set binary file;
a binary setting unit that sets the binary file of the process requested by the schedule unit in the FPGA;
a preprocessing measurement unit that acquires the preprocessing time set in the FPGA by the binary file of the set process,
The scheduler obtains a process time for each process,
The scheduling apparatus, wherein the order of the processes is determined based on an initial process time that is the sum of preprocessing time and process time for each process.
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用させるスケジューリング装置であって、
前記プロセスの順序または前記プロセスのバイナリファイルを前記FPGAに設定し実行する割当時間を決定する方法を示すポリシを設定するポリシ設計部と、
前記プロセスの実行命令を格納するタスクキューと、
前記タスクキューにセットされている前記プロセスを確認し、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定し、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルの前記FPGAへの設定を依頼し、設定されたバイナリファイルを実行するスケジュール部と、
前記スケジュール部に依頼された前記プロセスのバイナリファイルを前記FPGAに設定するバイナリ設定部と、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得する前処理測定部と、を備え、
前記スケジュール部は、複数の前記プロセスのうち一部の前記プロセスの順序の制約を示す順序情報を取得し、
前記プロセスの順序は、設定された前記ポリシ、前記プロセスごとの前処理時間を含む考慮時間、および前記順序情報に基づいて決定されることを特徴とするスケジューリング装置。
A scheduling device that allows multiple processes of one or more virtual communication devices to use an FPGA in a time-sharing manner,
a policy design unit for setting a policy indicating a method for determining the allocation time for setting and executing the order of the processes or the binary files of the processes in the FPGA;
a task queue storing execution instructions of the process;
confirming the processes set in the task queue, determining the order of the processes to be executed when a plurality of the processes are set in the task queue, and determining the order of execution according to the determined order; a scheduling unit that requests setting of the binary file of the process that has arrived to the FPGA and executes the set binary file;
a binary setting unit that sets the binary file of the process requested by the schedule unit in the FPGA;
a preprocessing measurement unit that acquires the preprocessing time set in the FPGA by the binary file of the set process,
The scheduling unit acquires order information indicating constraints on the order of some of the processes among the plurality of processes,
The scheduling device, wherein the order of the processes is determined based on the set policy, the consideration time including the preprocessing time for each process, and the order information .
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用させるスケジューリング装置であって、
前記プロセスの実行命令を格納するタスクキューと、
前記タスクキューにセットされている前記プロセスを確認し、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定し、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルの前記FPGAへの設定を依頼し、設定されたバイナリファイルを実行するスケジュール部と、
前記スケジュール部に依頼された前記プロセスのバイナリファイルを前記FPGAに設定するバイナリ設定部と、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得する前処理測定部と、を備え、
前記スケジュール部は、過去の一定の時間内に実行された前記プロセスの現在の実行される可能性の高さを示す待機順位情報を取得し、
前記プロセスの順序または前記プロセスのバイナリファイル前記FPGAに設定し実行する割当時間は、前記プロセスごとの前処理時間を含む考慮時間に基づいて決定され
前記バイナリ設定部は、前記FPGAを利用する前記プロセスが存在しないときに、前記待機順位情報に基づいて選択された前記プロセスのバイナリファイルを前記FPGAにあらかじめ設定することを特徴とするスケジューリング装置。
A scheduling device that allows multiple processes of one or more virtual communication devices to use an FPGA in a time-sharing manner,
a task queue storing execution instructions of the process;
confirming the processes set in the task queue, determining the order of the processes to be executed when a plurality of the processes are set in the task queue, and determining the order of execution according to the determined order; a scheduling unit that requests setting of the binary file of the process that has arrived to the FPGA and executes the set binary file;
a binary setting unit that sets the binary file of the process requested by the schedule unit in the FPGA;
a preprocessing measurement unit that acquires the preprocessing time set in the FPGA by the binary file of the set process,
The scheduling unit obtains waiting order information indicating a current probability of execution of the processes that were executed within a certain period of time in the past,
The order of the processes or the allocated time for setting and executing the binary files of the processes in the FPGA is determined based on the consideration time including the preprocessing time for each process ,
The scheduling device, wherein the binary setting unit presets the binary file of the process selected based on the waiting order information in the FPGA when the process using the FPGA does not exist.
JP2020056884A 2020-03-26 2020-03-26 Scheduling method and scheduling device Active JP7273383B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020056884A JP7273383B2 (en) 2020-03-26 2020-03-26 Scheduling method and scheduling device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020056884A JP7273383B2 (en) 2020-03-26 2020-03-26 Scheduling method and scheduling device

Publications (2)

Publication Number Publication Date
JP2021157482A JP2021157482A (en) 2021-10-07
JP7273383B2 true JP7273383B2 (en) 2023-05-15

Family

ID=77918439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020056884A Active JP7273383B2 (en) 2020-03-26 2020-03-26 Scheduling method and scheduling device

Country Status (1)

Country Link
JP (1) JP7273383B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007029421A1 (en) 2005-09-05 2007-03-15 Nec Corporation Information processing device
JP2008152470A (en) 2006-12-15 2008-07-03 Hitachi Ltd Data processing system and semiconductor integrated circuit
JP2016164752A (en) 2015-03-06 2016-09-08 富士ゼロックス株式会社 Information processor
JP2017021488A (en) 2015-07-08 2017-01-26 富士通株式会社 Control apparatus, control method, and program
JP2017117204A (en) 2015-12-24 2017-06-29 富士通株式会社 Processor, reconfigurable circuit control method, and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137703A (en) * 1994-11-08 1996-05-31 Matsushita Electric Ind Co Ltd Task switching device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007029421A1 (en) 2005-09-05 2007-03-15 Nec Corporation Information processing device
JP2008152470A (en) 2006-12-15 2008-07-03 Hitachi Ltd Data processing system and semiconductor integrated circuit
JP2016164752A (en) 2015-03-06 2016-09-08 富士ゼロックス株式会社 Information processor
JP2017021488A (en) 2015-07-08 2017-01-26 富士通株式会社 Control apparatus, control method, and program
JP2017117204A (en) 2015-12-24 2017-06-29 富士通株式会社 Processor, reconfigurable circuit control method, and program

Also Published As

Publication number Publication date
JP2021157482A (en) 2021-10-07

Similar Documents

Publication Publication Date Title
US9367357B2 (en) Simultaneous scheduling of processes and offloading computation on many-core coprocessors
US6763520B1 (en) Fair assignment of processing resources to queued requests
US11934864B1 (en) System and method for controlled sharing of consumable resources in a computer cluster
US9152467B2 (en) Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors
CN102567086B (en) Task scheduling method, equipment and system
EP3553657A1 (en) Method and device for allocating distributed system task
CN113454614A (en) System and method for resource partitioning in distributed computing
JP4387174B2 (en) Distributing processes associated with multiple priority groups across multiple resources
US9021490B2 (en) Optimizing allocation of computer resources by tracking job status and resource availability profiles
CN109564528B (en) System and method for computing resource allocation in distributed computing
US20020052909A1 (en) Efficient assignment of processing resources in a fair queuing system
JPH07141305A (en) Control method for execution of parallel computer
CN111258745B (en) Task processing method and device
CN109992418B (en) SLA-aware resource priority scheduling method and system for multi-tenant big data platform
EP3274828B1 (en) Methods and nodes for scheduling data processing
US20230037293A1 (en) Systems and methods of hybrid centralized distributive scheduling on shared physical hosts
CN110764887A (en) Task rescheduling method and system, and related equipment and device
CN116010064A (en) DAG job scheduling and cluster management method, system and device
WO2019011420A1 (en) Computing system for hierarchical task scheduling
CN113886069A (en) Resource allocation method and device, electronic equipment and storage medium
JP7273383B2 (en) Scheduling method and scheduling device
CN112073498B (en) Resource allocation method and device
CN114706663A (en) Computing resource scheduling method, medium and computing device
CA2316643C (en) Fair assignment of processing resources to queued requests
Yang et al. AutoAdmin: automatic and dynamic resource reservation admission control in Hadoop YARN clusters

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230324

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: 20230404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230417

R150 Certificate of patent or registration of utility model

Ref document number: 7273383

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150