×この技術を簡単クリック査定この機能をご利用いただくには、会員登録(無料)が必要です。出願した特許の牽制数、引用された数などを知る事ができます。気になる技術や特許をブックマークしておけば、いつでも後から読むことができます。後で印刷するために、公報をPDFでダウンロードできます。会員登録してastamuseを使えば、もっと簡単に便利にお使いいただけます。会員登録(無料)「astamuse」は世界中の挑戦したい社会課題に挑戦し、未来を創る人のプラットフォームです。関連する未来課題-重要な関連分野マルチプログラミング※この項目の情報は公開日時点(2017年1月19日)のものです。一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減する。複数の関連する処理を、処理間のデータ通信に必要な帯域に基づいて、少なくとも1つの処理を含む処理グループに分割し、ネットワークに接続された複数のノード(50−1〜50−n)のうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを前記処理グループごとに特定し、特定したノードに各処理グループを割り当てる、処理をコンピュータが実行する。従来から、一連の処理を複数の情報処理装置(以下、ノードと記載する)で分散実行することが行われている。分散実行により、1つのノードでは処理しきれない一連の処理を実行したり、1つのノードで一連の処理を実行するよりも実行時間を低減したりすることが可能となる。一連の処理を実行するにあたり、開始ノードと終了ノードとが固定されているため、当該一連の処理を複数のノードで分散実行する場合もある。一連の処理を分散実行する場合、各処理をネットワーク上のノードに割り当てる。非特許文献1では、複数の関連する処理から構成されるストリームデータ処理において、各処理を開始ノードと終了ノードとの間の最短経路上のノードに割り当てている。一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減する。複数の関連する処理を、処理間のデータ通信に必要な帯域に基づいて、少なくとも1つの処理を含む処理グループに分割し、ネットワークに接続された複数のノード(50−1〜50−n)のうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを前記処理グループごとに特定し、特定したノードに各処理グループを割り当てる、処理をコンピュータが実行する。処理割当プログラムに関する。背景技術0002従来から、一連の処理を複数の情報処理装置(以下、ノードと記載する)で分散実行することが行われている。分散実行により、1つのノードでは処理しきれない一連の処理を実行したり、1つのノードで一連の処理を実行するよりも実行時間を低減したりすることが可能となる。一連の処理を実行するにあたり、開始ノードと終了ノードとが固定されているため、当該一連の処理を複数のノードで分散実行する場合もある。0003一連の処理を分散実行する場合、各処理をネットワーク上のノードに割り当てる。非特許文献1では、複数の関連する処理から構成されるストリームデータ処理において、各処理を開始ノードと終了ノードとの間の最短経路上のノードに割り当てている。発明が解決しようとする課題0006しかしながら、従来技術では、連続する2つの処理間で授受されるデータ量について十分に考慮されていないため、各処理が適切なノードに割り当てられていない可能性があり、分散実行時のネットワーク負荷が増大するおそれがある。処理割当プログラムを提供することを目的とする。課題を解決するための手段0008一つの態様では、処理割当方法は、複数の関連する処理を、処理間のデータ通信に必要な帯域に基づいて、少なくとも1つの処理を含む処理グループに分割し、ネットワークに接続された複数のノードのうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを前記処理グループごとに特定し、特定したノードに各処理グループを割り当てる、処理をコンピュータが実行する。発明の効果00091つの側面として、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。図面の簡単な説明0010一実施形態に係る分散処理システムの構成を概略的に示す図である。処理配置実行サーバ及び処理割当サーバの機能ブロック図である。図3(a)は、処理配置実行サーバのハードウェア構成の一例を示す図であり、図3(b)は、処理割当サーバのハードウェア構成の一例を示す図である。図4(a)は一連処理構成情報の一例を示す図であり、図4(b)は、一連の処理を模式的に示す図である。図5(a)は、ネットワーク構成情報の一例を示す図であり、図5(b)は、通信コスト情報の一例を示す図であり、図5(c)は、ネットワーク構成を模式的に示す図である。図6(a)は、リソース割当管理テーブルのデータ構成を示す図であり、図6(b)は、ノード割当情報テーブルのデータ構成を示す図である。処理割当サーバによる割当処理を示すフローチャートである。開始ノード・終了ノードへの割当処理の詳細を示すフローチャートである。割当処理を説明するための図である。開始ノード・終了ノードへの割当処理を説明するための図(その1)である。開始ノード・終了ノードへの割当処理を説明するための図(その2)である。割当処理のステップS14について説明するための図(その1)である。割当処理のステップS14について説明するための図(その2)である。割当処理のステップS14について説明するための図(その3)である。ノード決定処理の詳細を示すフローチャートである。ノード決定処理を説明するための図(その1)である。ノード決定処理を説明するための図(その2)である。ノード決定処理を説明するための図(その3)である。特定の処理を行うノードが指定されている場合における割当処理について説明するための図である。図3図4図5図6実施例0011以下、分散処理システムの一実施形態について、図1〜図18に基づいて詳細に説明する。図1図10図11図12図13図14図15図16図17図180012図1には、一実施形態にかかる分散処理システム100の構成が概略的に示されている。分散処理システム100は、処理割当サーバ10と、処理配置実行サーバ20と、クライアント端末30と、複数のノード50−1〜50−nとを含む。Network)等、有線又は無線のネットワーク80を介して接続されている。図10013分散処理システム100において、クライアント端末30は、複数の関連する処理を含む一連の処理の実行を処理配置実行サーバ20に要求する。クライアント端末30は、デジタルカメラ等が撮影した撮影画像から顔画像だけを抽出して、データベースに登録されている顔画像と照合する一連の処理の実行を処理配置実行サーバ20に要求する。抽出、顔画像の圧縮、顔画像の照合等の複数の関連する処理を含む。処理配置実行サーバ20は、クライアント端末30から一連の処理の実行要求を受け付けると、一連の処理をネットワーク80上のノード50−1〜50—nにて分散実行するために、ノード50−1〜50—nに対する各処理の割り当てを処理割当サーバ10に要求する。処理割当サーバ10は、処理配置実行サーバ20から割当要求を受け付けると、一連の処理に含まれる各処理を割り当てるノードを複数のノード50−1〜50−nから決定し、各処理のノード50−1〜50−nへの割当結果を処理配置実行サーバ20に送信する。処理割当サーバ10から割当結果を受信した処理配置実行サーバ20は、各処理をノード50−1〜50−nに配置し、実行させる。ノード50−1〜50−nは、処理配置実行サーバ20から割り当てられた処理を実行し、実行結果をクライアント端末30に送信する。0014図2は、処理配置実行サーバ20及び処理割当サーバ10の機能ブロック図である。図20015処理配置実行サーバ20は、割当要求部201と、処理配置実行部202とを備える。処理配置実行サーバ20は、図3(a)に示すようなハードウェア構成を有する。Drive)214、ネットワークインタフェース215、及び可搬型記憶媒体216に記憶されたデータを読み取り可能な可搬型記憶媒体用ドライブ217等を備えている。これら処理配置実行サーバ20の構成各部は、バス218に接続されている。CPU211は、ROM212あるいはHDD214に格納されているプログラム、或いは可搬型記憶媒体用ドライブ217が可搬型記憶媒体216から読み取ったプログラムを実行することで、処理配置実行サーバ20を図2の各部として機能させる。図2図30016図2に戻り、割当要求部201は、クライアント端末30から、複数の関連する処理を含む一連の処理の実行要求を受信する。記載する)を処理割当サーバ10に送信し、当該一連の処理に含まれる各処理のノードへの割り当てを要求する。割当要求部201は、一連の処理を分散して実行するネットワークの構成情報(以後、ネットワーク構成情報と記載する)と、当該ネットワークにおける通信コストに関する情報(以後、通信コスト情報と記載する)とを処理割当サーバ10に送信する。割当要求部201は、一連の処理を開始するノード(開始ノード)と、一連の処理を終了するノード(終了ノード)とが予め定められている場合には、開始ノード及び終了ノードの情報を処理割当サーバ10に送信する。図20017処理配置実行部202は、処理割当サーバ10から、各処理のノードへの割当結果を受信し、当該割当結果に基づいて、一連の処理に含まれる各処理を各ノードに配置し、実行させる。ネットワーク構成情報、及び通信コスト情報について詳細に説明する。出力側必要帯域等のフィールドを有する。処理名のフィールドには、一連の処理に含まれる処理の名称が格納される。必要計算量のフィールドには、各処理を行うにあたり必要な計算量の情報が格納される。出力側必要帯域のフィールドには、直後の処理との間のデータ通信に必要な帯域の情報が格納される。図4(a)の一連処理構成情報に基づいて、一連の処理を模式的に表すと図4(b)となる。図40020次に、ネットワーク構成情報及び通信コスト情報について、それぞれ、図5(a)及び図5(b)に基づいて説明する。ネットワーク構成情報は、図5(a)に示すように、ノード名、計算リソース、及び接続リンク等のフィールドを有する。ノード名のフィールドには、ネットワーク上に存在するノードの名称が格納される。計算リソースのフィールドには、各ノードにおいて実行可能な計算量の情報が格納される。接続リンクのフィールドには、各ノードに接続されているリンクの情報(図5(a)ではリンクの名称)が格納される。図50021通信コスト情報は、図5(b)に示すように、リンク名及び通信コスト等のフィールドを有する。リンク名のフィールドには、ネットワーク上に存在するリンクの名称が格納される。通信コストのフィールドには、リンクを経由して通信する場合の通信コストの情報が格納される。図5(a)のネットワーク構成情報及び図5(b)の通信コスト情報に基づいて、ネットワークを模式的に表すと図5(c)となる。図5(c)及び以後の図面において、CRは計算リソースを表し、CCは通信コストを表す。図50022図2に戻り、処理割当サーバ10は、処理グループ作成部103、ノード決定部105、及び情報出力部107を備える。処理割当サーバ10は、図3(b)に示すようなハードウェア構成を有する。具体的には、処理割当サーバ10は、図3(b)に示すように、CPU111、ROM112、RAM113、記憶装置(HDD)114、ネットワークインタフェース115、及び可搬型記憶媒体116に記憶されたデータを読み取り可能な可搬型記憶媒体用ドライブ117等を備えている。これら処理割当サーバ10の構成各部は、バス118に接続されている。CPU111は、ROM112あるいはHDD114に格納されているプログラム(処理割当プログラムを含む)、或いは可搬型記憶媒体用ドライブ117が可搬型記憶媒体116から読み取ったプログラム(処理割当プログラムを含む)を実行することで、処理割当サーバ10を図2の各部として機能させる。図2図30023図2に戻り、処理グループ作成部103は、処理配置実行サーバ20から、一連の処理に含まれる各処理をノードへ割り当てる要求を受信する。(図4(a))、ネットワーク構成情報(図5(a))、及び通信コスト情報(図5(b))を受信する。処理グループ作成部103は、処理配置実行サーバ20から開始ノード及び終了ノードの情報を受信する。図2図4図50024本実施形態では、処理グループ作成部103は、受信したネットワーク構成情報(図5(a))に基づいて、リソース割当管理テーブルを作成する。リソース割当管理テーブルは、各ノードの計算リソースの割当状況を管理するためのテーブルであり、例えば、図6(a)に示すように、ノード名、計算リソース、割当済み処理、及び残計算リソース等のフィールドを有する。ノード名のフィールドには、ノードの名称が格納される。計算リソースのフィールドには、ノードが実行可能な計算量の情報が格納される。割当済み処理のフィールドには、ノードに対して割り当てられた処理の情報が格納される。残計算リソースのフィールドには、ノードの計算リソースから割当済み処理の必要計算量を差し引いた値が格納される。残計算リソースのフィールドには、処理を割当済みのノードにおいて実行可能な残りの計算量の情報が格納される。図5図60025また、処理グループ作成部103は、受信した一連処理構成情報に基づいて、ノード割当情報テーブルを作成する。ノード割当情報テーブルは、各処理を割り当てたノードの情報を管理するためのテーブルであり、例えば、図6(b)に示すように、処理名及び割当ノード等のフィールドを有する。処理名のフィールドには、一連の処理に含まれる処理の名称が格納される。割当ノードのフィールドには、各処理が割り当てられたノードの情報が格納される。図60026図2に戻り、処理グループ作成部103は、処理間のデータ通信に必要な帯域(以下、必要帯域と記載する)に基づいて一連の処理を分割し、1以上の処理を含む処理グループを作成する。本実施形態では、処理グループ作成部103は、処理間の必要帯域が最小となる処理間で一連の処理を分割し、処理グループを作成する。処理グループ作成部103は、処理グループを作成すると、処理グループのノードへの割当を管理する処理グループ割当管理テーブル(図10(a)参照)を作成する(詳細は後述する)。処理間のデータ通信に必要な帯域とは、2つの連続する処理を、別々のノードに割り当てた場合に、各処理を実行するノード間でのデータ通信に必要となる帯域のことである。図10図20027ノード決定部105は、例えば、リソース割当管理テーブル(図6(a)参照)を参照して、ネットワーク上の複数のノードから、処理グループに含まれる全ての処理を実行可能なノードを検索し、処理グループを割り当てるノードを決定する。ノード決定部105は、処理グループに含まれる処理を決定したノードに割り当てる。図60028情報出力部107は、各処理のノードへの割当結果(例えば、ノード割当情報テーブル)を処理配置実行サーバ20に送信する。0029以下、処理割当サーバ10において実行される処理について、図7、図8、及び図15のフローチャートに沿って、その他図面を適宜参照しつつ、詳細に説明する。図15図7図80030図7には、処理割当サーバ10による割当処理がフローチャートにて示されている。本処理は、一連の処理に含まれる各処理をノードに割り当てる、すなわち、各処理を実行するノードを決定する処理である。図7の処理は、処理割当サーバ10が、処理配置実行サーバ20から割当要求を受信すると開始される。図70031図7の処理では、まず、ステップS10において、処理グループ作成部103は、開始ノード及び終了ノードが指定されているか否かを判断する。開始ノード及び終了ノードの指定がない場合には、ステップS12に移行する。図70032一方、開始ノード及び終了ノードが指定されている場合、ステップS11に移行し、処理グループ作成部103は、図8の開始ノード・終了ノードへの割当処理を開始する。ここで、処理割当サーバ10が、図9(a)に示すネットワークにおいて開始ノードをノード1、終了ノードをノード3として、図9(b)に示す一連の処理をノードへ割り当てる要求を受信したとする。この場合、開始ノード及び終了ノードが指定されているので、図7のステップS10の判断が肯定され、処理グループ作成部103は、ステップS11に移行し、開始ノード・終了ノードへの割当処理を開始する。図7図8図90033(開始ノード・終了ノードへの割当処理:S11)図8は、開始ノード・終了ノードへの割当処理(S11)の詳細を示すフローチャートである。図80034図8の処理では、処理グループ作成部103は、ステップS101において、一連の処理を最初の処理から探索し、開始ノードで実行可能な範囲の処理を特定する。ノードの計算リソース)となる処理を、一連の処理から特定する。図9(a)に示すネットワークにおいて、開始ノードであるノード1の計算リソースは「5」である。この場合、処理グループ作成部103は、図9(b)に示す一連の処理において、「開始」から「処理2」までの処理を、開始ノードで実行可能な範囲の処理であると特定する。図8図90035続くステップS103において、処理グループ作成部103は、ステップS101で特定した処理と、処理間の必要帯域とに基づいて、最初の処理を含む処理グループを作成する。具体的には、処理グループ作成部103は、ステップS101で特定した開始ノードで実行可能な範囲の処理における処理間の必要帯域と、開始ノードで実行可能な範囲の処理の最後の処理とその直後の処理との間の必要帯域とを比較する。開始ノードで実行可能な範囲の処理における処理間の必要帯域が、最後の処理とその直後の処理との間の必要帯域よりも小さければ、開始ノードで実行可能な範囲の処理を処理間の必要帯域が最小となる処理間で分割する。開始ノードで実行可能な範囲の処理の最後の処理とその直後の処理との間の必要帯域が、開始ノードで実行可能な範囲の処理における処理間の必要帯域よりも小さければ、開始ノードで実行可能な範囲の処理の最後の処理とその直後の処理との間で一連の処理を分割する。図9(b)において、「開始」から「処理2」までの処理では、処理1と処理2との間の必要帯域「1」が、特定された処理の最後の処理である「処理2」とその直後の処理「処理3」との間の必要帯域「2」よりも小さい。したがって、処理グループ作成部103は、「開始」から「処理2」までの処理を、必要帯域が最小である処理1と処理2との間で分割し、最初の処理である「開始」を含む処理グループ1を作成する(図9(c)参照)。これにより、開始ノードで実行可能な範囲で、処理間の必要帯域が大きい処理をまとめて、開始ノードに割り当てることができる。図90036処理グループ作成部103は、処理グループを作成すると、例えば、図10(a)に示すような処理グループ割当管理テーブルを作成する。処理グループ割当管理テーブルは、処理グループをいずれのノードに割り当てたかを管理するためのテーブルであり、図10(a)に示すように、処理グループ、処理名、及び割当ノード等のフィールドを有する。処理グループのフィールドには、処理グループ作成部103が作成した処理グループの名称が格納される。処理名には、処理グループに含まれる処理の情報が格納される。割当ノードのフィールドには、処理グループが割り当てられたノードの情報が格納される。ステップS103の終了時点では、処理グループ1は、未だノードに割り当てられていないため、図10(a)に示すように、割当ノードのフィールドは空となっている。図100037図8に戻り、続くステップS104において、ノード決定部105は、ステップS103で作成された処理グループを開始ノードに割り当てる。図9(c)の場合、ノード決定部105は、処理グループ1を開始ノードであるノード1に割り当てる(図9(d)参照)。このとき、ノード決定部105は、図10(b)に示すように、処理グループ割当管理テーブルにおいて、処理グループ1に対する割当ノードのフィールドに「ノード1」を格納する。ノード決定部105は、リソース割当管理テーブル(図6(a)参照)を更新する。具体的には、ノード決定部105は、図10(c)に示すように、ノード1の割当済み処理のフィールドに、処理グループ1に含まれる処理である「開始、処理1」を格納する。ノード決定部105は、計算リソース「5」から、処理1の必要計算量「2」を差し引いた「3」を残計算リソースのフィールドに格納する。ノード決定部105は、ノード割当情報テーブル(図6(b)参照)を更新する。具体的には、図10(d)に示すように、「開始」及び「処理1」の割当ノードのフィールドに、「ノード1」を格納する。図10図6図8図90038図8に戻り、続くステップS105において、処理グループ作成部103は、一連の処理を最後の処理から探索し、終了ノードで実行可能な範囲の処理を特定する。ノードの計算リソース)となる処理を、一連の処理から特定する。図9(a)に示すネットワークにおいて、終了ノードであるノード3の計算リソースは「4」である。したがって、処理グループ作成部103は、図9(c)において、「終了」から「処理3」までの処理を、終了ノードで実行可能な範囲の処理であると特定する。図8図90039続くステップS107において、処理グループ作成部103は、ステップS105で特定した処理と、処理間の必要帯域とに基づいて、最後の処理を含む処理グループを作成する。具体的には、処理グループ作成部103は、ステップS105で特定した終了ノードで実行可能な範囲の処理の処理間の必要帯域と、終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間の必要帯域とを比較する。終了ノードで実行可能な範囲の処理の処理間の必要帯域が、終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間の必要帯域よりも小さい場合、終了ノードで実行可能な範囲の処理を処理間の必要帯域が最小となる処理間で分割する。終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間の必要帯域が、終了ノードで実行可能な範囲の処理の処理間の必要帯域よりも小さい場合、一連の処理を終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間で分割する。図9(c)において、「終了」から「処理3」までの処理では、最初の処理である「処理3」とその直前の処理である「処理2」との間の必要帯域が「2」となっており、「処理3」と「終了」との間の必要帯域「10」よりも小さい。そこで、処理グループ作成部103は、処理2と処理3との間で処理を分割し、最後の処理を含む処理グループ2を作成する(図9(d)参照)。これにより、終了ノードで実行可能な範囲で、処理間の必要帯域が大きい処理をまとめて、終了ノードに割り当てることができる。このとき、処理グループ作成部103は、図11(a)に示すように、処理グループ割当管理テーブルに、「処理グループ2」を追加する。図11図90040続くステップS108において、ノード決定部105は、ステップS107で作成された処理グループを終了ノードに割り当てる。図9(d)では、ノード決定部105は、処理グループ2を終了ノードであるノード3に割り当てる(図9(e)参照)。ノード決定部105は、処理グループ割当管理テーブル、リソース割当管理テーブル、及びノード割当情報テーブルを、それぞれ、図11(b)、図11(c)、及び図11(d)に示すようにそれぞれ更新する。図11図90041ステップS108の処理の終了後は、図7のステップS12に移行する。図70042図7のステップS12に移行すると、ノード決定部105は、未だノードに割り当てられていない処理の総必要計算量を割当可能なノードが存在するか否かを判断する。図9(e)において、未だノードに割り当てられていない処理2の必要計算量は「2」である。この場合、ノード決定部105は、図11(c)のリソース割当管理テーブルを参照し、必要計算量「2」を割当可能なノードを検索する。具体的には、ノード決定部105は、残計算リソースが2以上のノードを検索する。図11(c)の場合、ノード1の残計算リソースが「3」であり、処理2の必要計算量を割当可能である。この場合、ノード決定部105は、ステップS14に移行する。図11図7図90043ステップS14に移行すると、ノード決定部105は、開始ノード及び終了ノードからの通信コストが最小のノードに未割当の処理を割り当てる。図9(e)の場合、処理2を割当可能なノードは、ノード1のみであるため、処理2をノード1に割り当てる(図9(f)参照)。ノード決定部105は、リソース割当管理テーブル及びノード割当情報テーブルを、それぞれ、図12(a)及び図12(b)に示すようにそれぞれ更新する。開始ノード及び終了ノードが指定されておらず、未割当の処理を実行可能なノードが複数ある場合には、ノード決定部105は、予め定められたルールに基づいて、処理を割り当てるノードを決定すればよい。ノード決定部105は、未割当の処理を割当可能な複数のノードのうちノード番号が一番小さいノードに、処理を割り当ててもよいし、ノード番号が一番大きいノードに処理を割り当ててもよい。図12図90044別例として、処理割当サーバ10が、図13(a)に示すネットワークにおいて開始ノードをノード1、終了ノードをノード4として、図13(b)に示す一連の処理をノードへ割り当てる要求を受信した場合について説明する。図130045開始ノードであるノード1は計算リソースが「3」であるため、「開始」から「処理1」までの処理を実行可能である(図8:ステップS103)。ここで、「開始」から「処理1」までの処理において「開始」と「処理1」との間の必要帯域は「10」であり、「処理1」と「処理2」との間の必要帯域「1」よりも大きい。この場合、処理グループ作成部103は、処理1と処理2との間で一連の処理を分割し、最初の処理である「開始」を含む処理グループ1を作成する(図8:ステップS103、図13(c)参照)。ノード決定部105は、処理グループ1を開始ノードであるノード1に割り当てる(図8:ステップS104、図13(d)参照)。図13図80046一方、終了ノードであるノード4は計算リソースが「2」であるため、「終了」から「処理4」までの処理を実行可能である(図8:ステップS105)。ここで、最初の処理である「処理4」とその直前の処理「処理3」との間の必要帯域は「2」であり、「終了」から「処理4」までの処理における処理間の必要帯域「5」よりも小さい。この場合、処理グループ作成部103は、処理3と処理4との間で一連の処理を分割し、最後の処理である「終了」を含む処理グループ2を作成する(図8:ステップS107、図13(d)参照)。ノード決定部105は、処理グループ2を終了ノードであるノード4に割り当てる(図8:ステップS108:図13(e)参照)。図13図80047開始ノード及び終了ノードへの処理の割当が終了した時点でのリソース割当管理テーブルは、図14に示すとおりである。ノードへ未割当の処理2及び処理3の総必要計算量は「4」であり、図14を参照すると、処理2及び処理3の全てを実行可能なノードが複数(ノード2及びノード3)存在する。この場合、ノード決定部105は、処理2及び処理3をノード2に割り当てた場合の通信コストと、ノード3に割り当てた場合の通信コストとを比較し、通信コストが最小のノードに処理2及び処理3を割り当てる(図7:ステップS14)。ここで、処理を割当済みのノード1とノード2とのノード間通信コストは2であり、処理を割当済みのノード4とノード2とのノード間通信コストは17である。したがって、処理2及び処理3をノード2に割り当てた場合の通信コスト総計は36(2×1+17×2)となる。ノード3とノード1とのノード間通信コストは12であり、ノード3とノード4とのノード間通信コストは7であるため、処理2及び処理3をノード3に割り当てた場合の通信コスト総計は26(12×1+7×2)となる。したがって、ノード決定部105は、通信コスト総計が最小となるノード3に処理2及び処理3を割り当てる(図13(f)参照)。図13図14図70048図7に戻り、ステップS12において、未割当の処理の総必要計算量を割当可能なノードが存在しない場合、ノード決定部105は、ステップS20に移行し、図15に示すノード決定処理を開始する。ここで、一例として、処理割当サーバ10が、図16(a)に示すネットワークにおいて開始ノードをノード1、終了ノードをノード4として、図16(b)に示す一連の処理をノードへ割り当てる要求を受信した場合について説明する。この場合、図7のステップS11の開始ノード・終了ノードへの割当処理を行うと、最初の処理「開始」を含む処理グループ1が開始ノードであるノード1に割り当てられる。最後の処理「終了」を含む処理グループ2が終了ノードであるノード4に割り当てられる(図16(c))。ステップS11の処理後のリソース割当管理テーブルは、図17(a)となる。処理グループ割当管理テーブルは、図17(b)となる。開始ノードであるノード1の計算リソースは「1」であり、必要計算量が「2」である処理1を実行できないため、ノード1には、「開始」のみが割り当てられている。ここで、図16(c)において、ノードへ未割当の処理である処理1〜処理3の総必要計算量は8であり、割当可能なノードが存在しないため、ステップS12の判断は否定され、ノード決定部105は、ステップS20に移行し、図15のノード決定処理を開始する。図15図16図17図70049(ノード決定処理:S20)図15は、ノード決定処理(S20)の詳細を示すフローチャートである。図150050図15の処理では、まず、ステップS201において、ノード決定部105は、ノードに未割当の処理が2以上存在するか否かを判断する。ここでの判断が否定された場合、ステップS203に移行し、ノード決定部105は、処理を割当可能なノードがない(解なし)として、本処理を終了し、図7のステップS16に移行する。図15図70051一方、ノードに未割当の処理が2以上存在する場合、ステップS205に移行し、処理グループ作成部103は、未割当の処理を、処理間の必要帯域が最小な処理間で分割し、処理グループを作成する。図16(c)では、未割当の処理1〜処理3において、処理1と処理2との間の必要帯域が「1」で最小である。したがって、処理グループ作成部103は、未割当の処理1〜処理3を、処理1と処理2との間で分割し、処理グループ3及び処理グループ4を作成する(図16(d)参照)。このとき、処理グループ作成部103は、図17(b)に示す処理グループ割当管理テーブルに、図17(c)に示すように、処理グループ3及び処理グループ4を追加する。図16図170052続くステップS207において、ノード決定部105は、ノードに未割当の処理グループを選択する。ノード決定部105は、図17(c)に示す処理グループ割当管理テーブルにおいて、ノードに割り当てられていない処理グループ3を選択する。図170053続くステップS209において、ノード決定部105は、選択した処理グループに含まれる各処理の必要計算量の総和(総必要計算量)を割当可能なノードが存在するか否かを判断する。本処理では、処理グループに含まれる全ての処理を実行可能なノードが存在するか否かを判断している。ここでの判断が肯定された場合、ステップS211に移行する。0054ステップS211に移行すると、ノード決定部105は、割当可能ノードの中で、処理を割当済みのノードとの通信コストが最小となるノードに処理グループを割り当てる。図16(d)では、処理グループ3に含まれる処理1の必要計算量は「2」であり、図17(a)のリソース割当管理テーブルを参照すると、ノード2及びノード3に割当可能である。この場合、ノード決定部105は、処理を割当済みのノード(開始ノード:ノード1)との通信コストが最小となるノード2に処理グループ3を割り当てる。ノード決定部105は、処理グループ割当管理テーブルを図18(a)に示すように更新する。ノード決定部105は、リソース割当管理テーブルを図18(b)に示すように更新する。図16図17図180055続くステップS215において、ノード決定部105は、全ての処理グループをノードに割り当てたか否かを判断する。具体的には、ノード決定部105は、処理グループ割当管理テーブル(図18(a)等)において、ノードに割り当てられていない処理グループが存在するか否かを判断する。ここでの判断が肯定された場合、図15の処理を終了し、図7のステップS16に移行する。図15図18図70056一方、ノードに割り当てていない処理グループが存在する場合、ステップS215の判断は否定され、ノード決定部105は、ステップS207に戻り、ノードに未割当の処理グループを選択する。図18(a)の処理グループ割当管理テーブルでは、処理グループ4が未だノードに割り当てられていないため、ノード決定部105は、処理グループ4を選択する。図180057ここで、処理グループ4に含まれる処理2及び処理3の必要計算量の総和は「5」であり、図18(b)のリソース割当管理テーブルを参照すると、割当可能なノードが存在しない。この場合、ステップS209の判断が否定され、ステップS212に移行する。図180058ステップS212に移行すると、ノード決定部105は、処理グループに2以上の処理が含まれるか否かを判断する。ここでの判断が否定された場合、ステップS203に移行し、処理を割当可能なノードがない(解なし)として、本処理を終了し、図7のステップS16に移行する。処理グループに2以上の処理が含まれる場合、ステップS213に移行する。図70059ステップS213に移行すると、処理グループ作成部103は、処理グループ内の処理を、処理間の必要帯域が最小の処理間で分割し、新たな処理グループを作成する。図16(d)において、処理グループ作成部103は、処理グループ4を、必要帯域が最小である処理2と処理3との間で分割し、処理グループ4−1及び処理グループ4−2を新たに作成する(図16(e)参照)。このとき、処理グループ作成部103は、図18(a)の処理グループ割当管理テーブルから処理グループ4を削除し、図18(c)に示すように、処理グループ4−1及び処理グループ4−2を追加する。図16図180060続くステップS215において、ノード決定部105は、全ての処理グループをノードに割り当てたか否かを判断する。処理グループ作成部103及びノード決定部105は、ステップS215の判断が肯定されるまで、すなわち、全ての処理グループをノードに割り当てるまで、ステップS207〜ステップS213の処理を繰り返す。ステップS207〜ステップS215では、ノードで処理可能な処理グループになるまで一連の処理の分割を繰り返している。全ての処理グループをノードに割り当てた時点で、ステップS215の判断が肯定され、図15の処理を終了し、図7のステップS16に移行する。図15図70061なお、図16(e)では、処理2を含む処理グループ4−1は、ノード2及びノード3へ割当可能(図18(b)参照)であるが、ノード決定部105は、処理1を割当済みのノードであるノード2との通信コストが最小となるノード2に処理グループ4−1を割り当てる(図16(f)参照)。処理3を含む処理グループ4—2は、ノード3へ割当可能であるため、ノード決定部105は、処理グループ4—2をノード3に割り当てる(図16(f)参照)。ノード決定部105は、処理グループ4—2のノードへの割当を終了すると、全ての処理グループのノードへの割り当てが終了したため、図7のステップS16に移行する。図16図18図70062図7に戻り、ステップS16に移行すると、情報出力部107が、各処理のノードへの割当結果を処理配置実行サーバ20に送信し、図7の全処理を終了する。情報出力部107は、ノード割当情報テーブル(図12(b)参照)の情報を処理配置実行サーバ20に送信する。処理配置実行サーバ20は、ノード割当情報テーブルの情報に基づいて、各処理をノードに配置し、一連の処理を開始させる。図12図70063以上詳細に説明したように、本実施形態によると、処理割当サーバ10において、処理グループ作成部103が、複数の関連する処理を含む一連の処理を、処理間のデータ通信に必要な帯域に基づいて、少なくとも1つの処理を含む処理グループに分割し(図8:ステップS101,S103,S105,S107、図15:ステップS205、図16(d))、ノード決定部105が、ネットワークに接続された複数のノードのうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを処理グループごとに特定し、特定したノードに各処理グループを割り当てる(図8:ステップS104,S108、図15:ステップS211)。これにより、処理間のデータ通信に必要な帯域を考慮して各処理をノードに割り当てることができるので、ノード間での通信データ量が低減され、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。図15図16図80064具体的には、本実施形態において、処理グループ作成部103は、処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含める。これにより、処理間の必要帯域が大きい処理が、まとめて1つのノードに割り当てられるため、各処理を実行するノード間の通信データ量が低減される。したがって、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。0065より具体的には、本実施形態において、処理グループ作成部103は、一連の処理を、処理間のデータ通信に必要な帯域が最小となる処理間で分割する。これにより、処理間の必要帯域が大きい処理が、まとめて1つのノードに割り当てられるとともに、別々のノードに割り当てられた処理間の必要帯域が小さくなるため、各処理を実行するノード間の通信データ量が低減される。したがって、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。0066また、本実施形態において、処理グループ作成部103は、分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、当該処理グループを、処理グループに含まれる処理間のデータ通信に必要な帯域が最小となる処理間で分割し、新たな処理グループを作成する(図15:ステップS213、図16(e))。これにより、ネットワーク上のノードが実行可能な範囲で、処理間の必要帯域が大きい処理をまとめて1つのノードに割り当てることができる。図15図160067また、本実施形態において、一連の処理を開始する開始ノードが定められている場合、処理グループ作成部103は、開始ノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、一連の処理の最初の処理を含む処理グループを分割する(図8:ステップS101、S103、図9(c))。ノード決定部105は、最初の処理を含む処理グループを開始ノードに割り当てる(図8:ステップS104、図9(d))。一連の処理を終了する終了ノードが定められている場合、処理グループ作成部103は、終了ノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、一連の処理の最後の処理を含む処理グループを分割する(図8:ステップS105、S107、図9(d))。ノード決定部105は、最後の処理を含む処理グループを終了ノードに割り当てる(図8:ステップS108、図9(f))。これにより、一連の処理を開始ノードで開始し、終了ノードで終了するとともに、処理間の必要帯域が大きい処理をまとめて1つのノードに割り当てることができる。図8図90068また、本実施形態において、ノード決定部105は、処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、処理グループを割り当てるノードを決定する(図7:ステップS14、図15:ステップS211)。具体的には、ノード決定部105は、処理を割当済みのノードからの通信コストが最小となるノードに、処理グループを割り当てる。これにより、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減するとともに、通信コストを低減することができる。図15図70069なお、上記実施形態において、処理グループ作成部103は、一連の処理を、処理間のデータ通信に必要な帯域が最小となる処理間で分割していたが、これに限られるものではない。処理グループ作成部103は、例えば、一連の処理を、処理間のデータ通信に必要な帯域が所定の帯域(例えば、5)以下となる処理間で分割してもよい。このようにしても、処理間の必要帯域が所定の帯域以上である処理を、まとめて1つのノードに割り当てることができるため、ノード間の通信データ量が低減され、ネットワーク負荷を低減することができる。0070なお、上記実施形態では、開始ノードと終了ノードとが指定されていたが、一連の処理に含まれる特定の処理を実行するノードがさらに指定されている場合がある。処理割当サーバ10が、図19(a)に示すネットワークにおいて、図19(b)に示す一連の処理をノードへ割り当てる要求を受信したとする。このとき、開始ノードにノード1が指定され、終了ノードにノード4が指定され、処理2をノード3で実行するよう指定されていたとする。この場合、処理割当サーバ10は、図19(b)に示す一連の処理を、開始〜処理2までの処理を含む処理単位1(図19(c))と、処理2〜終了までの処理を含む処理単位2(図19(d))とに分割する。処理割当サーバ10は、開始ノードをノード1、終了ノードをノード3として、処理単位1に対する割当処理(図7)を実行し、開始ノードをノード3、終了ノードをノード4として、処理単位2に対する割当処理(図7)を実行する。これにより、特定の処理を指定されたノードで実行できるとともに、処理間の必要帯域が大きい処理をまとめて1つのノードに割り当てることができる。図19図70071なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。Memory)などの可搬型記録媒体の形態で販売される。プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。0073プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。0074上述した実施形態は本発明の好適な実施の例である。これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。0075なお、以上実施形態の説明に関して、更に以下の付記を開示する。処理をコンピュータが実行することを特徴とする処理割当方法。前記分割する処理では、前記処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含めることを特徴とする付記1に記載の処理割当方法。前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が最小となる処理間で分割することを特徴とする付記1に記載の処理割当方法。前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が所定の帯域以下となる処理間で分割することを特徴とする付記1に記載の処理割当方法。分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、前記分割後の処理グループを、前記分割後の処理グループに含まれる処理間のデータ通信に必要な帯域に基づいて分割する、ことを特徴とする付記1〜4のいずれかに記載の処理割当方法。前記割り当てる処理では、前記第1のノードに前記第1の処理グループを割り当て、前記第2のノードに前記第2の処理グループを割り当てる、ことを特徴とする付記1〜5のいずれかに記載の処理割当方法。前記割り当てる処理では、前記第3のノードに前記第3の処理グループと前記第4の処理グループとを割り当てる、ことを特徴とする付記1〜6のいずれかに記載の処理割当方法。前記割り当てる処理では、分割後の処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、前記分割後の処理グループを割り当てるノードを特定する、ことを特徴とする付記1〜7のいずれかに記載の処理割当方法。複数の関連する処理を、処理間のデータ通信に必要な帯域に基づいて分割し、少なくとも1つの処理を含む処理グループを作成する処理グループ作成部と、ネットワークに接続された複数のノードのうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを前記処理グループごとに特定し、特定したノードに各処理グループを割り当てるノード割当部と、を備える処理割当装置。前記処理グループ作成部は、前記処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含めることを特徴とする付記9に記載の処理割当装置。前記処理グループ作成部は、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が最小となる処理間で分割することを特徴とする付記9に記載の処理割当装置。前記処理グループ作成部は、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が所定の帯域以下となる処理間で分割することを特徴とする付記9に記載の処理割当装置。前記処理グループ作成部は、分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、前記分割後の処理グループを、前記分割後の処理グループに含まれる処理間のデータ通信に必要な帯域に基づいて分割する、ことを特徴とする付記9〜12のいずれかに記載の処理割当装置。前記ノード割当部では、前記第1のノードに前記第1の処理グループを割り当て、前記第2のノードに前記第2の処理グループを割り当てる、ことを特徴とする付記9〜13のいずれかに記載の処理割当装置。前記ノード割当部は、前記第3のノードに前記第3の処理グループと前記第4の処理グループとを割り当てる、ことを特徴とする付記9〜14のいずれかに記載の処理割当装置。前記ノード割当部は、分割後の処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、前記分割後の処理グループを割り当てるノードを特定する、ことを特徴とする付記9〜15のいずれかに記載の処理割当装置。処理をコンピュータに実行させることを特徴とする処理割当プログラム。前記分割する処理では、前記処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含めることを特徴とする付記17に記載の処理割当プログラム。前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が最小となる処理間で分割することを特徴とする付記17に記載の処理割当プログラム。前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が所定の帯域以下となる処理間で分割することを特徴とする付記17に記載の処理割当プログラム。分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、前記分割後の処理グループを、前記分割後の処理グループに含まれる処理間のデータ通信に必要な帯域に基づいて分割する、ことを特徴とする付記17〜20のいずれかに記載の処理割当プログラム。前記割り当てる処理では、前記第1のノードに前記第1の処理グループを割り当て、前記第2のノードに前記第2の処理グループを割り当てる、ことを特徴とする付記17〜21のいずれかに記載の処理割当プログラム。前記割り当てる処理では、前記第3のノードに前記第3の処理グループと前記第4の処理グループとを割り当てる、ことを特徴とする付記17〜22のいずれかに記載の処理割当プログラム。前記割り当てる処理では、分割後の処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、前記分割後の処理グループを割り当てるノードを特定する、ことを特徴とする付記17〜23のいずれかに記載の処理割当プログラム。