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