JP5660149B2 - 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム - Google Patents

情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム Download PDF

Info

Publication number
JP5660149B2
JP5660149B2 JP2013041630A JP2013041630A JP5660149B2 JP 5660149 B2 JP5660149 B2 JP 5660149B2 JP 2013041630 A JP2013041630 A JP 2013041630A JP 2013041630 A JP2013041630 A JP 2013041630A JP 5660149 B2 JP5660149 B2 JP 5660149B2
Authority
JP
Japan
Prior art keywords
coprocessor
job
transfer amount
execution time
interface card
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.)
Expired - Fee Related
Application number
JP2013041630A
Other languages
English (en)
Other versions
JP2014170363A (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2013041630A priority Critical patent/JP5660149B2/ja
Priority to US14/196,406 priority patent/US9244740B2/en
Publication of JP2014170363A publication Critical patent/JP2014170363A/ja
Application granted granted Critical
Publication of JP5660149B2 publication Critical patent/JP5660149B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、複数のジョブのスケジューリングを行う情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラムに関する。
GPGPU(General Purpose GPU(Graphics Processing Units))に代表されるアクセラレータやコプロセッサと呼ばれる、コンピュータの演算能力を大幅に拡大するデバイスがコンピュータに複数搭載されて使われる場合がある。そのような場合、これらの複数のアクセラレータやコプロセッサを効率よく使うスケジューリング方式が求められる。
アクセラレータは、主に演算機能に焦点を置くため、アクセラレータからI/F(インタフェース)カードに対して直接I/O(Input/Output)を発行させることは難しい。そこで、GPU Directと呼ばれる機能に代表されるような、コプロセッサやアクセラレータから直接I/Fカードを経由してI/O通信を行う機能を搭載した、コプロセッサやアクセラレータが登場しつつある。
複数のジョブを複数のコプロセッサで並列して実行する場合に用いられるスケジューリング方式として、例えば、特許文献1に記載されたスケジューリング方式がある。
米国特許第2011/0173155号明細書
特許文献1に記載されたスケジューリング方式では、主にコプロセッサの使用率のみに依存したスケジューリングが行われる。従って、特許文献1に記載されたスケジューリング方式では、I/O通信を行う機能を搭載した、コプロセッサやアクセラレータを使用した場合、I/O通信がボトルネックとなってパフォーマンスを落としてしまう可能性がある。
そこで、本発明は、複数のジョブを複数のコプロセッサで並列して実行する場合に、複数のジョブの実行時間をより短縮することができる情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラムを提供することを目的とする。
本発明による情報処理装置は、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する計測部と、計測部の計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定し、複数のインタフェースカードの中から、コプロセッサが入出力するデータが経由するインタフェースカードを決定する判定部とを含み、計測部は、コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成するジョブプロファイル生成部を含み、判定部は、ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータが経由するインタフェースカードとを決定する際に、ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択することを特徴とする。
本発明によるジョブスケジューリング方法は、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測し、計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定し、複数のインタフェースカードの中から、コプロセッサが入出力するデータが経由するインタフェースカードを決定し、コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成し、ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータが経由するインタフェースカードとを決定する際に、ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択することを特徴とする。
本発明によるジョブスケジューリングプログラムは、コンピュータに、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータ経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する処理と、計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定し、複数のインタフェースカードの中から、コプロセッサが入出力するデータが経由するインタフェースカードを決定する処理と、コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成する処理と、ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータが経由するインタフェースカードとを決定する際に、ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する処理とを実行させることを特徴とする。
本発明によれば、複数のジョブを複数のコプロセッサで並列して実行する場合に、複数のジョブの実行時間をより短縮することができる。
本発明による情報処理装置の第1の実施形態の構成を示すブロック図である。 スケジューリングの実行対象となるシステムの構成の一例を示すブロック図である。 ジョブキューの一例を示す説明図である。 ジョブの構成の一例を示す説明図である。 ジョブコンフィグの一例を示す説明図である。 ジョブコンフィグの記述例を示す説明図である。 I/Oアフィニティテーブルの一例を示す説明図である。 I/O転送量情報の一例を示す説明図である。 コプロセッサ使用率情報の一例を示す説明図である。 ジョブプロファイルの一例を示す説明図である。 I/Oアフィニティテーブル生成部の配置の一例を示すブロック図である。 I/O転送量モニタの配置の一例を示すブロック図である。 コプロセッサ使用率モニタの配置の一例を示すブロック図である。 ジョブプロファイラの構成と配置の一例を示すブロック図である。 I/Oアフィニティテーブルの生成処理を示すフローチャートである。 I/O転送量モニタの動作の一例を示すフローチャートである。 コプロセッサ使用率モニタの動作を示すフローチャートである。 ジョブプロファイラの動作を示すフローチャートである。 ディスパッチ判定部およびディスパッチ実行部の動作を示すフローチャートである。 本発明による情報処理装置の最小構成を示すブロック図である。 本発明による情報処理装置の他の最小構成を示すブロック図である。
実施形態1.
以下、本発明の第1の実施形態を図面を参照して説明する。
図1は、本発明による情報処理装置の第1の実施形態の構成を示すブロック図である。
情報処理装置100は、コプロセッサ(図示せず)とI/Fカード(図示せず)とを備えるパーソナルコンピュータ等の計算機である。情報処理装置100は、ユーザによって自装置に投入される複数のジョブを、どのコプロセッサおよびI/Fカードで、どのような順番で実行すれば複数のジョブの実行時間の総和を短縮することができるかを判定する。そして、情報処理装置100は、判定の結果にもとづいてジョブのスケジューリングを行い、ジョブをコプロセッサ上で実行する。
図1に示すように、情報処理装置100は、ジョブキュー101と、ディスパッチ判定部102と、ディスパッチ実行部103と、I/Oアフィニティテーブル生成部104と、I/O転送量モニタ105と、コプロセッサ使用率モニタ106と、ジョブプロファイラ107とを含む。
ジョブキュー101は、自装置に投入されるジョブを一時的に格納しておくためのキューである。
ディスパッチ判定部102は、ジョブキュー101からジョブを取得して、取得したジョブをどのコプロセッサに割り当てるかを決定する。
ディスパッチ実行部103は、コプロセッサにジョブコマンドを出力する。それにより、ジョブコマンドに応じた処理がコプロセッサ上で実行される。
I/Oアフィニティテーブル生成部104は、I/Oアフィニティテーブルを生成する。I/Oアフィニティテーブルは、各コプロセッサと各I/Fカードの間のアフィニティ情報(以下、I/Oアフィニティ情報または通信アフィニティ情報という。)が格納されたテーブルである。I/Oアフィニティ情報は、各コプロセッサと各I/Fカードの間の通信におけるレイテンシとスループットとを示す情報である。I/Oアフィニティテーブルは、情報処理装置100が備える記憶部(図示せず)等に格納される。
I/O転送量モニタ105は、各I/Fカードのデータ転送量を計測し、現在の各I/Fカードのデータ転送量を示すI/O転送量情報を生成する。I/O転送量情報は、情報処理装置100が備える記憶部(図示せず)等に格納される。
コプロセッサ使用率モニタ106は、コプロセッサから、コプロセッサの使用率を示す情報を取得し、取得した情報をコプロセッサ使用率情報に格納する。コプロセッサ使用率情報は、情報処理装置100が備える記憶部(図示せず)等に格納される。
ジョブプロファイラ107は、ジョブプロファイルを生成する。ジョブプロファイルは、自装置に投入されたジョブの特徴を記録するための情報である。ジョブプロファイルは、情報処理装置100が備える記憶部(図示せず)等に格納される。
なお、ディスパッチ判定部102、ディスパッチ実行部103、I/Oアフィニティテーブル生成部104、I/O転送量モニタ105、コプロセッサ使用率モニタ106およびジョブプロファイラ107は、例えば、ジョブスケジューリングプログラムに従って動作するコンピュータによって実現される。この場合、CPUがジョブスケジューリングプログラムを読み込み、そのプログラムに従って、ディスパッチ判定部102、ディスパッチ実行部103、I/Oアフィニティテーブル生成部104、I/O転送量モニタ105、コプロセッサ使用率モニタ106およびジョブプロファイラ107として動作する。また、ディスパッチ判定部102、ディスパッチ実行部103、I/Oアフィニティテーブル生成部104、I/O転送量モニタ105、コプロセッサ使用率モニタ106およびジョブプロファイラ107が別々のハードウェアで実現されていてもよい。
ジョブキュー101は、情報処理装置100が備えるRAM(Random Access Memory)等の記憶装置で実現される。
図2は、スケジューリングの実行対象となるシステムの構成の一例を示すブロック図である。
図2に示すシステムでは、ノード200−1〜200−nがスイッチ260を介して接続されている。各ノードは、CPU、メモリ、I/Oなどを含む計算機である。図2に示す例では、各ノードは、CPU211〜214と、コプロセッサ215〜218と、I/Fカード219〜222とを含む。以降、CPU211〜214をホストと表現する場合がある。また、ホスト上で動作するOSをホストOS、コプロセッサ上で動作するOSをコプロセッサOSと表現する。
本実施形態では、各ノードに、本発明によるジョブスケジューリングプログラム(以下、ジョブスケジューラという。)を適用する。つまり、ジョブスケジューラが、各ノードに組み込まれ、各ノードのホストOS、コプロセッサOS上で処理を実行する。具体的には、CPUとコプロセッサとが、当該プログラムに従って、ディスパッチ判定部102、ディスパッチ実行部103、I/Oアフィニティテーブル生成部104、I/O転送量モニタ105、コプロセッサ使用率モニタ106およびジョブプロファイラ107として動作する。ジョブキュー101は、各ノードが備えるRAM等の記憶装置で実現される。
なお、図2には、1つのスイッチが例示されているが、スイッチはいくつあってもよい。また、各ノードとスイッチとの接続構成は、図2に示す接続構成に限られない。また、図2には、4つのCPUと、4つのコプロセッサと、4つのI/Fカードとが例示されているが、CPU、コプロセッサ、I/Fカードはそれぞれいくつあってもよい。また、CPU、コプロセッサ、I/Fカードの接続構成は、図2に示す接続構成に限られない。
コプロセッサ215〜218は、CPU211〜214の演算機能を補う。コプロセッサ215〜218は、例えば、拡張カード、または、ノードのマザーボード上に実装されるチップである。コプロセッサは、一般的なCPUの数倍から数十倍のコアから構成される。コプロセッサは、全コアを同時に動作させることで、CPUを単体で動作させる場合よりも、数倍から数十倍の演算能力を発揮する。コプロセッサ上では、ホストOSとは独立した、別のOSが動作する。従って、コプロセッサ215〜218は、ホストと対等な通信やジョブの実行を行うことができる。
I/Fカード219〜222は、ノード外部の他ノードやストレージと通信を行う。例えば、I/Fカード219〜222は、インフィニバンドHCA(Infiniband Host Channel Adapter)カード、ギガビットイーサネット(登録商標)HBA(Gigabit Ethernet(登録商標) Host Bus Adapter)カード、10ギガビットイーサネットHBA(10Gigabit Ethernet HBA)カードである。
スイッチ260は、ノード間を結合するためのスイッチング処理を行う。スイッチ260と各I/Fカードとは、I/Fカードがサポートするプロトコルと同一のプロトコルで接続される。例えば、I/Fカード219〜222がインフィニバンドHCAカードである場合には、スイッチ260は、インフィニバンドスイッチであって、I/Fカード219〜222とスイッチ260とは、インフィニバンドプロトコルで接続される。この場合、各ノードは、インフィニバンドプロトコルで相互に通信を行う。
ジョブスケジューラは、各ノード上で独立に動作してノード内のジョブの調整を行う。なお、実際の運用では、複数ノードでクラスタ構成をとり、ノード間のバランスを調整するジョブスケジュールと、ノード内のジョブの調整を行うジョブスケジュールとを組み合わせることが想定される。本実施形態では、ノード間のバランスを調整するジョブスケジュールは、既存のジョブスケジューラが行うものとする。
なお、本実施形態では、CPU間は、CPUバスで結合される。また、CPU−コプロセッサ間およびCPU−I/Fカード間は、PCIエクスプレス(PCI Express)(登録商標)などの標準のバスで結合される。なお、CPU間、CPU−コプロセッサ間およびCPU−I/Fカード間を結合するバスは、その他のバスであってもよい。
図3は、ジョブキュー101の一例を示す説明図である。図3に示すように、ジョブキュー101は、FIFO(First−In−First−Out)構造のバッファであって、複数のジョブを投入順に記憶する。ジョブは、例えば、ユーザからの指示によってジョブキュー101に投入される。投入されたジョブは、投入された順にジョブキュー101から取り出され、ディスパッチ判定部102およびディスパッチ実行部103によってスケジューリングされる。
図4は、ジョブの構成の一例を示す説明図である。ジョブは、ジョブを実行するためのプログラムであるジョブバイナリと、そのジョブを実行する環境を示す情報であるジョブコンフィグとを含む。ジョブコンフィグは、ユーザによって、あらかじめ記述される。ユーザからの指示に応じて、ジョブコンフィグとジョブバイナリとが組み合わされたジョブが生成され、生成されたジョブがジョブキュー101に投入される。
図5は、ジョブコンフィグの一例を示す説明図である。ジョブコンフィグは、「ジョブ名」、「ジョブ実行名」、「実行ディレクトリ」、「実行時オプション」、「I/O通信有無」、および、「使用I/F指定オプション」を示す情報を含む。
「ジョブ名」は、ジョブの名前である。「ジョブ実行名」は、ジョブの実行ファイルの名前である。「実行ディレクトリ」は、実行ファイルを実行するディレクトリである。「I/O通信有無」は、I/O通信の有無を示す。「使用I/F指定オプション」は、使用するI/Fカードを指定するためのオプションである。
図6は、ジョブコンフィグの記述例を示す説明図である。図6に示す例では、「ジョブ名」として“ジョブA”が設定されている。「ジョブ実行名」として“job.exe”が設定されている。「実行ディレクトリ」として“/tmp”が設定されている。また、「実行時オプション」として“−A −t 10”が設定されている。「使用I/F指定オプション」として“−i”が設定されている。“−i”は、ジョブAに対してI/Fカードの指定が可能であることを示す。「I/O通信有無」は、“あり(True)”に設定されている。
ディスパッチ実行部103が、I/Fカード221を指定して、図6に示すジョブAを実行する場合、ディスパッチ実行部103は、「/tmp/job.exe −A −t 10 −i IF3」というコマンドを、コプロセッサに出力する。なお、“−i”の後には、指定するI/Fカードの識別子が設定される。ここで、“IF3”は、I/Fカード221を示す識別子である。
図7は、I/Oアフィニティテーブルの一例を示す説明図である。I/Oアフィニティテーブルは、使用I/Fカードと使用コプロセッサとの組み合わせごとのI/Oアフィニティ情報を示す。図7に示す“copro1”〜“copro4”は、それぞれ、コプロセッサ215〜218に相当する。“if1”〜“if4”は、I/Fカード219〜222に相当する。
図7(a)は、各コプロセッサから各I/Fカードを指定して通信を行った場合のレイテンシを示すテーブルである。図7(b)は、各コプロセッサから各I/Fカードを指定して通信を行った場合のスループットを示すテーブルである。例えば、copro2(コプロセッサ216)からif2(I/Fカード220)を指定して通信を行った場合のレイテンシ、スループットは、それぞれ、20ns、5000MB/sである。
図8は、I/O転送量情報の一例を示す説明図である。I/O転送量情報は、各I/Fカードのデータ転送量を示す情報である。具体的には、I/O転送量情報は、各I/Fカードのデータ転送量を、最大転送量と、現在の転送量の情報とで表す。例えば、if2(I/Fカード220)の最大転送量は5000MB/sであって、現在の転送量は4500MB/sである。
図9は、コプロセッサ使用率情報の一例を示す説明図である。コプロセッサ使用率情報は、各コプロセッサに複数あるコアのうち、使用中のコア数と、使用できる最大のコア数とを示す情報を含む。図9に示す例では、copro4(コプロセッサ218)は、最大コア数50個のうち、10個のコアが使用中である。つまり、copro4の使用率は、20%(=10/50)である。
図10は、ジョブプロファイルの一例を示す説明図である。ジョブプロファイルは、ジョブ名ごとに一意な情報であって、ジョブの実行特性を表す情報を含む。図10に示す例では、ジョブの実行特性を表す情報として、データ転送量(単位:MB)、I/O発行回数(単位:回)、CPU時間(単位:秒・コア)が格納されている。CPU時間は、I/Oで消費される時間以外の時間帯で、コプロセッサ上の1コアでジョブを実行した場合にかかる時間を表す。なお、“秒・コア”は、1コアあたりの秒数を表す単位である。例えば、ジョブAは、I/O発行回数10回で計3000MBのデータ転送を行い、I/O以外の演算を1コアのみで実行した場合に521秒かかる。
図11は、I/Oアフィニティテーブル生成部104の配置の一例を示すブロック図である。
コプロセッサとCPUとは、ハードウェア(HW)レイヤにおいて、バスを介して接続される。また、I/Fカード219〜222も同じバスに接続される。
コプロセッサOS421は、システムソフトウェアレイヤにおいて、I/Fドライバ422を介してHWレイヤとのデータ送受信を行う。アプリケーションレイヤにおけるコプロセッサ側I/Oアフィニティ計測プログラム401は、コプロセッサOS421上で動作するプログラムである。コプロセッサ側I/Oアフィニティ計測プログラム401は、I/Oアフィニティ計測部402と送受信部403とを含む。
ホストOS423は、システムソフトウェアレイヤにおいて、I/Fドライバ424を介してHWレイヤとのデータ送受信を行う。アプリケーションレイヤにおけるホスト側I/Oアフィニティ計測プログラム411は、ホストOS423上で動作するプログラムである。ホスト側I/Oアフィニティ計測プログラム411は、I/Oアフィニティ計測部413と送受信部414とを含む。
コプロセッサ側I/Oアフィニティ計測プログラム401とホスト側I/Oアフィニティ計測プログラム411とは、I/Fカード219〜222を経由して相互に通信を行い、その通信におけるレイテンシやスループットを計測する。具体的には、送受信部403と送受信部414とが相互に通信を行い、I/Oアフィニティ計測部402とI/Oアフィニティ計測部413とがレイテンシやスループットを計測する。
I/Oアフィニティテーブル生成部104は、本実施形態では、ホスト側I/Oアフィニティ計測プログラム411に含まれ、ホスト側I/Oアフィニティ計測プログラム411の機能の一つとして動作する。I/Oアフィニティテーブル生成部104は、その計測結果からI/Oアフィニティテーブルを生成する。
図12は、I/O転送量モニタ105の配置の一例を示すブロック図である。
図12に示すように、本実施形態では、I/O転送量モニタ105を、ホストOS423上に配置する。つまり、I/O転送量モニタ105は、ホストOS423上で動作する。
I/O転送量モニタ105は、コプロセッサ上で動作するコプロセッサI/O転送量取得サービス501から、コプロセッサとI/Fカード間のデータ転送量を取得する。また、I/O転送量モニタ105は、ホストI/O転送量取得サービス502からコプロセッサを除くCPUとI/Fカード間のデータ転送量を取得する。コプロセッサI/O転送量取得サービス501,ホストI/O転送量取得サービス502は、コプロセッサOS421、ホストOS423からデータ転送量を取得するプログラムである。
I/O転送量モニタ105は、コプロセッサI/O転送量取得サービス501,ホストI/O転送量取得サービス502から取得した情報をもとに、各I/FカードのI/O転送量情報を更新する。
図13は、コプロセッサ使用率モニタ106の配置の一例を示すブロック図である。
図13に示すように、本実施形態では、コプロセッサ使用率モニタ106を、ホストOS423上に配置する。つまり、コプロセッサ使用率モニタ106は、ホストOS423上で動作する。
コプロセッサ使用率モニタ106は、コプロセッサOS421上で動作するコプロセッサ使用率取得サービス701からコプロセッサの使用率を取得し、コプロセッサ使用率情報を更新する。コプロセッサ使用率取得サービス701は、コプロセッサOS421からコプロセッサのコアの使用率を取得するプログラムである。
図14は、ジョブプロファイラ107の構成と配置の一例を示すブロック図である。
図14に示すように、本実施形態では、ジョブプロファイラ107をコプロセッサOS421上に配置する。つまり、ジョブプロファイラ107は、コプロセッサOS421上で動作する。具体的には、ジョブプロファイラ107は、実行時間プロファイラ601と、通信プロファイラ602と、フックライブラリ603とを含むプログラム群である。
実行時間プロファイラ601は、ジョブバイナリのCPU時間を計測する。図14に示すジョブバイナリ301は、ディスパッチ判定部102が、ジョブキュー101から取得したジョブに含まれるジョブバイナリである。
通信プロファイラ602は、ジョブのデータ転送量を計測する。
フックライブラリ603は、コプロセッサ上で動作する共有ライブラリである。フックライブラリ603は、ジョブバイナリ301と、ジョブバイナリ301が利用する共有ライブラリ606との間に入ってジョブ動作の監視を行う。これにより、通信プロファイラ602は、ジョブのデータ転送量を計測することができる。
フックライブラリ603は、API604と、通信フック部605とを含む。
API604は、ジョブバイナリ301に、ジョブプロファイラ107を共有ライブラリ606に見せかけるためのアプリケーションプログラムインタフェース(API)である。
通信フック部605は、API604を介してジョブバイナリ301のI/O通信をスヌープする(盗み見る)、つまり監視する。
図15は、I/Oアフィニティテーブルの生成処理を示すフローチャートである。I/Oアフィニティテーブルの生成は、計算機の起動時に一度だけ実行される。つまり、I/Oアフィニティテーブル生成部104は、計算機の起動時に一度だけ起動される。
計算機が起動すると、コプロセッサOS上にコプロセッサ側I/Oアフィニティ計測プログラム401がロードされる(ステップS101)。ホストOS上にもホスト側I/Oアフィニティ計測プログラム411がロードされる(ステップS102)。
両プログラムのロードが完了すると(ステップS103)、ホスト側I/Oアフィニティ計測プログラム411、コプロセッサ側I/Oアフィニティ計測プログラム401は、I/Oアフィニティの計測を開始する。
ホスト側I/Oアフィニティ計測プログラム411、コプロセッサ側I/Oアフィニティ計測プログラム401は、以降の処理(ステップS105〜S108の処理)を、全てのI/Fカード(I/Fカード219〜222)経由で行い、それぞれのI/Fカードを経由した場合のレイテンシ、スループットを計測する(ステップS104)。
まず、ホスト側I/Oアフィニティ計測プログラム411の送受信部414は、計測対象となるI/Fカードを経由させて、小さいサイズの通信パケットをコプロセッサ側I/Oアフィニティ計測プログラム401に送る。すると、I/Oアフィニティ計測部402、413が、協調して転送時間を計測してレイテンシを計測する(ステップS105)。
次に、ホスト側I/Oアフィニティ計測プログラム411が、大きいサイズの通信パケットを、コプロセッサ側I/Oアフィニティ計測プログラム401に送る。すると、I/Oアフィニティ計測部402、413が、協調して転送時間を計測してスループットを計測する(ステップS106)。
コプロセッサ側I/Oアフィニティ計測プログラム401は、逆方向のレイテンシ計測およびスループット計測、つまり、コプロセッサ側からホスト側への通信におけるレイテンシおよびスループットの計測を、ステップS105、S106の処理と同様に実行する(ステップS107、S108)。
全てのI/Fカードに対する計測が完了すると、I/Oアフィニティテーブル生成部104は、各I/Fカードから得られた計測結果を集計して、ホストとコプロセッサ間のI/Oアフィニティテーブルを更新し(ステップS109)、計測を完了する。
図16は、I/O転送量モニタ105の動作の一例を示すフローチャートである。I/O転送量モニタ105は、数秒程度の短い間隔で定期的または間欠的に、データ転送量の計測を行う。
まず、I/O転送量モニタ105は、全てのコプロセッサ(コプロセッサ215〜218)上のコプロセッサI/O転送量取得サービス501から、コプロセッサから各I/Fカードに対するデータ転送量を示す情報を取得する(ステップS201、S202)。
次に、I/O転送量モニタ105は、ホストI/O転送量取得サービス502から、ホストから各I/Fカードに対するデータ転送量を示す情報を取得する(ステップS203)。
最後に、I/O転送量モニタ105は、ホストおよび各コプロセッサから取得した転送量情報が示すデータ転送量をI/Fカードごとに積算し、I/Fカードごとのデータ転送量の総計を求める。I/O転送量モニタ105は、算出結果をもとに、I/O転送量情報を更新する(ステップS204)。
図17は、コプロセッサ使用率モニタ106の動作を示すフローチャートである。コプロセッサ使用率モニタ106は、コプロセッサのコア使用率の計測を数秒程度の短い間隔で定期的または間欠的に行う。
まず、コプロセッサ使用率モニタ106は、各コプロセッサのコプロセッサOS421上で動作するコプロセッサ使用率取得サービス701から、コプロセッサ上のコアの使用率を示す情報を取得する(ステップS301、S302)。
コプロセッサ使用率モニタ106は、全てのコプロセッサ(コプロセッサ215〜218)から情報を取得したら、コプロセッサ使用率情報を更新する(ステップS303)。
図18は、ジョブプロファイラ107の動作を示すフローチャートである。ジョブプロファイラ107は、コプロセッサ上でジョブが実行される度に、ジョブの実行時間計測、I/O計測を行う。
ジョブプロファイラ107のフックライブラリ603は、ジョブの実行時に共有ライブラリ606と共にリンクされる。実行時間プロファイラ601および通信プロファイラ602は、ジョブ実行時にジョブプロファイラ107によって起動される。
実行時間プロファイラ601は、起動すると、ジョブの実行時間のモニタを開始する(ステップS401)。また、通信プロファイラ602は、起動すると、I/O通信のモニタを開始する(ステップS402)。
ジョブが終了すると(ステップS403)、実行時間プロファイラ601は、ジョブの実行時間を集計する(ステップS404)。通信プロファイラ602は、ジョブによるデータ転送量、I/O転送回数を集計する(ステップS405)。
その後、ジョブプロファイラ107は、実行されたジョブのジョブプロファイルを更新する(ステップS406)。なお、同じジョブであっても、実行される度にCPU時間、データ転送量、I/O転送回数が変化する可能性がある。従って、本実施形態では、ジョブプロファイラ107は、あるジョブのジョブプロファイルを更新する際、過去数十回のCPU時間、データ転送量、I/O発行回数の平均を算出して、その結果をもとに更新する。
図19は、ディスパッチ判定部102およびディスパッチ実行部103の動作を示すフローチャートである。
図19に示す処理は、計算機が起動した後、ジョブキュー101にジョブが入っている間、繰り返し実行される(ステップS501)。
ディスパッチ判定部102は、ジョブキュー101からジョブを1つ取り出し(ステップS502)、ディスパッチ判定処理(ステップS503、S504の処理)を行う。
ディスパッチ判定部102は、最新のI/Oアフィニティテーブル、I/O転送量情報、コプロセッサ使用率情報、ジョブプロファイルを参照して、コプロセッサとI/Fカードとの全ての組み合わせについて、そのジョブの予想実行時間の計算を行う(ステップS503)。
コプロセッサn、I/Fカードmを使用して、ジョブを実行した場合の予想実行時間は、以下の式により求めることができる。
ジョブの予想実行時間=(ジョブのCPU時間)÷(コプロセッサnの未使用コア数)+(ジョブのデータ転送量)÷(I/Fカードmのスループット)+(ジョブのI/O発行回数)×(I/Fカードmのレイテンシ)
ディスパッチ判定部102は、コプロセッサとI/Fカードとの全ての組み合わせについて上記の予想実行時間を求め、当該全ての組み合わせの中から予想実行時間が最短である組み合わせを選択する。
コプロセッサの使用率またはI/O帯域に空きがない状態でジョブが投入された場合、1つのジョブの実行時間が極端に長くなる可能性がある。そこで、ディスパッチ判定部102は、次の方法を用いて、1つのジョブの実行時間が極端に長くなることを回避する。なお、回避方法は、その他の方法であってもよい。
ディスパッチ判定部102は、上記の式で求めたコプロセッサとI/Fカードとの全ての組み合わせのジョブの予想実行時間のうち、最短のものが十分に短い場合(ステップS504のYes)、ディスパッチ可能であると判断して次の処理に進む。そうでない場(ステップS504のNo)、一定時間待ってからステップS503の処理に戻り、再度予想実行時間の計算を行う。算出した予想実行時間が十分に短いかどうかの判定は、例えば、その予想実行時間が理想的な条件下で行われた場合の最短の実行時間の2倍を超えていないかどうかで判定すればよい。ここで、理想的な条件下とは、コプロセッサの使用率とI/O帯域とが完全に空いている状態、つまりコプロセッサの使用率とI/Fカードの転送量とがともにゼロの状態を意味する。
ディスパッチ判定部102は、ジョブをディスパッチ可能であると判断した場合、使用する予定のコプロセッサ番号とI/Fカード番号の情報とともに、当該ジョブをディスパッチ実行部103に渡す。
ディスパッチ実行部103は、ジョブコンフィグの実行時オプションと使用I/F指定オプションから、最終的な実行時オプションを作成する(ステップS505)。例えば、ディスパッチ判定部102から受け取ったI/Fカード番号が“IF3”である場合、つまり、I/Fカード221を使用することがディスパッチ判定部102によって決定されている場合には、最終的な実行時オプションは“−A −t 10 −i IF3”となる。
その後、ディスパッチ実行部103は、選択されたコプロセッサにジョブバイナリを転送し、最終的な実行時オプションを指定して、コプロセッサにジョブを実行させる(ステップS506)。例えば、上記に示す実行時オプションを指定して、コプロセッサにジョブを実行させる場合には、以下のようなコマンドをコプロセッサに出力する。
/tmp/job.exe −A −t 10 −i IF3
ディスパッチ判定部102およびディスパッチ実行部103は、ジョブが実行されると、ジョブの終了を待たずに、次のジョブに対する処理(ステップS502〜506の処理)を開始する。
以上に説明したように、本実施形態では、複数のコプロセッサと複数のI/Fカード間のI/Oアフィニティ(レイテンシ、スループット)を事前に計測し、コプロセッサの使用率とI/Fカードの使用率とI/Oアフィニティとにもとづいてジョブスケジューリングを行う。それにより、I/O帯域やI/Oレイテンシがボトルネックとなってジョブ実行時間が延びることを防止することができる。従って、複数のジョブを複数のコプロセッサで並列して実行する計算機において、複数のジョブの実行時間をより短縮することができ、計算機のパフォーマンスを向上させることができる。
また、本実施形態では、ジョブ実行時に使用するI/Fカードを指定することができる。従って、I/O帯域やI/Oレイテンシの条件が悪い条件下でジョブが実行されることを防ぐことができ、計算機のパフォーマンスを向上させることができる。
また、本実施形態では、コプロセッサが実行したジョブの実行時間など、ジョブの特徴を示す情報をジョブプロファイルとして記録する。そして、コプロセッサの使用率とI/Fカードの使用率とI/Oアフィニティとジョブプロファイルとを用いて、最短の時間でジョブを実行できるコプロセッサとI/Fカードの組み合わせを選択する。それにより、複数のジョブの実行時間をさらに短縮することができる。
また、本実施形態では、システムのI/Oアフィニティを起動時に計測する。それにより、ハードウェア構造に起因するI/O帯域やI/Oレイテンシのアフィニティのみならず、ドライバ等のソフトウェアに起因するアフィニティもスケジューリング条件に加えることができる。よって、ジョブ実行時間の見積もりの精度を向上させることができ、計算機のリソースを無駄なく使用することができる。
図20は、本発明による情報処理装置の最小構成を示すブロック図である。図21は、本発明による情報処理装置の他の最小構成を示すブロック図である。
図20に示すように、情報処理装置(図1に示す情報処理装置100に相当。)は、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する計測部10(図1に示す情報処理装置100におけるI/Oアフィニティテーブル生成部104、I/O転送量モニタ105およびコプロセッサ使用率モニタ106に相当。)と、計測部10の計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する判定部20(図1に示す情報処理装置100におけるディスパッチ判定部102およびディスパッチ実行部103に相当。)とを含む。
そのような構成によれば、I/O帯域やI/Oレイテンシがボトルネックとなってジョブ実行時間が延びることを防止することができる。
上記の実施形態には、以下のような情報処理装置も開示されている。
(1)判定部20は、計測部10の計測結果にもとづいて、複数のインタフェースカードの中から、コプロセッサが入出力するデータを経由させるインタフェースカードを決定する情報処理装置。
そのような構成によれば、I/O帯域やI/Oレイテンシの条件が悪い条件下でジョブが実行されることを防ぐことができ、計算機のパフォーマンスを向上させることができる。
(2)図21に示すように、計測部10は、各コプロセッサと各インタフェースカード間の通信のレイテンシおよびスループットを計測し、計測結果を含む通信アフィニティ情報を生成するアフィニティ計測部11(図1に示す情報処理装置100におけるI/Oアフィニティテーブル生成部104に相当。)と、各インタフェースカードのデータ転送量を計測し、計測結果を含む転送量情報を生成する転送量監視部12(図1に示す情報処理装置100におけるI/O転送量モニタ105に相当。)と、各コプロセッサからコア使用率を取得し、コプロセッサ使用率情報に格納するコプロセッサ使用率監視部13(図1に示す情報処理装置100におけるコプロセッサ使用率モニタ106に相当。)とを含み、判定部20は、計測部10から計測結果として、通信アフィニティ情報、転送量情報およびコプロセッサ使用率情報を取得する情報処理装置。
そのような構成によれば、コプロセッサの使用率とI/Fカードの使用率とI/Oアフィニティとをより正確に計測することができるので、複数のジョブの実行時間をより確実に短縮することができる。
(3)図21に示すように、計測部10は、コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成するジョブプロファイル生成部14(図1に示す情報処理装置100におけるジョブプロファイラ107に相当。)を含み、判定部20は、ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータを経由させるインタフェースカードとを決定する際に、ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する情報処理装置。
そのような構成によれば、最短の時間でジョブを実行できるコプロセッサとI/Fカードの組み合わせを選択することでき、複数のジョブの実行時間をさらに短縮することができる。また、ジョブ実行時間の見積もり精度を向上させることができ、計算機のリソースを無駄なく使用することができる。
10 計測部
11 アフィニティ計測部
12 転送量監視部
13 コプロセッサ使用率監視部
14 ジョブプロファイル生成部
20 判定部
100 情報処理装置
101 ジョブキュー
102 ディスパッチ判定部
103 ディスパッチ実行部
104 I/Oアフィニティテーブル生成部
105 I/O転送量モニタ
106 コプロセッサ使用率モニタ
107 ジョブプロファイラ
200−1〜200−n ノード
211〜214 CPU
215〜218 コプロセッサ
219〜222 I/Fカード
301 ジョブバイナリ
401 コプロセッサ側I/Oアフィニティ計測プログラム
402、413 I/Oアフィニティ計測部
403、414 送受信部
411 ホスト側I/Oアフィニティ計測プログラム
421 コプロセッサOS
422、424 I/Fドライバ
423 ホストOS
501 コプロセッサI/O転送量取得サービス
502 ホストI/O転送量取得サービス
601 実行時間プロファイラ
602 通信プロファイラ
603 フックライブラリ
604 API
605 通信フック部
606 共有ライブラリ
701 コプロセッサ使用率取得サービス

Claims (4)

  1. ジョブを実行する複数のコプロセッサの使用率と、前記コプロセッサが入出力するデータ経由する複数のインタフェースカードの使用率と、前記複数のコプロセッサと前記複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する計測部と、
    前記計測部の計測結果にもとづいて、前記複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定し、前記複数のインタフェースカードの中から、コプロセッサが入出力するデータが経由するインタフェースカードを決定する判定部とを含み、
    前記計測部は、コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成するジョブプロファイル生成部を含み、
    前記判定部は、ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータが経由するインタフェースカードとを決定する際に、前記ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する
    ことを特徴とする情報処理装置。
  2. 計測部は、各コプロセッサと各インタフェースカード間の通信のレイテンシおよびスループットを計測し、計測結果を含む通信アフィニティ情報を生成する通信アフィニティ計測部と、各インタフェースカードのデータ転送量を計測し、計測結果を含む転送量情報を生成する転送量モニタ部と、各コプロセッサからコア使用率を取得し、コプロセッサ使用率情報に格納するコプロセッサ使用率モニタ部とを含み、
    判定部は、前記計測部から計測結果として、前記通信アフィニティ情報、前記転送量情報および前記コプロセッサ使用率情報を取得する
    請求項に記載の情報処理装置。
  3. ジョブを実行する複数のコプロセッサの使用率と、前記コプロセッサが入出力するデータ経由する複数のインタフェースカードの使用率と、前記複数のコプロセッサと前記複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測し、
    計測結果にもとづいて、前記複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定し、前記複数のインタフェースカードの中から、コプロセッサが入出力するデータが経由するインタフェースカードを決定し、
    コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成し、
    ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータが経由するインタフェースカードとを決定する際に、前記ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する
    ことを特徴とするジョブスケジューリング方法。
  4. コンピュータに、
    ジョブを実行する複数のコプロセッサの使用率と、前記コプロセッサが入出力するデータ経由する複数のインタフェースカードの使用率と、前記複数のコプロセッサと前記複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する処理と、
    計測結果にもとづいて、前記複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定し、前記複数のインタフェースカードの中から、コプロセッサが入出力するデータが経由するインタフェースカードを決定する処理と、
    コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成する処理と、
    ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータが経由するインタフェースカードとを決定する際に、前記ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する処理とを実行させる
    ためのジョブスケジューリングプログラム。
JP2013041630A 2013-03-04 2013-03-04 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム Expired - Fee Related JP5660149B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013041630A JP5660149B2 (ja) 2013-03-04 2013-03-04 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
US14/196,406 US9244740B2 (en) 2013-03-04 2014-03-04 Information processing device, job scheduling method, and job scheduling program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013041630A JP5660149B2 (ja) 2013-03-04 2013-03-04 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム

Publications (2)

Publication Number Publication Date
JP2014170363A JP2014170363A (ja) 2014-09-18
JP5660149B2 true JP5660149B2 (ja) 2015-01-28

Family

ID=51421628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013041630A Expired - Fee Related JP5660149B2 (ja) 2013-03-04 2013-03-04 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム

Country Status (2)

Country Link
US (1) US9244740B2 (ja)
JP (1) JP5660149B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442760B2 (en) * 2014-10-03 2016-09-13 Microsoft Technology Licensing, Llc Job scheduling using expected server performance information
WO2016187232A1 (en) 2015-05-21 2016-11-24 Goldman, Sachs & Co. General-purpose parallel computing architecture
US11449452B2 (en) * 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US9870266B2 (en) 2015-07-30 2018-01-16 Nasdaq, Inc. Background job processing framework
US10061548B1 (en) * 2017-03-31 2018-08-28 Kyocera Documents Solutions Inc. Information processing apparatus, information processing method, and recording medium that calculate optimized driver settings by evolution strategy
US10489195B2 (en) 2017-07-20 2019-11-26 Cisco Technology, Inc. FPGA acceleration for serverless computing
JP7087649B2 (ja) 2018-05-08 2022-06-21 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441244B2 (en) * 2003-12-10 2008-10-21 International Business Machines Corporation Workload scheduler with cumulative weighting indexes
JP2007249491A (ja) * 2006-03-15 2007-09-27 Fujitsu Ltd マルチサーバ環境においてバッチジョブを分散させるプログラム、装置、および方法
JP4961833B2 (ja) * 2006-05-19 2012-06-27 日本電気株式会社 クラスタシステム、負荷分散方法、最適化クライアントプログラム、及び調停サーバプログラム
US7957948B2 (en) * 2007-08-22 2011-06-07 Hyperformit, Inc. System and method for capacity planning for systems with multithreaded multicore multiprocessor resources
JP5210730B2 (ja) * 2007-11-28 2013-06-12 株式会社日立製作所 仮想マシンモニタ及びマルチプロセッサシステム
US8375392B2 (en) 2010-01-12 2013-02-12 Nec Laboratories America, Inc. Data aware scheduling on heterogeneous platforms
JP5585140B2 (ja) * 2010-03-18 2014-09-10 富士通株式会社 仮想計算機システムの管理プログラム,管理装置及び管理方法
US20120005685A1 (en) * 2010-07-04 2012-01-05 Chen Steve S Information Processing Grid and Method for High Performance and Efficient Resource Utilization
US8990827B2 (en) * 2011-10-11 2015-03-24 Nec Laboratories America, Inc. Optimizing data warehousing applications for GPUs using dynamic stream scheduling and dispatch of fused and split kernels

Also Published As

Publication number Publication date
US20140250287A1 (en) 2014-09-04
JP2014170363A (ja) 2014-09-18
US9244740B2 (en) 2016-01-26

Similar Documents

Publication Publication Date Title
JP5660149B2 (ja) 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
JP5245722B2 (ja) スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
JP2007257097A (ja) 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
JP5408330B2 (ja) マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
JP6372262B2 (ja) 印刷装置、およびプログラム
CN114816777A (zh) 命令处理装置、方法、电子设备以及计算机可读存储介质
US9690619B2 (en) Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory
JP2020024636A (ja) スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム
JP7122299B2 (ja) 処理タスクを実行するための方法、装置、デバイス、および記憶媒体
JP6368452B2 (ja) 非同期のデバイスによって実行されるタスクのスケジューリングの向上
US9141429B2 (en) Multicore processor system, computer product, and control method
KR20160061726A (ko) 인터럽트 핸들링 방법
US9710311B2 (en) Information processing system, method of controlling information processing system, and recording medium
JP2006079394A (ja) データ処理装置
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
WO2012105000A1 (ja) プログラム実行方法
CN219642231U (zh) 一种任务分发装置和基于任务分发装置的多核异构处理器
US20230236889A1 (en) Distributed accelerator
JP2012008838A (ja) 印刷文書変換装置およびプログラム
JP5601414B2 (ja) マルチコアプロセッサシステム、制御方法、および制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141117

R150 Certificate of patent or registration of utility model

Ref document number: 5660149

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees