JP2014078214A - スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム - Google Patents

スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム Download PDF

Info

Publication number
JP2014078214A
JP2014078214A JP2013107578A JP2013107578A JP2014078214A JP 2014078214 A JP2014078214 A JP 2014078214A JP 2013107578 A JP2013107578 A JP 2013107578A JP 2013107578 A JP2013107578 A JP 2013107578A JP 2014078214 A JP2014078214 A JP 2014078214A
Authority
JP
Japan
Prior art keywords
resource
task
scheduler
processing
instruction
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
JP2013107578A
Other languages
English (en)
Inventor
Takeo Hosomi
岳生 細見
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 JP2013107578A priority Critical patent/JP2014078214A/ja
Priority to US14/787,813 priority patent/US20160110221A1/en
Priority to PCT/JP2014/001557 priority patent/WO2014188642A1/ja
Publication of JP2014078214A publication Critical patent/JP2014078214A/ja
Pending legal-status Critical Current

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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】リソースが有する処理性能を、効率良く発揮することができるスケジュールシステム等を提供する。
【解決手段】スケジュールシステム1は、リソースであるメニーコアアクセラレータ5と、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラ2を有する。
【選択図】 図1

Description

本発明は、スケジューリングを行うスケジュールシステム等に関する。
空間分割方法は、マルチプロセッサシステムにおいて、複数の独立したタスクを実行する場合におけるスケジュール方法である。図17を参照しながら、空間分割方法を採用するシステム54の構成について説明する。図17は、関連技術としての空間分割方法を採用するコンピュータシステム(計算処理システム、情報処理システム、以降、単に「システム」とも表す。)の構成を示すブロック図である。
図17を参照すると、システム54は、プロセッサ41、プロセッサ42、プロセッサ43、プロセッサ44等を有するサーバ40と、タスクスケジューラ45と、サーバリソース管理部46とを有する。
タスクスケジューラ45は、実行するタスクを入力として受け取る。次に、タスクスケジューラ45は、受け取ったタスクを実行するために必要とするプロセッサ数と、サーバリソース管理部46が保持する複数のプロセッサ(プロセッサ41乃至44)の利用状況とを参照することにより、実行に必要なプロセッサを確保する。次に、タスクスケジューラ45は、サーバリソース管理部46が有する情報を更新するとともに、タスクをサーバ40に投入する。タスクスケジューラ45は、サーバ40がタスクの実行を完了したことを検知すると、サーバリソース管理部46が有する情報を更新し、その後、該タスクを処理するために確保したプロセッサを解放する。
タスクスケジューラ45は、上述したような動作により、サーバ40が有するプロセッサ(プロセッサ41乃至44)を複数のタスクの処理に利用するため、サーバ40における処理性能が向上する。
一方、図18に示すような、上述した構成とは異なる構成を有するサーバも存在する。図18は、関連技術としてのメニーコアアクセラレータを搭載するシステムの構成を示すブロック図である。図18を参照すると、サーバ47は、ホストプロセッサ48と、ホストプロセッサ48がアクセスする主記憶装置(メインメモリ、メモリ、以降、「主メモリ」と表現する。)50と、メニーコアアクセラレータ(「マルチコアアクセラレータ」、「Many−core accelerator」、「Muti−core accelerator」、「Multiple core accelerator」とも表す。)49と、該メニーコアアクセラレータ49がアクセスするアクセラレータメモリ51とを有する。
図19を参照しながら、上述したような構成を有するサーバ47が、上述したようなタスクスケジュール技術を採用するシステムの構成について説明する。図19は、関連技術としてのメニーコアアクセラレータを搭載するシステムに対するタスクスケジューラの構成を示すブロック図である。図19を参照すると、システム55は、タスクスケジューラ52と、サーバリソース管理部53と、サーバ47とを有する。
図20は、図18に示すメニーコアアクセラレータを有するサーバが、上述したようなタスクスケジュール手法を採用する場合における処理を表す。図20は、関連技術としてのタスクスケジューラにおける処理の流れを示すフローチャート(シーケンス図)である。
図19と図20とを参照すると、タスクスケジューラ52は、実行するタスクを入力として受け取り、該タスクを実行するために必要なホストプロセッサ48とメニーコアアクセラレータ49とに関するリソース情報から、サーバリソース管理部53が管理するリソースにおける利用状況を参照することにより、タスクを処理するために必要なリソースを確保する(ステップS40)。次いで、タスクスケジューラ52は、確保したリソースを指定することにより、タスクをサーバ47に投入する(ステップS41)。タスクスケジューラ52は、サーバ47がタスクの処理を完了したことを検知すると、その後、サーバリソース管理部53に完了を検知したことを通知するとともに、該タスクを処理するために確保したリソースを解放する(ステップS42)。
図21を参照しながら、サーバ47が、一つのタスクを実行する処理について説明する。図21は、関連技術としてのメニーコアアクセラレータを搭載するシステムにおける処理の流れを示すフローチャートである。
図19と図21とを参照すると、サーバ47は、タスクスケジューラ52が投入するタスクを受け取り、その後、ホストプロセッサ48上において処理を開始する(ステップS43)。次いで、ホストプロセッサ48は、メニーコアアクセラレータ49において処理するデータを、主メモリ50からアクセラレータメモリ51に転送する。(ステップS44)。メニーコアアクセラレータ49は、ホストプロセッサ48が転送するデータを処理する(ステップS45)。その後、ホストプロセッサ48は、メニーコアアクセラレータ49が処理した結果を、アクセラレータメモリ51から主メモリ50に転送する(ステップS46)。次に、ホストプロセッサ48は、次のタスクを処理する(ステップS43、あるいは、ステップS44)。サーバ47は、ステップS43乃至ステップS46における処理を何回か繰り返すことにより、ホストプロセッサ48におけるタスクの処理を完了すると、その後、タスクスケジューラ52に、該タスクの処理が完了したことを通知する(ステップS47)。
特許文献1が開示するプログラム実行制御方法は、異種のプロセッサが混在するシステムにおいて、省電力制御を行うと共に、パフォーマンスを改良するための制御方法である。該実行制御方法は、各プロセッサが分割したタスクを同時に完了するように、クロック周波数を変更する。
特許文献2が開示するデータ処理装置は、データ処理の途中で処理を中断して別の処理を優先するとき、中断する処理の進捗状態に応じて退避・復帰に要するオーバーヘッドを少なくすることができる。
特許文献3が開示するデータ処理装置は、プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェアとが優先順位に従って処理を実施することにより、タスク切替えの処理効率をより高める。
特開2011−197803号公報 特開2010−181989号公報 特開2007−102399号公報
図19と図21とを参照しながら、メニーコアアクセラレータ49を有するサーバ47が、上述のようなタスクスケジュールシステムを採用する場合に生じる問題について説明する。
タスクスケジューラ52は、タスクを投入する際に、メニーコアアクセラレータ49におけるリソースを管理することにより、タスクをリソースに割り当て、その後、タスクを完了する際に、該割り当てたリソースを解放する。図19において、タスクスケジューラ52は、タスクを投入する際に、メニーコアアクセラレータ49のリソースを確保し、その後、タスクを完了するまで、該リソースを確保し続ける。そのため、ステップS43、あるいは、ステップS47において、ホストプロセッサ48がタスクの処理を実行する間や、ステップS44やステップS46などにおいて、ホストプロセッサ48が主メモリ50とアクセラレータメモリ51との間でデータを転送する間も、タスクスケジューラ52は該リソースを確保し続ける。
また、タスクスケジューラ52は、一連のタスクを処理するために必要なメニーコアアクセラレータ49のリソースが変化する場合において、一連のタスクを処理する最大限のリソースを、タスクを起動する際に確保する。そのため、一連のタスクにおいて、リソースの一部しか利用しない特定のタスクを処理する場合には、ステップS45において、処理を行わないリソースが存在する。上述のように、一連のタスクを処理する場合に、特定の処理を行わないリソースが存在する問題を、リソース未利用問題と表す。
一方、上記のリソース未利用問題を回避するために、メニーコアアクセラレータ49が実際に有するリソースよりも多いリソースを有するとして、タスクスケジューラ52が認識する方法も存在する。しかし、上述したような方法によりリソース未利用問題を回避する結果、メニーコアアクセラレータ49のリソースは、実際にタスクを処理するためには不十分になる。そのため、メニーコアアクセラレータ49は、タスクの処理を失敗する、あるいは、過重な負荷が加えられる。従って、結果的に、システム55が有する処理性能は低下する。
つまり、上述したような処理方法を採用するタスクスケジューラ52は、リソース未利用問題を回避することができない。そのため、メニーコアアクセラレータ49は、その処理性能が低下する、あるいは、タスクの処理を失敗する。
そこで、本発明の主たる目的は、リソースが有する処理性能を、より効率良く発揮することができるスケジュールシステム等を提供することである。
前述の目的を達成するために、本発明に係るスケジュールシステムは、以下の構成を備えることを特徴とする。
即ち、本発明に係るスケジュールシステムは、
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラを有することを特徴とする。
また、本発明の他の見地として、本発明に係るスケジュール方法は、
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定することを特徴とする。
本発明に係るスケジュールシステム等によれば、リソースが有する処理性能を、より効率良く発揮することができる。
第1の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第1の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 第2の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第2の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 第3の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第3の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 第4の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第4の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 第4の実施形態に係るスケジュールシステムにおける第2の処理の流れを示すシーケンス図である。 第5の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第5の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 第6の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第6の実施形態に係るスケジュールシステムにおける処理の流れを示すフローチャートである。 第7の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第7の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 本発明の各実施形態に係るスケジュールシステムを実現可能な計算処理装置のハードウェア構成を、概略的に示すブロック図である。 本発明に関連する空間分割方法を採用するシステムの構成を示すブロック図である。 本発明に関連するメニーコアアクセラレータを搭載するシステムの構成を示すブロック図である。 本発明に関連するメニーコアアクセラレータを搭載するシステムに対するタスクスケジューラの構成を示すブロック図である。 本発明に関連するタスクスケジューラにおける処理の流れを示すフローチャートである。 本発明に関連するメニーコアアクセラレータを搭載するシステムにおける処理の流れを示すフローチャートである。 第8の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第8の実施形態に係るスケジュールシステムにおける処理の流れを示すフローチャートである。 第9の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第9の実施形態に係るスケジュールシステムにおける処理の流れを示すフローチャートである。
次に、本発明を実施する実施形態について図面を参照して詳細に説明する。
<第1の実施形態>
第1の実施形態に係るスケジュールシステム1が有する構成と、スケジュールシステム1が行う処理とについて、図1と図2とを参照しながら詳細に説明する。図1は、第1の実施形態に係るスケジュールシステム1の構成を示すブロック図である。図2は、第1の実施形態に係るスケジュールシステム1における処理の流れを示すシーケンス図(フローチャート)である。
図1を参照すると、システム38は、コンピュータが処理する一連の処理であるタスク6に対する処理を行うサーバ3(「コンピュータ」、「計算処理装置」、「情報処理装置」とも表現する。)と、第1の実施形態に係るスケジュールシステム1とを有する。スケジュールシステム1は、スケジューラ2を有する。サーバ3は、ホストプロセッサ4(以降、単に、「プロセッサ」とも表現する。)と、メニーコアアクセラレータ5とを有する。
ホストプロセッサ4は、メニーコアアクセラレータ5に関する制御等の処理を行う。まず、ホストプロセッサ4は、タスク6の処理を開始する。次に、ホストプロセッサ4は、タスク6からリソース(メニーコアアクセラレータ5)を確保する指示(命令とも表す、以降、リソースを確保する指示を「第1指示」とも表す。)を読み取り、該読み取った第1指示に従い、スケジュールシステム1に対してリソースを確保する命令を発信する(ステップS1)。
次に、スケジューラ2は、該命令を受信した後、タスク6に対してリソースを確保すること(以降、「リソース確保」と略記する。)ができるか否かを確認する(ステップS2)。スケジューラ2は、リソース確保が可能であると判定する(ステップS2にてYESと判定)場合、リソースを確保する(ステップS3)。スケジューラ2は、リソース確保が可能でないと判定する(ステップS2にてNOと判定)場合、リソース確保が可能か否かを、再度確認する(ステップS2)。
メニーコアアクセラレータ5は、スケジューラ2が、リソース確保が可能であると判定する(ステップS2にてYESと判定)場合、タスクを実行する(ステップS4)。
スケジューラ2は、リソース確保が可能でないと判定する(ステップS2にてNOと判定)場合、上述した処理を行うことにより、リソースが解放されるのを待つ。次に、スケジューラ2は、確保したリソースを解放する(ステップS5)。
スケジュールシステム1は、例えば、オペレーティングシステムにおける1つの機能としても実現できる。スケジュールシステム1は、例えば、オペレーティングシステムと、リソースに関するパラメタ等をやり取りすることによって、上述したような処理を行うこともできる。
特許文献1乃至3のシステムは、「背景技術」にて説明したように、タスクを処理し始めて(以降、「タスク処理開始時」と表す。)から、タスクを処理し終える(以降、「タスク処理完了時」と表す。)まで、一連のタスクを処理する最大のリソースを確保し続ける。そのため、一連のタスク処理が一部のリソースのみ利用する場合において、一部のリソースは処理を行わない。
しかしながら、第1の実施形態に係るスケジュールシステム1は、タスクからの要求に応じて、リソースを確保し、その後、確保したリソースが処理を行う。その後、ホストプロセッサ4がリソースの解放を命ずることにより、スケジュールシステム1は、リソースを解放する。サーバ3が一連のタスクを処理する場合であっても、スケジュールシステム1は、タスクの処理に応じて、各タスクを処理するリソースを割り当てることができる。そのため、第1の実施形態に係るスケジュールシステム1によれば、一連のタスクを処理する場合であっても、一部のリソースしか処理を行わない状況を軽減することができる。
即ち、第1の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする第2の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図3と図4とを参照しながら、第2の実施形態に係るスケジュールシステム7が有する構成と、スケジュールシステム7が行う処理とについて説明する。図3は、発明の第2の実施形態に係るスケジュールシステム7の構成を示すブロック図である。図4は、第2の実施形態に係るスケジュールシステム7における処理の流れを示すシーケンス図である。
図3を参照すると、システム39は、スケジュールシステム7と、サーバ3とを有する。さらに、スケジュールシステム7は、スケジューラ8と、管理部9とを有する。管理部9は、メニーコアアクセラレータ5が有するリソースに関する利用状況を管理する。スケジューラ8は、リソースを確保する要求を受け取ると(ステップS1)、その後、管理部9を読み取る(ステップS6)。次に、スケジューラ8は、読み取った情報を基に、リソースを割り当てることが可能か否かを判定する(ステップS2)。
管理部9がリソースに関する利用状況を管理するため、スケジューラ8は、外部を参照することなく、リソースを割り当てることが可能か否かを判定することができる。そのため、第2の実施形態に係るスケジュールシステム7によれば、効率良く、リソースを管理することができる。更に、第2の実施形態は、第1の実施形態と同様の構成を有するため、第2の実施形態は、第1の実施形態と同様の効果を享受することができる。
即ち、第2の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
<第3の実施形態>
次に、上述した第1の実施形態を基本とする第3の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図5と図6とを参照しながら、第3の実施形態に係るスケジュールシステム10が有する構成と、スケジュールシステム10が行う処理とについて説明する。図5は、発明の第3の実施形態に係るスケジュールシステム10の構成を示すブロック図である。図6は、第3の実施形態に係るスケジュールシステム10における処理の流れを示すシーケンス図である。
図5を参照すると、スケジュールシステム10は、スケジューラ11を有する。システム56は、第1部分と第2部分とを有するタスク12に関する処理を、サーバ3にて行う。
ホストプロセッサ4は、タスク12のうち、ホストプロセッサ4にて処理する第1部分を処理する(ステップS7)。次に、ホストプロセッサ4は、第1指示に応じて、スケジューラ11にリソースを確保する命令を発する(ステップS8)。次に、スケジューラ11は、リソースを確保することが可能であると判定すると(ステップS9にてYESと判定)、その後、リソースを確保する(ステップS10)。スケジューラ11は、リソースを確保することが可能でないと判定すると(ステップS9にてNOと判定)、再び、リソースを確保することが可能であるか否かを判定する(ステップS9)。
次に、スケジューラ11が確保したリソース(メニーコアアクセラレータ5に含まれる)は、リソースにて処理をする第2部分を処理する(ステップS11)。次に、ホストプロセッサ4は、スケジューラ11が確保したリソースを解放する命令(以降、この命令を、「第2指示」と表す)を読み取るのに応じて、スケジューラ11に、リソースを解放する命令を発する(ステップS12)。スケジューラ11は、該命令を受け取ると、その後、確保したリソースを解放する(ステップS13)。
第1指示は、例えば、プロセッサ数等に関する情報を有する。スケジューラ11は、上述したプロセッサ数等に応じて、リソースの量を決定するが、必ずしも、リソースの量は、上述した数値とは同一でなくても良い。また、スケジューラ11は、確保したリソースに関する情報を送信してもよい。該確保したリソースに関する情報は、確保したプロセッサ数、あるいは、利用可能なプロセッサ番号のリスト等に関する情報を含んでも良い。
タスク12は、ホストプロセッサ4にて処理する第1部分と、第2部分を処理するリソースを確保する第1指示と、第2部分とを有する。そのため、スケジューラ11は、第2部分の処理前に必要なリソースを確保し、確保したリソースが第2部分の処理を完了した後に、該リソースを解放する。即ち、第3の実施形態に係るスケジュールシステム10は、特許文献1乃至3が開示するシステムと比較して、より細かく、リソースを管理することを可能にする。
即ち、第3の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
尚、説明の便宜上、上述した説明において、第3の実施形態は、第1の実施形態を基本としたが、第2の実施形態を基本とすることもできる。その場合であっても、第3の実施形態は、第2の実施形態と同様の効果を享受することができる。
<第4の実施形態>
次に、上述した第1の実施形態を基本とする第4の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図7と図8とを参照しながら、第4の実施形態に係るスケジュールシステム13が有する構成と、スケジュールシステム13が行う処理とについて説明する。図7は、第4の実施形態に係るスケジュールシステム13の構成を示すブロック図である。図8は、第4の実施形態に係るスケジュールシステム13における処理の流れを示すシーケンス図である。
図7を参照すると、システム57は、タスク15を処理するサーバ16と、サーバ16におけるリソースを管理するスケジュールシステム13とを有する。
サーバ16は、ホストプロセッサ18と、ホストプロセッサ18が処理するデータを記憶する主メモリ19と、メニーコアアクセラレータ17と、メニーコアアクセラレータ17が処理するデータを記憶するアクセラレータメモリ20とを有する。
スケジュールシステム13は、スケジューラ14を有する。タスク15は、上述したような第1部分と、第1指示と、第2部分との他に、主メモリ19からアクセラレータメモリ20にデータを転送する第3部分と、アクセラレータメモリ20から主メモリ19にデータを転送する第4部分とを有する。
ホストプロセッサ18は、第1部分の処理を行った後、第1指示に応じて、スケジュールシステム13に特定のリソースを確保するための要求をする(ステップS14)。スケジューラ14は、その要求を受け取った後、特定のリソースを確保する(ステップS15)。ステップS15は、図2におけるステップS2と、ステップS3とにおける一連の処理、あるいは、図4におけるステップS2と、ステップS3と、ステップS6とにおける一連の処理をひとまとめにして表現している。次に、ホストプロセッサ18は、メニーコアアクセラレータ17が処理するデータを、主メモリ19からアクセラレータメモリ20に転送する(ステップS16)。
次に、スケジューラ14が確保した特定のリソースは、第2部分を処理する(ステップS17)。次に、ホストプロセッサ18は、特定のリソースが処理したデータを、アクセラレータメモリ20から主メモリ19に転送する(ステップS18)。次に、ホストプロセッサ18は、第2指示に応じて、スケジュールシステム13に特定のリソースを解放するための要求する(ステップS19)。次に、スケジューラ14は、該要求を受け取った後、特定のリソースを解放する(ステップS20)。
第4の実施形態において、スケジューラ14は、メニーコアアクセラレータ17における処理装置の他に、アクセラレータメモリ20を確保することもできる。その場合、特定のメニーコアアクセラレータ17は、特定のアクセラレータメモリ20を参照することになる。図9を参照しながら、スケジューラ14がアクセラレータメモリ20を確保する場合の処理について説明する。図9は、第4の実施形態に係るスケジュールシステムにおける第2の処理の流れを示すシーケンス図である。
ホストプロセッサ18は、第1部分の処理を行った後、第1指示に応じて、スケジュールシステム13に特定のアクセラレータメモリ20を確保するための要求をする(ステップS30)。スケジューラ14は、その要求を受け取った後、特定のアクセラレータメモリ20を確保する(ステップS31)。次に、ホストプロセッサ18は、メニーコアアクセラレータ17が処理するデータを、主メモリ19から特定のアクセラレータメモリ20に転送する(ステップS16)。
次に、ホストプロセッサ18は、スケジュールシステム13に特定のリソースを確保するための要求をする(ステップS14)。スケジューラ14は、その要求を受け取った後、特定のリソースを確保する(ステップS15)。ステップS15は、図2におけるステップS2と、ステップS3とにおける一連の処理、あるいは、図4におけるステップS2と、ステップS3と、ステップS6とにおける一連の処理をひとまとめにして表現している。
次に、スケジューラ14が確保した特定のリソースは、第2部分を処理する(ステップS17)。次に、ホストプロセッサ18は、第2指示に応じて、スケジュールシステム13に特定のリソースを解放するための要求をする(ステップS19)。次に、スケジューラ14は、該要求を受け取った後、特定のリソースを解放する(ステップS20)。次に、ホストプロセッサ18は、特定のリソースが処理したデータを、アクセラレータメモリ20から主メモリ19に転送する(ステップS18)。
次に、ホストプロセッサ18は、スケジューラ14に、特定のアクセラレータメモリ20を解放するための要求をする(ステップS32)。次に、スケジューラ14は、該要求を受け取った後、特定のアクセラレータメモリ20を解放する(ステップS33)。
第4の実施形態に係るスケジュールシステム13は、メニーコアアクセラレータ17が処理するデータを、主メモリ19からアクセラレータメモリ20に転送するシステム57においても、有効にリソース、あるいは、アクセラレータメモリ20を管理することができる。
即ち、第4の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
尚、説明の便宜上、上述した説明において、第4の実施形態は、第1の実施形態を基本としたが、第2の実施形態、あるいは、第3の実施形態を基本とすることもできる。その場合であっても、第4の実施形態は、同様の効果を享受することができる。
<第5の実施形態>
次に、上述した第3の実施形態を基本とする第5の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第3の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図10と図11とを参照しながら、第5の実施形態に係るスケジュールシステム21が有する構成と、スケジュールシステム21が行う処理とについて説明する。図10は、第5の実施形態に係るスケジュールシステム21の構成を示すブロック図である。図11は、第5の実施形態に係るスケジュールシステム21における処理の流れを示すシーケンス図である。
図10を参照すると、システム58は、スケジュールシステム21と、タスク23を処理するサーバ3とを有する。スケジュールシステム21は、スケジューラ22を有する。タスク23は、第1部分と、第2部分とに加え、スケジューラ22が特定のリソースを確保できない場合に、メニーコアアクセラレータ5に代わり、ホストプロセッサ4が処理する第5部分とを含む。第5部分における処理は、第2部分における処理と同様である。即ち、ホストプロセッサ4が第5部分を処理した結果と、特定のリソースが第2部分を処理した結果とは一致する。
ホストプロセッサ4は、スケジューラ22がリソースを割り当てることができないと判定する(ステップS9にてNOと判定)と、その後、第5部分の処理を行う(ステップS21)。スケジューラ22は、スケジューラ22がリソースを割り当てることができると判定する(ステップS9にてYESと判定)と特定のリソースを確保する(ステップS10)。
第5の実施形態に係るスケジュールシステム21によれば、メニーコアアクセラレータ5におけるリソースの状況に応じて、メニーコアアクセラレータ5に代わり、ホストプロセッサ4でも処理を行うことができる。即ち、タスク23は、第5の実施形態に係るスケジュールシステム21により、一層、効果的に処理をすることが可能になる。
即ち、第5の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
<第6の実施形態>
次に、上述した第1の実施形態を基本とする第6の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図12と図13とを参照しながら、第6の実施形態に係るスケジュールシステム24が有する構成と、スケジュールシステム24が行う処理とについて説明する。図12は、第6の実施形態に係るスケジュールシステム24の構成を示すブロック図である。図13は、第6の実施形態に係るスケジュールシステム24における処理の流れを示すフローチャートである。
図12を参照すると、システム59は、スケジュールシステム24と、タスク6をサーバ3への投入を制御する第2タスクスケジューラ26と、サーバ3とを有する。スケジュールシステム24は、スケジューラ25を有する。
第2タスクスケジューラ26は、例えば、タスク6におけるタスク数などタスクに関連する情報を、スケジュールシステム24に通知する(ステップS23)。次に、スケジューラ25は、該受け取った情報に応じて、リソースの量を算出する(ステップS24)。例えば、スケジューラ25は、メニーコアアクセラレータ5が有する論理プロセッサ数を、第2タスクスケジューラ26がサーバ3に投入するタスク数で割った数を、リソースの量とすることや、上述のように算出した値の2倍をリソースの量とすることもできる。スケジュールシステム24がリソースの量を算出する方法は、上述した例には限定されない。
スケジュールシステム24は、リソースを割り当てる制御に利用可能な情報を、第2タスクスケジューラ26から受け取る。それにより、スケジュールシステム24は、スケジューリングの効率を、より上げることができ、メニーコアアクセラレータ5に対して適切な負荷を与えることができる。
即ち、第6の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
<第7の実施形態>
次に、上述した第2の実施形態を基本とする第7の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図14と図15とを参照しながら、第7の実施形態に係るスケジュールシステム27が有する構成と、スケジュールシステム27が行う処理とについて説明する。図14は、第7の実施形態に係るスケジュールシステム27の構成を示すブロック図である。図15は、第7の実施形態に係るスケジュールシステム27における処理の流れを示すシーケンス図である。
図14を参照すると、システム60は、スケジュールシステム27と、第2タスクスケジューラ30と、タスク6を処理するサーバ3とを有する。スケジュールシステム27は、スケジューラ28と、管理部29とを有する。
スケジューラ28は、管理部29から、メニーコアアクセラレータ5におけるリソースの負荷の状況を読み取る(ステップS25)。次に、スケジューラ28は、所定の第2閾値と該負荷を表す負荷値とを比較し、該負荷値が所定の第2閾値よりも小さいと判定する、即ち、該負荷の状況が低いと判定すると(ステップS26にてYESと判定)、より多いタスクを投入するよう第2タスクスケジューラ30に信号を送る(ステップS27)。スケジューラ28は、所定の第1閾値と該負荷を表す負荷値とを比較し、該負荷値が所定の第1閾値より大きいと判定する、即ち、該負荷の状況が高いと判定すると(ステップS26にてNOと判定)、より少ないタスクを投入するよう第2タスクスケジューラ30に信号を送る(ステップS28)。
次に、第2タスクスケジューラ30は、該信号に応じて、タスク量を調整する(ステップS29)。
スケジュールシステム27は、リソースの負荷状況について、第2タスクスケジューラ30に信号を送るため、第7の実施形態に係るスケジュールシステム27によれば、メニーコアアクセラレータ5に対して適切な負荷を与えることができる。
即ち、第7の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
<第8の実施形態>
次に、上述した第4の実施形態を基本とする第8の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第4の実施形態と同様な構成(主に、図7乃至図9)については、同一の参照番号を付すことにより、重複する説明を省略する。
図22と図23とを参照しながら、第8の実施形態に係るスケジュールシステム13が有する構成と、スケジュールシステム100が行う処理とについて説明する。図22は、第8の実施形態に係るスケジュールシステム100の構成を示すブロック図である。図23は、第8の実施形態に係るスケジュールシステム100における処理の流れを示すフローチャートである。
図22を参照すると、スケジュールシステム100は、スケジューラ102と、推奨リソース量計算部101とを有する。スケジュールシステム100は、例えば、第4の実施形態に係るメニーコアシステムと同様を表すシステム57全体の動作を司るスケジュールシステムである。
スケジュールシステム100は、ホストプロセッサ(不図示)から、メニーコアアクセラレータ(不図示)が有するリソースを確保する要求(図8及び図9におけるステップS14、以降、「リソース確保要求」と略記する)を受け取る。
まず、スケジューラ102は、受け取ったリソース確保要求を推奨リソース量計算部101に送信する。
推奨リソース量計算部101は、スケジューラ102が送信したリソース確保要求を受信し、受信したリソース確保要求に応じて、推奨リソース量を算出する。推奨リソース量計算部101は、例えば、アクセラレータメモリ20(図7にて図示)においてタスクが確保している記憶領域の容量、アクセラレータメモリ20(図7にて図示)が本来有する記憶領域の容量、アクセラレータメモリ20(図7にて図示)が有する記憶領域のうち遊休した(あるいは、「休眠した」、「アイドル」、「待機した」等とも表す。)状態にある領域の容量、該タスクが要求するリソースの量、メニーコアアクセラレータ17(図7にて図示)が本来有するリソースの量、及び、メニーコアアクセラレータ17(図7にて図示)が本来有するリソースの量のうち遊休した状態にあるリソースの量等、少なくとも1つ以上の情報を受信する。推奨リソース量計算部101は、上記の情報を必ずしも全て受信する必要はない。
ここで、「遊休した状態」とは、タスク等に対象である装置が割り当てられていない状態を表す。
次に、推奨リソース量計算部101は、受信した情報に基づき、所定のリソース算出方法に従って、推奨リソース量を算出する(ステップS151)。
例えば、推奨リソース量計算部101は、式1に従い、第1推奨リソース候補を算出する。
第1推奨リソース候補=x÷y×z・・・(式1)、
(ただし、xは、タスクが確保しているアクセラレータメモリ20における記憶領域の容量、
yは、アクセラレータメモリ20が本来有する記憶領域の容量、
zは、メニーコアアクセラレータ17における計算リソースが本来有するリソースの量(例えば、「並行して、あるいは、擬似的に並行して(以降、両者を含めて「並行して」と表す。)処理可能なスレッド数」である。)を表す)。
例えば、メニーコアアクセラレータ17が本来有するリソースの量は、コアがハイパースレッド機能を有する場合に、式2のように算出することができる。
z=「コア数」×「ハイパースレッド機能によって並列して処理可能なスレッド数」・・・(式2)、
メニーコアアクセラレータ17が本来有するリソースの量は、必ずしも、式2である必要はない。
あるいは、推奨リソース量計算部101は、式3に従い、第1推奨リソース候補を算出してもよい。
第1推奨リソース候補=x÷(x+a)×b・・・(式3)、
(ただし、xは、タスクが確保しているアクセラレータメモリ20の記憶領域の容量、
aは、アクセラレータメモリにおける遊休した状態にある領域の記憶容量、
bは、メニーコアアクセラレータ17におけるリソースのうち、遊休した状態にあるリソースの量を表す)。
推奨リソース量計算部101は、算出した第1推奨リソース候補を、推奨リソース量として算出する。
また、推奨リソース量計算部101は、受信したリソース確保要求における要求量(以降、「受信した要求量」と略記する。)と、第1推奨リソース候補とを比較し、比較した結果に応じて推奨リソース量を算出しても良い。
例えば、推奨リソース量計算部101は、受信した要求量が第1推奨リソース候補よりも大きければ、受信した要求量を推奨リソース量として算出する。一方、推奨リソース量計算部101は、第1推奨リソース候補が受信した要求量よりも小さければ、第1推奨リソース候補を推奨リソース量として算出してもよい。この場合、所定のリソース算出方法は、受信した要求量と第1推奨リソース候補とのうち、小さな値の方を推奨リソース量として算出する方法である。以降、このように算出した推奨リソース量を「第2推奨リソース候補」と表す。
さらに、推奨リソース量計算部101は、メニーコアアクセラレータ17が本来有するリソースの量と、第2推奨リソース候補とを比較し、比較した結果に応じて推奨リソース量を算出しても良い。
例えば、推奨リソース量計算部101は、メニーコアアクセラレータ17が本来有するリソースの量が第2推奨リソース候補よりも大きいと判定する場合に、第2推奨リソース候補を推奨リソース量として算出する。また、推奨リソース量計算部101は、メニーコアアクセラレータ17が本来有するリソースの量が第2推奨リソース候補よりも小さいと判定する場合に、受信した要求量と第1推奨リソース候補を比較する。推奨リソース量計算部101は、受信した要求量が第1推奨リソース候補よりも小さいと判定する場合に、受信した要求量を推奨リソース量として算出する。また、推奨リソース量計算部101は、受信した要求量が第1推奨リソース候補よりも大きいと判定する場合に、第1推奨リソース候補を推奨リソース量として算出する。
推奨リソース量計算部101は、該タスクが確保しているアクセラレータメモリ20における記憶領域の容量に関する情報を、メニーコアアクセラレータ17から読み取ってもよい。あるいは、推奨リソース量計算部101は、タスクがスケジュールシステム100に対して要求するリソース確保要求とともに、上述した領域情報を読み取ってもよい。
さらに、推奨リソース量計算部101は、スケジューラ102がアクセラレータメモリを確保すること(図9におけるステップS31)、及び、スケジューラ102がアクセラレータメモリを解放する(図9におけるステップS33)ことを表す履歴に基づいて、該タスクが確保しているアクセラレータメモリ20における記憶領域の容量を算出しても良い。
推奨リソース量計算部101は、算出した推奨リソース量をスケジューラ102に送信する。
スケジューラ102は、推奨リソース量計算部101が送信した推奨リソース量を受け取る。次に、スケジューラ102は、メニーコアアクセラレータ17が有するリソースの中から、受信した推奨リソース量に応じてリソースを確保する(ステップS152)。その後、スケジューラ102が確保したリソースは、第2部分における処理を実行する(図9におけるステップS17)。
第8の実施形態は、第4の実施形態と同様の構成を有するため、第8の実施形態は、第4の実施形態と同様の効果を享受することができる。即ち、第8の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
複数のタスクがアクセラレータメモリ20における記憶領域の容量を超えて記憶領域を確保する場合に、メニーコアアクセラレータ17は、タスクを処理する能力を有しているにもかかわらず、アクセラレータメモリ20にて処理を行うことができない。すなわち、メニーコアアクセラレータ17において、リソースが有する処理性能を、十分に発揮できない状況が生じることもある。
一方で、第8の実施形態において、推奨リソース量計算部101は、式1に示すように、タスクが確保しているアクセラレータメモリ20における記憶領域の容量に応じて、推奨リソース量を算出する。その結果、本実施形態によれば、上述したような状況を回避することができる。すなわち、第8の実施形態に係るスケジュールシステムによれば、さらに、リソースが有する処理性能を、より効率良く発揮することができる。
<第9の実施形態>
次に、上述した第8の実施形態を基本とする第9の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第8の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図24と図25とを参照しながら第9の実施形態に係るスケジュールシステム105が有する構成と、スケジュールシステム105が行う処理とについて説明する。図24は、第9の実施形態に係るスケジュールシステム105の構成を示すブロック図である。図25は、第9の実施形態に係るスケジュールシステム105における処理の流れを示すフローチャートである。
図24を参照すると、スケジュールシステム105は、スケジューラ104と、推奨リソース量計算部101と、リソース割り当て決定部103とを有する。スケジュールシステム105は、例えば、第4の実施形態に係るメニーコアシステムと同様を表すシステム57全体の動作を司るスケジュールシステムである。
リソース割り当て決定部103は、所定の選択方法に従い、スケジューラ104が確保したリソースのうち、第2部分を処理する特定のリソースを決定する(ステップS153)。例えば、リソース割り当て決定部103は、第2部分(ステップS17)を最も効率よく処理可能なリソースの組み合わせを選択することにより、特定のリソースを決定する。
例えば、リソース割り当て決定部103は、メニーコアアクセラレータ17(不図示、たとえば図7)が有する特性に応じて、効率よく処理可能なリソースの組み合わせを選択する。その場合、例えば、リソース割り当て決定部103は、第2部分を最も効率よく処理可能なリソースの組み合わせを選択する。
メニーコアアクセラレータ17が有する特性は、例えば、下記のハイパースレッド機能の特性等である。例えば、メニーコアアクセラレータ17における各コアは、4スレッドを並行して処理可能なハイパースレッド機能を有するとする。さらに、各コアは、並行して処理するスレッド数が増えるにつれ、スレッド数に見合った性能向上が得られないとする。
ここで、推奨リソース量が8(スレッド)であり、スケジューラ104が確保したリソースが4コアであるとする。この場合、2コア×4スレッド分のハイパースレッド機能によって第2部分を処理するよりも、4コア×2スレッド分のハイパースレッド機能によって第2部分を処理する場合の方が処理性能は高い。その理由は、各コアが有する上記の特性のために、並行して4スレッド分のハイパースレッド機能の方が、スレッド数に見合った性能向上が得られないためである。
すなわち、上述した例の場合に、リソース割り当て決定部103は、上記特性に基づいて、4コア×2スレッド分のハイパースレッド機能を特定のリソースとして決定する。この場合、所定の選択方法は、上記特性に基づいて、効率よく処理可能なリソースを選び出す方法である。
あるいは、リソース割り当て決定部103は、特定のリソースが有する構成と、該特定のリソースにて第2部分を処理する場合の性能とが関連付けされた情報に基づいて、最高の処理性能に関連付けされた特定のリソースを算出してよい。この場合、所定の選択方法は、上述した情報に基づいて、効率よく処理可能なリソースを選び出す方法である。
第9の実施形態は、第8の実施形態と同様の構成を有するため、第9の実施形態は、第8の実施形態と同様の効果を享受することができる。即ち、第9の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
さらに、第9の実施形態においては、リソース割り当て決定部103は、上述したように、最高の処理性能を有するリソースを特定する。そのため、第9の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、さらに効率良く発揮することができる。
(ハードウェア構成例)
上述した本発明の各実施形態におけるスケジュールシステムを、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係るスケジュールシステムは、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係るスケジュールシステムは、専用の装置として実現してもよい。
図16は、第1の実施形態乃至第9の実施形態に係る計算検索装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置31は、中央処理演算装置(Central Processing Unit、以降「CPU」と表す)32、メモリ33、ディスク34、不揮発性記録媒体35、入力装置36、および、出力装置37を有する。
不揮発性記録媒体35は、コンピュータが読み取り可能な、例えば、コンパクトディスク(Compact Disc)、デジタルバーサタイルディスク(Digital Versatile Disc)、ブルーレイディスク(Blu−ray Disc。登録商標)、ユニバーサルシリアルバスメモリ(USBメモリ)などを指しており、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体35は、上述した媒体に限定されない。また、不揮発性記録媒体35の代わりに、通信ネットワークを介して係るプログラムを持ち運びしても良い。
即ち、CPU32は、ディスク34が記憶するソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ33にコピーし、演算処理を実行する。CPU32は、プログラム実行に必要なデータをメモリ33から読み込む。表示が必要な場合には、CPU32は、出力装置37に出力結果を表示する。外部からプログラムを入力する場合、CPU32は、入力装置36からプログラムを読み取る。CPU32は、上述した図1、図3、図5、図7、図10、図12、図14、図22、あるいは、図24に示した各部が表す機能(処理)に対応するところのメモリ33にあるスケジュールプログラム(図2、図4、図6、図8、図9、図11、図13、図15、図23、図25においてスケジュールシステムが行う処理)を解釈し実行する。CPU32は、上述した本発明の各実施形態において説明した処理を順次行う。
即ち、このような場合、本発明は、係るスケジュールプログラムによっても成し得ると捉えることができる。更に、係るスケジュールプログラムが記録されたコンピュータ読み取り可能な記録媒体によっても、本発明は成し得ると捉えることができる。
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。即ち、
(付記1)
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラを有する、
スケジュールシステム。
(付記2)
前記リソースの利用状況を管理する管理部を更に備え、
前記スケジューラは、前記管理部における前記利用状況を読み取ることにより、前記特定のリソースを決定する
付記1に記載のスケジュールシステム。
(付記3)
前記タスクには、前記プロセッサにて処理する第1部分と、前記第1指示と、前記リソースにて処理する第2部分と、前記特定のリソースを解放する第2指示とが含まれ、
前記スケジューラは、前記プロセッサが前記第1部分を処理した後に、前記第1指示に応じて前記特定のリソースを確保するとともに、前記特定のリソースが前記第2部分を処理した後に、前記第2指示に応じて前記特定のリソースを解放する
付記1あるいは付記2に記載のスケジュールシステム。
(付記4)
前記計算処理装置は、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリとを更に有し、
前記タスクには、前記第1部分と、前記第1指示と、前記メモリから前記アクセラレータメモリにデータを転送する第3部分と、前記第2部分と、前記アクセラレータメモリから前記メモリにデータを転送する第4部分と、前記第2指示とが含まれ、
前記スケジューラは、前記プロセッサが行う前記第1部分の処理と、前記プロセッサが行う前記第3部分の処理との間において、前記第1指示に応じて前記特定のリソースを確保するとともに、前記プロセッサが行う前記第4部分の処理の後に、前記第2指示に応じて、前記特定のリソースを解放する
付記3に記載のスケジュールシステム。
(付記5)
前記スケジューラは、前記第1指示に応じて特定のアクセラレータメモリを確保し、その後、前記プロセッサが行う前記第3部分の処理の後に、前記特定のリソースを確保するとともに、前記特定のリソースが行う前記第2部分の処理の後に、前記第2指示に応じて、前記特定のリソースを解放し、その後、前記プロセッサが行う前記第4部分の処理の後に、前記特定のアクセラレータメモリを解放する
付記4に記載のスケジュールシステム。
(付記6)
前記タスクには、前記第2部分における処理を前記プロセッサにて実行する第5部分が更に含まれ、
前記スケジューラは、前記利用状況において、前記特定のリソースを確保できない場合に、前記プロセッサが前記第5部分の処理を行うことを決定し、前記特定のリソースを決定できる場合に、前記特定のリソースが前記第2部分の処理を行うことを決定する
付記3あるいは付記4に記載のスケジュールシステム。
(付記7)
前記タスクスケジュールシステムは、前記タスクを前記システムに割り当てる第2タスクスケジューラを更に有し、
前記スケジューラは、前記第2タスクスケジューラが前記スケジューラに通知する前記タスクに関連する情報に応じて、前記特定のリソースを決定する
付記1乃至付記7のいずれか1項に記載のスケジュールシステム。
(付記8)
前記スケジューラは、前記管理部を参照することにより、前記第2タスクスケジューラに、前記リソースの負荷が所定の第1閾値よりも大きな値である場合に前記タスクを減らし、前記リソースの負荷が所定の第2閾値より小さな値である場合に前記タスクを増やすように命令を送る
付記2乃至付記6のいずれか1項に記載のスケジュールシステム。
(付記9)
所定のリソース算出方法に従い、前記第1指示を発行した前記タスクが確保している前記アクセラレータメモリの記憶容量、前記アクセラレータメモリが本来有する記憶容量、前記アクセラレータメモリにおける遊休した状態にある領域の記憶容量、前記タスクが要求するリソースの量、または、前記メニーコアアクセラレータにおける前記リソースが本来有するリソースの量、及び、前記リソースの量のうち前記メニーコアアクセラレータにおいて遊休した状態にあるリソースの量のうち、少なくとも1つ以上の情報に基づき、所定のリソース算出方法に従い、推奨リソース量を算出する推奨リソース量計算部
を更に有し、
前記スケジューラは、前記推奨リソース量に応じて特定のリソースを確保する
付記3あるいは付記4に記載のスケジュールシステム。
(付記10)
前記特定のリソースのうち、所定の選択方法に従い、前記第2部分を処理可能なリソースを選択するリソース割り当て決定部
を更に有する付記9に記載のスケジュールシステム。
(付記11)
付記1乃至付記10に記載のスケジュールシステムを含むオペレーティングシステム。
(付記12)
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定する
スケジュール方法。
(付記13)
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラ機能を、
コンピュータに実現させるスケジュールプログラム。
1 スケジュールシステム
2 スケジューラ
3 サーバ
4 ホストプロセッサ
5 メニーコアアクセラレータ
6 タスク
7 スケジュールシステム
8 スケジューラ
9 管理部
10 スケジュールシステム
11 スケジューラ
12 タスク
13 スケジュールシステム
14 スケジューラ
15 タスク
16 サーバ
17 メニーコアアクセラレータ
18 ホストプロセッサ
19 主メモリ
20 アクセラレータメモリ
21 スケジュールシステム
22 スケジューラ
23 タスク
24 スケジュールシステム
25 スケジューラ
26 第2タスクスケジューラ
27 スケジュールシステム
28 スケジューラ
29 管理部
30 第2タスクスケジューラ
31 計算処理装置
32 CPU
33 メモリ
34 ディスク
35 不揮発性記録媒体
36 入力装置
37 出力装置
38 システム
39 システム
40 サーバ
41 プロセッサ
42 プロセッサ
43 プロセッサ
44 プロセッサ
45 タスクスケジューラ
46 サーバリソース管理部
47 サーバ
48 ホストプロセッサ
49 メニーコアアクセラレータ
50 主メモリ
51 アクセラレータメモリ
52 タスクスケジューラ
53 サーバリソース管理部
54 システム
55 システム
56 システム
57 システム
58 システム
59 システム
60 システム
100 スケジュールシステム
101 推奨リソース量計算部
102 スケジューラ
103 リソース割り当て決定部
104 スケジューラ
105 スケジュールシステム

Claims (12)

  1. リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラを有する
    スケジュールシステム。
  2. 前記リソースの利用状況を管理する管理部を更に備え、
    前記スケジューラは、前記管理部における前記利用状況を読み取ることにより、前記特定のリソースを決定する
    請求項1に記載のスケジュールシステム。
  3. 前記タスクには、前記プロセッサにて処理する第1部分と、前記第1指示と、前記リソースにて処理する第2部分と、前記特定のリソースを解放する第2指示とが含まれ、
    前記スケジューラは、前記プロセッサが前記第1部分を処理した後に、前記第1指示に応じて前記特定のリソースを確保するとともに、前記特定のリソースが前記第2部分を処理した後に、前記第2指示に応じて前記特定のリソースを解放する
    請求項1あるいは請求項2に記載のスケジュールシステム。
  4. 前記計算処理装置は、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリとを更に有し、
    前記タスクには、前記第1部分と、前記第1指示と、前記メモリから前記アクセラレータメモリにデータを転送する第3部分と、前記第2部分と、前記アクセラレータメモリから前記メモリにデータを転送する第4部分と、前記第2指示とが含まれ、
    前記スケジューラは、前記プロセッサが行う前記第1部分の処理と、前記プロセッサが行う前記第3部分の処理との間において、前記第1指示に応じて前記特定のリソースを確保するとともに、前記プロセッサが行う前記第4部分の処理の後に、前記第2指示に応じて、前記特定のリソースを解放する
    請求項3に記載のスケジュールシステム。
  5. 前記スケジューラは、前記第1指示に応じて特定のアクセラレータメモリを確保し、その後、前記プロセッサが行う前記第3部分の処理の後に、前記特定のリソースを確保するとともに、前記特定のリソースが行う前記第2部分の処理の後に、前記第2指示に応じて、前記特定のリソースを解放し、その後、前記プロセッサが行う前記第4部分の処理の後に、前記特定のアクセラレータメモリを解放する
    請求項4に記載のスケジュールシステム。
  6. 前記タスクには、前記第2部分における処理を前記プロセッサにて実行する第5部分が更に含まれ、
    前記スケジューラは、前記利用状況において、前記特定のリソースを確保できない場合に、前記プロセッサが前記第5部分の処理を行うことを決定し、前記特定のリソースを決定できる場合に、前記特定のリソースが前記第2部分の処理を行うことを決定する
    請求項3あるいは請求項4に記載のスケジュールシステム。
  7. 前記タスクスケジュールシステムは、前記タスクを前記システムに割り当てる第2タスクスケジューラを更に有し、
    前記スケジューラは、前記第2タスクスケジューラが前記スケジューラに通知する前記タスクに関連する情報に応じて、前記特定のリソースを決定する
    請求項1乃至請求項7のいずれか1項に記載のスケジュールシステム。
  8. 前記スケジューラは、前記管理部を参照することにより、前記第2タスクスケジューラに、前記リソースの負荷が所定の第1閾値よりも大きな値である場合に前記タスクを減らし、前記リソースの負荷が所定の第2閾値より小さな値である場合に前記タスクを増やすように命令を送る
    請求項2乃至請求項6のいずれか1項に記載のスケジュールシステム。
  9. 所定のリソース算出方法に従い、前記第1指示を発行した前記タスクが確保している前記アクセラレータメモリの記憶容量、前記アクセラレータメモリが本来有する記憶容量、前記アクセラレータメモリにおける遊休した状態にある領域の記憶容量、前記タスクが要求するリソースの量、または、前記メニーコアアクセラレータにおける前記リソースが本来有するリソースの量、及び、前記リソースの量のうち前記メニーコアアクセラレータにおいて遊休した状態にあるリソースの量のうち、少なくとも1つ以上の情報に基づき、所定のリソース算出方法に従い、推奨リソース量を算出する推奨リソース量計算部
    を更に有し、
    前記スケジューラは、前記推奨リソース量に応じて特定のリソースを確保する
    請求項3あるいは請求項4に記載のスケジュールシステム。
  10. 前記特定のリソースのうち、所定の選択方法に従い、前記第2部分を処理可能なリソースを選択するリソース割り当て決定部
    を更に有する請求項9に記載のスケジュールシステム。
  11. リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定する
    スケジュール方法。
  12. リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第1指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラ機能を、
    コンピュータに実現させるスケジュールプログラム。
JP2013107578A 2012-09-20 2013-05-22 スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム Pending JP2014078214A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013107578A JP2014078214A (ja) 2012-09-20 2013-05-22 スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
US14/787,813 US20160110221A1 (en) 2013-05-22 2014-03-18 Scheduling system, scheduling method, and recording medium
PCT/JP2014/001557 WO2014188642A1 (ja) 2013-05-22 2014-03-18 スケジュールシステム、スケジュール方法、及び、記録媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012207243 2012-09-20
JP2012207243 2012-09-20
JP2013107578A JP2014078214A (ja) 2012-09-20 2013-05-22 スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム

Publications (1)

Publication Number Publication Date
JP2014078214A true JP2014078214A (ja) 2014-05-01

Family

ID=50783448

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013107578A Pending JP2014078214A (ja) 2012-09-20 2013-05-22 スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
JP2013109843A Pending JP2014078215A (ja) 2012-09-20 2013-05-24 スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013109843A Pending JP2014078215A (ja) 2012-09-20 2013-05-24 スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム

Country Status (2)

Country Link
US (1) US20160077882A1 (ja)
JP (2) JP2014078214A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108287759B (zh) * 2017-01-10 2021-07-09 阿里巴巴集团控股有限公司 处理数据过程中的调度方法、装置和***
CN111782412A (zh) * 2019-04-03 2020-10-16 阿里巴巴集团控股有限公司 一种数据的获取方法、服务器及相关***
CN111459645B (zh) * 2020-04-22 2023-06-30 百度在线网络技术(北京)有限公司 一种任务调度方法、装置和电子设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249910A (ja) * 1998-02-27 1999-09-17 Hitachi Ltd 記憶サブシステム及びデータ転送制御方法
US7474670B2 (en) * 2002-07-08 2009-01-06 Brooktree Broadband Holding, Inc. Method and system for allocating bandwidth
JP3892829B2 (ja) * 2003-06-27 2007-03-14 株式会社東芝 情報処理システムおよびメモリ管理方法
JP4349188B2 (ja) * 2004-04-16 2009-10-21 ソニー株式会社 スケジューリング装置およびスケジューリング方法、並びにプログラムおよびそれを記録した媒体
JP2008535435A (ja) * 2005-04-06 2008-08-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ネットワーク・オン・チップ環境及び遅延低減方法
JP4605072B2 (ja) * 2006-01-17 2011-01-05 株式会社日立製作所 制御装置および情報システムの制御方法
JP2009093348A (ja) * 2007-10-05 2009-04-30 Hitachi Ltd 情報処理装置、及び情報処理システム
US8055872B2 (en) * 2008-02-21 2011-11-08 Arm Limited Data processor with hardware accelerator, accelerator interface and shared memory management unit
US8578026B2 (en) * 2009-06-22 2013-11-05 Citrix Systems, Inc. Systems and methods for handling limit parameters for a multi-core system
US8910153B2 (en) * 2009-07-13 2014-12-09 Hewlett-Packard Development Company, L. P. Managing virtualized accelerators using admission control, load balancing and scheduling
EP2282264A1 (en) * 2009-07-24 2011-02-09 ProximusDA GmbH Scheduling and communication in computing systems
US20120066471A1 (en) * 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Allocation of memory buffers based on preferred memory performance
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
JP5666620B2 (ja) * 2010-12-07 2015-02-12 株式会社日立製作所 ネットワークシステム、及びそのサービス品質制御方法
US8789065B2 (en) * 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
JP2012164050A (ja) * 2011-02-04 2012-08-30 Canon Inc 情報処理装置、タスク管理方法、及びプログラム
WO2012113007A1 (en) * 2011-02-22 2012-08-30 Fts Computertechnik Gmbh Predictable computing in virtualizated distributed computer systems based on partitioning of computation and communication resources
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9448846B2 (en) * 2011-12-13 2016-09-20 International Business Machines Corporation Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US9229163B2 (en) * 2012-05-18 2016-01-05 Oracle International Corporation Butterfly optical network with crossing-free switches

Also Published As

Publication number Publication date
US20160077882A1 (en) 2016-03-17
JP2014078215A (ja) 2014-05-01

Similar Documents

Publication Publication Date Title
JP5324934B2 (ja) 情報処理装置および情報処理方法
US9135060B2 (en) Method and apparatus for migrating task in multicore platform
CN102822801B (zh) 响应于服务水平协议而分配计算***功率水平
JP5770721B2 (ja) 情報処理システム
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
JP5681527B2 (ja) 電力制御装置及び電力制御方法
KR101680109B1 (ko) 복수 코어 장치 및 그의 로드 조정 방법
JP2008257578A (ja) 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
CN105051690A (zh) 使用具有客操作***及虚拟处理器的超管理器的***及方法
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
WO2016115000A1 (en) Hybrid scheduler and power manager
KR101392584B1 (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP5462529B2 (ja) タスク割当装置、および、タスク割当方法
JP5576827B2 (ja) サーバ管理システム、サーバ管理装置、サーバ管理方法、及びサーバ管理プログラム
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP5790758B2 (ja) スケジューリング方法およびスケジューリングシステム
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
WO2014188643A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
CN111143063A (zh) 任务的资源预约方法及装置
JP2015026132A (ja) リソース制御装置及び方法及びプログラム
KR20160061726A (ko) 인터럽트 핸들링 방법
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP4727480B2 (ja) 情報処理方法、情報処理システム、情報処理装置、マルチプロセッサ、情報処理プログラム及び情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体