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