JP2020190867A - Configuration changeable integrated circuit allocation system, configuration changeable integrated circuit allocation method and computer program - Google Patents

Configuration changeable integrated circuit allocation system, configuration changeable integrated circuit allocation method and computer program Download PDF

Info

Publication number
JP2020190867A
JP2020190867A JP2019095210A JP2019095210A JP2020190867A JP 2020190867 A JP2020190867 A JP 2020190867A JP 2019095210 A JP2019095210 A JP 2019095210A JP 2019095210 A JP2019095210 A JP 2019095210A JP 2020190867 A JP2020190867 A JP 2020190867A
Authority
JP
Japan
Prior art keywords
processing unit
configuration
integrated circuit
predetermined
fpga
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.)
Pending
Application number
JP2019095210A
Other languages
Japanese (ja)
Inventor
信明 小崎
Nobuaki Ozaki
信明 小崎
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019095210A priority Critical patent/JP2020190867A/en
Publication of JP2020190867A publication Critical patent/JP2020190867A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a configuration changeable integrated circuit allocation system that efficiently runs application programs using a configuration changeable integrated circuit.SOLUTION: A configuration changeable integrated circuit allocation system 10 with multiple virtual environments 105 for running application programs, comprises: a plurality of configuration changeable integrated circuits 104 that can be reconfigured; a queuing processing unit 111 that allocates predetermined processing of the application program instructed by a predetermined virtual environment among the multiple virtual environments for the predetermined configuration changeable integrated circuit among the plurality of configuration changeable integrated circuits; an allocation processing unit 112 that allocates the predetermined configuration changeable integrated circuit to the predetermined virtual environment; and a logic change processing unit 113 that changes the configuration of the predetermined configuration changeable integrated circuit.SELECTED DRAWING: Figure 1

Description

本発明は、構成変更型集積回路の割当システム、構成変更型集積回路の割当方法およびコンピュータプログラムに関する。 The present invention relates to a configuration change type integrated circuit allocation system, a configuration change type integrated circuit allocation method, and a computer program.

いわゆるクラウドコンピュータ上で各種の情報処理サービスを提供するサービスプロバイダは、機械学習またはデータ分析等を実行するアプリケーションプログラム(以下、アプリケーションと略記する場合がある)の実行環境を構築することにより、クラウドサービスを顧客へ提供している。クラウドサービスでは、構成変更可能集積回路(以下、FPGA(Field−Programmable Gate Array)と示す場合がある)またはGPU(Graphics Processing Unit)等を用いることにより、アプリケーションの処理を高速化することが検討されている。FPGAおよびGPU等のハードウェア資源は限られるため、サービスプロバイダは、複数のアプリケーションの実行環境の間で、FPGAおよびGPU等を共有する制御が求められる。 A service provider that provides various information processing services on a so-called cloud computer builds an execution environment for an application program (hereinafter, may be abbreviated as an application) that executes machine learning or data analysis, thereby providing a cloud service. To customers. In cloud services, it has been considered to speed up application processing by using a configurable integrated circuit (hereinafter, sometimes referred to as FPGA (Field-Programmable Gate Array)) or GPU (Graphics Processing Unit). ing. Since hardware resources such as FPGA and GPU are limited, service providers are required to control sharing FPGA and GPU among execution environments of a plurality of applications.

特許文献1の計算デバイスは、動的に選択されたスケジューリングポリシに基づいて、GPUコマンドをスケジュールするGPUスケジューラを有する。GPUスケジューラは、異なる仮想マシンからGPUコマンドを受け取り、スケジューリングポリシを動的に選択し、GPUが処理するGPUコマンドをスケジュールする。 The computing device of Patent Document 1 has a GPU scheduler that schedules GPU commands based on a dynamically selected scheduling policy. The GPU scheduler receives GPU commands from different virtual machines, dynamically selects a scheduling policy, and schedules GPU commands to be processed by the GPU.

特表2017−522659号公報Special Table 2017-522655

特許文献1の計算デバイスは、スケジューリングポリシを切り替えることによって複数の仮想マシンでGPUを共有する。しかしながら、FPGAを実行環境ごとに共有する場合には、FPGAを実行環境の間で切り替える際の構成変更に要する時間(オーバーヘッド)が発生する。 The computing device of Patent Document 1 shares the GPU among a plurality of virtual machines by switching the scheduling policy. However, when the FPGA is shared for each execution environment, the time (overhead) required for the configuration change when switching the FPGA between the execution environments is generated.

そこで本発明は、上記の課題を解決する為になされたものであり、構成変更型集積回路を割り当てることによってアプリケーションプログラムの処理を効率的に実行することを目的とする。 Therefore, the present invention has been made to solve the above problems, and an object of the present invention is to efficiently execute the processing of an application program by allocating a configuration-modifying integrated circuit.

構成変更型集積回路の割当システムは、アプリケーションプログラムを実行する仮想化環境を複数備え、構成変更可能な複数の構成変更型集積回路と、複数の構成変更型集積回路のうちの所定の構成変更型集積回路に対し、複数の仮想化環境のうちの所定の仮想化環境により指示されるアプリケーションプログラムの所定の処理を割り当てるキューイング処理部と、所定の仮想化環境に所定の構成変更型集積回路を割り当てる割当処理部と、所定の構成変更型集積回路を構成変更するロジック変更処理部と、を有する。 The configuration change type integrated circuit allocation system is provided with a plurality of virtualized environments for executing application programs, and is composed of a plurality of configuration changeable integrated circuits and a predetermined configuration change type among a plurality of configuration change type integrated circuits. A queuing processing unit that assigns a predetermined process of an application program instructed by a predetermined virtual environment among a plurality of virtualized environments to an integrated circuit, and a predetermined configuration-changeable integrated circuit in the predetermined virtual environment. It has an allocation processing unit for allocating and a logic change processing unit for changing the configuration of a predetermined configuration change type integrated circuit.

本発明によれば、構成変更型集積回路を用いてアプリケーションプログラムの処理を効率的に実行することができる。 According to the present invention, it is possible to efficiently execute the processing of the application program by using the configuration-modifying integrated circuit.

本実施例の管理サーバの概略図。The schematic diagram of the management server of this embodiment. 管理サーバのハードウェア構成の概略図。Schematic diagram of the management server hardware configuration. タスクリスト記憶部の説明図。Explanatory diagram of the task list storage unit. キューイング処理部の流れ図。Flow diagram of the queuing processing unit. タスクキュー記憶部の説明図。Explanatory drawing of the task queue storage part. タスクの実行時間の説明図。Explanatory diagram of task execution time. 優先順位情報の説明図。Explanatory diagram of priority information. 割当処理部の流れ図。Flow chart of the allocation processing unit. 第2の実施例に係る管理サーバの概略図。The schematic diagram of the management server which concerns on 2nd Example. スケジュール生成処理の流れ図。Flow chart of schedule generation process. システム稼働履歴記憶部の説明図。Explanatory diagram of the system operation history storage unit. ロジック適用スケジュールの説明図。Explanatory diagram of logic application schedule.

以下、本実施例を添付図面に基づいて説明するが、当該図面に記載の構成に限定されない。 Hereinafter, this embodiment will be described with reference to the accompanying drawings, but the present invention is not limited to the configuration described in the drawings.

本実施形態は、構成変更可能な構成変更型集積回路を仮想化環境に割り当てることによって、アプリケーションプログラムを効率よく実行する構成変更型集積回路の割当システムに関するものである。このため、本実施形態では、FPGAの構成変更に係る時間を考慮してアプリケーションのタスクを動的に割り当てる。アプリケーションのタスクは、それぞれ独立したコンテナの中でFPGAにより処理される。なお、以下に示す実施形態において、構成変更型集積回路の割当システムは、管理サーバと示す場合がある。 The present embodiment relates to a configuration changeable integrated circuit allocation system that efficiently executes an application program by allocating a configuration changeable integrated circuit to a virtual environment. Therefore, in the present embodiment, the tasks of the application are dynamically assigned in consideration of the time related to the configuration change of the FPGA. The tasks of the application are processed by the FPGA in separate containers. In the embodiment shown below, the configuration change type integrated circuit allocation system may be referred to as a management server.

図1は、本実施例の管理サーバ10の概略図である。管理サーバ10は、「仮想化環境」の一例としてのコンテナ105を複数備え、アプリケーションプログラム50(図2参照)を実行する。なお、アプリケーションプログラム50は、アプリケーション50と略記する場合がある。 FIG. 1 is a schematic view of the management server 10 of this embodiment. The management server 10 includes a plurality of containers 105 as an example of the “virtualized environment” and executes the application program 50 (see FIG. 2). The application program 50 may be abbreviated as application 50.

管理サーバ10は、通信ネットワーク30を介して操作端末20(1),20(2)と接続される。なお、操作端末20(1),20(2)は、特に区別しない場合には操作端末20と示す場合がある。 The management server 10 is connected to the operation terminals 20 (1) and 20 (2) via the communication network 30. The operation terminals 20 (1) and 20 (2) may be referred to as an operation terminal 20 unless otherwise specified.

利用者が操作端末20を操作することによって、アプリケーション50を実行させる制御信号が通信ネットワーク30を介して管理サーバ10に送信される。その制御信号を受けた管理サーバ10は、アプリケーション50を実行する。管理サーバ10は、通信ネットワーク30を介して、実行結果を操作端末20へ送信する。 When the user operates the operation terminal 20, a control signal for executing the application 50 is transmitted to the management server 10 via the communication network 30. The management server 10 that receives the control signal executes the application 50. The management server 10 transmits the execution result to the operation terminal 20 via the communication network 30.

管理サーバ10は、例えば、「複数の構成変更型集積回路」の一例としての複数のFPGA104と、複数のコンテナ105と、キューイング処理部111と、割当処理部112と、ロジック変更処理部113と、タスクリスト記憶部121と、タスクキュー記憶部122と、ロジック記憶部123と、を有する。なお、図1に示す、タスクリスト記憶部121と、タスクキュー記憶部122と、ロジック記憶部123と、は、「記憶部」の記載を省略して示す。 The management server 10 includes, for example, a plurality of FPGA 104s as an example of "a plurality of configuration-changing integrated circuits", a plurality of containers 105, a queuing processing unit 111, an allocation processing unit 112, and a logic change processing unit 113. , A task list storage unit 121, a task queue storage unit 122, and a logic storage unit 123. The task list storage unit 121, the task queue storage unit 122, and the logic storage unit 123 shown in FIG. 1 are shown by omitting the description of the “storage unit”.

コンテナ105は、管理サーバ10の有するコンピュータ資源を仮想的に分割して、それぞれ並行してアプリケーション50を処理することのできる環境を提供するものであり、例えば、仮想マシンまたはコンテナ技術を用いて構成される。仮想マシンは、例えば、ハイパーバイザ型の仮想化ソフトウェアによって設定された、管理サーバ10の仮想的なハードウェア資源を示す。コンテナ技術は、例えば、コンテナ型の仮想化ソフトウェアによって設定された管理サーバ10の仮想的なハードウェア資源を示す。コンテナ型の仮想化ソフトウェアは、一つのOS(Operating System)上に、それぞれ独立した管理サーバ10の仮想的なハードウェア資源を複数設定する。 The container 105 provides an environment in which the computer resources of the management server 10 can be virtually divided and applications 50 can be processed in parallel with each other. For example, the container 105 is configured by using a virtual machine or a container technology. Will be done. The virtual machine represents, for example, the virtual hardware resources of the management server 10 set by the hypervisor-type virtualization software. The container technology shows, for example, the virtual hardware resources of the management server 10 set by the container-type virtualization software. The container-type virtualization software sets a plurality of virtual hardware resources of each independent management server 10 on one OS (Operating System).

コンテナ105は、例えば、利用者が操作端末20を用いてアプリケーション50の操作をすることによって、アプリケーション50の処理の情報(以降、タスクと示す場合がある)を算出する。キューイング処理部111は、タスクの情報をコンテナ105から取得する。 The container 105 calculates information on the processing of the application 50 (hereinafter, may be referred to as a task) by, for example, the user operating the application 50 using the operation terminal 20. The queuing processing unit 111 acquires task information from the container 105.

キューイング処理部111は、タスクリスト記憶部121にタスクの情報を保存する。 キューイング処理部111は、図4にて詳述するように、タスクを各FPGA104に割り当てるプログラムである。キューイング処理部111は、タスクキュー記憶部122と双方向に通信し、割り当て結果をタスクキュー記憶部122に保存する。 The queuing processing unit 111 stores task information in the task list storage unit 121. The queuing processing unit 111 is a program that assigns tasks to each FPGA 104, as described in detail in FIG. The queuing processing unit 111 communicates bidirectionally with the task queue storage unit 122 and stores the allocation result in the task queue storage unit 122.

タスクキュー記憶部122は、図5にて詳述するように、各FPGA104に対して割り当てられたタスクの情報を保存するデータベースである。割当処理部112は、FPGA104をコンテナ105に対してマウントするプログラムである。 As described in detail in FIG. 5, the task queue storage unit 122 is a database that stores information on tasks assigned to each FPGA 104. The allocation processing unit 112 is a program that mounts the FPGA 104 on the container 105.

割当処理部112は、タスクキュー記憶部122からキューイング処理部111の割り当て結果を取得する。割当処理部112は、タスクリスト記憶部121からコンテナ105の情報を取得する。割当処理部112は、FPGA104の状態を取得する。FPGA104の状態は、例えば、FPGA104がタスクを実行状態、FPGA104の構成変更状態、または、FPGA104の待機状態等が挙げられる。割当処理部112は、FPGA104の構成変更を行う場合には、ロジック変更処理部113を実行する。 The allocation processing unit 112 acquires the allocation result of the queuing processing unit 111 from the task queue storage unit 122. The allocation processing unit 112 acquires the information of the container 105 from the task list storage unit 121. The allocation processing unit 112 acquires the state of the FPGA 104. Examples of the state of the FPGA 104 include a state in which the FPGA 104 executes a task, a state in which the configuration of the FPGA 104 is changed, a state in which the FPGA 104 is in standby, and the like. The allocation processing unit 112 executes the logic change processing unit 113 when changing the configuration of the FPGA 104.

ロジック変更処理部113は、FPGA104の構成変更をするプログラムである。ロジック変更処理部113は、変更するFPGA104の情報と、FPGA104に適用するロジックの情報と、を割当処理部112から取得する。ロジック変更処理部113は、ロジック記憶部123からロジックの情報を取得する。 The logic change processing unit 113 is a program that changes the configuration of the FPGA 104. The logic change processing unit 113 acquires the information of the FPGA 104 to be changed and the information of the logic applied to the FPGA 104 from the allocation processing unit 112. The logic change processing unit 113 acquires logic information from the logic storage unit 123.

図2は、管理サーバ10のハードウェア構成の概略図である。管理サーバ10は、例えば、プロセッサ101と、補助記憶装置102と、メモリ103と、FPGA104と、入出力装置106と、通信インターフェース107と、各装置101〜104,106,107をそれぞれ双方向に通信可能に接続するデータ伝送路108と、を有する。 FIG. 2 is a schematic diagram of the hardware configuration of the management server 10. The management server 10 communicates with, for example, the processor 101, the auxiliary storage device 102, the memory 103, the FPGA 104, the input / output device 106, the communication interface 107, and the devices 101-104, 106, 107 in both directions. It has a data transmission line 108 and a data transmission line 108 which can be connected to each other.

プロセッサ101は、例えば「CPU(Central Processing Unit)」である。プロセッサ101は、プログラム111〜113またはアプリケーション50を、補助記憶装置102からメモリ103に読み込んで実行することにより各機能を実現する。 The processor 101 is, for example, a "CPU (Central Processing Unit)". The processor 101 realizes each function by reading the programs 111 to 113 or the application 50 from the auxiliary storage device 102 into the memory 103 and executing the programs.

補助記憶装置102は、例えば、ハードディスクまたはSSD(Solid State Drive)等の不揮発性記憶装置である。補助記憶装置102は、例えば、キューイング処理部111と、割当処理部112と、ロジック変更処理部113と、アプリケーション50と、のプログラムを記憶している。 The auxiliary storage device 102 is, for example, a hard disk or a non-volatile storage device such as an SSD (Solid State Drive). The auxiliary storage device 102 stores, for example, the programs of the queuing processing unit 111, the allocation processing unit 112, the logic change processing unit 113, and the application 50.

補助記憶装置102は、例えば、タスクリスト記憶部121と、タスクキュー記憶部122と、ロジック記憶部123と、のデータベースを有する。なお、図2に示す各データベースでは、「記憶部」の記載を省略して示す。アプリケーション50は、例えば、「機械学習SDK(Software Development Kit)」等の特定の目的の為に作られたソフトウェアを示す。 The auxiliary storage device 102 has, for example, a database of a task list storage unit 121, a task queue storage unit 122, and a logic storage unit 123. In each database shown in FIG. 2, the description of the “storage unit” is omitted. Application 50 refers to software created for a particular purpose, such as, for example, a "machine learning SDK (Soft Development Kit)".

なお、各プログラム111〜113、アプリケーション50または各データベース121〜123のうち少なくとも一部は、外部記録媒体40を介して管理サーバ10にインストールされてもよい。外部記録媒体40は、例えば、IC(Integrated Circuit)カード、SD(Secure Digital)カード、DVD(Digital Versatile Disc)、Blue Ray Disk、その他の光ディスク、または、USB(Universal Serial Bus)メモリ等である。 At least a part of each program 111-113, application 50, or each database 121-123 may be installed on the management server 10 via the external recording medium 40. The external recording medium 40 is, for example, an IC (Integrated Circuit) card, an SD (Secure Digital) card, a DVD (Digital Versaille Disc), a Blu-ray Disc, another optical disk, or a USB (Universal Serial Bus) memory.

各プログラム111〜113、アプリケーション50または各データベース121〜123は、同一の外部記憶媒体40に格納されていることに限らず、複数の外部記憶媒体40にそれぞれ格納されていてもよい。メモリ103は、例えば、「RAM(Random Access Memory)」等の揮発性記憶装置である。 The programs 111 to 113, the applications 50, or the databases 121 to 123 are not limited to being stored in the same external storage medium 40, but may be stored in a plurality of external storage media 40, respectively. The memory 103 is, for example, a volatile storage device such as “RAM (Random Access Memory)”.

入出力装置106は、例えば、ディスプレイ、キーボード、ポインタデバイス、携帯情報端末(タブレット端末、スマートフォン等)である。音声で管理サーバ10の少なくとも一部を操作可能としてもよい。通信インターフェース107(図中、通信I/Fと示す場合がある)は、例えば、LAN(Local Area Network)の接続端子、SAN(Storage Area Network)の接続端子または無線通信の接続装置等である。通信インターフェース107は、例えば、通信ネットワーク30を介して操作端末20と無線通信で接続される。なお、通信インターフェース107は、操作端末20と有線通信で接続されてもよい。 The input / output device 106 is, for example, a display, a keyboard, a pointer device, a mobile information terminal (tablet terminal, smartphone, etc.). At least a part of the management server 10 may be operated by voice. The communication interface 107 (may be referred to as a communication I / F in the figure) is, for example, a LAN (Local Area Network) connection terminal, a SAN (Storage Area Network) connection terminal, or a wireless communication connection device. The communication interface 107 is connected to the operation terminal 20 by wireless communication via, for example, the communication network 30. The communication interface 107 may be connected to the operation terminal 20 by wire communication.

操作端末20は、利用者がアプリケーション50を操作するコンピュータである。管理サーバ10には、アプリケーション50の利用者ごとに異なる操作端末20が接続されてもよい。管理サーバ10には、操作端末20(1),20(2)の二つに限らず、三つ以上の操作端末20が接続されてもよい。 The operation terminal 20 is a computer in which the user operates the application 50. A different operation terminal 20 may be connected to the management server 10 for each user of the application 50. The management server 10 is not limited to the two operation terminals 20 (1) and 20 (2), and three or more operation terminals 20 may be connected.

入出力装置201は、利用者により操作される装置であり、例えばディスプレイおよびキーボードなどが含まれる。操作端末20は、利用者により入出力装置201に入力されたデータを、通信ネットワーク30を介して管理サーバ10に送信する。操作端末20は、管理サーバ10から送信されたデータを通信ネットワーク30を介して受信し、入出力装置201に表示させることもできる。 The input / output device 201 is a device operated by the user, and includes, for example, a display and a keyboard. The operation terminal 20 transmits the data input to the input / output device 201 by the user to the management server 10 via the communication network 30. The operation terminal 20 can also receive the data transmitted from the management server 10 via the communication network 30 and display it on the input / output device 201.

図3は、タスクリスト記憶部121の説明図である。タスクリスト記憶部121には、各コンテナ105から送信されたタスクの情報が保存される。タスクリスト記憶部121には、例えば、タスクID(IDentification)1211と、ロジックID1212と、コンテナID1213と、が保存される。 FIG. 3 is an explanatory diagram of the task list storage unit 121. The task list storage unit 121 stores the task information transmitted from each container 105. For example, a task ID (IDentification) 1211, a logic ID 1212, and a container ID 1213 are stored in the task list storage unit 121.

タスクID1211には、タスクの識別情報が保存される。タスクID1211には、具体的には、例えば、「タスク_01」〜「タスク_12」が示される。タスクID1211には、「タスク_01」から「タスク_12」の順番で各コンテナ105から送信される。 The task identification information is stored in the task ID 1211. Specifically, for example, "task_01" to "task_12" are indicated in the task ID 1211. The task ID 1211 is transmitted from each container 105 in the order of "task_01" to "task_12".

ロジックID1212には、FPGA104のロジックの識別情報が保存される。ロジックID1212には、例えば、「判定処理_01」と、「モデル生成_01」と、「モデル生成_02」と、「SQL(Structured Query Language)_Drill_01」と、「SQL_Impara_01」と、が示される。 The logic ID 1212 stores the logic identification information of the FPGA 104. In the logic ID 1212, for example, "determination process_01", "model generation_01", "model generation_02", "SQL (Structured Quality Language) _Drill_01", and "SQL_Impara_01" are indicated.

コンテナID1213には、タスクをタスクリスト記憶部121に送信したコンテナ105の識別情報が保存される。コンテナID1213には、例えば、「コンテナ_01」〜「コンテナ_12」と各コンテナ105の識別情報が示される。 The container ID 1213 stores the identification information of the container 105 that has transmitted the task to the task list storage unit 121. The container ID 1213 indicates, for example, "container _01" to "container _12" and identification information of each container 105.

なお、コンテナ105がタスクの処理を完了する場合には、管理サーバ10は、該当するタスクの情報1211〜1213をタスクリスト記憶部121から削除してもよい。 When the container 105 completes the task processing, the management server 10 may delete the corresponding task information 121 to 1213 from the task list storage unit 121.

なお、キューイング処理111の機能を説明する場合において、「所定のコンテナ」の一例としての「コンテナ_12」によって新しく算出された「タスク_12」を「所定のタスク」の一例として説明する。 In the case of explaining the function of the queuing process 111, the "task_12" newly calculated by the "container_12" as an example of the "predetermined container" will be described as an example of the "predetermined task".

キューイング処理部111は、「コンテナ_12」が「タスク_12」を算出することによって実行される。キューイング処理部111は、「タスク_12」の情報をタスクリスト記憶部121に保存する。 The queuing processing unit 111 is executed by the "container_12" calculating the "task_12". The queuing processing unit 111 stores the information of "task_12" in the task list storage unit 121.

図4は、キューイング処理部111の流れ図である。キューイング処理部111は、タスクリスト記憶部121およびタスクキュー記憶部122を参照して、「第1の構成変更型集積回路」の一例としての第1のFPGAを選択する(S11)。第1のFPGAの選択方法を説明する前に、タスクキュー記憶部122の説明をする。 FIG. 4 is a flow chart of the queuing processing unit 111. The queuing processing unit 111 refers to the task list storage unit 121 and the task queue storage unit 122, and selects the first FPGA as an example of the “first configuration change type integrated circuit” (S11). Before explaining the method of selecting the first FPGA, the task queue storage unit 122 will be described.

図5は、タスクキュー記憶部122の説明図である。タスクキュー記憶部122は、FPGA情報(図中、FPGA_IDと示す場合がある)1221と、タスクキュー1222_01〜1222_N(N=任意の数)と、を有する。なお、タスクキュー1222_01〜1222_Nは、特に区別しない場合には、タスクキュー1222と示す場合がある。 FIG. 5 is an explanatory diagram of the task queue storage unit 122. The task queue storage unit 122 has FPGA information (may be indicated as FPGA_ID in the figure) 1221 and task queues 1222_01 to 1222_N (N = arbitrary number). The task queues 1222_01 to 1222_N may be referred to as task queue 1222 unless otherwise specified.

FPGA情報1221には、FPGA104の識別情報が保存される。FPGA情報1221には、例えば、「FPGA_01」〜「FPGA_08」が示される。 The identification information of the FPGA 104 is stored in the FPGA information 1221. For example, "FPGA_01" to "FPGA_08" are shown in the FPGA information 1221.

タスクキュー1222には、例えば、タスクID1211がFIFO(First In First Out)の構造で保存される。すなわち、タスクキュー1222_01〜タスクキュー1222_Nの順番でタスクID1211が保存される。 In the task queue 1222, for example, the task ID 1211 is stored in a FIFO (First In First Out) structure. That is, the task ID 1211 is stored in the order of task queue 1222_01 to task queue 1222_N.

タスクキュー1222_01に保存されるタスクID1211は、例えば、コンテナ105で実行される。タスクキュー1222_01に保存されるタスクID1211の処理が終了した場合には、タスクキュー1222_02に保存されるタスクID1211が同一のFPGA情報1221のタスクキュー1222_01に移動する。 The task ID 1211 stored in the task queue 1222_01 is executed in, for example, the container 105. When the processing of the task ID 1211 stored in the task queue 1222_01 is completed, the task ID 1211 stored in the task queue 1222_02 moves to the task queue 1222_01 having the same FPGA information 1221.

なお、タスクキュー1222は、割り当てられたタスクの数により、追加または削除されてもよい。すなわち、任意の数Nは、一定の値に限らず、割り当てられたタスクの数によって増減される変数でもよい。 The task queue 1222 may be added or deleted depending on the number of assigned tasks. That is, the arbitrary number N is not limited to a constant value, and may be a variable that is increased or decreased depending on the number of assigned tasks.

キューイング処理部111の第1のFPGAを選択する方法を説明する。図6は、各FPGA104におけるタスクの実行時間の説明図である。各FPGA104の中から、「FPGA_01」と、「FPGA_02」と、「FPGA_04」と、を一例に挙げてキューイング処理部111の第1のFPGAを選択する方法を説明する。 A method of selecting the first FPGA of the queuing processing unit 111 will be described. FIG. 6 is an explanatory diagram of a task execution time in each FPGA 104. A method of selecting the first FPGA of the queuing processing unit 111 will be described by taking "FPGA_01", "FPGA_02", and "FPGA_04" as an example from each FPGA 104.

「FPGA_01」には、「タスク_01」がタスクキュー1222_01に保存される。「FPGA_02」には、「タスク_02」および「タスク_09」がタスクキュー1222_01およびタスクキュー1222_02に保存される。「FPGA_04」には、「タスク_04」および「タスク_10」がタスクキュー1222_01およびタスクキュー1222_02に保存される。 In "FPGA_01", "task_01" is stored in the task queue 1222_01. In "FPGA_02", "task_02" and "task_09" are stored in the task queue 1222_01 and the task queue 1222_02. In "FPGA_04", "task_04" and "task_10" are stored in the task queue 1222_01 and the task queue 1222_02.

「タスク_01」〜「タスク_12」の実行時間は、ユーザによって設定されてもよい。なお、「タスク_01」〜「タスク_12」の実行時間は、コンテナ105が各タスクを実行した実績の情報から算出されてもよい。 The execution time of "task_01" to "task_12" may be set by the user. The execution time of "task_01" to "task_12" may be calculated from the information of the actual results of the container 105 executing each task.

「タスク_01」〜「タスク_12」の実行時間は、具体的には、例えば、「40秒」に設定される。なお、「タスク_01」〜「タスク_12」の実行時間は、一律に設定されることに限らず、タスクID1211ごとに実行時間が設定されてもよい。 Specifically, the execution time of "task_01" to "task_12" is set to, for example, "40 seconds". The execution time of "task_01" to "task_12" is not limited to being set uniformly, and the execution time may be set for each task ID 1211.

FPGA104の構成変更時間60は、ユーザによって設定されてもよい。なお、FPGA104の構成変更時間60は、FPGA104の構成変更の実績から算出されてもよい。新しいロジックID1212の構成変更時間60は、新しいロジックがFPGA104の面積を占める割合に基づいて、実績のあるロジックID1212の構成変更時間60から算出されてもよい。その実績のあるロジックID1212の面積は、新しいロジックの面積と同様である。 The configuration change time 60 of the FPGA 104 may be set by the user. The configuration change time 60 of the FPGA 104 may be calculated from the actual result of the configuration change of the FPGA 104. The configuration change time 60 of the new logic ID 1212 may be calculated from the configuration change time 60 of the proven logic ID 1212 based on the proportion of the new logic occupying the area of the FPGA 104. The area of the proven logic ID 1212 is similar to the area of the new logic.

FPGA104の構成変更時間60は、具体的には、例えば、「50秒」に設定される。なお、構成変更時間60は、一律に設定されることに限らず、構成変更後のロジックID1212に基づいて、タスクID1211ごとにそれぞれ設定されてもよい。 Specifically, the configuration change time 60 of the FPGA 104 is set to, for example, "50 seconds". The configuration change time 60 is not limited to being set uniformly, and may be set for each task ID 1211 based on the logic ID 1212 after the configuration change.

なお、タスクの実行が途中である場合には、キューイング処理部111は、「タスク_01」〜「タスク_12」の実行時間の残りの時間を算出する。FPGA104の構成変更が途中である場合には、キューイング処理部111は、構成変更時間60の残りの時間を算出する。 When the task is being executed, the queuing processing unit 111 calculates the remaining time of the execution times of "task_01" to "task_12". When the configuration change of the FPGA 104 is in progress, the queuing processing unit 111 calculates the remaining time of the configuration change time 60.

キューイング処理部111は、「FPGA_01」、「FPGA_02」および「FPGA_04」ごとに、タスクの実行時間と、構成変更時間60との合計時間を算出する。すなわち、キューイング処理部111は、FPGA104ごとに、タスクの実行時間と、構成変更時間60との合計時間を算出する。 The queuing processing unit 111 calculates the total time of the task execution time and the configuration change time 60 for each of "FPGA_01", "FPGA_02", and "FPGA_04". That is, the queuing processing unit 111 calculates the total time of the task execution time and the configuration change time 60 for each FPGA 104.

「FPGA_01」の合計時間は、例えば、「タスク_01」の実行時間である「40秒」である。なお、「FPGA_03」,「FPGA_06」〜「FPGA_08」は、「FPGA_01」と同様にタスクの数が「1」であるため、実行時間が「40秒」である。 The total time of "FPGA_01" is, for example, "40 seconds" which is the execution time of "task_01". Since the number of tasks of "FPGA_03" and "FPGA_06" to "FPGA_08" is "1" as in "FPGA_01", the execution time is "40 seconds".

「FPGA_02」の合計時間は、例えば、「タスク_02」および「タスク_09」の実行時間である「80秒」である。なお、「FPGA_05」は、「FPGA_02」と同様に、「タスク_05」と、「タスク_11」と、のロジックID1212が一致しているので、合計時間が「80秒」である。 The total time of "FPGA_02" is, for example, "80 seconds" which is the execution time of "task_02" and "task_09". As with "FPGA_02", the logic ID 1212 of "task_05" and "task_11" of "FPGA_05" is the same, so that the total time is "80 seconds".

「タスク_04」と、「タスク_10」と、のロジックID1212が異なるため、「FPGA_04」の合計時間には、構成変更時間60が含まれる。これにより、「FPGA_04」の合計時間は、例えば、「タスク_04」および「タスク_10」の実行時間と、構成変更時間60と、の合計の「130秒」である。 Since the logic ID 1212 of "task_04" and "task_10" is different, the total time of "FPGA_04" includes the configuration change time 60. As a result, the total time of "FPGA_04" is, for example, "130 seconds", which is the total of the execution time of "task_04" and "task_10" and the configuration change time 60.

なお、本実施例において、各FPGA10の合計時間には、各プログラム111〜113の処理時間またはFPGA104の待機時間等が含まれてもよい。 In this embodiment, the total time of each FPGA 10 may include the processing time of each program 111 to 113, the standby time of FPGA 104, and the like.

図4を参照する。キューイング処理部111は、例えば、実行時間が「40秒」の「FPGA_01」,「FPGA_03」,「FPGA_06」〜「FPGA_08」を第1のFPGAに選択する(S11)。すなわち、キューイング処理部111は、例えば、各FPGA104のうちの短い合計時間を有する第1のFPGAを選択する。 See FIG. For example, the queuing processing unit 111 selects "FPGA_01", "FPGA_03", "FPGA_06" to "FPGA_08" having an execution time of "40 seconds" as the first FPGA (S11). That is, the queuing processing unit 111 selects, for example, the first FPGA having the short total time of each FPGA 104.

キューイング処理部111は、処理(S12)に移動する。キューイング処理部111は、タスクリスト記憶部121から「タスク_12」のロジックID1212を取得する。「タスク_12」のロジックID1212は、例えば、「モデル生成_02」である。 The queuing processing unit 111 moves to the processing (S12). The queuing processing unit 111 acquires the logic ID 1212 of "task_12" from the task list storage unit 121. The logic ID 1212 of "task_12" is, for example, "model generation_02".

キューイング処理部111は、タスクキュー記憶部122を参照して各第1のFPGAのタスクキュー1222の末尾のタスクID1211を取得する。末尾のタスクID1211とは、例えば、各FPGA情報1221において、タスクキュー1222に保存されるタスクIDのうち、最後に処理が実行されるタスクIDを示す。 The queuing processing unit 111 refers to the task queue storage unit 122 to acquire the task ID 1211 at the end of the task queue 1222 of each first FPGA. The task ID 1211 at the end indicates, for example, the task ID in which the process is executed last among the task IDs stored in the task queue 1222 in each FPGA information 1221.

キューイング処理部111は、タスクリスト記憶部121を参照して、各第1のFPGAの末尾のタスクID1211に基づいて、各第1のFPGAのロジックID1212の値を取得する。 The queuing processing unit 111 refers to the task list storage unit 121 and acquires the value of the logic ID 1212 of each first FPGA based on the task ID 1211 at the end of each first FPGA.

キューイング処理部111は、「モデル生成_02」が各第1のFPGAの末尾のタスクのロジックID1212に含まれているかを判定する(S12)。「モデル生成_02」の値が各第1のFPGAのロジックID1212に含まれていないため(S12:Yes)、キューイング処理部111は、第1のFPGA以外の他のFPGA内に「モデル生成_02」を含む「第2の構成変更型集積回路」の一例としての第2のFPGAがあるかを判定する(S13)。 The queuing processing unit 111 determines whether "model generation_02" is included in the logic ID 1212 of the task at the end of each first FPGA (S12). Since the value of "model generation_02" is not included in the logic ID 1212 of each first FPGA (S12: Yes), the queuing processing unit 111 puts "model generation_02" in the FPGA other than the first FPGA. It is determined whether or not there is a second FPGA as an example of the "second configuration change type integrated circuit" including "(S13).

キューイング処理部111は、「タスク_02」および「タスク_09」が「モデル生成_02」を示す為(S13:Yes)、「タスク_09」を末尾のタスクとして有する「FPGA_02」を第2のFPGAとして選択する(S14)。すなわち、キューイング処理部111は、第1のFPGAを除く複数のFPGA104のうち、構成変更前のロジックを使用して所定のタスクを実行可能な第2のFPGAを選択する。なお、キューイング処理部111は、第2のFPGAを複数選択してもよい。 Since "task_02" and "task_09" indicate "model generation_02" (S13: Yes), the queuing processing unit 111 uses "FPGA_02" having "task_09" as the last task as the second FPGA. Select (S14). That is, the queuing processing unit 111 selects the second FPGA that can execute a predetermined task by using the logic before the configuration change from the plurality of FPGAs 104 excluding the first FPGA. The queuing processing unit 111 may select a plurality of second FPGAs.

キューイング処理部111は、第1のFPGAにおける「タスク_12」の実行開始時間と、第2のFPGAにおける「タスク_12」の実行開始時間と、を算出する(S15)。実行開始時間は、例えば、「タスク_12」の処理を開始するまでにかかる、タスクID1211の実行時間と、構成変更時間60と、の合計である。 The queuing processing unit 111 calculates the execution start time of "task_12" in the first FPGA and the execution start time of "task_12" in the second FPGA (S15). The execution start time is, for example, the total of the execution time of the task ID 1211 and the configuration change time 60, which are required to start the process of "task_12".

「FPGA_01」の「タスク_01」のロジックが「判定処理_01」であるため、キューイング処理部111は、「FPGA_01」の実行開始時間に構成変更時間60の「50秒」が含まれると判定する。キューイング処理部111は、「FPGA_01」における、「タスク_01」と、構成変更時間60と、の処理の合計時間である「90秒」を「タスク_12」の実行開始時間として算出する。なお、第1のFPGAの「タスク_12」の実行開始時間は、第1実行開始時間と示す場合がある。 Since the logic of "task_01" of "FPGA_01" is "determination processing_01", the queuing processing unit 111 determines that the execution start time of "FPGA_01" includes "50 seconds" of the configuration change time 60. .. The queuing processing unit 111 calculates "90 seconds", which is the total processing time of "task_01" and the configuration change time 60, in "FPGA_01" as the execution start time of "task_12". The execution start time of the "task_12" of the first FPGA may be indicated as the first execution start time.

「FPGA_02」の「タスク_09」のロジックが「モデル生成_02」であるため、キューイング処理部111は、「タスク_02」および「タスク_09」の処理の合計時間である「80秒」を「FPGA_02」の実行開始時間として算出する。なお、第2のFPGAの「タスク_12」の実行開始時間は、第2実行開始時間と示す場合がある。 Since the logic of "task_09" of "FPGA_02" is "model generation_02", the queuing processing unit 111 sets "80 seconds", which is the total processing time of "task_02" and "task_09", to "FPGA_02". Is calculated as the execution start time. The execution start time of "task_12" of the second FPGA may be indicated as the second execution start time.

キューイング処理部111は、第1実行開始時間と、第2実行開始時間と、を比較する(S16)。キューイング処理部111は、例えば、第2実行開始時間が第1実行開始時間よりも短いため(S16:Yes)、キューイング処理部111は、第2のFPGAである「FPGA_02」のタスクキュー1222_3に「タスク_12」を割り当てる(S17)。 The queuing processing unit 111 compares the first execution start time with the second execution start time (S16). Since the queuing processing unit 111 has a second execution start time shorter than the first execution start time (S16: Yes), for example, the queuing processing unit 111 has a task queue 1222_3 of the second FPGA "FPGA_02". "Task_12" is assigned to (S17).

第1実行開始時間が第2実行開始時間よりも短い場合(S16:No)には、キューイング処理部111は、所定のタスクを第1のFPGAに割り当てる(S18)。すなわち、キューイング処理部111は、第1のFPGAと、第2のFPGAとを比較して実行開始時間が短いFPGA104を所定のFPGAとして選択する(S16〜S18)。 When the first execution start time is shorter than the second execution start time (S16: No), the queuing processing unit 111 allocates a predetermined task to the first FPGA (S18). That is, the queuing processing unit 111 compares the first FPGA with the second FPGA and selects the FPGA 104 having a shorter execution start time as a predetermined FPGA (S16 to S18).

構成変更前のロジックで所定のタスクを実行可能な第1のFPGAがある場合(S12:No)、または、第1のFPGA以外の他のFPGAがロジックの構成変更をして所定のタスクを実行する場合(S13:No)には、キューイング処理部111は、第1のFPGAを所定のFPGAとして所定のタスクを割り当てる。 When there is a first FPGA that can execute a predetermined task with the logic before the configuration change (S12: No), or another FPGA other than the first FPGA changes the logic configuration and executes the predetermined task. In the case of (S13: No), the queuing processing unit 111 assigns a predetermined task with the first FPGA as a predetermined FPGA.

すなわち、キューイング処理部111は、各FPGA104の中で所定のタスクを最も早く実行できる処理のFPGAに所定のタスクを割り当てる。 That is, the queuing processing unit 111 assigns a predetermined task to the FPGA of the processing that can execute the predetermined task earliest in each FPGA 104.

所定のタスクを割り当てるFPGA104の候補が複数ある場合には、キューイング処理部111は、いずれかのうちの一つのFPGA104を選択してタスクを割り当てる。キューイング処理部111は、各FPGA104からランダムに所定のFPGA104を選択してもよい。 When there are a plurality of candidates for FPGA 104 to which a predetermined task is assigned, the queuing processing unit 111 selects one of the FPGA 104s and assigns the task. The queuing processing unit 111 may randomly select a predetermined FPGA 104 from each FPGA 104.

任意のコンテナ105が任意のFPGA104を専有して利用する場合には、キューイング処理部111は、タスクキュー記憶部122から任意のFPGA104のFPGA情報1221を削除してもよい。なお、キューイング処理部111は、任意のFPGA情報1221に対応するタスクキュー1222_01に、任意のコンテナ105のタスクID1211を固定することによって、任意のFPGA104を任意のコンテナ105に専有させてもよい。 When the arbitrary container 105 exclusively uses the arbitrary FPGA 104, the queuing processing unit 111 may delete the FPGA information 1221 of the arbitrary FPGA 104 from the task queue storage unit 122. The queuing processing unit 111 may occupy the arbitrary FPGA 104 in the arbitrary container 105 by fixing the task ID 1211 of the arbitrary container 105 in the task queue 1222_01 corresponding to the arbitrary FPGA information 1221.

所定のタスクがタスクキュー1222_01に保存される場合には、キューイング処理部111は、FPGA104の構成変更前のロジックの情報を取得する。キューイング処理部111は、例えば、取得したロジックの情報と、所定のタスクのロジックID1212と、が一致するFPGA情報1221にタスクを割り当てる。取得したロジックの情報と、所定のタスクのロジックID1212と、が異なる場合には、キューイング処理部111は、いずれかのうちの一つのFPGA104を選択してタスクを割り当ててもよい。所定のタスクがタスクキュー1222_01に保存される場合は、例えば、新たに管理サーバ10を立ち上げた場合等が挙げられる。 When the predetermined task is stored in the task queue 1222_01, the queuing processing unit 111 acquires the information of the logic before the configuration change of the FPGA 104. For example, the queuing processing unit 111 allocates a task to FPGA information 1221 in which the acquired logic information and the logic ID 1212 of a predetermined task match. When the acquired logic information and the logic ID 1212 of the predetermined task are different, the queuing processing unit 111 may select one of the FPGA 104s and assign the task. When a predetermined task is saved in the task queue 1222_01, for example, a case where a new management server 10 is started up may be mentioned.

キューイング処理部111は、各アプリケーション50の優先順位に基づいて、FPGA104ごとにタスクを割り当ててもよい。図7(A)は、アプリケーション50の優先順位情報1312の説明図である。キューイング処理部111は、アプリケーション50の優先順位情報1312を取得する。優先順位情報1312は、アプリケーションDI1311ごとに設定される。アプリケーションID1311には、各アプリケーション50の識別情報が保存される。 The queuing processing unit 111 may assign a task to each FPGA 104 based on the priority of each application 50. FIG. 7A is an explanatory diagram of priority information 1312 of the application 50. The queuing processing unit 111 acquires the priority information 1312 of the application 50. The priority information 1312 is set for each application DI 1311. The identification information of each application 50 is stored in the application ID 1311.

優先順位情報1312には、例えば、「ランク_1」〜「ランク_M」(M=所定の数)が示されている。優先度としては、例えば、「ランク_1」が優先順位情報1312の中で最も優先度が高く、「ランク_2」,「ランク_3」と次第に優先度が低くなり、「ランク_M」が優先順位情報1312の中で最も優先度が低くなる。すなわち、キューイング処理部111は、例えば、「ランク_1」〜「ランク_M」の順番で優先的にタスクキュー1222に各タスクを割り当てる。なお、所定の数Mは、一定の値に限らず、ユーザによって変更される変数でもよい。 In the priority information 1312, for example, "rank_1" to "rank_M" (M = a predetermined number) are indicated. As for the priority, for example, "Rank_1" has the highest priority in the priority information 1312, "Rank_2" and "Rank_3" gradually decrease in priority, and "Rank_M" is the priority information. It has the lowest priority in 1312. That is, the queuing processing unit 111 preferentially allocates each task to the task queue 1222 in the order of "rank _1" to "rank _M", for example. The predetermined number M is not limited to a constant value, and may be a variable changed by the user.

図7(B)は、アプリケーションID1311と、タスクID1211と、の説明図である。キューイング処理部111bは、例えば、「タスク_12」のアプリケーションID1311を取得する。「タスク_12」のアプリケーションID1311は、「アプリケーション_12」である。キューイング処理部111は、「タスク_12」の優先順位情報1312を取得する。「タスク_12」の優先順位情報1312が「ランク_01」であるため、キューイング処理部111bは、優先順位情報1312が「ランク_02」,「ランク_03」のアプリケーションID1311を取得する。 FIG. 7B is an explanatory diagram of the application ID 1311 and the task ID 1211. The queuing processing unit 111b acquires, for example, the application ID 1311 of "task_12". The application ID 1311 of "task_12" is "application_12". The queuing processing unit 111 acquires the priority information 1312 of "task_12". Since the priority information 1312 of "task_12" is "rank_01", the queuing processing unit 111b acquires the application ID 1311 whose priority information 1312 is "rank_02" and "rank_03".

「アプリケーション_11」優先順位情報が「ランク_03」の処理であるため、キューイング処理部111bは、タスクリスト記憶部121から「アプリケーション_11」のタスクID1211を取得する。「アプリケーション_11」のタスクID121が「タスク_11」であるため、キューイング処理部111bは、「タスク_11」の前に「タスク_12」を割り当てる。すなわち、キューイング処理部111bは、タスクキュー1222_02に保存されている「タスク_11」をタスクキュー1222_03に移動し、「タスク_12」をタスクキュー1222_02に保存する。 Since the priority information of "application_11" is the processing of "rank_03", the queuing processing unit 111b acquires the task ID 1211 of "application_11" from the task list storage unit 121. Since the task ID 121 of the "application_11" is the "task_11", the queuing processing unit 111b assigns the "task_12" before the "task_11". That is, the queuing processing unit 111b moves the "task_11" stored in the task queue 1222_02 to the task queue 1222_03, and saves the "task_12" in the task queue 1222_02.

すなわち、キューイング処理部111は、例えば、所定のアプリケーション50よりも優先度の低い、低優先アプリケーション50のタスクを取得する。キューイング処理部111は、低優先アプリケーション50のタスクの前に所定のタスクを割り当てる。なお、キューイング処理部111bは、所定のタスクが実行されるまでの待ち時間に応じて、所定のタスクを割り込ませるタスクキュー1222の場所を選択してもよい。 That is, the queuing processing unit 111 acquires, for example, the task of the low priority application 50, which has a lower priority than the predetermined application 50. The queuing processing unit 111 allocates a predetermined task before the task of the low priority application 50. The queuing processing unit 111b may select the location of the task queue 1222 to interrupt the predetermined task according to the waiting time until the predetermined task is executed.

図8は、FPGA割り当て処理(S20)の流れ図である。FPGA割り当て処理(S20)は、割当処理部112の処理(S21〜S23,S25,S26)およびロジック変更処理部113の処理(S24)を有する。なお、FPGA割り当て処理(S20)は、「FPGA_02」の「タスク_02」および「タスク_09」が実行完了することによって、「FPGA_02」のタスクキュー1222_01に「タスク_12」が保存される場合を例に挙げて説明する。 FIG. 8 is a flow chart of the FPGA allocation process (S20). The FPGA allocation process (S20) includes processing of the allocation processing unit 112 (S21 to S23, S25, S26) and processing of the logic change processing unit 113 (S24). The FPGA allocation process (S20) is performed by taking as an example a case where "task_12" is saved in the task queue 1222_01 of "FPGA_02" when "task_02" and "task_09" of "FPGA_02" are completed. I will explain it by listing it.

FPGA割り当て処理(S20)は、割当処理部112の処理(S21)に移動する。割当処理部112は、例えば、タスクキュー1222_01のタスクID1211が変更されることによって実行される。割当処理部112は、例えば、タスクリスト記憶部121から「タスク_09」のロジックID1212を取得する(S21)。「タスク_09」のロジックID1212は、「モデル生成_02」である。すなわち、割当処理部112は、タスクキュー1222_01から削除されたタスクID1211に基づいて、FPGA104に実装済みのロジックID1212を取得する。 The FPGA allocation process (S20) moves to the process (S21) of the allocation processing unit 112. The allocation processing unit 112 is executed, for example, by changing the task ID 1211 of the task queue 1222_01. The allocation processing unit 112 acquires, for example, the logic ID 1212 of “task_09” from the task list storage unit 121 (S21). The logic ID 1212 of "task_09" is "model generation_02". That is, the allocation processing unit 112 acquires the logic ID 1212 implemented in the FPGA 104 based on the task ID 1211 deleted from the task queue 1222_01.

割当処理部112は、例えば、タスクリスト記憶部121から「タスク_12」のロジックID1212を取得する(S22)。「タスク_12」のロジックID1212は、例えば、「モデル生成_02」である。すなわち、割当処理部112は、タスクキュー1222_01に保存されるタスクID1211に基づいて、実装予定のロジックID1212を取得する。 The allocation processing unit 112 acquires, for example, the logic ID 1212 of “task_12” from the task list storage unit 121 (S22). The logic ID 1212 of "task_12" is, for example, "model generation_02". That is, the allocation processing unit 112 acquires the logic ID 1212 to be implemented based on the task ID 1211 stored in the task queue 1222_01.

割当処理部112は、「タスク_09」のロジックID1212と、「タスク_12」のロジックID1212と、を比較して「FPGA_02」のロジックを構成変更するかどうか判定する(S23)。すなわち、割当処理部112は、FPGA104に実装済みのロジックと、FPGA104に実装予定のロジックと、を比較することによって所定のFPGA104を構成変更するかを判定する。 The allocation processing unit 112 compares the logic ID 1212 of "task_09" with the logic ID 1212 of "task_12" and determines whether to reconfigure the logic of "FPGA_02" (S23). That is, the allocation processing unit 112 determines whether to reconfigure the predetermined FPGA 104 by comparing the logic implemented in the FPGA 104 with the logic scheduled to be implemented in the FPGA 104.

「タスク_02」のロジックID1212と、「タスク_09」のロジックID1212と、が共に「モデル生成_02」であるため(S23:No)、割当処理部112の処理は、処理(S25)に移動する。 Since the logic ID 1212 of "task_02" and the logic ID 1212 of "task_09" are both "model generation_02" (S23: No), the processing of the allocation processing unit 112 moves to the processing (S25).

割当処理部112は、「タスク_09」のコンテナID1213をタスクリスト記憶部121から取得する。「タスク_09」が「コンテナ_09」にて実行される処理であるため、割当処理部112は、「コンテナ_09」に対して「FPGA_02」をマウントする。なお、割当処理部112は、「FPGA_02」がアプリケーション50の処理から解放された場合に、「FPGA_02」を「コンテナ_09」に対してマウントする。割当処理部112は、「コンテナ_09」の「アプリケーション_09」の処理を開始させる制御信号を「コンテナ_09」に送信する(S26)。 The allocation processing unit 112 acquires the container ID 1213 of "task_09" from the task list storage unit 121. Since "task_09" is a process executed in "container_09", the allocation processing unit 112 mounts "FPGA_02" on "container_09". The allocation processing unit 112 mounts "FPGA_02" on "container_09" when "FPGA_02" is released from the processing of the application 50. The allocation processing unit 112 transmits a control signal for starting the processing of the “application_09” of the “container_09” to the “container_09” (S26).

すなわち、割当処理部112は、タスクリスト記憶部121およびタスクキュー記憶部122を参照し、所定のFPGA104を所定のコンテナ105にマウントする機能である。 That is, the allocation processing unit 112 is a function of referring to the task list storage unit 121 and the task queue storage unit 122 and mounting the predetermined FPGA 104 on the predetermined container 105.

FPGA104を構成変更するかどうか判定する処理(S23)において、実装済みのロジックと、実装予定のロジックと、が異なるロジックID1212を有している場合(S23:Yes)には、割当処理部112は、ロジック変更処理部113を実行する(S24)。割当処理部112は、所定のFPGA104のFPGA情報1221と、実装予定のロジックID1212と、をロジック変更処理部113に送信する。なお、割当処理部112は、例えば、所定のFPGA104がタスクから解放された場合に、ロジック変更処理部113を実行する。 In the process of determining whether to change the configuration of the FPGA 104 (S23), when the implemented logic and the logic to be implemented have different logic ID 1212 (S23: Yes), the allocation processing unit 112 , The logic change processing unit 113 is executed (S24). The allocation processing unit 112 transmits the FPGA information 1221 of the predetermined FPGA 104 and the logic ID 1212 to be implemented to the logic change processing unit 113. The allocation processing unit 112 executes the logic change processing unit 113, for example, when the predetermined FPGA 104 is released from the task.

ロジック変更処理部113は、所定のFPGA104のFPGA情報1221と、実装予定のロジックID1212と、を取得する。ロジック変更処理部113は、実装予定のロジックID1212と一致するロジックの情報を、ロジック記憶部123から取得する。ロジック変更処理部113は、取得したロジックの情報に基づいて、FPGA104の構成変更をする。 The logic change processing unit 113 acquires the FPGA information 1221 of the predetermined FPGA 104 and the logic ID 1212 to be implemented. The logic change processing unit 113 acquires logic information that matches the logic ID 1212 to be implemented from the logic storage unit 123. The logic change processing unit 113 changes the configuration of the FPGA 104 based on the acquired logic information.

ロジック記憶部123は、ロジックの情報を記録する。ロジックの情報は、例えば、回路に実装される端子の接続情報を示す。ロジックの情報は、所定のプログラムにより用意されてもよい。ユーザは、例えば、ハードウェア記述言語(HDL:Hardware Description Language)によって記載されたプログラムを論理合成ツールによってロジックの情報に変換してもよい。論理合成ツールは、例えば、ハードウェア記述言語によるソースコードをロジックの情報に変換するソフトウェアである。 The logic storage unit 123 records logic information. The logic information indicates, for example, connection information of terminals mounted on the circuit. Logic information may be prepared by a predetermined program. The user may, for example, convert a program written in a hardware description language (HDL: Hardware Description Language) into logic information by a logic synthesis tool. A logic synthesis tool is, for example, software that converts source code in a hardware description language into logic information.

以上に示す、キューイング処理部111および割当処理部112によって、FPGA104をコンテナ105間で共有することができる。管理サーバ10は、キューイング処理111によって、アプリケーション50のタスクを効率的に実行することができる。 The FPGA 104 can be shared between the containers 105 by the queuing processing unit 111 and the allocation processing unit 112 shown above. The management server 10 can efficiently execute the task of the application 50 by the queuing process 111.

キューイング処理部111は、第1のFPGAおよび第2のFPGAのいずれか一方から所定のFPGAを選択することによって、所定のタスクを各FPGA104の中で最も早く実行できるFPGA104に割り当てることができる。 By selecting a predetermined FPGA from either the first FPGA or the second FPGA, the queuing processing unit 111 can assign the predetermined task to the FPGA 104 that can execute the predetermined task earliest among the FPGAs 104.

アプリケーション50の優先順位情報1312に基づいてキューイング処理部111が所定のタスクをFPGA104に割り当てることによって、管理サーバ10は、他のアプリケーション50の処理よりも優先的に所定のアプリケーション50の処理を開始することができる。 When the queuing processing unit 111 assigns a predetermined task to the FPGA 104 based on the priority information 1312 of the application 50, the management server 10 starts the processing of the predetermined application 50 in preference to the processing of the other application 50. can do.

図9は、第2の実施例に係る管理サーバ10aの概略図である。本実施例は、第1実施例の変形例に相当するため、第1実施例との相違を中心に説明する。管理サーバ10aは、操作端末20(1),20(2)と、通信ネットワーク30を介して接続される。 FIG. 9 is a schematic view of the management server 10a according to the second embodiment. Since this embodiment corresponds to a modified example of the first embodiment, the differences from the first embodiment will be mainly described. The management server 10a is connected to the operation terminals 20 (1) and 20 (2) via the communication network 30.

管理サーバ10aは、例えば、FPGA104と、コンテナ105と、キューイング処理部111と、割当処理部112と、ロジック変更処理部113aと、スケジュール計算処理部114と、予実績判定処理部115と、ソリューション判定部116と、ロジックデザイン処理部117と、タスクリスト記憶部121と、タスクキュー記憶部122と、ロジック記憶部123と、システム稼働履歴記憶部124と、スケジュール記憶部125と、ソリューション記憶部126と、を有する。なお、図9に示す各データベースには、「記憶部」の記載を省略して示す。 The management server 10a includes, for example, an FPGA 104, a container 105, a queuing processing unit 111, an allocation processing unit 112, a logic change processing unit 113a, a schedule calculation processing unit 114, a forecast / performance determination processing unit 115, and a solution. Judgment unit 116, logic design processing unit 117, task list storage unit 121, task queue storage unit 122, logic storage unit 123, system operation history storage unit 124, schedule storage unit 125, and solution storage unit 126. And have. In each database shown in FIG. 9, the description of the “storage unit” is omitted.

システム稼働履歴記憶部124は、図11にて詳述するように、FPGA104と、コンテナ105と、の実績を保存するデータベースである。スケジュール計算処理部114は、システム稼働履歴124を参照し、図12にて詳述するFPGA104の構成変更のスケジュール1270(以降、ロジック適用スケジュール1270と示す場合がある)を算出するプログラムである。スケジュール計算処理部114は、スケジュール記憶部125にロジック適用スケジュール1270を保存する。 The system operation history storage unit 124 is a database that stores the results of the FPGA 104 and the container 105, as will be described in detail in FIG. The schedule calculation processing unit 114 is a program that calculates the schedule 1270 of the configuration change of the FPGA 104 (hereinafter, may be referred to as the logic application schedule 1270) described in detail in FIG. 12 with reference to the system operation history 124. The schedule calculation processing unit 114 stores the logic application schedule 1270 in the schedule storage unit 125.

ロジック変更処理部113aは、スケジュール記憶部125を参照し、FPGA104の構成変更をするプログラムである。ロジック変更処理部113aは、FPGA104の状態を参照し、FPGA104の構成変更をする。 The logic change processing unit 113a is a program that refers to the schedule storage unit 125 and changes the configuration of the FPGA 104. The logic change processing unit 113a refers to the state of the FPGA 104 and changes the configuration of the FPGA 104.

予実績判定処理部115は、システム稼働履歴記憶部124およびスケジュール記憶部125を参照し、FPGA104およびコンテナ105の実績と、ロジック適用スケジュール1270と、の差異を検出するプログラムである。差異が所定の閾値以上検出された場合には、予実績判定処理部115は、スケジュール計算処理部114およびソリューション判定処理部116を実行させる。 The forecast / actual determination processing unit 115 is a program that refers to the system operation history storage unit 124 and the schedule storage unit 125 and detects the difference between the actual results of the FPGA 104 and the container 105 and the logic application schedule 1270. When the difference is detected at a predetermined threshold value or more, the forecast / performance determination processing unit 115 causes the schedule calculation processing unit 114 and the solution determination processing unit 116 to be executed.

ソリューション判定処理部116は、ソリューション記憶部126を参照し、ロジック適用スケジュール1270を作成する際に使用するソリューションを設定する。ソリューション判定部116は、判定結果をスケジュール計算処理部117に送信する。 The solution determination processing unit 116 refers to the solution storage unit 126 and sets the solution to be used when creating the logic application schedule 1270. The solution determination unit 116 transmits the determination result to the schedule calculation processing unit 117.

ロジックデザイン処理部117は、システム稼働履歴記憶部124を参照し、1台のFPGAに複数のロジックを実装できるかを判定するプログラムである。ロジックデザイン処理部117は、判定結果をスケジュール計算処理部114に送信する。 The logic design processing unit 117 is a program that refers to the system operation history storage unit 124 and determines whether or not a plurality of logics can be implemented in one FPGA. The logic design processing unit 117 transmits the determination result to the schedule calculation processing unit 114.

図10は、スケジュール生成処理(S30)の流れ図である。スケジュール生成処理(S30)は、例えば、スケジュール計算処理部114の処理(S31)と、ロジック変更処理部113aの処理(S32,S33)と、予実績判定処理部115の処理(S35,S36)と、ソリューション判定部116の処理(S37)と、を示す。 FIG. 10 is a flow chart of the schedule generation process (S30). The schedule generation processing (S30) includes, for example, the processing of the schedule calculation processing unit 114 (S31), the processing of the logic change processing unit 113a (S32, S33), and the processing of the forecast / performance determination processing unit 115 (S35, S36). , The process (S37) of the solution determination unit 116.

スケジュール生成処理(S30)は、スケジュール計算処理部114の処理(S31)に移動する。スケジュール計算処理部114は、例えば、システム稼働履歴記憶部124の情報に基づいて、「構成変更のスケジュール」の一例としてのロジック適用スケジュール1270(図12参照)を算出する機能である。スケジュール計算処理(S31)の説明前に、システム稼働履歴記憶部124およびロジック適用スケジュール1270の説明をする。 The schedule generation process (S30) moves to the process (S31) of the schedule calculation processing unit 114. The schedule calculation processing unit 114 is a function of calculating a logic application schedule 1270 (see FIG. 12) as an example of the “configuration change schedule” based on the information of the system operation history storage unit 124, for example. Before the explanation of the schedule calculation process (S31), the system operation history storage unit 124 and the logic application schedule 1270 will be described.

図11は、システム稼働履歴記憶部124の説明図である。システム稼働履歴記憶部124は、IT(Information Technology)インフラ層の稼働履歴情報と、アプリケーション50の稼働履歴情報と、を有する。ITインフラ層の稼働履歴情報は、例えば、FPGA104およびコンテナ105等の稼働履歴情報である。 FIG. 11 is an explanatory diagram of the system operation history storage unit 124. The system operation history storage unit 124 has operation history information of the IT (Information Technology) infrastructure layer and operation history information of the application 50. The operation history information of the IT infrastructure layer is, for example, operation history information of the FPGA 104, the container 105, and the like.

システム稼働履歴記憶部124は、コンテナID1241と、サービス名1242と、処理名1243と、ロジックID1244と、FPGA情報1245(図中FPGA_IDと示す場合がある)と、実行開始1246と、実行終了1247と、データ量1248と、を有する。 The system operation history storage unit 124 includes a container ID 1241, a service name 1242, a process name 1243, a logic ID 1244, FPGA information 1245 (may be indicated as FPGA_ID in the figure), execution start 1246, and execution end 1247. , With a data amount of 1248.

コンテナID1241には、コンテナ105を一意に特定する情報が保存される。コンテナID1241は、タスクリスト記憶部121のコンテナID1213と対応する。 Information that uniquely identifies the container 105 is stored in the container ID 1241. The container ID 1241 corresponds to the container ID 1213 of the task list storage unit 121.

サービス名1242には、コンテナ105上で稼働するアプリケーション50を一意に特定する情報が保存される。処理名1243には、コンテナ105上で実行されるアプリケーション50の処理を特定する情報が保存される。 The service name 1242 stores information that uniquely identifies the application 50 running on the container 105. Information that identifies the process of the application 50 executed on the container 105 is stored in the process name 1243.

ロジックID1244には、アプリケーション50を実行するFPGA104のロジックを特定する情報が保存される。ロジックID1244は、タスクリスト記憶部121のロジックID1212と対応する。FPGA情報1245には、FPGA104を特定する情報が保存される。FPGA情報1245は、タスクキュー記憶部122のFPGA情報1221と対応する。 The logic ID 1244 stores information that identifies the logic of the FPGA 104 that executes the application 50. The logic ID 1244 corresponds to the logic ID 1212 of the task list storage unit 121. Information that identifies the FPGA 104 is stored in the FPGA information 1245. The FPGA information 1245 corresponds to the FPGA information 1221 of the task queue storage unit 122.

実行開始1246には、処理名1243にて示されるアプリケーション50の処理の開始時刻が保存される。実行終了1247には、処理名1243にて示されるアプリケーション50の処理の終了時刻が保存される。 The execution start 1246 stores the start time of the process of the application 50 indicated by the process name 1243. In the execution end 1247, the end time of the process of the application 50 indicated by the process name 1243 is saved.

データ量1248には、アプリケーション50の処理データの容量が保存される。処理データは、例えば、機械学習における教師データ等が挙げられる。アプリケーション50の処理データは、例えば、補助記憶装置102からメモリ103にロードされる。なお、システム稼働履歴記憶部124には、FPGA104およびコンテナ105の処理の実績に限らず、手動または不図示の他のプログラムにより蓄積された情報でもよい。 The amount of processing data of the application 50 is stored in the data amount 1248. Examples of the processed data include teacher data in machine learning. The processing data of the application 50 is loaded into the memory 103 from the auxiliary storage device 102, for example. The system operation history storage unit 124 is not limited to the actual processing results of the FPGA 104 and the container 105, but may be information accumulated manually or by another program (not shown).

図12は、ロジック適用スケジュール1270の説明図である。ロジック適用スケジュール1270は、スケジュール記憶部127に保存される。ロジック適用スケジュール1270は、FPGA数1271と、ロジックID1272と、開始時刻1273と、完了時刻1274とを有する。 FIG. 12 is an explanatory diagram of the logic application schedule 1270. The logic application schedule 1270 is stored in the schedule storage unit 127. The logic application schedule 1270 has an FPGA number of 1271, a logic ID of 1272, a start time of 1273, and a completion time of 1274.

FPGA数1271には、FPGA104の数の情報が保存される。ロジックID1272には、FPGA104のロジックを特定する情報が保存される。なお、ロジックID1272には、少なくとも一つ以上のロジックの識別情報が保存される。開始時刻1273と完了時刻1274には、ロジックID1272のロジックをFPGA104に実装する時間の情報が保存される。 Information on the number of FPGAs 104 is stored in the FPGA number 1271. The logic ID 1272 stores information that identifies the logic of the FPGA 104. The logic ID 1272 stores at least one or more logic identification information. At the start time 1273 and the completion time 1274, information on the time when the logic of the logic ID 1272 is implemented in the FPGA 104 is stored.

すなわち、ロジック適用スケジュール1270は、開始時刻1273から完了時刻1274までの間に、ロジックID1272のロジックが実装されたFPGA104を、FPGA数1271で示された数用意するというスケジュールを示す。 That is, the logic application schedule 1270 indicates a schedule in which the number of FPGA 104s on which the logic of the logic ID 1272 is implemented is prepared as indicated by the number of FPGAs 1271 between the start time 1273 and the completion time 1274.

図10に戻り、スケジュール計算処理部114のスケジュール計算処理(S31)は、例えば、アプリケーション50のソリューションに基づいて、ロジック適用スケジュール1270を算出する。スケジュール計算処理部114は、ソリューションの情報を後に詳述するソリューション判定部116から取得する。 Returning to FIG. 10, the schedule calculation process (S31) of the schedule calculation processing unit 114 calculates the logic application schedule 1270 based on, for example, the solution of the application 50. The schedule calculation processing unit 114 acquires the solution information from the solution determination unit 116, which will be described in detail later.

なお、スケジュール計算処理部114は、例えば、システム稼働履歴記憶部124の所定期間におけるロジックID1244の統計に基づいて、ロジック適用スケジュール1270を算出してもよい。スケジュール計算処理部114は、例えば、新たにシステム稼働履歴記憶部124に保存された情報から所定件数の情報を参照することによって、ロジック適用スケジュール1270を算出してもよい。 The schedule calculation processing unit 114 may calculate the logic application schedule 1270 based on the statistics of the logic ID 1244 in the predetermined period of the system operation history storage unit 124, for example. The schedule calculation processing unit 114 may calculate the logic application schedule 1270 by referring to a predetermined number of information from the information newly stored in the system operation history storage unit 124, for example.

なお、管理サーバ10aは、システム稼働履歴記憶部124に保存される情報が所定数以上記憶されている場合にスケジュール計算処理部114を実行する。システム稼働履歴記憶部124の情報が所定数未満である場合には、管理サーバ10aは、キューイング処理部111と、割当処理部112と、ロジック変更処理部113と、を実行することによって、各FPGA104を各コンテナ105に割り当てる。 The management server 10a executes the schedule calculation processing unit 114 when a predetermined number or more of the information stored in the system operation history storage unit 124 is stored. When the information in the system operation history storage unit 124 is less than a predetermined number, the management server 10a executes the queuing processing unit 111, the allocation processing unit 112, and the logic change processing unit 113, respectively. FPGA 104 is assigned to each container 105.

すなわち、キューイング処理部111および割当処理部112は、スケジュール計算処理部114から独立して処理する。管理サーバ10aは、キューイング処理部111と、割当処理部112と、ロジック変更処理部113と、を実行することによって、システム稼働履歴記憶部124に、ITインフラ層の稼働履歴情報およびアプリケーション50の稼働履歴情報を蓄積する。 That is, the queuing processing unit 111 and the allocation processing unit 112 process independently of the schedule calculation processing unit 114. By executing the queuing processing unit 111, the allocation processing unit 112, and the logic change processing unit 113, the management server 10a supplies the system operation history storage unit 124 with the operation history information of the IT infrastructure layer and the application 50. Accumulate operation history information.

図10に戻り、スケジュール生成処理(S30)は、ロジック変更処理部113aのロジック変更処理(S32,S33)に移動する。ロジック変更処理部113aは、割当処理部112の結果に基づいてFPGA104を構成変更する第1変更機能と、ロジック適用スケジュール1270に沿ってFPGA104を構成変更する第2変更機能と、を有する。なお、図10に示すロジック変更処理(S32,S33)は、ロジック変更処理部113aの第2変更機能を示す。 Returning to FIG. 10, the schedule generation process (S30) moves to the logic change process (S32, S33) of the logic change processing unit 113a. The logic change processing unit 113a has a first change function for changing the configuration of the FPGA 104 based on the result of the allocation processing unit 112, and a second change function for changing the configuration of the FPGA 104 according to the logic application schedule 1270. The logic change processing (S32, S33) shown in FIG. 10 shows the second change function of the logic change processing unit 113a.

ロジック変更処理部113aの第1変更機能は、割当処理部112から制御信号が送信されることによって実行される。ロジック変更処理部113aは、割当処理部112から、ロジックID1212およびFPGA情報1221を取得する。ロジック変更処理部113aは、ロジックID1212およびロジック記憶部123に基づいて、FPGA情報1221が設定されるFPGA104を構成変更する。 The first change function of the logic change processing unit 113a is executed by transmitting a control signal from the allocation processing unit 112. The logic change processing unit 113a acquires the logic ID 1212 and the FPGA information 1221 from the allocation processing unit 112. The logic change processing unit 113a modifies the FPGA 104 in which the FPGA information 1221 is set based on the logic ID 1212 and the logic storage unit 123.

ロジック変更処理部113aの第2変更機能は、FPGA104がアプリケーション50の処理から解放された場合にロジック適用スケジュール1270に示されるロジックを実装する。ロジック変更処理部113aは、アプリケーション50の処理から解放されるFPGA104があるかを判定する(S32)。 The second change function of the logic change processing unit 113a implements the logic shown in the logic application schedule 1270 when the FPGA 104 is released from the processing of the application 50. The logic change processing unit 113a determines whether or not there is an FPGA 104 released from the processing of the application 50 (S32).

処理から解放されるFPGA104がある場合(S32:Yes)には、ロジック変更処理部113aは、ロジックID1272にて示されるロジックを処理から解放されるFPGA104に実装する(S33)。 When there is an FPGA 104 released from the process (S32: Yes), the logic change processing unit 113a implements the logic indicated by the logic ID 1272 on the FPGA 104 released from the process (S33).

FPGA104がアプリケーション50の処理を実行していると判断する場合(S32:No)には、ロジック変更処理部113は、FPGA104が処理から解放されるまで待機する。なお、開始時刻1273以降もFPGA104が処理を実行していると判断した場合には、ロジック変更処理部113aの第2変更機能は、終了してもよい。 When it is determined that the FPGA 104 is executing the process of the application 50 (S32: No), the logic change processing unit 113 waits until the FPGA 104 is released from the process. If it is determined that the FPGA 104 is executing the process even after the start time 1273, the second change function of the logic change processing unit 113a may be terminated.

管理サーバ10aは、アプリケーション50の処理を実行する(S34)。FPGA104およびコンテナ105は、システム稼働履歴記憶部124に情報を送信する。 The management server 10a executes the process of the application 50 (S34). The FPGA 104 and the container 105 transmit information to the system operation history storage unit 124.

スケジュール生成処理(S30)は、予実績判定処理部115の処理(S35)に移動する。予実績判定処理部115は、システム稼働履歴記憶部124に保存されるFPGA104のロジックの変更の実績がロジック適用スケジュール1270と異なる場合に、ロジック適用スケジュール1270を再生成させる機能である。 The schedule generation process (S30) moves to the process (S35) of the forecast / performance determination processing unit 115. The forecast / actual determination processing unit 115 is a function of regenerating the logic application schedule 1270 when the actual result of the logic change of the FPGA 104 stored in the system operation history storage unit 124 is different from the logic application schedule 1270.

予実績判定処理部115は、例えば、システム稼働履歴記憶部124から、FPGA104およびコンテナ105の情報を取得する。予実績判定処理部115は、スケジュール記憶部127からロジック適用スケジュール1270を取得する(S35)。 The forecast / performance determination processing unit 115 acquires information on the FPGA 104 and the container 105 from, for example, the system operation history storage unit 124. The forecast / performance determination processing unit 115 acquires the logic application schedule 1270 from the schedule storage unit 127 (S35).

予実績判定処理部115は、例えば、各FPGA104のロジックがロジック適用スケジュール1270に沿って構成変更されたかを判定する(S36)。すなわち、予実績判定処理部115は、ロジック適用スケジュール1270と、システム稼働履歴記憶部124に保存される実績と、の差異を検出する。 The forecast / performance determination processing unit 115 determines, for example, whether the logic of each FPGA 104 has been reconfigured according to the logic application schedule 1270 (S36). That is, the forecast / actual determination processing unit 115 detects the difference between the logic application schedule 1270 and the actual result stored in the system operation history storage unit 124.

予実績判定処理部115は、ロジック適用スケジュール1270に示されるロジックID1272以外のロジックがFPGA104に実装されたことを、システム稼働履歴記憶部124から検出してもよい。 The forecast / performance determination processing unit 115 may detect from the system operation history storage unit 124 that logic other than the logic ID 1272 shown in the logic application schedule 1270 is implemented in the FPGA 104.

差異が所定の閾値以上ある場合(S36:No)には、予実績判定処理部115は、比較した結果をソリューション判定部116に送信し、スケジュール計算処理部114を実行する。所定の閾値は、ユーザによって設定されてもよい。 When the difference is equal to or greater than a predetermined threshold value (S36: No), the forecast / performance determination processing unit 115 transmits the comparison result to the solution determination unit 116, and executes the schedule calculation processing unit 114. The predetermined threshold may be set by the user.

予実績判定処理部115は、FPGA104をコンテナ105に割り当てる際に制限が加えられることによって実行されてもよい。すなわち、予実績判定処理部115は、例えば、任意のコンテナ105が任意のFPGA104を専有して利用する場合に実行されてもよい。 The forecast performance determination processing unit 115 may be executed by imposing restrictions when allocating the FPGA 104 to the container 105. That is, the forecast / performance determination processing unit 115 may be executed, for example, when an arbitrary container 105 exclusively uses an arbitrary FPGA 104.

予実績判定処理部115は、所定のタイミングで実行されてもよい。予実績判定処理部115は、例えば、任意のFPGA104が所定時間あたりに所定回数以上構成変更された場合、所定周期ごとに実行すると設定された場合、または、タスクキュー1222に保存されるタスクの数がFPGA104間で偏りが生じた場合に実行されてもよい。 The preliminary performance determination processing unit 115 may be executed at a predetermined timing. The forecast / performance determination processing unit 115 is, for example, changed the configuration of an arbitrary FPGA 104 more than a predetermined number of times per predetermined time, is set to be executed at predetermined intervals, or is the number of tasks stored in the task queue 1222. May be executed when there is a bias between FPGAs 104.

ソリューション判定部116は、予実績判定処理部115の差異の情報を取得し、スケジュール計算処理部114で使用するソリューションを選択する機能である。ソリューションの情報は、例えば、ソリューション記憶部126に複数保存される。 The solution determination unit 116 is a function of acquiring the difference information of the forecast / performance determination processing unit 115 and selecting the solution to be used by the schedule calculation processing unit 114. A plurality of solution information is stored in, for example, the solution storage unit 126.

なお、スケジュール計算処理部114は、ロジックデザイン処理部117の判定結果を参照してロジック適用スケジュール1270を算出してもよい。ロジックデザイン処理部117は、システム稼働履歴記憶部124の情報に基づいて複数のロジックを一つのFPGA104に実装可能かを判定する機能である。ロジックデザイン処理部117は、システム稼働履歴記憶部124からFPGA104に実装されたロジックの情報を複数取得する。ロジックデザイン処理部117は、一台のFPGA104に複数のロジックを実装可能か判定する。 The schedule calculation processing unit 114 may calculate the logic application schedule 1270 by referring to the determination result of the logic design processing unit 117. The logic design processing unit 117 is a function of determining whether a plurality of logics can be implemented in one FPGA 104 based on the information of the system operation history storage unit 124. The logic design processing unit 117 acquires a plurality of logic information implemented in the FPGA 104 from the system operation history storage unit 124. The logic design processing unit 117 determines whether or not a plurality of logics can be mounted on one FPGA 104.

ロジックデザイン処理部117は、具体的には、例えば、システム稼働履歴記憶部124において、「コンテナ_01」に割り当てられたFPGA104には、「モデル生成_01」と、「モデル生成_02」と、が実装されると判定する。ロジックデザイン処理部117は、「コンテナ_01」以外の他のコンテナ105においても、実装されたロジックID1244を判定する。 Specifically, for example, in the system operation history storage unit 124, the logic design processing unit 117 implements "model generation_01" and "model generation_02" in the FPGA 104 assigned to the "container_01". Judged to be done. The logic design processing unit 117 also determines the implemented logic ID 1244 in the container 105 other than the “container _01”.

各コンテナ105において「モデル生成_01」と、「モデル生成_02」と、が実装される頻度が高い場合には、ロジックデザイン処理部117は、「モデル生成_01」と、「モデル生成_02」と、を一つのFPGA104に実装できるかを判定する。すなわち、ロジックデザイン処理部117は、FPGA104の回路の実装面積と、「モデル生成_01」の回路の実装面積および「モデル生成_02」の回路の実装面積の合計と、を比較する。 When "model generation_01" and "model generation_02" are frequently implemented in each container 105, the logic design processing unit 117 displays "model generation_01" and "model generation_02". Is determined in one FPGA 104. That is, the logic design processing unit 117 compares the mounting area of the circuit of FPGA 104 with the mounting area of the circuit of "model generation_01" and the total mounting area of the circuit of "model generation_02".

「モデル生成_01」の回路の実装面積および「モデル生成_02」の回路の実装面積の合計がFPGA104の回路の実装面積よりも狭い場合には、ロジックデザイン処理部117は、一つのFPGA104に「モデル生成_01」と、「モデル生成_02」と、を実装できると判定する。ロジックデザイン処理部117は、判定結果をスケジュール計算処理部114に送信する。スケジュール計算処理部114は、取得した判定結果に基づいて、ロジック適用スケジュール1270を算出する。 When the total mounting area of the circuit of "model generation_01" and the mounting area of the circuit of "model generation_02" is smaller than the mounting area of the circuit of FPGA 104, the logic design processing unit 117 puts "model" on one FPGA 104. It is determined that "generation_01" and "model generation_02" can be implemented. The logic design processing unit 117 transmits the determination result to the schedule calculation processing unit 114. The schedule calculation processing unit 114 calculates the logic application schedule 1270 based on the acquired determination result.

これにより、スケジュール計算処理部114によって、管理サーバ10aは、アプリケーション50を実行する前に予めFPGA104を構成変更することができる。この結果、管理サーバ10aは、アプリケーション50の処理を効率的に実行する事ができる。
予実績判定処理部115によって、管理サーバ10aは、ロジック適用スケジュール1270を改善することができる。
As a result, the schedule calculation processing unit 114 allows the management server 10a to change the configuration of the FPGA 104 in advance before executing the application 50. As a result, the management server 10a can efficiently execute the processing of the application 50.
The management server 10a can improve the logic application schedule 1270 by the forecast performance determination processing unit 115.

キューイング処理部111および割当処理部112がスケジュール計算処理部114から独立していることによって、ロジック適用スケジュール1270が生成される前でも、キューイング処理部111および割当処理部112は処理をすることができる。 Since the queuing processing unit 111 and the allocation processing unit 112 are independent of the schedule calculation processing unit 114, the queuing processing unit 111 and the allocation processing unit 112 perform processing even before the logic application schedule 1270 is generated. Can be done.

ロジックデザイン処理部117によって、1台のFPGA104に複数のロジックを実装する事ができる。これにより、アプリケーション50の処理から解放されるFPGA104の数を増やすことができる。この結果、ロジック適用スケジュール1270を適用する機会を増やすことができると期待できる。 The logic design processing unit 117 can implement a plurality of logics in one FPGA 104. As a result, the number of FPGA 104 released from the processing of the application 50 can be increased. As a result, it can be expected that the chances of applying the logic application schedule 1270 can be increased.

なお、本実施形態に例示する処理フローには、不図示の処理ステップが含まれていても良いし、いくつかの処理ステップが存在しなくても良い場合もあり、いくつかの処理ステップの実行順序が入れ替わっていても良い。 Note that the processing flow exemplified in this embodiment may include processing steps (not shown) or may not have some processing steps, and execution of some processing steps. The order may be changed.

本実施形態の説明では、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアによって実現されてもよい。 In the description of the present embodiment, the process disclosed with the program as the subject may be a process performed by a computer such as a management server or an information processing device. Part or all of the program may be implemented by dedicated hardware.

各種プログラムは、プログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。この場合、プログラム配布サーバは、プロセッサと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶する。配布プログラムをプロセッサが実行することで、プログラム配布サーバのプロセッサは、配布対象のプログラムを他の計算機に配布する。 Various programs may be installed in each computer by a program distribution server or a storage medium that can be read by the computer. In this case, the program distribution server includes a processor and a storage resource, which further stores the distribution program and the program to be distributed. When the processor executes the distribution program, the processor of the program distribution server distributes the distribution target program to other computers.

ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。ある実施例の構成に他の実施例の構成を加えてもよい。各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。 Part of the configuration of one embodiment may be replaced with the configuration of another embodiment. The configuration of another embodiment may be added to the configuration of one embodiment. Other configurations may be added / deleted / replaced with respect to a part of the configurations of each embodiment.

前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。また、図示する全てのプロセッサや処理やデータや、その他のハードウェア装置や、ソフトウェアは、不図示のネットワークにより接続された、別のサーバ装置やストレージ装置上に存在していてもよいし、別のサーバ装置やストレージ装置上で実行されていても良い。 Each of the above-described configurations, functions, processing units, processing means, etc. may be realized by hardware by designing a part or all of them by, for example, an integrated circuit, and a program in which the processor realizes each function. It may be realized by software by interpreting and executing. In addition, all the processors, processes, data, other hardware devices, and software shown may be present on another server device or storage device connected by a network (not shown). It may be executed on the server device or storage device of.

10,10a,10b…管理サーバ、20(1),20(2)…操作端末、30…通信ネットワーク、40…外部記録媒体、104…FPGA、105…コンテナ、111,111b…キューイング処理部、112…割当処理部、113,113a…ロジック変更処理部、114…スケジュール計算処理部、115…予実績判定処理部、116…ソリューション判定部、117…ロジックデザイン処理部、121…タスクリスト記憶部、122…タスクキュー記憶部、123…ロジック記憶部、124…システム稼働履歴記憶部、125…スケジュール記憶部、126…ソリューション記憶部

10, 10a, 10b ... management server, 20 (1), 20 (2) ... operation terminal, 30 ... communication network, 40 ... external recording medium, 104 ... FPGA, 105 ... container, 111, 111b ... queuing processing unit, 112 ... Allocation processing unit, 113, 113a ... Logic change processing unit, 114 ... Schedule calculation processing unit, 115 ... Preliminary performance judgment processing unit, 116 ... Solution judgment processing unit 117 ... Logic design processing unit, 121 ... Task list storage unit, 122 ... Task queue storage unit, 123 ... Logic storage unit, 124 ... System operation history storage unit, 125 ... Schedule storage unit, 126 ... Solution storage unit

Claims (10)

アプリケーションプログラムを実行する仮想化環境を複数備える構成変更型集積回路の割当システムであって、
構成変更可能な複数の構成変更型集積回路と、
前記複数の構成変更型集積回路のうちの所定の構成変更型集積回路に対し、前記複数の仮想化環境のうちの所定の仮想化環境により指示される前記アプリケーションプログラムの所定の処理を割り当てるキューイング処理部と、
前記所定の仮想化環境に前記所定の構成変更型集積回路を割り当てる割当処理部と、
前記所定の構成変更型集積回路を構成変更するロジック変更処理部と、を有する
構成変更型集積回路の割当システム。
It is a configuration-changeable integrated circuit allocation system that has multiple virtualized environments for executing application programs.
Multiple reconfigurable integrated circuits and reconfigurable integrated circuits
Queuing that assigns a predetermined process of the application program instructed by a predetermined virtualization environment among the plurality of virtualized environments to a predetermined configuration-changed integrated circuit among the plurality of configuration-changed integrated circuits. Processing unit and
An allocation processing unit that allocates the predetermined configuration-changeable integrated circuit to the predetermined virtualization environment, and
A configuration change type integrated circuit allocation system having a logic change processing unit for modifying the configuration of the predetermined configuration change type integrated circuit.
前記キューイング処理部は、
前記複数の構成変更型集積回路ごとに蓄積される前記アプリケーションプログラムの処理時間を算出する機能と、
前記構成変更型集積回路の構成変更の時間を算出する機能と、
前記アプリケーションプログラムの処理時間および前記構成変更の時間を合計した実行時間を前記複数の構成変更型集積回路ごとに算出する機能と、
前記複数の構成変更型集積回路ごとの前記実行時間に基づいて第1の構成変更型集積回路を選択する機能と、
構成変更前の回路を使用して前記所定の処理を実行可能な第2の構成変更型集積回路を選択する機能と、
前記第1の構成変更型集積回路および前記第2の構成変更型集積回路を比較して前記所定の構成変更型集積回路を選択する機能と、を有する
請求項1に記載の構成変更型集積回路の割当システム。
The queuing processing unit
A function for calculating the processing time of the application program accumulated for each of the plurality of configuration-changeable integrated circuits, and
The function of calculating the configuration change time of the configuration change type integrated circuit and
A function of calculating the execution time, which is the sum of the processing time of the application program and the time of the configuration change, for each of the plurality of configuration change type integrated circuits.
A function of selecting a first configuration-modifying integrated circuit based on the execution time of each of the plurality of configuration-modifying integrated circuits, and
A function of selecting a second configuration-changed integrated circuit capable of executing the predetermined process using the circuit before the configuration change, and
The configuration-modified integrated circuit according to claim 1, which has a function of comparing the first configuration-modifying integrated circuit and the second configuration-modifying integrated circuit and selecting the predetermined configuration-modifying integrated circuit. Allocation system.
さらに、前記キューイング処理部は、
前記仮想化環境ごとの優先順位情報と、
前記優先順位情報に基づいて前記所定の処理を割り当てる機能と、を有する
請求項2に記載の構成変更型集積回路の割当システム。
Further, the queuing processing unit is
Priority information for each virtualized environment and
The configuration-modifying integrated circuit allocation system according to claim 2, further comprising a function of allocating the predetermined processing based on the priority information.
さらに、前記割当処理部は、
前記所定の構成変更型集積回路を構成変更するかを判定する機能と、
前記所定の構成変更型集積回路を構成変更するの判定結果に基づいて前記ロジック変更処理部を実行する機能と、を有する
請求項2に記載の構成変更型集積回路の割当システム。
Further, the allocation processing unit is
A function for determining whether to change the configuration of the predetermined configuration change type integrated circuit, and
The configuration change type integrated circuit allocation system according to claim 2, further comprising a function of executing the logic change processing unit based on a determination result of modifying the configuration of the predetermined configuration change type integrated circuit.
さらに、前記構成変更型集積回路の割当システムは、
前記構成変更型集積回路の割り当て実績を前記仮想化環境ごとに蓄積するシステム稼働履歴記憶部と、
前記システム稼働履歴記憶部の情報に基づいて、前記構成変更型集積回路の構成変更のスケジュールを設定するスケジュール計算処理部と、を備え、
前記ロジック変更処理部は、前記構成変更型集積回路が前記アプリケーションプログラムの処理から解放された場合に、前記スケジュールに示される回路を前記構成変更型集積回路に実装する機能を有する
請求項1に記載の構成変更型集積回路の割当システム。
Further, the configuration change type integrated circuit allocation system is
A system operation history storage unit that stores the allocation results of the configuration-changeable integrated circuit for each virtualization environment, and
A schedule calculation processing unit for setting a configuration change schedule of the configuration change type integrated circuit based on the information of the system operation history storage unit is provided.
The first aspect of claim 1, wherein the logic change processing unit has a function of mounting the circuit shown in the schedule on the configuration change type integrated circuit when the configuration change type integrated circuit is released from the processing of the application program. Configuration change type integrated circuit allocation system.
さらに、前記構成変更型集積回路の割当システムは、ロジックデザイン処理部を備え、
前記ロジックデザイン処理部は、
前記システム稼働履歴記憶部の情報に基づいて複数の回路を一つの前記構成変更型集積回路に実装可能かを判定する機能を有し、
さらに、前記スケジュール計算処理部は、
前記ロジックデザイン処理部の判定結果に基づいて前記スケジュールを算出する機能を有する
請求項5に記載の構成変更型集積回路の割当システム。
Further, the configuration change type integrated circuit allocation system includes a logic design processing unit.
The logic design processing unit
It has a function of determining whether a plurality of circuits can be mounted on one configuration-changed integrated circuit based on the information of the system operation history storage unit.
Further, the schedule calculation processing unit is
The configuration-modified integrated circuit allocation system according to claim 5, which has a function of calculating the schedule based on the determination result of the logic design processing unit.
前記構成変更型集積回路の割当システムは、
前記システム稼働履歴記憶部に保存される情報が所定数以上の場合に前記スケジュール計算処理部を実行し、
前記キューイング処理部および前記割当処理部を前記スケジュール計算処理部から独立の状態で実行させることにより前記システム稼働履歴記憶部に情報を蓄積させる
請求項5に記載の構成変更型集積回路の割当システム。
The configuration change type integrated circuit allocation system is
When the number of information stored in the system operation history storage unit is equal to or greater than a predetermined number, the schedule calculation processing unit is executed.
The configuration-modifying integrated circuit allocation system according to claim 5, wherein the queuing processing unit and the allocation processing unit are executed independently of the schedule calculation processing unit to store information in the system operation history storage unit. ..
さらに、前記構成変更型集積回路の割当システムは、予実績判定処理部を備え、
予実績判定処理部は、
前記スケジュールと、前記システム稼働履歴記憶部に保存される情報と、を比較して前記スケジュールの再設定をするか判定する機能と、
前記スケジュールの再設定の判定結果に基づき前記スケジュール計算処理部を実行する機能と、を有する
請求項5に記載の構成変更型集積回路の割当システム。
Further, the configuration change type integrated circuit allocation system includes a forecast / performance determination processing unit.
The forecast performance judgment processing unit
A function of comparing the schedule with the information stored in the system operation history storage unit to determine whether to reset the schedule.
The configuration-modifying integrated circuit allocation system according to claim 5, further comprising a function of executing the schedule calculation processing unit based on a determination result of resetting the schedule.
複数の構成変更型集積回路のうちの所定の構成変更型集積回路に対し、仮想化環境のうちの所定の仮想化環境により指示されるアプリケーションプログラムの所定の処理を割り当て、
前記所定の仮想化環境に前記所定の構成変更型集積回路を割り当て、
前記所定の構成変更型集積回路を構成変更し、
前記所定の仮想化環境にてアプリケーションプログラムの前記所定の処理を実行する、
構成変更型集積回路の割当方法。
A predetermined process of an application program instructed by a predetermined virtual environment in a virtual environment is assigned to a predetermined configuration change integrated circuit among a plurality of configuration change type integrated circuits.
Assigning the predetermined configuration-modifying integrated circuit to the predetermined virtualization environment,
The configuration of the predetermined configuration-changing integrated circuit is modified.
Execute the predetermined process of the application program in the predetermined virtual environment.
Configuration change type integrated circuit allocation method.
コンピュータを、アプリケーションプログラムを実行する仮想化環境を複数備える、構成変更型集積回路の割当システムとして機能させるためのコンピュータプログラムであって、
前記コンピュータには、構成変更可能な複数の構成変更型集積回路が備えられ、
前記コンピュータ上に、
前記複数の構成変更型集積回路のうちの所定の構成変更型集積回路に対し、前記仮想化環境のうちの所定の仮想化環境により指示される前記アプリケーションプログラムの所定の処理を割り当てるキューイング処理部と、
前記所定の仮想化環境に前記所定の構成変更型集積回路を割り当てる割当処理部と、
前記所定の構成変更型集積回路を構成変更するロジック変更処理部と、
をそれぞれ実現させるためのコンピュータプログラム。

A computer program for allowing a computer to function as an allocation system for reconfigured integrated circuits, which has a plurality of virtualized environments for executing application programs.
The computer is provided with a plurality of reconfigurable integrated circuits that can be reconfigured.
On the computer
A queuing processing unit that assigns a predetermined process of the application program instructed by a predetermined virtual environment in the virtual environment to a predetermined configuration change integrated circuit among the plurality of configuration change type integrated circuits. When,
An allocation processing unit that allocates the predetermined configuration-changeable integrated circuit to the predetermined virtualization environment, and
A logic change processing unit that changes the configuration of the predetermined configuration change type integrated circuit, and
A computer program to realize each of these.

JP2019095210A 2019-05-21 2019-05-21 Configuration changeable integrated circuit allocation system, configuration changeable integrated circuit allocation method and computer program Pending JP2020190867A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019095210A JP2020190867A (en) 2019-05-21 2019-05-21 Configuration changeable integrated circuit allocation system, configuration changeable integrated circuit allocation method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019095210A JP2020190867A (en) 2019-05-21 2019-05-21 Configuration changeable integrated circuit allocation system, configuration changeable integrated circuit allocation method and computer program

Publications (1)

Publication Number Publication Date
JP2020190867A true JP2020190867A (en) 2020-11-26

Family

ID=73454596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019095210A Pending JP2020190867A (en) 2019-05-21 2019-05-21 Configuration changeable integrated circuit allocation system, configuration changeable integrated circuit allocation method and computer program

Country Status (1)

Country Link
JP (1) JP2020190867A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022185527A1 (en) * 2021-03-05 2022-09-09 日本電信電話株式会社 Scheduling device, scheduling method, and scheduling program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022185527A1 (en) * 2021-03-05 2022-09-09 日本電信電話株式会社 Scheduling device, scheduling method, and scheduling program

Similar Documents

Publication Publication Date Title
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US11579914B2 (en) Platform independent GPU profiles for more efficient utilization of GPU resources
EP3401787B1 (en) Analyzing resource utilization of a cloud computing resource in a cloud computing environment
US9218196B2 (en) Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage
US11720408B2 (en) Method and system for assigning a virtual machine in virtual GPU enabled systems
US8838801B2 (en) Cloud optimization using workload analysis
US8291414B2 (en) Shared resource service provisioning using a virtual machine manager
US9092266B2 (en) Scalable scheduling for distributed data processing
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
US9665154B2 (en) Subsystem-level power management in a multi-node virtual machine environment
JP2005056391A (en) Method and system for balancing workload of computing environment
US20200174844A1 (en) System and method for resource partitioning in distributed computing
US11150951B2 (en) Releasable resource based preemptive scheduling
WO2021220092A1 (en) Multi-cluster container orchestration
US10275558B2 (en) Technologies for providing FPGA infrastructure-as-a-service computing capabilities
US20180227240A1 (en) Data and task reallocation in distributed computing platforms
US10057338B2 (en) Data distribution apparatus, data distribution method, and data distribution program for parallel computing processing system
CN113342477A (en) Container group deployment method, device, equipment and storage medium
US10613896B2 (en) Prioritizing I/O operations
JP2020190867A (en) Configuration changeable integrated circuit allocation system, configuration changeable integrated circuit allocation method and computer program
US20150154048A1 (en) Managing workload to provide more uniform wear among components within a computer cluster
WO2022078060A1 (en) Tag-driven scheduling of computing resources for function execution
US10929245B1 (en) Flexible scheduler for backups
JP7037059B2 (en) Resource management system and resource allocation program
WO2016092667A1 (en) Computer and interrupt control method