(57)【要約】【課題】リソースが有する処理性能を、効率良く発揮することができるスケジュールシステム等を提供する。【解決手段】スケジュールシステム１は、リソースであるメニーコアアクセラレータ５と、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラ２を有する。【選択図】      図１
2014078214.tif 000002
【特許請求の範囲】
【請求項１】
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラを有する
スケジュールシステム。
【請求項２】
前記リソースの利用状況を管理する管理部を更に備え、
前記スケジューラは、前記管理部における前記利用状況を読み取ることにより、前記特定のリソースを決定する
請求項１に記載のスケジュールシステム。
【請求項３】
前記タスクには、前記プロセッサにて処理する第１部分と、前記第１指示と、前記リソースにて処理する第２部分と、前記特定のリソースを解放する第２指示とが含まれ、
前記スケジューラは、前記プロセッサが前記第１部分を処理した後に、前記第１指示に応じて前記特定のリソースを確保するとともに、前記特定のリソースが前記第２部分を処理した後に、前記第２指示に応じて前記特定のリソースを解放する
請求項１あるいは請求項２に記載のスケジュールシステム。
【請求項４】
前記計算処理装置は、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリとを更に有し、
前記タスクには、前記第１部分と、前記第１指示と、前記メモリから前記アクセラレータメモリにデータを転送する第３部分と、前記第２部分と、前記アクセラレータメモリから前記メモリにデータを転送する第４部分と、前記第２指示とが含まれ、
前記スケジューラは、前記プロセッサが行う前記第１部分の処理と、前記プロセッサが行う前記第３部分の処理との間において、前記第１指示に応じて前記特定のリソースを確保するとともに、前記プロセッサが行う前記第４部分の処理の後に、前記第２指示に応じて、前記特定のリソースを解放する
請求項３に記載のスケジュールシステム。
【請求項５】
前記スケジューラは、前記第１指示に応じて特定のアクセラレータメモリを確保し、その後、前記プロセッサが行う前記第３部分の処理の後に、前記特定のリソースを確保するとともに、前記特定のリソースが行う前記第２部分の処理の後に、前記第２指示に応じて、前記特定のリソースを解放し、その後、前記プロセッサが行う前記第４部分の処理の後に、前記特定のアクセラレータメモリを解放する
請求項４に記載のスケジュールシステム。
【請求項６】
前記タスクには、前記第２部分における処理を前記プロセッサにて実行する第５部分が更に含まれ、
前記スケジューラは、前記利用状況において、前記特定のリソースを確保できない場合に、前記プロセッサが前記第５部分の処理を行うことを決定し、前記特定のリソースを決定できる場合に、前記特定のリソースが前記第２部分の処理を行うことを決定する
請求項３あるいは請求項４に記載のスケジュールシステム。
【請求項７】
前記タスクスケジュールシステムは、前記タスクを前記システムに割り当てる第２タスクスケジューラを更に有し、
前記スケジューラは、前記第２タスクスケジューラが前記スケジューラに通知する前記タスクに関連する情報に応じて、前記特定のリソースを決定する
請求項１乃至請求項７のいずれか１項に記載のスケジュールシステム。
【請求項８】
前記スケジューラは、前記管理部を参照することにより、前記第２タスクスケジューラに、前記リソースの負荷が所定の第１閾値よりも大きな値である場合に前記タスクを減らし、前記リソースの負荷が所定の第２閾値より小さな値である場合に前記タスクを増やすように命令を送る
請求項２乃至請求項６のいずれか１項に記載のスケジュールシステム。
【請求項９】
所定のリソース算出方法に従い、前記第１指示を発行した前記タスクが確保している前記アクセラレータメモリの記憶容量、前記アクセラレータメモリが本来有する記憶容量、前記アクセラレータメモリにおける遊休した状態にある領域の記憶容量、前記タスクが要求するリソースの量、または、前記メニーコアアクセラレータにおける前記リソースが本来有するリソースの量、及び、前記リソースの量のうち前記メニーコアアクセラレータにおいて遊休した状態にあるリソースの量のうち、少なくとも１つ以上の情報に基づき、所定のリソース算出方法に従い、推奨リソース量を算出する推奨リソース量計算部
を更に有し、
前記スケジューラは、前記推奨リソース量に応じて特定のリソースを確保する
請求項３あるいは請求項４に記載のスケジュールシステム。
【請求項１０】
前記特定のリソースのうち、所定の選択方法に従い、前記第２部分を処理可能なリソースを選択するリソース割り当て決定部
を更に有する請求項９に記載のスケジュールシステム。
【請求項１１】
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定する
スケジュール方法。
【請求項１２】
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラ機能を、
コンピュータに実現させるスケジュールプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジューリングを行うスケジュールシステム等に関する。
【背景技術】
【０００２】
空間分割方法は、マルチプロセッサシステムにおいて、複数の独立したタスクを実行する場合におけるスケジュール方法である。図１７を参照しながら、空間分割方法を採用するシステム５４の構成について説明する。図１７は、関連技術としての空間分割方法を採用するコンピュータシステム（計算処理システム、情報処理システム、以降、単に「システム」とも表す。）の構成を示すブロック図である。
【０００３】
図１７を参照すると、システム５４は、プロセッサ４１、プロセッサ４２、プロセッサ４３、プロセッサ４４等を有するサーバ４０と、タスクスケジューラ４５と、サーバリソース管理部４６とを有する。
【０００４】
タスクスケジューラ４５は、実行するタスクを入力として受け取る。次に、タスクスケジューラ４５は、受け取ったタスクを実行するために必要とするプロセッサ数と、サーバリソース管理部４６が保持する複数のプロセッサ（プロセッサ４１乃至４４）の利用状況とを参照することにより、実行に必要なプロセッサを確保する。次に、タスクスケジューラ４５は、サーバリソース管理部４６が有する情報を更新するとともに、タスクをサーバ４０に投入する。タスクスケジューラ４５は、サーバ４０がタスクの実行を完了したことを検知すると、サーバリソース管理部４６が有する情報を更新し、その後、該タスクを処理するために確保したプロセッサを解放する。
【０００５】
タスクスケジューラ４５は、上述したような動作により、サーバ４０が有するプロセッサ（プロセッサ４１乃至４４）を複数のタスクの処理に利用するため、サーバ４０における処理性能が向上する。
【０００６】
一方、図１８に示すような、上述した構成とは異なる構成を有するサーバも存在する。図１８は、関連技術としてのメニーコアアクセラレータを搭載するシステムの構成を示すブロック図である。図１８を参照すると、サーバ４７は、ホストプロセッサ４８と、ホストプロセッサ４８がアクセスする主記憶装置（メインメモリ、メモリ、以降、「主メモリ」と表現する。）５０と、メニーコアアクセラレータ（「マルチコアアクセラレータ」、「Ｍａｎｙ−ｃｏｒｅ  ａｃｃｅｌｅｒａｔｏｒ」、「Ｍｕｔｉ−ｃｏｒｅ  ａｃｃｅｌｅｒａｔｏｒ」、「Ｍｕｌｔｉｐｌｅ  ｃｏｒｅ  ａｃｃｅｌｅｒａｔｏｒ」とも表す。）４９と、該メニーコアアクセラレータ４９がアクセスするアクセラレータメモリ５１とを有する。
【０００７】
図１９を参照しながら、上述したような構成を有するサーバ４７が、上述したようなタスクスケジュール技術を採用するシステムの構成について説明する。図１９は、関連技術としてのメニーコアアクセラレータを搭載するシステムに対するタスクスケジューラの構成を示すブロック図である。図１９を参照すると、システム５５は、タスクスケジューラ５２と、サーバリソース管理部５３と、サーバ４７とを有する。
【０００８】
図２０は、図１８に示すメニーコアアクセラレータを有するサーバが、上述したようなタスクスケジュール手法を採用する場合における処理を表す。図２０は、関連技術としてのタスクスケジューラにおける処理の流れを示すフローチャート（シーケンス図）である。
【０００９】
図１９と図２０とを参照すると、タスクスケジューラ５２は、実行するタスクを入力として受け取り、該タスクを実行するために必要なホストプロセッサ４８とメニーコアアクセラレータ４９とに関するリソース情報から、サーバリソース管理部５３が管理するリソースにおける利用状況を参照することにより、タスクを処理するために必要なリソースを確保する（ステップＳ４０）。次いで、タスクスケジューラ５２は、確保したリソースを指定することにより、タスクをサーバ４７に投入する（ステップＳ４１）。タスクスケジューラ５２は、サーバ４７がタスクの処理を完了したことを検知すると、その後、サーバリソース管理部５３に完了を検知したことを通知するとともに、該タスクを処理するために確保したリソースを解放する（ステップＳ４２）。
【００１０】
図２１を参照しながら、サーバ４７が、一つのタスクを実行する処理について説明する。図２１は、関連技術としてのメニーコアアクセラレータを搭載するシステムにおける処理の流れを示すフローチャートである。
【００１１】
図１９と図２１とを参照すると、サーバ４７は、タスクスケジューラ５２が投入するタスクを受け取り、その後、ホストプロセッサ４８上において処理を開始する（ステップＳ４３）。次いで、ホストプロセッサ４８は、メニーコアアクセラレータ４９において処理するデータを、主メモリ５０からアクセラレータメモリ５１に転送する。（ステップＳ４４）。メニーコアアクセラレータ４９は、ホストプロセッサ４８が転送するデータを処理する（ステップＳ４５）。その後、ホストプロセッサ４８は、メニーコアアクセラレータ４９が処理した結果を、アクセラレータメモリ５１から主メモリ５０に転送する（ステップＳ４６）。次に、ホストプロセッサ４８は、次のタスクを処理する（ステップＳ４３、あるいは、ステップＳ４４）。サーバ４７は、ステップＳ４３乃至ステップＳ４６における処理を何回か繰り返すことにより、ホストプロセッサ４８におけるタスクの処理を完了すると、その後、タスクスケジューラ５２に、該タスクの処理が完了したことを通知する（ステップＳ４７）。
【００１２】
特許文献１が開示するプログラム実行制御方法は、異種のプロセッサが混在するシステムにおいて、省電力制御を行うと共に、パフォーマンスを改良するための制御方法である。該実行制御方法は、各プロセッサが分割したタスクを同時に完了するように、クロック周波数を変更する。
【００１３】
特許文献２が開示するデータ処理装置は、データ処理の途中で処理を中断して別の処理を優先するとき、中断する処理の進捗状態に応じて退避・復帰に要するオーバーヘッドを少なくすることができる。
【００１４】
特許文献３が開示するデータ処理装置は、プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェアとが優先順位に従って処理を実施することにより、タスク切替えの処理効率をより高める。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１１−１９７８０３号公報
【特許文献２】特開２０１０−１８１９８９号公報
【特許文献３】特開２００７−１０２３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
図１９と図２１とを参照しながら、メニーコアアクセラレータ４９を有するサーバ４７が、上述のようなタスクスケジュールシステムを採用する場合に生じる問題について説明する。
【００１７】
タスクスケジューラ５２は、タスクを投入する際に、メニーコアアクセラレータ４９におけるリソースを管理することにより、タスクをリソースに割り当て、その後、タスクを完了する際に、該割り当てたリソースを解放する。図１９において、タスクスケジューラ５２は、タスクを投入する際に、メニーコアアクセラレータ４９のリソースを確保し、その後、タスクを完了するまで、該リソースを確保し続ける。そのため、ステップＳ４３、あるいは、ステップＳ４７において、ホストプロセッサ４８がタスクの処理を実行する間や、ステップＳ４４やステップＳ４６などにおいて、ホストプロセッサ４８が主メモリ５０とアクセラレータメモリ５１との間でデータを転送する間も、タスクスケジューラ５２は該リソースを確保し続ける。
【００１８】
また、タスクスケジューラ５２は、一連のタスクを処理するために必要なメニーコアアクセラレータ４９のリソースが変化する場合において、一連のタスクを処理する最大限のリソースを、タスクを起動する際に確保する。そのため、一連のタスクにおいて、リソースの一部しか利用しない特定のタスクを処理する場合には、ステップＳ４５において、処理を行わないリソースが存在する。上述のように、一連のタスクを処理する場合に、特定の処理を行わないリソースが存在する問題を、リソース未利用問題と表す。
【００１９】
一方、上記のリソース未利用問題を回避するために、メニーコアアクセラレータ４９が実際に有するリソースよりも多いリソースを有するとして、タスクスケジューラ５２が認識する方法も存在する。しかし、上述したような方法によりリソース未利用問題を回避する結果、メニーコアアクセラレータ４９のリソースは、実際にタスクを処理するためには不十分になる。そのため、メニーコアアクセラレータ４９は、タスクの処理を失敗する、あるいは、過重な負荷が加えられる。従って、結果的に、システム５５が有する処理性能は低下する。
【００２０】
つまり、上述したような処理方法を採用するタスクスケジューラ５２は、リソース未利用問題を回避することができない。そのため、メニーコアアクセラレータ４９は、その処理性能が低下する、あるいは、タスクの処理を失敗する。
【００２１】
そこで、本発明の主たる目的は、リソースが有する処理性能を、より効率良く発揮することができるスケジュールシステム等を提供することである。
【課題を解決するための手段】
【００２２】
前述の目的を達成するために、本発明に係るスケジュールシステムは、以下の構成を備えることを特徴とする。
【００２３】
即ち、本発明に係るスケジュールシステムは、
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラを有することを特徴とする。
【００２４】
また、本発明の他の見地として、本発明に係るスケジュール方法は、
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定することを特徴とする。
【発明の効果】
【００２５】
本発明に係るスケジュールシステム等によれば、リソースが有する処理性能を、より効率良く発揮することができる。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図２】第１の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。
【図３】第２の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図４】第２の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。
【図５】第３の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図６】第３の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。
【図７】第４の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図８】第４の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。
【図９】第４の実施形態に係るスケジュールシステムにおける第２の処理の流れを示すシーケンス図である。
【図１０】第５の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図１１】第５の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。
【図１２】第６の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図１３】第６の実施形態に係るスケジュールシステムにおける処理の流れを示すフローチャートである。
【図１４】第７の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図１５】第７の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。
【図１６】本発明の各実施形態に係るスケジュールシステムを実現可能な計算処理装置のハードウェア構成を、概略的に示すブロック図である。
【図１７】本発明に関連する空間分割方法を採用するシステムの構成を示すブロック図である。
【図１８】本発明に関連するメニーコアアクセラレータを搭載するシステムの構成を示すブロック図である。
【図１９】本発明に関連するメニーコアアクセラレータを搭載するシステムに対するタスクスケジューラの構成を示すブロック図である。
【図２０】本発明に関連するタスクスケジューラにおける処理の流れを示すフローチャートである。
【図２１】本発明に関連するメニーコアアクセラレータを搭載するシステムにおける処理の流れを示すフローチャートである。
【図２２】第８の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図２３】第８の実施形態に係るスケジュールシステムにおける処理の流れを示すフローチャートである。
【図２４】第９の実施形態に係るスケジュールシステムの構成を示すブロック図である。
【図２５】第９の実施形態に係るスケジュールシステムにおける処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２７】
次に、本発明を実施する実施形態について図面を参照して詳細に説明する。
【００２８】
＜第１の実施形態＞
第１の実施形態に係るスケジュールシステム１が有する構成と、スケジュールシステム１が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、第１の実施形態に係るスケジュールシステム１の構成を示すブロック図である。図２は、第１の実施形態に係るスケジュールシステム１における処理の流れを示すシーケンス図（フローチャート）である。
【００２９】
図１を参照すると、システム３８は、コンピュータが処理する一連の処理であるタスク６に対する処理を行うサーバ３（「コンピュータ」、「計算処理装置」、「情報処理装置」とも表現する。）と、第１の実施形態に係るスケジュールシステム１とを有する。スケジュールシステム１は、スケジューラ２を有する。サーバ３は、ホストプロセッサ４（以降、単に、「プロセッサ」とも表現する。）と、メニーコアアクセラレータ５とを有する。
【００３０】
ホストプロセッサ４は、メニーコアアクセラレータ５に関する制御等の処理を行う。まず、ホストプロセッサ４は、タスク６の処理を開始する。次に、ホストプロセッサ４は、タスク６からリソース（メニーコアアクセラレータ５）を確保する指示（命令とも表す、以降、リソースを確保する指示を「第１指示」とも表す。）を読み取り、該読み取った第１指示に従い、スケジュールシステム１に対してリソースを確保する命令を発信する（ステップＳ１）。
【００３１】
次に、スケジューラ２は、該命令を受信した後、タスク６に対してリソースを確保すること（以降、「リソース確保」と略記する。）ができるか否かを確認する（ステップＳ２）。スケジューラ２は、リソース確保が可能であると判定する（ステップＳ２にてＹＥＳと判定）場合、リソースを確保する（ステップＳ３）。スケジューラ２は、リソース確保が可能でないと判定する（ステップＳ２にてＮＯと判定）場合、リソース確保が可能か否かを、再度確認する（ステップＳ２）。
【００３２】
メニーコアアクセラレータ５は、スケジューラ２が、リソース確保が可能であると判定する（ステップＳ２にてＹＥＳと判定）場合、タスクを実行する（ステップＳ４）。
【００３３】
スケジューラ２は、リソース確保が可能でないと判定する（ステップＳ２にてＮＯと判定）場合、上述した処理を行うことにより、リソースが解放されるのを待つ。次に、スケジューラ２は、確保したリソースを解放する（ステップＳ５）。
【００３４】
スケジュールシステム１は、例えば、オペレーティングシステムにおける１つの機能としても実現できる。スケジュールシステム１は、例えば、オペレーティングシステムと、リソースに関するパラメタ等をやり取りすることによって、上述したような処理を行うこともできる。
【００３５】
特許文献１乃至３のシステムは、「背景技術」にて説明したように、タスクを処理し始めて（以降、「タスク処理開始時」と表す。）から、タスクを処理し終える（以降、「タスク処理完了時」と表す。）まで、一連のタスクを処理する最大のリソースを確保し続ける。そのため、一連のタスク処理が一部のリソースのみ利用する場合において、一部のリソースは処理を行わない。
【００３６】
しかしながら、第１の実施形態に係るスケジュールシステム１は、タスクからの要求に応じて、リソースを確保し、その後、確保したリソースが処理を行う。その後、ホストプロセッサ４がリソースの解放を命ずることにより、スケジュールシステム１は、リソースを解放する。サーバ３が一連のタスクを処理する場合であっても、スケジュールシステム１は、タスクの処理に応じて、各タスクを処理するリソースを割り当てることができる。そのため、第１の実施形態に係るスケジュールシステム１によれば、一連のタスクを処理する場合であっても、一部のリソースしか処理を行わない状況を軽減することができる。
【００３７】
即ち、第１の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【００３８】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。
【００３９】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４０】
図３と図４とを参照しながら、第２の実施形態に係るスケジュールシステム７が有する構成と、スケジュールシステム７が行う処理とについて説明する。図３は、発明の第２の実施形態に係るスケジュールシステム７の構成を示すブロック図である。図４は、第２の実施形態に係るスケジュールシステム７における処理の流れを示すシーケンス図である。
【００４１】
図３を参照すると、システム３９は、スケジュールシステム７と、サーバ３とを有する。さらに、スケジュールシステム７は、スケジューラ８と、管理部９とを有する。管理部９は、メニーコアアクセラレータ５が有するリソースに関する利用状況を管理する。スケジューラ８は、リソースを確保する要求を受け取ると（ステップＳ１）、その後、管理部９を読み取る（ステップＳ６）。次に、スケジューラ８は、読み取った情報を基に、リソースを割り当てることが可能か否かを判定する（ステップＳ２）。
【００４２】
管理部９がリソースに関する利用状況を管理するため、スケジューラ８は、外部を参照することなく、リソースを割り当てることが可能か否かを判定することができる。そのため、第２の実施形態に係るスケジュールシステム７によれば、効率良く、リソースを管理することができる。更に、第２の実施形態は、第１の実施形態と同様の構成を有するため、第２の実施形態は、第１の実施形態と同様の効果を享受することができる。
【００４３】
即ち、第２の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【００４４】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする第３の実施形態について説明する。
【００４５】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４６】
図５と図６とを参照しながら、第３の実施形態に係るスケジュールシステム１０が有する構成と、スケジュールシステム１０が行う処理とについて説明する。図５は、発明の第３の実施形態に係るスケジュールシステム１０の構成を示すブロック図である。図６は、第３の実施形態に係るスケジュールシステム１０における処理の流れを示すシーケンス図である。
【００４７】
図５を参照すると、スケジュールシステム１０は、スケジューラ１１を有する。システム５６は、第１部分と第２部分とを有するタスク１２に関する処理を、サーバ３にて行う。
【００４８】
ホストプロセッサ４は、タスク１２のうち、ホストプロセッサ４にて処理する第１部分を処理する（ステップＳ７）。次に、ホストプロセッサ４は、第１指示に応じて、スケジューラ１１にリソースを確保する命令を発する（ステップＳ８）。次に、スケジューラ１１は、リソースを確保することが可能であると判定すると（ステップＳ９にてＹＥＳと判定）、その後、リソースを確保する（ステップＳ１０）。スケジューラ１１は、リソースを確保することが可能でないと判定すると（ステップＳ９にてＮＯと判定）、再び、リソースを確保することが可能であるか否かを判定する（ステップＳ９）。
【００４９】
次に、スケジューラ１１が確保したリソース（メニーコアアクセラレータ５に含まれる）は、リソースにて処理をする第２部分を処理する（ステップＳ１１）。次に、ホストプロセッサ４は、スケジューラ１１が確保したリソースを解放する命令（以降、この命令を、「第２指示」と表す）を読み取るのに応じて、スケジューラ１１に、リソースを解放する命令を発する（ステップＳ１２）。スケジューラ１１は、該命令を受け取ると、その後、確保したリソースを解放する（ステップＳ１３）。
【００５０】
第１指示は、例えば、プロセッサ数等に関する情報を有する。スケジューラ１１は、上述したプロセッサ数等に応じて、リソースの量を決定するが、必ずしも、リソースの量は、上述した数値とは同一でなくても良い。また、スケジューラ１１は、確保したリソースに関する情報を送信してもよい。該確保したリソースに関する情報は、確保したプロセッサ数、あるいは、利用可能なプロセッサ番号のリスト等に関する情報を含んでも良い。
【００５１】
タスク１２は、ホストプロセッサ４にて処理する第１部分と、第２部分を処理するリソースを確保する第１指示と、第２部分とを有する。そのため、スケジューラ１１は、第２部分の処理前に必要なリソースを確保し、確保したリソースが第２部分の処理を完了した後に、該リソースを解放する。即ち、第３の実施形態に係るスケジュールシステム１０は、特許文献１乃至３が開示するシステムと比較して、より細かく、リソースを管理することを可能にする。
【００５２】
即ち、第３の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【００５３】
尚、説明の便宜上、上述した説明において、第３の実施形態は、第１の実施形態を基本としたが、第２の実施形態を基本とすることもできる。その場合であっても、第３の実施形態は、第２の実施形態と同様の効果を享受することができる。
【００５４】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする第４の実施形態について説明する。
【００５５】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００５６】
図７と図８とを参照しながら、第４の実施形態に係るスケジュールシステム１３が有する構成と、スケジュールシステム１３が行う処理とについて説明する。図７は、第４の実施形態に係るスケジュールシステム１３の構成を示すブロック図である。図８は、第４の実施形態に係るスケジュールシステム１３における処理の流れを示すシーケンス図である。
【００５７】
図７を参照すると、システム５７は、タスク１５を処理するサーバ１６と、サーバ１６におけるリソースを管理するスケジュールシステム１３とを有する。
【００５８】
サーバ１６は、ホストプロセッサ１８と、ホストプロセッサ１８が処理するデータを記憶する主メモリ１９と、メニーコアアクセラレータ１７と、メニーコアアクセラレータ１７が処理するデータを記憶するアクセラレータメモリ２０とを有する。
【００５９】
スケジュールシステム１３は、スケジューラ１４を有する。タスク１５は、上述したような第１部分と、第１指示と、第２部分との他に、主メモリ１９からアクセラレータメモリ２０にデータを転送する第３部分と、アクセラレータメモリ２０から主メモリ１９にデータを転送する第４部分とを有する。
【００６０】
ホストプロセッサ１８は、第１部分の処理を行った後、第１指示に応じて、スケジュールシステム１３に特定のリソースを確保するための要求をする（ステップＳ１４）。スケジューラ１４は、その要求を受け取った後、特定のリソースを確保する（ステップＳ１５）。ステップＳ１５は、図２におけるステップＳ２と、ステップＳ３とにおける一連の処理、あるいは、図４におけるステップＳ２と、ステップＳ３と、ステップＳ６とにおける一連の処理をひとまとめにして表現している。次に、ホストプロセッサ１８は、メニーコアアクセラレータ１７が処理するデータを、主メモリ１９からアクセラレータメモリ２０に転送する（ステップＳ１６）。
【００６１】
次に、スケジューラ１４が確保した特定のリソースは、第２部分を処理する（ステップＳ１７）。次に、ホストプロセッサ１８は、特定のリソースが処理したデータを、アクセラレータメモリ２０から主メモリ１９に転送する（ステップＳ１８）。次に、ホストプロセッサ１８は、第２指示に応じて、スケジュールシステム１３に特定のリソースを解放するための要求する（ステップＳ１９）。次に、スケジューラ１４は、該要求を受け取った後、特定のリソースを解放する（ステップＳ２０）。
【００６２】
第４の実施形態において、スケジューラ１４は、メニーコアアクセラレータ１７における処理装置の他に、アクセラレータメモリ２０を確保することもできる。その場合、特定のメニーコアアクセラレータ１７は、特定のアクセラレータメモリ２０を参照することになる。図９を参照しながら、スケジューラ１４がアクセラレータメモリ２０を確保する場合の処理について説明する。図９は、第４の実施形態に係るスケジュールシステムにおける第２の処理の流れを示すシーケンス図である。
【００６３】
ホストプロセッサ１８は、第１部分の処理を行った後、第１指示に応じて、スケジュールシステム１３に特定のアクセラレータメモリ２０を確保するための要求をする（ステップＳ３０）。スケジューラ１４は、その要求を受け取った後、特定のアクセラレータメモリ２０を確保する（ステップＳ３１）。次に、ホストプロセッサ１８は、メニーコアアクセラレータ１７が処理するデータを、主メモリ１９から特定のアクセラレータメモリ２０に転送する（ステップＳ１６）。
【００６４】
次に、ホストプロセッサ１８は、スケジュールシステム１３に特定のリソースを確保するための要求をする（ステップＳ１４）。スケジューラ１４は、その要求を受け取った後、特定のリソースを確保する（ステップＳ１５）。ステップＳ１５は、図２におけるステップＳ２と、ステップＳ３とにおける一連の処理、あるいは、図４におけるステップＳ２と、ステップＳ３と、ステップＳ６とにおける一連の処理をひとまとめにして表現している。
【００６５】
次に、スケジューラ１４が確保した特定のリソースは、第２部分を処理する（ステップＳ１７）。次に、ホストプロセッサ１８は、第２指示に応じて、スケジュールシステム１３に特定のリソースを解放するための要求をする（ステップＳ１９）。次に、スケジューラ１４は、該要求を受け取った後、特定のリソースを解放する（ステップＳ２０）。次に、ホストプロセッサ１８は、特定のリソースが処理したデータを、アクセラレータメモリ２０から主メモリ１９に転送する（ステップＳ１８）。
【００６６】
次に、ホストプロセッサ１８は、スケジューラ１４に、特定のアクセラレータメモリ２０を解放するための要求をする（ステップＳ３２）。次に、スケジューラ１４は、該要求を受け取った後、特定のアクセラレータメモリ２０を解放する（ステップＳ３３）。
【００６７】
第４の実施形態に係るスケジュールシステム１３は、メニーコアアクセラレータ１７が処理するデータを、主メモリ１９からアクセラレータメモリ２０に転送するシステム５７においても、有効にリソース、あるいは、アクセラレータメモリ２０を管理することができる。
【００６８】
即ち、第４の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【００６９】
尚、説明の便宜上、上述した説明において、第４の実施形態は、第１の実施形態を基本としたが、第２の実施形態、あるいは、第３の実施形態を基本とすることもできる。その場合であっても、第４の実施形態は、同様の効果を享受することができる。
【００７０】
＜第５の実施形態＞
次に、上述した第３の実施形態を基本とする第５の実施形態について説明する。
【００７１】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第３の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００７２】
図１０と図１１とを参照しながら、第５の実施形態に係るスケジュールシステム２１が有する構成と、スケジュールシステム２１が行う処理とについて説明する。図１０は、第５の実施形態に係るスケジュールシステム２１の構成を示すブロック図である。図１１は、第５の実施形態に係るスケジュールシステム２１における処理の流れを示すシーケンス図である。
【００７３】
図１０を参照すると、システム５８は、スケジュールシステム２１と、タスク２３を処理するサーバ３とを有する。スケジュールシステム２１は、スケジューラ２２を有する。タスク２３は、第１部分と、第２部分とに加え、スケジューラ２２が特定のリソースを確保できない場合に、メニーコアアクセラレータ５に代わり、ホストプロセッサ４が処理する第５部分とを含む。第５部分における処理は、第２部分における処理と同様である。即ち、ホストプロセッサ４が第５部分を処理した結果と、特定のリソースが第２部分を処理した結果とは一致する。
【００７４】
ホストプロセッサ４は、スケジューラ２２がリソースを割り当てることができないと判定する（ステップＳ９にてＮＯと判定）と、その後、第５部分の処理を行う（ステップＳ２１）。スケジューラ２２は、スケジューラ２２がリソースを割り当てることができると判定する（ステップＳ９にてＹＥＳと判定）と特定のリソースを確保する（ステップＳ１０）。
【００７５】
第５の実施形態に係るスケジュールシステム２１によれば、メニーコアアクセラレータ５におけるリソースの状況に応じて、メニーコアアクセラレータ５に代わり、ホストプロセッサ４でも処理を行うことができる。即ち、タスク２３は、第５の実施形態に係るスケジュールシステム２１により、一層、効果的に処理をすることが可能になる。
【００７６】
即ち、第５の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【００７７】
＜第６の実施形態＞
次に、上述した第１の実施形態を基本とする第６の実施形態について説明する。
【００７８】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００７９】
図１２と図１３とを参照しながら、第６の実施形態に係るスケジュールシステム２４が有する構成と、スケジュールシステム２４が行う処理とについて説明する。図１２は、第６の実施形態に係るスケジュールシステム２４の構成を示すブロック図である。図１３は、第６の実施形態に係るスケジュールシステム２４における処理の流れを示すフローチャートである。
【００８０】
図１２を参照すると、システム５９は、スケジュールシステム２４と、タスク６をサーバ３への投入を制御する第２タスクスケジューラ２６と、サーバ３とを有する。スケジュールシステム２４は、スケジューラ２５を有する。
【００８１】
第２タスクスケジューラ２６は、例えば、タスク６におけるタスク数などタスクに関連する情報を、スケジュールシステム２４に通知する（ステップＳ２３）。次に、スケジューラ２５は、該受け取った情報に応じて、リソースの量を算出する（ステップＳ２４）。例えば、スケジューラ２５は、メニーコアアクセラレータ５が有する論理プロセッサ数を、第２タスクスケジューラ２６がサーバ３に投入するタスク数で割った数を、リソースの量とすることや、上述のように算出した値の２倍をリソースの量とすることもできる。スケジュールシステム２４がリソースの量を算出する方法は、上述した例には限定されない。
【００８２】
スケジュールシステム２４は、リソースを割り当てる制御に利用可能な情報を、第２タスクスケジューラ２６から受け取る。それにより、スケジュールシステム２４は、スケジューリングの効率を、より上げることができ、メニーコアアクセラレータ５に対して適切な負荷を与えることができる。
【００８３】
即ち、第６の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【００８４】
＜第７の実施形態＞
次に、上述した第２の実施形態を基本とする第７の実施形態について説明する。
【００８５】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００８６】
図１４と図１５とを参照しながら、第７の実施形態に係るスケジュールシステム２７が有する構成と、スケジュールシステム２７が行う処理とについて説明する。図１４は、第７の実施形態に係るスケジュールシステム２７の構成を示すブロック図である。図１５は、第７の実施形態に係るスケジュールシステム２７における処理の流れを示すシーケンス図である。
【００８７】
図１４を参照すると、システム６０は、スケジュールシステム２７と、第２タスクスケジューラ３０と、タスク６を処理するサーバ３とを有する。スケジュールシステム２７は、スケジューラ２８と、管理部２９とを有する。
【００８８】
スケジューラ２８は、管理部２９から、メニーコアアクセラレータ５におけるリソースの負荷の状況を読み取る（ステップＳ２５）。次に、スケジューラ２８は、所定の第２閾値と該負荷を表す負荷値とを比較し、該負荷値が所定の第２閾値よりも小さいと判定する、即ち、該負荷の状況が低いと判定すると（ステップＳ２６にてＹＥＳと判定）、より多いタスクを投入するよう第２タスクスケジューラ３０に信号を送る（ステップＳ２７）。スケジューラ２８は、所定の第１閾値と該負荷を表す負荷値とを比較し、該負荷値が所定の第１閾値より大きいと判定する、即ち、該負荷の状況が高いと判定すると（ステップＳ２６にてＮＯと判定）、より少ないタスクを投入するよう第２タスクスケジューラ３０に信号を送る（ステップＳ２８）。
【００８９】
次に、第２タスクスケジューラ３０は、該信号に応じて、タスク量を調整する（ステップＳ２９）。
【００９０】
スケジュールシステム２７は、リソースの負荷状況について、第２タスクスケジューラ３０に信号を送るため、第７の実施形態に係るスケジュールシステム２７によれば、メニーコアアクセラレータ５に対して適切な負荷を与えることができる。
【００９１】
即ち、第７の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【００９２】
＜第８の実施形態＞
次に、上述した第４の実施形態を基本とする第８の実施形態について説明する。
【００９３】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第４の実施形態と同様な構成（主に、図７乃至図９）については、同一の参照番号を付すことにより、重複する説明を省略する。
【００９４】
図２２と図２３とを参照しながら、第８の実施形態に係るスケジュールシステム１３が有する構成と、スケジュールシステム１００が行う処理とについて説明する。図２２は、第８の実施形態に係るスケジュールシステム１００の構成を示すブロック図である。図２３は、第８の実施形態に係るスケジュールシステム１００における処理の流れを示すフローチャートである。
【００９５】
図２２を参照すると、スケジュールシステム１００は、スケジューラ１０２と、推奨リソース量計算部１０１とを有する。スケジュールシステム１００は、例えば、第４の実施形態に係るメニーコアシステムと同様を表すシステム５７全体の動作を司るスケジュールシステムである。
【００９６】
スケジュールシステム１００は、ホストプロセッサ（不図示）から、メニーコアアクセラレータ（不図示）が有するリソースを確保する要求（図８及び図９におけるステップＳ１４、以降、「リソース確保要求」と略記する）を受け取る。
【００９７】
まず、スケジューラ１０２は、受け取ったリソース確保要求を推奨リソース量計算部１０１に送信する。
【００９８】
推奨リソース量計算部１０１は、スケジューラ１０２が送信したリソース確保要求を受信し、受信したリソース確保要求に応じて、推奨リソース量を算出する。推奨リソース量計算部１０１は、例えば、アクセラレータメモリ２０（図７にて図示）においてタスクが確保している記憶領域の容量、アクセラレータメモリ２０（図７にて図示）が本来有する記憶領域の容量、アクセラレータメモリ２０（図７にて図示）が有する記憶領域のうち遊休した（あるいは、「休眠した」、「アイドル」、「待機した」等とも表す。）状態にある領域の容量、該タスクが要求するリソースの量、メニーコアアクセラレータ１７（図７にて図示）が本来有するリソースの量、及び、メニーコアアクセラレータ１７（図７にて図示）が本来有するリソースの量のうち遊休した状態にあるリソースの量等、少なくとも１つ以上の情報を受信する。推奨リソース量計算部１０１は、上記の情報を必ずしも全て受信する必要はない。
【００９９】
ここで、「遊休した状態」とは、タスク等に対象である装置が割り当てられていない状態を表す。
【０１００】
次に、推奨リソース量計算部１０１は、受信した情報に基づき、所定のリソース算出方法に従って、推奨リソース量を算出する（ステップＳ１５１）。
【０１０１】
例えば、推奨リソース量計算部１０１は、式１に従い、第１推奨リソース候補を算出する。
【０１０２】
第１推奨リソース候補＝ｘ÷ｙ×ｚ・・・（式１）、
（ただし、ｘは、タスクが確保しているアクセラレータメモリ２０における記憶領域の容量、
ｙは、アクセラレータメモリ２０が本来有する記憶領域の容量、
ｚは、メニーコアアクセラレータ１７における計算リソースが本来有するリソースの量（例えば、「並行して、あるいは、擬似的に並行して（以降、両者を含めて「並行して」と表す。）処理可能なスレッド数」である。）を表す）。
【０１０３】
例えば、メニーコアアクセラレータ１７が本来有するリソースの量は、コアがハイパースレッド機能を有する場合に、式２のように算出することができる。
【０１０４】
ｚ＝「コア数」×「ハイパースレッド機能によって並列して処理可能なスレッド数」・・・（式２）、
メニーコアアクセラレータ１７が本来有するリソースの量は、必ずしも、式２である必要はない。
【０１０５】
あるいは、推奨リソース量計算部１０１は、式３に従い、第１推奨リソース候補を算出してもよい。
【０１０６】
第１推奨リソース候補＝ｘ÷（ｘ＋ａ）×ｂ・・・（式３）、
（ただし、ｘは、タスクが確保しているアクセラレータメモリ２０の記憶領域の容量、
ａは、アクセラレータメモリにおける遊休した状態にある領域の記憶容量、
ｂは、メニーコアアクセラレータ１７におけるリソースのうち、遊休した状態にあるリソースの量を表す）。
【０１０７】
推奨リソース量計算部１０１は、算出した第１推奨リソース候補を、推奨リソース量として算出する。
【０１０８】
また、推奨リソース量計算部１０１は、受信したリソース確保要求における要求量（以降、「受信した要求量」と略記する。）と、第１推奨リソース候補とを比較し、比較した結果に応じて推奨リソース量を算出しても良い。
【０１０９】
例えば、推奨リソース量計算部１０１は、受信した要求量が第１推奨リソース候補よりも大きければ、受信した要求量を推奨リソース量として算出する。一方、推奨リソース量計算部１０１は、第１推奨リソース候補が受信した要求量よりも小さければ、第１推奨リソース候補を推奨リソース量として算出してもよい。この場合、所定のリソース算出方法は、受信した要求量と第１推奨リソース候補とのうち、小さな値の方を推奨リソース量として算出する方法である。以降、このように算出した推奨リソース量を「第２推奨リソース候補」と表す。
【０１１０】
さらに、推奨リソース量計算部１０１は、メニーコアアクセラレータ１７が本来有するリソースの量と、第２推奨リソース候補とを比較し、比較した結果に応じて推奨リソース量を算出しても良い。
【０１１１】
例えば、推奨リソース量計算部１０１は、メニーコアアクセラレータ１７が本来有するリソースの量が第２推奨リソース候補よりも大きいと判定する場合に、第２推奨リソース候補を推奨リソース量として算出する。また、推奨リソース量計算部１０１は、メニーコアアクセラレータ１７が本来有するリソースの量が第２推奨リソース候補よりも小さいと判定する場合に、受信した要求量と第１推奨リソース候補を比較する。推奨リソース量計算部１０１は、受信した要求量が第１推奨リソース候補よりも小さいと判定する場合に、受信した要求量を推奨リソース量として算出する。また、推奨リソース量計算部１０１は、受信した要求量が第１推奨リソース候補よりも大きいと判定する場合に、第１推奨リソース候補を推奨リソース量として算出する。
【０１１２】
推奨リソース量計算部１０１は、該タスクが確保しているアクセラレータメモリ２０における記憶領域の容量に関する情報を、メニーコアアクセラレータ１７から読み取ってもよい。あるいは、推奨リソース量計算部１０１は、タスクがスケジュールシステム１００に対して要求するリソース確保要求とともに、上述した領域情報を読み取ってもよい。
【０１１３】
さらに、推奨リソース量計算部１０１は、スケジューラ１０２がアクセラレータメモリを確保すること（図９におけるステップＳ３１）、及び、スケジューラ１０２がアクセラレータメモリを解放する（図９におけるステップＳ３３）ことを表す履歴に基づいて、該タスクが確保しているアクセラレータメモリ２０における記憶領域の容量を算出しても良い。
【０１１４】
推奨リソース量計算部１０１は、算出した推奨リソース量をスケジューラ１０２に送信する。
【０１１５】
スケジューラ１０２は、推奨リソース量計算部１０１が送信した推奨リソース量を受け取る。次に、スケジューラ１０２は、メニーコアアクセラレータ１７が有するリソースの中から、受信した推奨リソース量に応じてリソースを確保する（ステップＳ１５２）。その後、スケジューラ１０２が確保したリソースは、第２部分における処理を実行する（図９におけるステップＳ１７）。
【０１１６】
第８の実施形態は、第４の実施形態と同様の構成を有するため、第８の実施形態は、第４の実施形態と同様の効果を享受することができる。即ち、第８の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【０１１７】
複数のタスクがアクセラレータメモリ２０における記憶領域の容量を超えて記憶領域を確保する場合に、メニーコアアクセラレータ１７は、タスクを処理する能力を有しているにもかかわらず、アクセラレータメモリ２０にて処理を行うことができない。すなわち、メニーコアアクセラレータ１７において、リソースが有する処理性能を、十分に発揮できない状況が生じることもある。
【０１１８】
一方で、第８の実施形態において、推奨リソース量計算部１０１は、式１に示すように、タスクが確保しているアクセラレータメモリ２０における記憶領域の容量に応じて、推奨リソース量を算出する。その結果、本実施形態によれば、上述したような状況を回避することができる。すなわち、第８の実施形態に係るスケジュールシステムによれば、さらに、リソースが有する処理性能を、より効率良く発揮することができる。
【０１１９】
＜第９の実施形態＞
次に、上述した第８の実施形態を基本とする第９の実施形態について説明する。
【０１２０】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第８の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１２１】
図２４と図２５とを参照しながら第９の実施形態に係るスケジュールシステム１０５が有する構成と、スケジュールシステム１０５が行う処理とについて説明する。図２４は、第９の実施形態に係るスケジュールシステム１０５の構成を示すブロック図である。図２５は、第９の実施形態に係るスケジュールシステム１０５における処理の流れを示すフローチャートである。
【０１２２】
図２４を参照すると、スケジュールシステム１０５は、スケジューラ１０４と、推奨リソース量計算部１０１と、リソース割り当て決定部１０３とを有する。スケジュールシステム１０５は、例えば、第４の実施形態に係るメニーコアシステムと同様を表すシステム５７全体の動作を司るスケジュールシステムである。
【０１２３】
リソース割り当て決定部１０３は、所定の選択方法に従い、スケジューラ１０４が確保したリソースのうち、第２部分を処理する特定のリソースを決定する（ステップＳ１５３）。例えば、リソース割り当て決定部１０３は、第２部分（ステップＳ１７）を最も効率よく処理可能なリソースの組み合わせを選択することにより、特定のリソースを決定する。
【０１２４】
例えば、リソース割り当て決定部１０３は、メニーコアアクセラレータ１７（不図示、たとえば図７）が有する特性に応じて、効率よく処理可能なリソースの組み合わせを選択する。その場合、例えば、リソース割り当て決定部１０３は、第２部分を最も効率よく処理可能なリソースの組み合わせを選択する。
【０１２５】
メニーコアアクセラレータ１７が有する特性は、例えば、下記のハイパースレッド機能の特性等である。例えば、メニーコアアクセラレータ１７における各コアは、４スレッドを並行して処理可能なハイパースレッド機能を有するとする。さらに、各コアは、並行して処理するスレッド数が増えるにつれ、スレッド数に見合った性能向上が得られないとする。
【０１２６】
ここで、推奨リソース量が８（スレッド）であり、スケジューラ１０４が確保したリソースが４コアであるとする。この場合、２コア×４スレッド分のハイパースレッド機能によって第２部分を処理するよりも、４コア×２スレッド分のハイパースレッド機能によって第２部分を処理する場合の方が処理性能は高い。その理由は、各コアが有する上記の特性のために、並行して４スレッド分のハイパースレッド機能の方が、スレッド数に見合った性能向上が得られないためである。
【０１２７】
すなわち、上述した例の場合に、リソース割り当て決定部１０３は、上記特性に基づいて、４コア×２スレッド分のハイパースレッド機能を特定のリソースとして決定する。この場合、所定の選択方法は、上記特性に基づいて、効率よく処理可能なリソースを選び出す方法である。
【０１２８】
あるいは、リソース割り当て決定部１０３は、特定のリソースが有する構成と、該特定のリソースにて第２部分を処理する場合の性能とが関連付けされた情報に基づいて、最高の処理性能に関連付けされた特定のリソースを算出してよい。この場合、所定の選択方法は、上述した情報に基づいて、効率よく処理可能なリソースを選び出す方法である。
【０１２９】
第９の実施形態は、第８の実施形態と同様の構成を有するため、第９の実施形態は、第８の実施形態と同様の効果を享受することができる。即ち、第９の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、より効率良く発揮することができる。
【０１３０】
さらに、第９の実施形態においては、リソース割り当て決定部１０３は、上述したように、最高の処理性能を有するリソースを特定する。そのため、第９の実施形態に係るスケジュールシステムによれば、リソースが有する処理性能を、さらに効率良く発揮することができる。
【０１３１】
（ハードウェア構成例）
上述した本発明の各実施形態におけるスケジュールシステムを、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るスケジュールシステムは、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るスケジュールシステムは、専用の装置として実現してもよい。
【０１３２】
図１６は、第１の実施形態乃至第９の実施形態に係る計算検索装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置３１は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）３２、メモリ３３、ディスク３４、不揮発性記録媒体３５、入力装置３６、および、出力装置３７を有する。
【０１３３】
不揮発性記録媒体３５は、コンピュータが読み取り可能な、例えば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ。登録商標）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）などを指しており、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体３５は、上述した媒体に限定されない。また、不揮発性記録媒体３５の代わりに、通信ネットワークを介して係るプログラムを持ち運びしても良い。
【０１３４】
即ち、ＣＰＵ３２は、ディスク３４が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ３３にコピーし、演算処理を実行する。ＣＰＵ３２は、プログラム実行に必要なデータをメモリ３３から読み込む。表示が必要な場合には、ＣＰＵ３２は、出力装置３７に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ３２は、入力装置３６からプログラムを読み取る。ＣＰＵ３２は、上述した図１、図３、図５、図７、図１０、図１２、図１４、図２２、あるいは、図２４に示した各部が表す機能（処理）に対応するところのメモリ３３にあるスケジュールプログラム（図２、図４、図６、図８、図９、図１１、図１３、図１５、図２３、図２５においてスケジュールシステムが行う処理）を解釈し実行する。ＣＰＵ３２は、上述した本発明の各実施形態において説明した処理を順次行う。
【０１３５】
即ち、このような場合、本発明は、係るスケジュールプログラムによっても成し得ると捉えることができる。更に、係るスケジュールプログラムが記録されたコンピュータ読み取り可能な記録媒体によっても、本発明は成し得ると捉えることができる。
【０１３６】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。即ち、
（付記１）
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラを有する、
スケジュールシステム。
【０１３７】
（付記２）
前記リソースの利用状況を管理する管理部を更に備え、
前記スケジューラは、前記管理部における前記利用状況を読み取ることにより、前記特定のリソースを決定する
付記１に記載のスケジュールシステム。
【０１３８】
（付記３）
前記タスクには、前記プロセッサにて処理する第１部分と、前記第１指示と、前記リソースにて処理する第２部分と、前記特定のリソースを解放する第２指示とが含まれ、
前記スケジューラは、前記プロセッサが前記第１部分を処理した後に、前記第１指示に応じて前記特定のリソースを確保するとともに、前記特定のリソースが前記第２部分を処理した後に、前記第２指示に応じて前記特定のリソースを解放する
付記１あるいは付記２に記載のスケジュールシステム。
【０１３９】
（付記４）
前記計算処理装置は、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリとを更に有し、
前記タスクには、前記第１部分と、前記第１指示と、前記メモリから前記アクセラレータメモリにデータを転送する第３部分と、前記第２部分と、前記アクセラレータメモリから前記メモリにデータを転送する第４部分と、前記第２指示とが含まれ、
前記スケジューラは、前記プロセッサが行う前記第１部分の処理と、前記プロセッサが行う前記第３部分の処理との間において、前記第１指示に応じて前記特定のリソースを確保するとともに、前記プロセッサが行う前記第４部分の処理の後に、前記第２指示に応じて、前記特定のリソースを解放する
付記３に記載のスケジュールシステム。
【０１４０】
（付記５）
前記スケジューラは、前記第１指示に応じて特定のアクセラレータメモリを確保し、その後、前記プロセッサが行う前記第３部分の処理の後に、前記特定のリソースを確保するとともに、前記特定のリソースが行う前記第２部分の処理の後に、前記第２指示に応じて、前記特定のリソースを解放し、その後、前記プロセッサが行う前記第４部分の処理の後に、前記特定のアクセラレータメモリを解放する
付記４に記載のスケジュールシステム。
【０１４１】
（付記６）
前記タスクには、前記第２部分における処理を前記プロセッサにて実行する第５部分が更に含まれ、
前記スケジューラは、前記利用状況において、前記特定のリソースを確保できない場合に、前記プロセッサが前記第５部分の処理を行うことを決定し、前記特定のリソースを決定できる場合に、前記特定のリソースが前記第２部分の処理を行うことを決定する
付記３あるいは付記４に記載のスケジュールシステム。
【０１４２】
（付記７）
前記タスクスケジュールシステムは、前記タスクを前記システムに割り当てる第２タスクスケジューラを更に有し、
前記スケジューラは、前記第２タスクスケジューラが前記スケジューラに通知する前記タスクに関連する情報に応じて、前記特定のリソースを決定する
付記１乃至付記７のいずれか１項に記載のスケジュールシステム。
【０１４３】
（付記８）
前記スケジューラは、前記管理部を参照することにより、前記第２タスクスケジューラに、前記リソースの負荷が所定の第１閾値よりも大きな値である場合に前記タスクを減らし、前記リソースの負荷が所定の第２閾値より小さな値である場合に前記タスクを増やすように命令を送る
付記２乃至付記６のいずれか１項に記載のスケジュールシステム。
【０１４４】
（付記９）
所定のリソース算出方法に従い、前記第１指示を発行した前記タスクが確保している前記アクセラレータメモリの記憶容量、前記アクセラレータメモリが本来有する記憶容量、前記アクセラレータメモリにおける遊休した状態にある領域の記憶容量、前記タスクが要求するリソースの量、または、前記メニーコアアクセラレータにおける前記リソースが本来有するリソースの量、及び、前記リソースの量のうち前記メニーコアアクセラレータにおいて遊休した状態にあるリソースの量のうち、少なくとも１つ以上の情報に基づき、所定のリソース算出方法に従い、推奨リソース量を算出する推奨リソース量計算部
を更に有し、
前記スケジューラは、前記推奨リソース量に応じて特定のリソースを確保する
付記３あるいは付記４に記載のスケジュールシステム。
【０１４５】
（付記１０）
前記特定のリソースのうち、所定の選択方法に従い、前記第２部分を処理可能なリソースを選択するリソース割り当て決定部
を更に有する付記９に記載のスケジュールシステム。
【０１４６】
（付記１１）
付記１乃至付記１０に記載のスケジュールシステムを含むオペレーティングシステム。
【０１４７】
（付記１２）
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定する
スケジュール方法。
【０１４８】
（付記１３）
リソースであるメニーコアアクセラレータと、前記リソースを制御するプロセッサとを有する計算処理装置にて処理するタスクに含まれるところの、前記リソースを確保する第１指示に応じて、前記タスクを処理する特定のリソースを決定するスケジューラ機能を、
コンピュータに実現させるスケジュールプログラム。
【符号の説明】
【０１４９】
１    スケジュールシステム
２    スケジューラ
３    サーバ
４    ホストプロセッサ
５    メニーコアアクセラレータ
６    タスク
７    スケジュールシステム
８    スケジューラ
９    管理部
１０    スケジュールシステム
１１    スケジューラ
１２    タスク
１３    スケジュールシステム
１４    スケジューラ
１５    タスク
１６    サーバ
１７    メニーコアアクセラレータ
１８    ホストプロセッサ
１９    主メモリ
２０    アクセラレータメモリ
２１    スケジュールシステム
２２    スケジューラ
２３    タスク
２４    スケジュールシステム
２５    スケジューラ
２６    第２タスクスケジューラ
２７    スケジュールシステム
２８    スケジューラ
２９    管理部
３０    第２タスクスケジューラ
３１    計算処理装置
３２    ＣＰＵ
３３    メモリ
３４    ディスク
３５    不揮発性記録媒体
３６    入力装置
３７    出力装置
３８    システム
３９    システム
４０    サーバ
４１    プロセッサ
４２    プロセッサ
４３    プロセッサ
４４    プロセッサ
４５    タスクスケジューラ
４６    サーバリソース管理部
４７    サーバ
４８    ホストプロセッサ
４９    メニーコアアクセラレータ
５０    主メモリ
５１    アクセラレータメモリ
５２    タスクスケジューラ
５３    サーバリソース管理部
５４    システム
５５    システム
５６    システム
５７    システム
５８    システム
５９    システム
６０    システム
１００    スケジュールシステム
１０１    推奨リソース量計算部
１０２    スケジューラ
１０３    リソース割り当て決定部
１０４    スケジューラ
１０５    スケジュールシステム
【図１】
2014078214.tif 000003
【図２】
2014078214.tif 000004
【図３】
2014078214.tif 000005
【図４】
2014078214.tif 000006
【図５】
2014078214.tif 000007
【図６】
2014078214.tif 000008
【図７】
2014078214.tif 000009
【図８】
2014078214.tif 000010
【図９】
2014078214.tif 000011
【図１０】
2014078214.tif 000012
【図１１】
2014078214.tif 000013
【図１２】
2014078214.tif 000014
【図１３】
2014078214.tif 000015
【図１４】
2014078214.tif 000016
【図１５】
2014078214.tif 000017
【図１６】
2014078214.tif 000018
【図１７】
2014078214.tif 000019
【図１８】
2014078214.tif 000020
【図１９】
2014078214.tif 000021
【図２０】
2014078214.tif 000022
【図２１】
2014078214.tif 000023
【図２２】
2014078214.tif 000024
【図２３】
2014078214.tif 000025
【図２４】
2014078214.tif 000026
【図２５】
2014078214.tif 000027