(57)【要約】      （修正有）【課題】複数の再構成可能デバイスを備えたデータ処理システムにおいて、モジュールを再配置することで、余分な資源の消費を減らし、資源の利用効率を改善することができる技術を提供する。【解決手段】リソースマネージャ１１は、再構成可能デバイスの計算資源の使用状況を基に選択したモジュールを空デバイスに集約する集約計画と、再構成可能デバイスの配線資源の使用状況を基に選択したモジュールを空デバイスに集約する集約計画と、の中から、これら集約計画を実行した場合の計算資源および配線資源の使用可能量を考慮して、１つの集約計画を選択する集約計画ブロック３６を備える。【選択図】図３
2015153356.tif 000002
【特許請求の範囲】
【請求項１】
複数の再構成可能デバイスを備えるデータ処理システムにおいて、前記再構成可能デバイス上にモジュールを実装するための計算資源と、前記再構成可能デバイス上に実装されたモジュールが通信するための配線資源と、を含むシステム資源を管理するリソースマネージャ装置による資源管理方法であって、
前記複数の再構成可能デバイスの中から、動作中のモジュールが実装されていない１つの再構成可能デバイスを空デバイスとして選択する段階と、
前記再構成可能デバイスの前記計算資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する段階と、
前記再構成可能デバイスの前記配線資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する段階と、
前記計算資源の使用状況に基づき選択したモジュールを前記空デバイスに集約する第１集約計画を実行した場合と、前記配線資源の使用状況に基づき選択したモジュールを前記空デバイスに集約する第２集約計画を実行した場合と、のそれぞれについて、前記計算資源の使用可能量および前記配線資源の使用可能量に基づいて、前記システム資源の評価値を算出する段階と、
前記第１集約計画および前記第２集約計画の中から、前記評価値が最も高い１つの集約計画を選択する段階と、
前記選択した集約計画に従って、前記データ処理システム内の構成を変更する段階と、を有する、資源管理方法。
【請求項２】
複数の再構成可能デバイスを備えるデータ処理システムにおいて、前記再構成可能デバイス上にモジュールを実装するための計算資源と、前記再構成可能デバイス上に実装されたモジュールが通信するための配線資源と、を含むシステム資源を管理するリソースマネージャ装置であって、
前記再構成可能デバイス上に実装されている動作中のモジュールを、動作中のモジュールが実装されていない再構成可能デバイスである空デバイスに集約する１つの集約計画を選択する集約計画手段と、
前記集約計画手段が選択した集約計画に従って、前記データ処理システム内の構成を変更する実行手段と、を有し、
前記集約計画手段は、
１つの前記集約計画を選択するに際し、
前記複数の再構成可能デバイスの中から１つの前記空デバイスを選択する第１処理と、
前記再構成可能デバイスの前記計算資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する第２処理と、
前記再構成可能デバイスの前記配線資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する第３処理と、
前記計算資源の使用状況を基に選択したモジュールを前記空デバイスに集約する第１集約計画を実行した場合と、前記配線資源の使用状況を基に選択したモジュールを前記空デバイスに集約する第２集約計画を実行した場合と、のそれぞれについて、前記計算資源の使用可能量および前記配線資源の使用可能量に基づいて、前記システム資源の評価値を算出する第４処理と、
前記第１集約計画および前記第２集約計画の中から、前記評価値が最も高い１つの集約計画を選択する第５処理と、を実行するリソースマネージャ装置。
【請求項３】
前記集約計画手段は、
前記第５処理で選択した集約計画の評価値が、前記データ処理システムの現状の評価値以下である場合、前記第１処理で別の前記空デバイスを選択した上で、前記第２処理から前記第５処理までを再度実行する、請求項２に記載のリソースマネージャ装置。
【請求項４】
前記集約計画手段は、
前記第５処理で選択した集約計画の評価値が、前記データ処理システムの現状の評価値よりも高い場合、前記第２処理から前記第５処理までを繰り返し実行し、該繰り返しにより得られる複数の前記第１集約計画および前記第２集約計画の中から、評価値が最も高い１つの集約計画を選択する、請求項３に記載のリソースマネージャ装置。
【請求項５】
前記集約計画手段は、
前記第２処理から前記第５処理までを繰り返し実行する場合、前記第２処理では、前記計算資源の使用量が少ない再構成可能デバイスから順に、該再構成可能デバイス上に実装されている動作中の複数のモジュールを、前記空デバイスの計算資源の容量を超えない範囲で選択する、請求項４に記載のリソースマネージャ装置。
【請求項６】
前記集約計画手段は、
前記第２処理から前記第５処理までを繰り返し実行する場合、前記第３処理では、前記配線資源の使用量が多い動作中のモジュール対から順に、前記空デバイスの計算資源の容量を超えない範囲で、動作中の複数のモジュール対を選択する、請求項４に記載のリソースマネージャ装置。
【請求項７】
請求項２から６のいずれか１項に記載のリソースマネージャ装置をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の再構成可能デバイスを備えたデータ処理システムの資源を管理する技術に関する。
【背景技術】
【０００２】
近年、与えられたデータを高速で処理することができ、また短時間で大量の処理を実行することができるデータ処理システムに対する要求がますます高まっている。
【０００３】
例えば、有線通信または無線通信を介してユーザ端末（利用者）がデータセンタ内のデータ処理システムに接続して、データ処理システムを利用できるようにする情報通信サービスでは、ユーザ数の増大や取り扱うデータ量の増加に伴って、データ処理システムにおける処理能力の増強が要求されている。
【０００４】
このような要求に対し、一般的なデータセンタにおける既存のデータ処理システムでは、サーバコンピュータの台数を増やし、複数のサーバコンピュータに対し負荷を分散することで、負荷が集中するのを防ぐ方法がとられている。また、この負荷分散を最適に行うためのアルゴリズムの検討が行われている。
【０００５】
しかし、一般的なサーバコンピュータの処理方法であるソフトウェアを使った処理は、ハードウェアを使った処理に比べて低速であるという問題がある。また、処理量の増大に伴ってサーバコンピュータの設置面積や消費電力の増加が問題となる。
【０００６】
したがって、今後ますます増大する処理量に対し、このような分散処理のみで対処するのは困難となっている。
【０００７】
そこで、データ処理システムが処理すべき処理量の増加に対応する方法として、ハードウェア構成のアクセラレータをデータ処理システムに接続し、特定の処理をアクセラレータにオフロードすることで、データ処理システムの処理負荷を低減する方法がある（非特許文献１）。
【０００８】
また、上記のようなアクセラレータの１つに、複数の異なる要求に対して、並列に異なる処理を行うことができるアクセラレータがある（特許文献１）。特許文献１に示されるアクセラレータは、再構成可能な（リコンフィギャラブルな）再構成可能デバイスを複数組み合わせた構成である。このようなアクセラレータによれば、様々なタイミングで多種多様な処理を高速に行うことを要求される、データ処理システムの処理負荷を低減することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−０４５２１９号公報
【非特許文献】
【００１０】
【非特許文献１】松岡  聡、「アクセラレータ，再び  アクセラレータ技術の影と光」、情報処理学会誌，Vol. 50, No. 2, pp. 95-99, 2009年2月
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述したように、与えられたデータを高速で処理することができ、また短時間で大量の処理を実行することができるデータ処理システムとして、ソフトウェア処理によって処理を行うサーバコンピュータに、専用のハードウェア構成のアクセラレータを組み合わせたものがある（非特許文献１）。
【００１２】
また、そのようなアクセラレータの１つに、特許文献１に示されるもののように、再構成可能デバイスを複数組み合わせた構成のアクセラレータがある。この構成では、任意の時点において条件を満たした再構成可能デバイスの回路構成を変更することができる。そのため、ユーザからの要求に合わせて再構成可能デバイスの回路構成を変更することで、実行するアプリケーションの種類や数を変更することができる。
【００１３】
しかし、このようなアクセラレータを用いてデータ処理システムの動作を継続させた場合、データ処理システム上の資源が必要最低限の量以上に消費されてしまうという問題が発生する。
【００１４】
そこで、本発明の目的は、複数の再構成可能デバイスを備えたデータ処理システムにおいて、データ処理システムが継続して動作することで必要最低限の量以上に資源が消費されるという問題に対し、モジュールを再配置することで、余分な資源の消費を減らし、資源の利用効率を改善することができる技術を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の資源管理方法は、
複数の再構成可能デバイスを備えるデータ処理システムにおいて、前記再構成可能デバイス上にモジュールを実装するための計算資源と、前記再構成可能デバイス上に実装されたモジュールが通信するための配線資源と、を含むシステム資源を管理するリソースマネージャ装置による資源管理方法であって、
前記複数の再構成可能デバイスの中から、動作中のモジュールが実装されていない１つの再構成可能デバイスを空デバイスとして選択する段階と、
前記再構成可能デバイスの前記計算資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する段階と、
前記再構成可能デバイスの前記配線資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する段階と、
前記計算資源の使用状況に基づき選択したモジュールを前記空デバイスに集約する第１集約計画を実行した場合と、前記配線資源の使用状況に基づき選択したモジュールを前記空デバイスに集約する第２集約計画を実行した場合と、のそれぞれについて、前記計算資源の使用可能量および前記配線資源の使用可能量に基づいて、前記システム資源の評価値を算出する段階と、
前記第１集約計画および前記第２集約計画の中から、前記評価値が最も高い１つの集約計画を選択する段階と、
前記選択した集約計画に従って、前記データ処理システム内の構成を変更する段階と、を有する。
【００１６】
本発明のリソースマネージャ装置は、
複数の再構成可能デバイスを備えるデータ処理システムにおいて、前記再構成可能デバイス上にモジュールを実装するための計算資源と、前記再構成可能デバイス上に実装されたモジュールが通信するための配線資源と、を含むシステム資源を管理するリソースマネージャ装置であって、
前記再構成可能デバイス上に実装されている動作中のモジュールを、動作中のモジュールが実装されていない再構成可能デバイスである空デバイスに集約する１つの集約計画を選択する集約計画手段と、
前記集約計画手段が選択した集約計画に従って、前記データ処理システム内の構成を変更する実行手段と、を有し、
前記集約計画手段は、
１つの前記集約計画を選択するに際し、
前記複数の再構成可能デバイスの中から１つの前記空デバイスを選択する第１処理と、
前記再構成可能デバイスの前記計算資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する第２処理と、
前記再構成可能デバイスの前記配線資源の使用状況に基づいて、前記再構成可能デバイス上に実装されている動作中のモジュールの中から、前記空デバイスに集約するモジュールを選択する第３処理と、
前記計算資源の使用状況を基に選択したモジュールを前記空デバイスに集約する第１集約計画を実行した場合と、前記配線資源の使用状況を基に選択したモジュールを前記空デバイスに集約する第２集約計画を実行した場合と、のそれぞれについて、前記計算資源の使用可能量および前記配線資源の使用可能量に基づいて、前記システム資源の評価値を算出する第４処理と、
前記第１集約計画および前記第２集約計画の中から、前記評価値が最も高い１つの集約計画を選択する第５処理と、を実行する。
【００１７】
本発明のプログラムは、
前記リソースマネージャ装置をコンピュータに実現させるためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、再構成可能デバイスの計算資源の使用状況を基に選択したモジュールを空デバイスに集約する集約計画と、再構成可能デバイスの配線資源の使用状況を基に選択したモジュールを空デバイスに集約する集約計画と、の中から、これら集約計画を実行した場合の計算資源および配線資源の使用可能量を考慮して、１つの集約計画を選択・実行する。
【００１９】
そのため、計算資源および配線資源の使用可能量が増加するように、すなわち、空デバイスの総数が増加しかつ配線資源の使用量が減少するように、空デバイスにモジュールを集約することができる。
【００２０】
したがって、データ処理システムが継続して動作することで必要最低限の量以上に計算資源および配線資源が消費されるという問題に対し、余分な計算資源および配線資源の消費を減らすことができ、低下した計算資源および配線資源の利用効率を改善することができる、という効果が得られる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態のデータ処理システム１０の構成の一例を示すブロック図である。
【図２】図１に示したアクセラレータ１２の構成の一例を示すブロック図である。
【図３】図１に示したリソースマネージャ１１の構成の一例を示すブロック図である。
【図４】図１に示したリソースマネージャ１１における、アプリケーションの追加および削除の処理全体の手順の一例を説明するフローチャートである。
【図５】図４に示したステップ４１１の追加処理フローの実行手順の一例を説明するフローチャートである。
【図６】図４に示したステップ４２の削除処理フローの実行手順の一例を説明するフローチャートである。
【図７】図１に示したリソースマネージャ１１における、資源管理の処理全体の手順の一例を説明するフローチャートである。
【図８】図７に示したステップ７３の計算資源の再割当ての手順の一例を説明するフローチャートである。
【発明を実施するための形態】
【００２２】
以下に、本発明を実施するための形態について図面を参照して説明する。
【００２３】
図１は、本発明の実施形態のデータ処理システム１０の構成の一例を示すブロック図である。
【００２４】
データ処理システム１０は、ユーザからの要求に応じて処理を行い、その処理結果をユーザに返すものである。また、データ処理システム１０は、同時または別々のタイミングで要求される複数の異なる要求に対して、並列に処理を行い、それらの処理結果を返すことができるようになっている。
【００２５】
データ処理システム１０は、ユーザに要求された処理への資源の割当て、資源の管理、および処理の追加や削除の制御などの機能を持つリソースマネージャ１１と、ユーザに要求された処理をハードウェア回路により処理する１つ以上のアクセラレータ１２と、リソースマネージャ１１とアクセラレータ１２との間で制御信号の入出力を行うための制御信号線１６と、外部とアクセラレータ１２との間、または、アクセラレータ１２同士の間でデータ信号の入出力を行うためのデータ信号線１７と、を備えている。
【００２６】
アクセラレータ１２はアクセラレータ装置であり、リソースマネージャ１１はリソースマネージャ装置である。
【００２７】
アクセラレータ１２は、複数の再構成可能デバイスを用いたものであり、ユーザから要求が来た時点において空デバイス（詳細は後述）となっている再構成可能デバイスは、その回路構成を変更することができる。
【００２８】
したがって、データ処理システム１０は、ユーザからの要求に対して、リソースマネージャ１１が、データ処理システム１０を制御・管理し、アクセラレータ１２を用いて、ユーザに要求された処理を提供するシステムである。
【００２９】
図２は、アクセラレータ１２の構成の一例を示すブロック図である。
【００３０】
図２に示すように、アクセラレータ１２は、再構成ハードウェア処理部１３と、アクセラレータ内接続部１４と、入出力部１５と、から構成されるハードウェアである。
【００３１】
再構成ハードウェア処理部１３は、その処理回路の再構成が可能なことを特徴とする。再構成ハードウェア処理部１３は、１つ以上の再構成可能デバイス２０を備えている。
【００３２】
アクセラレータ内接続部１４は、固定された配線もしくは再構成可能な配線と、通信経路を切り替えるスイッチと、を備えている。
【００３３】
入出力部１５は、１つ以上の入出力Ｉ/Ｆ２１を備えている。
【００３４】
また、再構成ハードウェア処理部１３、アクセラレータ内接続部１４、および入出力部１５は、それぞれリソースマネージャ１１からの制御信号により制御することができる。
【００３５】
なお、データ処理システム１０は、１つ以上のアクセラレータ１２を備え、アクセラレータ１２は、１つ以上の再構成可能デバイス２０を備えるものであるが、データ処理システム１０全体としては、複数の再構成可能デバイス２０を備えるものとする。
【００３６】
図３は、リソースマネージャ１１の構成の一例を示すブロック図である。
【００３７】
図３に示すように、リソースマネージャ１１は、ユーザからの要求を受け付けるユーザインタフェース３０と、その要求が実行できるかを判定する判定ブロック３１と、モジュールの配置／配線情報およびモジュールの配置／配線の変更手順を保持するデータベース３２と、データベース３２を記憶する記憶装置３３と、モジュールの配置／配線の変更命令を発行する実行ブロック３４と、その変更命令を再構成可能デバイス２０が認識可能なコードへと変換するＡＰＩ（Application Programming Interface）３５と、モジュールの集約計画をたてる集約計画ブロック３６と、を備えている。
【００３８】
集約計画ブロック３６は集約計画手段であり、判定ブロック３１は判定手段であり、実行ブロック３４とＡＰＩ３５とで実行手段を構成する。
【００３９】
ユーザインタフェース３０は、ユーザからの要求を解釈し処理内容を判定ブロック３１へと通知する。また、ユーザインタフェース３０は、集約計画ブロック３６に割込み通知を行いその処理を中断させる。
【００４０】
判定ブロック３１は、ユーザからの要求が実行可能か判定を行い、可能であればモジュールの配置／配線情報およびモジュールの配置／配線の変更手順をデータベース３２に登録する。
【００４１】
データベース３２は、一般的な記憶装置３３上に作成されるものとする。
【００４２】
実行ブロック３４は、モジュールの配置／配線の変更手順が決まった時に、必要な配置／配線の変更命令を順次発行する。
【００４３】
ＡＰＩ３５は、実行ブロック３４によって発行された変更命令を再構成可能デバイス２０が認識可能なコードへと変換し、アクセラレータ１２に送る。
【００４４】
集約計画ブロック３６は、ユーザから要求がない状態において、モジュールの集約計画を立てる。その集約計画はデータベース３２に登録され、実行ブロック３４を通してモジュールの配置／配線の変更が行われる。
【００４５】
次に、データ処理システム１０の具体的な構造の例を説明する。
【００４６】
再構成可能デバイス２０は、再構成可能なＬＳＩ（Large Scale Integration）およびＦＰＧＡ（Field Programmable Gate Array）などによって構成することができる。再構成可能デバイス２０内で実行される処理は、ＦＰＧＡ内に実装する単位処理回路（モジュール）、すなわち個々の処理回路によって行われる処理であり、既存のＩＰ(Intellectual Property)コアや、事前に作成した専用の論理回路ブロックや、メモリ回路ブロックなどとして構成することができる。
【００４７】
アクセラレータ１２は、１つ以上のＦＰＧＡを搭載した１枚のボード（ハードウェア基板）として構成することができる。
【００４８】
ボードが備えたＦＰＧＡが再構成ハードウェア処理部１３の再構成可能デバイス２０に相当し、ボードが備えた外部との通信用インターフェースが入出力部１５の入出力Ｉ/Ｆ２１に相当し、ボードが備えたＦＰＧＡ間を結ぶ配線およびＦＰＧＡと外部との通信用インターフェースを結ぶ配線がアクセラレータ内接続部１４に相当することになる。また、アクセラレータ内接続部１４が再構成可能な配線の構成をとる場合は、クロスバースイッチなどによってアクセラレータ内接続部１４を構成することができる。また、アクセラレータ内接続部１４を構成する、通信経路を切り替えるためのスイッチは、セレクタで構成したり、ＦＰＧＡに機能ブロックとして実装したりすることができる。
【００４９】
再構成ハードウェア処理部１３の各再構成可能デバイス２０および入出力部１５の各入出力Ｉ/Ｆ２１は、アクセラレータ内接続部１４によって、それぞれを頂点とした任意のネットワークトポロジー（メッシュ結合、リング結合、バス結合、ツリー結合、全結合など）で接続できる。
【００５０】
このようなアクセラレータ１２を用いることにより、ユーザからの要求に応じて処理を行い、その処理結果をユーザに返すことができる。また、同時または別々のタイミングで要求される複数の異なる要求に対して、並列に処理を行い、それらの処理結果を返すことができる。
【００５１】
以下、データ処理システム１０の動作について説明する。
【００５２】
最初に、以下の説明で使用する主な用語の定義について説明する。
【００５３】
システム資源とは、データ処理システム１０の計算資源および配線資源を含むものである。
【００５４】
計算資源とは、再構成可能デバイス２０が持つ資源のうち、再構成可能デバイス２０上にモジュールを実装するために必要な資源である。
【００５５】
配線資源とは、再構成可能デバイス２０が持つ資源のうち、再構成可能デバイス２０上に実装されたモジュールが通信するために必要な資源である。
【００５６】
空デバイスとは、自身上に動作中のモジュール（実行中のアプリケーションのいずれかで使用されているモジュール）が実装されていない再構成可能デバイスである。
【００５７】
アプリケーションとは、ユーザが要求する処理単位である。
【００５８】
モジュールとは、再構成可能デバイスの計算資源を使用して、その再構成可能デバイス上に実装される単位処理回路であり、アプリケーションを実行する場合は、１つ以上のモジュールを組み合わせて使用する。
【００５９】
図４は、リソースマネージャ１１の機能の１つである、アプリケーションの追加および削除の処理全体の手順の一例を説明するフローチャートである。
【００６０】
ユーザからの要求が来ると、まず、ステップ４０において、その要求をユーザインタフェース３０が受け付ける。
【００６１】
次に、ステップ４１において、ユーザインタフェース３０は、ユーザの要求がアプリケーションの追加もしくはアプリケーションの削除のどちらであるかを判定する。
【００６２】
ユーザの要求がアプリケーションの削除であった場合は、ステップ４２において、実行ブロック３４およびＡＰＩ３５は、アプリケーションを再構成可能デバイス２０から削除するために、削除処理フロー（詳細は後述）を実行し、処理を終了する。
【００６３】
一方、ユーザの要求がアプリケーションの追加であった場合は、ステップ４３において、判定ブロック３１は、ユーザに要求されたアプリケーションを実行するために必要なすべてのモジュールがデータ処理システム１０内の再構成ハードウェア処理部１３に未使用モジュールとして存在しているかを判定する。未使用モジュールとは、再構成可能デバイス２０上に実装されたモジュールのうち、他のアプリケーションにより使用されていないモジュール（動作中ではないモジュール）のことをいう。必要な未使用モジュールがすべて存在した場合はステップ４４に進む。必要な未使用モジュールの一部もしくは全部が存在しなかった場合はステップ４７に進む。
【００６４】
ステップ４４においては、判定ブロック３１は、各モジュールに配線資源を割当て、通信経路を決める。割当て方法としては、最初に最短経路を選択し、失敗したら次善の経路長となる経路を割当てていく方法などがある。次に、ステップ４５において、判定ブロック３１は、配線資源の割当ての成否を判定する。配線資源の割当てに失敗した場合、すなわち割当てることができる配線資源が存在しなかった場合は、ステップ４７に進む。配線資源の割当てに成功した場合は、ステップ４６において、実行ブロック３４およびＡＰＩ３５は、対象となるモジュール間で通信ができるように割当てた配線資源情報を基に通信経路の切り替えを行い、処理を終了する。
【００６５】
一方、ステップ４７においては、判定ブロック３１は、再構成可能デバイス２０の中から空デバイスを選択し、ユーザに要求されたアプリケーションを実行するために使用されるモジュールのうち新規に実装するモジュールに対し、上記で選択した空デバイスの計算資源を割当てる。次に、ステップ４８において、判定ブロック３１は、計算資源の割当ての成否を判定する。計算資源の割当てに失敗した場合は処理を終了する。計算資源の割当てに成功した場合は、ステップ４９において、判定ブロック３１は、新規に実装するモジュールに配線資源を割当て、通信経路を決める。次に、ステップ４１０において、判定ブロック３１は、配線資源の割当ての成否を判定する。配線資源の割当てに失敗した場合は、ステップ４７に戻り、別の計算資源の割当てを行う。配線資源の割当てに成功した場合は、ステップ４１１において、実行ブロック３４およびＡＰＩ３５は、アプリケーションを再構成可能デバイス２０に追加するために、追加処理フロー（詳細は後述）を実行し、処理を終了する。
【００６６】
なお、ステップ４２、ステップ４６、およびステップ４１１の処理は、実行ブロック３４およびＡＰＩ３５が実行している。具体的には、これらの処理は、実行ブロック３４が、命令を発行し、ＡＰＩ３５が、その命令を再構成可能デバイス２０が認識可能なコードへと変換することで実行される（以降の図５〜図８において同じ）。
【００６７】
また、ステップ４４およびステップ４９の配線資源の割当て処理と、ステップ４７の計算資源の割当て処理とは、リソースマネージャ１１がデータ処理システム１０のシステム資源の使用状況を把握するための仮想的な処理である。
【００６８】
また、ステップ４２、ステップ４６、およびステップ４１１の処理は、アクセラレータ１２の操作を含む処理であり、その他のステップの処理は、ユーザからの要求に従いどのような操作をするかをリソースマネージャ１１が決定するための仮想的な処理である。
【００６９】
図５は、図４に示したステップ４１１の追加処理フローの具体的な手順の一例を説明するフローチャートである。
【００７０】
動作中のデータ処理システム１０上では自分や他のユーザが要求したアプリケーションが実行されている。そこに新しくアプリケーションを追加するには、これらの実行中のアプリケーションを中断することなく、新たにアプリケーションの追加を完了することが求められる。図５は、このような実行中のアプリケーションを中断することなく新たにアプリケーションを追加するための処理の具体的な手順を示すフローチャートである。
【００７１】
図４で示したフローチャートの処理により、どの再構成可能デバイス２０にどのモジュールを実装し、どのように通信経路を確保するかが決まる。
【００７２】
すると、まず、ステップ５０において、実行ブロック３４およびＡＰＩ３５は、回路構成を変更する空の再構成可能デバイス２０を空デバイスとして指定する。
【００７３】
次に、ステップ５１において、実行ブロック３４およびＡＰＩ３５は、変更後の回路構成を指定する。
【００７４】
次に、ステップ５２において、実行ブロック３４およびＡＰＩ３５は、ステップ５０で指定した再構成可能デバイス２０を通る通信が存在した場合、その通信の通信経路を、ステップ５０で指定した再構成可能デバイス２０を迂回するように変更する。
【００７５】
次に、ステップ５３において、実行ブロック３４およびＡＰＩ３５は、ステップ５０で指定した再構成可能デバイス２０を再構成し、回路構成を変更する。具体的には、指定した再構成可能デバイス２０の計算資源を用いてモジュールを実装し、指定した再構成可能デバイス２０の配線資源を用いてモジュールの通信経路を設定する。
【００７６】
最後に、ステップ５４において、実行ブロック３４およびＡＰＩ３５は、ステップ５２で迂回させた通信経路を元の経路に戻す。このように処理フローを進めることで、実行中のアプリケーションを中断することなく新たにアプリケーションを追加することができる。ただし、通信経路を変更するためにスイッチを切り替える際に通信の瞬断が発生する。
【００７７】
図６は、図４に示したステップ４２の削除処理フローの具体的な手順の一例を説明するフローチャートである。
【００７８】
まず、ステップ６０において、実行ブロック３４およびＡＰＩ３５は、対象となるアプリケーションを実行していたモジュールの動作を停止する。
【００７９】
次に、ステップ６１において、実行ブロック３４およびＡＰＩ３５は、対象となるアプリケーションを実行していた１組のモジュール対を選択する。
【００８０】
次に、ステップ６２において、実行ブロック３４およびＡＰＩ３５は、ステップ６１で選択したモジュール間の配線資源を解放する。
【００８１】
最後に、ステップ６３において、実行ブロック３４およびＡＰＩ３５は、まだ配線資源が未解放なモジュール対があるかを判定し、あればステップ６１に戻り、なければ処理を終了する。
【００８２】
なお、ステップ６０の処理は、データ処理システム１０に実際に影響を与える処理であり、ステップ６１〜ステップ６３の処理は、対象となる配線資源が解放されたことをリソースマネージャ１１が知り、データ処理システム１０のシステム資源の使用状況を更新するための仮想的な処理である。
【００８３】
このように、本実施形態におけるアプリケーションの削除とは、モジュール間の配線資源を解放するだけであり、モジュール自体は再構成可能デバイス２０上に実装されたままである。このモジュールは、未使用モジュールとなり、配線資源を再度与えることで再び利用することができる。そのため、ユーザからの要求によって新たにアプリケーションが必要となった時、この未使用モジュールを使用してアプリケーションを構成することができる。未使用モジュールを使用してアプリケーションを構成できた場合、再構成可能デバイス２０を再構成してアプリケーションを構成する場合に比べ、要求から処理開始までの時間を短くすることができる。
【００８４】
図４、図５、および図６で示したフローチャートの処理により、ユーザからの要求に応じてアプリケーションの追加および削除を行うことが可能となる。
【００８５】
しかし、この処理を用いてデータ処理システム１０の動作を継続させた場合、計算資源および配線資源が必要最低限の量以上に消費されてしまうという問題が発生する。そこで、図７に示すフローチャートの処理を、ユーザからの要求が来ていないときに行う。
【００８６】
図７は、リソースマネージャ１１の機能の１つである、データ処理システム１０の資源管理の処理全体の具体的な手順の一例を説明するフローチャートである。
【００８７】
まず、ステップ７０おいて、集約計画ブロック３６は、その時点におけるシステム資源の評価値を算出し、参考評価値として保持する。
【００８８】
なお、システム資源の評価値は、計算資源の使用可能量である使用可能計算資源量と、配線資源の使用可能量である使用可能配線資源量と、を用いて、次の評価式により算出する。
【００８９】
評価値＝α×使用可能計算資源量＋（１−α）×使用可能配線資源量
ここで、αは、０＜α＜１の任意の定数である。
【００９０】
次に、ステップ７１において、集約計画ブロック３６は、その時点において空デバイスとなっている再構成可能デバイス２０を候補とし、その候補の中から任意の空デバイスを１つ選択する。選択の方法には、例えば、入出力Ｉ/Ｆ２１と候補となった再構成可能デバイス２０の間の距離が近い順に選択していくといった方法がある。
【００９１】
次に、ステップ７２において、集約計画ブロック３６は、空デバイスが選択できたかを判定する。できなかった場合は処理を終了し、できた場合はステップ７３に進む。
【００９２】
ステップ７３においては、集約計画ブロック３６は、動作中のモジュールを空デバイスに集約する（動作中のモジュールの実装位置を空デバイスに変更する）集約計画をたてる処理である、計算資源の再割当て処理（詳細は後述）を行う。
【００９３】
次に、ステップ７４において、集約計画ブロック３６は、計算資源の再割当てにより使用可能なシステム資源が増えたかを判定する。この判定は、ステップ７３でたてた集約計画の評価値が、ステップ７０で算出した参考評価値よりも高くなったかで判定する。増えなかった場合はステップ７１に戻り、増えた場合はステップ７５に進む。
【００９４】
ステップ７５においては、集約計画ブロック３６は、モジュールの実装位置の変更に伴い、配線資源の再割当てを行う。
【００９５】
次に、ステップ７６において、集約計画ブロック３６は、各モジュールについて配線資源の再割当てに成功したかを判定する。配線資源の割当てに失敗した場合は、ステップ７３に戻り、集約計画ブロック３６は、集約するモジュールの組み合わせを変えるか、集約するモジュールの数を減らす。配線資源の割当てに成功した場合は、ステップ７７に進む。
【００９６】
ステップ７７においては、実行ブロック３４およびＡＰＩ３５は、モジュールの実装位置を空デバイスに変更し、そのモジュールの通信経路を設定するために、図５に示した追加処理フローを実行する。
【００９７】
次に、ステップ７８において、実行ブロック３４およびＡＰＩ３５は、対象となるアプリケーションについて、元の通信経路から新規の通信経路へと通信経路を切り替える。
【００９８】
次に、ステップ７９において、実行ブロック３４およびＡＰＩ３５は、空デバイスに実装位置を変更した元のモジュールを、そのモジュールが実装されていた再構成可能デバイス２０から削除するために、図６に示した削除処理フローを実行する。
【００９９】
次に、ステップ７１０において、集約計画ブロック３６は、他に集約対象となるモジュールおよび空デバイスがあるかを判定し、ある場合はステップ７０に戻って、残りのモジュールについて、再度集約処理を実行する。ない場合は、処理を終了する。
【０１００】
なお、図７に示した処理の実行中にユーザからアプリケーションの追加もしくは削除の要求が来た場合は、ステップ７１０まで処理を進め、ステップ７０に戻る必要がある場合は、ここで処理を中断し、ユーザに要求された処理を実行した後に、ステップ７０から処理を再開する。
【０１０１】
図８は、図７に示したステップ７３の計算資源の再割当ての手順を説明するフローチャートである。
【０１０２】
まず、ステップ８０において、集約計画ブロック３６は、再構成可能デバイス２０の計算資源の使用状況に基づいて、いずれかの再構成可能デバイス２０上に実装されている動作中のモジュールの中から、図７のステップ７２で選択した空デバイスに集約するモジュールを選択する。
【０１０３】
具体的には、集約計画ブロック３６は、計算資源の使用量が少ない再構成可能デバイス２０から順に、その再構成可能デバイス２０上に実装されている動作中の複数のモジュールを、図７のステップ７２で選択した空デバイスの計算資源の容量を超えない範囲で選択する。
【０１０４】
次に、ステップ８１において、集約計画ブロック３６は、ステップ８０で選択した複数のモジュールを、図７のステップ７２で選択した空デバイスに集約するという集約計画を実行した場合のシステム資源の評価値を、上述した使用可能計算資源量および使用可能配線資源量を用いた評価式により算出する。
【０１０５】
次に、ステップ８２において、集約計画ブロック３６は、再構成可能デバイス２０の配線資源の使用状況に基づいて、いずれかの再構成可能デバイス２０上に実装されている動作中のモジュールの中から、図７のステップ７２で選択した空デバイスに集約するモジュールを選択する。
【０１０６】
具体的には、集約計画ブロック３６は、配線資源の使用量が多い動作中のモジュール対から順に、図７のステップ７２で選択した空デバイスの計算資源の容量を超えない範囲で、動作中の複数のモジュール対を選択する。
【０１０７】
次に、ステップ８３において、集約計画ブロック３６は、ステップ８２で選択した複数のモジュール対を、図７のステップ７２で選択した空デバイスに集約するという集約計画を実行した場合のシステム資源の評価値を、上述した使用可能計算資源量および使用可能配線資源量を用いた評価式により算出する。
【０１０８】
なお、ステップ８０〜ステップ８１の処理とステップ８２〜ステップ８３の処理とは、手順が逆になっても、並列処理されても構わないものとする。
【０１０９】
次に、ステップ８４において、集約計画ブロック３６は、ステップ８１で算出された集約計画およびステップ８３で算出された集約計画の中から、評価値が最も高い１つの集約計画を選択する。
【０１１０】
次に、ステップ８５において、集約計画ブロック３６は、ステップ８４で選択された集約計画の評価値が前回の評価値と比べて高いかどうかで、評価値が改善されたか判断する。改善されていれば、図８のフローチャートの開始直後に戻り、改善されていなければ、処理を終了する。
【０１１１】
なお、ステップ８５で比較する前回の評価値は、図７のステップ７１から移行した初回時は、図７のステップ７０で算出された参考評価値となり、ステップ８５から図８のフローチャートの開始直後に戻った２回目以降は、前回のステップ８１またはステップ８３で算出された評価値となる。
【０１１２】
また、図８のフローチャートの開始直後に戻った２回目以降のステップ８５で処理を終了する場合、集約計画ブロック３６が最終的に選択する１つの集約計画は、前回のステップ８４で選択した集約計画となる。
【０１１３】
上述したように本実施形態においては、再構成可能デバイス２０の計算資源の使用状況を基に選択したモジュールを空デバイスに集約する集約計画と、再構成可能デバイス２０の配線資源の使用状況を基に選択したモジュールを空デバイスに集約する集約計画と、の中から、これら集約計画を実行した場合の計算資源および配線資源の使用可能量を考慮して、１つの集約計画を選択・実行する。
【０１１４】
そのため、計算資源および配線資源の使用可能量が増加するように、空デバイスにモジュールを集約することができる。ここで、計算資源の使用可能量の増加は、空デバイスの総量の増加につながり、また、配線資源の使用可能量の増加は、配線資源の使用量の減少につながる。
【０１１５】
すなわち、本実施形態においては、データ処理システム１０上に散らばったモジュールを、空デバイスを利用して、空デバイスの総数が増加かつ配線資源の使用量が減少するように集約することができる。
【０１１６】
そのため、データ処理システム１０が継続して動作することで必要最低限の量以上に計算資源および配線資源が消費されるという問題に対し、余分な計算資源および配線資源の消費を減らすことができ、低下した計算資源および配線資源の利用効率を改善することができる、という効果が得られる。
【０１１７】
なお、本発明のリソースマネージャ装置は、コンピュータとプログラムとによっても実現でき、このプログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【符号の説明】
【０１１８】
１０    データ処理システム
１１    リソースマネージャ
１２    アクセラレータ
１３    再構成ハードウェア処理部
１４    アクセラレータ内接続部
１５    入出力部
１６    制御信号線
１７    データ信号線
２０    再構成可能デバイス
２１    入出力Ｉ/Ｆ
３０    ユーザインタフェース
３１    判定ブロック
３２    データベース
３３    記憶装置
３４    実行ブロック
３５    ＡＰＩ
３６    集約計画ブロック
【図１】
2015153356.tif 000003
【図２】
2015153356.tif 000004
【図３】
2015153356.tif 000005
【図４】
2015153356.tif 000006
【図５】
2015153356.tif 000007
【図６】
2015153356.tif 000008
【図７】
2015153356.tif 000009
【図８】
2015153356.tif 000010