(57)【特許請求の範囲】
【請求項１】
実行順序に従って実行される複数の処理を、前記実行順序を維持したまま、処理間のデータ通信に必要な帯域に基づいて、２つの処理グループに分割し、
前記実行順序が先の処理グループから順に、ネットワークに接続された複数のノードの中から、前記処理グループに含まれる全ての処理を実行可能なノードを特定し、特定したノードに前記処理グループを割り当てる、
処理をコンピュータが実行することを特徴とする処理割当方法。
【請求項２】
前記分割する処理では、前記処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含めることを特徴とする請求項１に記載の処理割当方法。
【請求項３】
前記分割する処理では、前記複数の処理を、前記処理間のデータ通信に必要な帯域が最小となる処理間で分割することを特徴とする請求項１に記載の処理割当方法。
【請求項４】
前記分割する処理では、前記複数の処理を、前記処理間のデータ通信に必要な帯域が所定の帯域以下となる処理間で分割することを特徴とする請求項１に記載の処理割当方法。
【請求項５】
前記処理グループに含まれる全ての処理を実行可能なノードが無い場合、前記処理グループを、前記処理グループに含まれる処理間のデータ通信に必要な帯域に基づいて更に２つの処理グループに分割する、ことを特徴とする請求項１〜４のいずれか一項に記載の処理割当方法。
【請求項６】
前記複数の処理を開始する第１のノードと終了する第２のノードとが定められている場合、
前記第１のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の処理の最初の処理を含む処理グループを第１の処理グループとして分割し、前記第１のノードに割り当て、
前記第２のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の処理の最後の処理を含む処理グループを第２の処理グループとして分割し、前記第２のノードに割り当て、
前記複数の処理のうち、ノードに割り当てられていない処理について、前記分割する処理及び前記割り当てる処理を実行する、ことを特徴とする請求項１〜５のいずれか一項に記載の処理割当方法。
【請求項７】
前記複数の処理のうちの所定の処理を実行する第３のノードが定められている場合、
前記所定の処理の前に実行される処理と、前記所定の処理と、を含む複数の処理と、前記所定の処理と、前記所定の処理の後に実行される処理と、を含む複数の処理と、を前記実行順序に従って実行される前記複数の処理として定義し、
前記割り当てる処理では、前記所定の処理を含む処理グループに、前記第３のノードを割り当てる、ことを特徴とする請求項１〜６のいずれか一項に記載の処理割当方法。
【請求項８】
前記割り当てる処理では、前記処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、前記実行順序が先の処理グループに割当済みのノードと前記実行可能なノードとの間の通信コストに基づいて、前記処理グループを割り当てるノードを特定する、ことを特徴とする請求項１〜７のいずれか一項に記載の処理割当方法。
【請求項９】
実行順序に従って実行される複数の処理を、前記実行順序を維持したまま、処理間のデータ通信に必要な帯域に基づいて分割し、２つの処理グループを作成する処理グループ作成部と、
前記実行順序が先の処理グループから順に、ネットワークに接続された複数のノードの中から、前記処理グループに含まれる全ての処理を実行可能なノードを特定し、特定したノードに前記処理グループを割り当てるノード割当部と、
を備える処理割当装置。
【請求項１０】
実行順序に従って実行される複数の処理を、前記実行順序を維持したまま、処理間のデータ通信に必要な帯域に基づいて、２つの処理グループに分割し、
前記実行順序が先の処理グループから順に、ネットワークに接続された複数のノードの中から、前記処理グループに含まれる全ての処理を実行可能なノードを特定し、特定したノードに前記処理グループを割り当てる、
処理をコンピュータに実行させることを特徴とする処理割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理割当方法、処理割当装置、及び処理割当プログラムに関する。
【背景技術】
【０００２】
従来から、一連の処理を複数の情報処理装置（以下、ノードと記載する）で分散実行することが行われている。分散実行により、１つのノードでは処理しきれない一連の処理を実行したり、１つのノードで一連の処理を実行するよりも実行時間を低減したりすることが可能となる。また、一連の処理を実行するにあたり、開始ノードと終了ノードとが固定されているため、当該一連の処理を複数のノードで分散実行する場合もある。
【０００３】
一連の処理を分散実行する場合、各処理をネットワーク上のノードに割り当てる。例えば、非特許文献１では、複数の関連する処理から構成されるストリームデータ処理において、各処理を開始ノードと終了ノードとの間の最短経路上のノードに割り当てている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１４９８１号公報
【非特許文献】
【０００５】
【非特許文献１】福田茂紀 et al.、“広域処理分散自動化におけるスケーラブルな外部環境変化への追従手法の提案”、マルチメディア、分散、協調とモバイル（ＤＩＣＯＭＯ２０１４）シンポジウム、６７４、平成２６年７月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、連続する２つの処理間で授受されるデータ量について十分に考慮されていないため、各処理が適切なノードに割り当てられていない可能性があり、分散実行時のネットワーク負荷が増大するおそれがある。
【０００７】
１つの側面では、本発明は、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる処理割当方法、処理割当装置、及び処理割当プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、処理割当方法は、実行順序に従って実行される複数の処理を、前記実行順序を維持したまま、処理間のデータ通信に必要な帯域に基づいて、２つの処理グループに分割し、前記実行順序が先の処理グループから順に、ネットワークに接続された複数のノードの中から、前記処理グループに含まれる全ての処理を実行可能なノードを特定し、特定したノードに前記処理グループを割り当てる、処理をコンピュータが実行する。
【発明の効果】
【０００９】
１つの側面として、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る分散処理システムの構成を概略的に示す図である。
【図２】処理配置実行サーバ及び処理割当サーバの機能ブロック図である。
【図３】図３（ａ）は、処理配置実行サーバのハードウェア構成の一例を示す図であり、図３（ｂ）は、処理割当サーバのハードウェア構成の一例を示す図である。
【図４】図４（ａ）は一連処理構成情報の一例を示す図であり、図４（ｂ）は、一連の処理を模式的に示す図である。
【図５】図５（ａ）は、ネットワーク構成情報の一例を示す図であり、図５（ｂ）は、通信コスト情報の一例を示す図であり、図５（ｃ）は、ネットワーク構成を模式的に示す図である。
【図６】図６（ａ）は、リソース割当管理テーブルのデータ構成を示す図であり、図６（ｂ）は、ノード割当情報テーブルのデータ構成を示す図である。
【図７】処理割当サーバによる割当処理を示すフローチャートである。
【図８】開始ノード・終了ノードへの割当処理の詳細を示すフローチャートである。
【図９】割当処理を説明するための図である。
【図１０】開始ノード・終了ノードへの割当処理を説明するための図（その１）である。
【図１１】開始ノード・終了ノードへの割当処理を説明するための図（その２）である。
【図１２】割当処理のステップＳ１４について説明するための図（その１）である。
【図１３】割当処理のステップＳ１４について説明するための図（その２）である。
【図１４】割当処理のステップＳ１４について説明するための図（その３）である。
【図１５】ノード決定処理の詳細を示すフローチャートである。
【図１６】ノード決定処理を説明するための図（その１）である。
【図１７】ノード決定処理を説明するための図（その２）である。
【図１８】ノード決定処理を説明するための図（その３）である。
【図１９】特定の処理を行うノードが指定されている場合における割当処理について説明するための図である。
【発明を実施するための形態】
【００１１】
以下、分散処理システムの一実施形態について、図１〜図１８に基づいて詳細に説明する。
【００１２】
図１には、一実施形態にかかる分散処理システム１００の構成が概略的に示されている。分散処理システム１００は、処理割当サーバ１０と、処理配置実行サーバ２０と、クライアント端末３０と、複数のノード５０−１〜５０−ｎとを含む。クライアント端末３０と、処理配置実行サーバ２０と、処理割当サーバ１０と、ノード５０−１〜５０−ｎとは、インターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等、有線又は無線のネットワーク８０を介して接続されている。
【００１３】
分散処理システム１００において、クライアント端末３０は、複数の関連する処理を含む一連の処理の実行を処理配置実行サーバ２０に要求する。例えば、クライアント端末３０は、デジタルカメラ等が撮影した撮影画像から顔画像だけを抽出して、データベースに登録されている顔画像と照合する一連の処理の実行を処理配置実行サーバ２０に要求する。当該一連の処理は、撮影画像の符号化、複合化、顔画像の抽出、顔画像の圧縮、顔画像の照合等の複数の関連する処理を含む。処理配置実行サーバ２０は、クライアント端末３０から一連の処理の実行要求を受け付けると、一連の処理をネットワーク８０上のノード５０−１〜５０―ｎにて分散実行するために、ノード５０−１〜５０―ｎに対する各処理の割り当てを処理割当サーバ１０に要求する。処理割当サーバ１０は、処理配置実行サーバ２０から割当要求を受け付けると、一連の処理に含まれる各処理を割り当てるノードを複数のノード５０−１〜５０−ｎから決定し、各処理のノード５０−１〜５０−ｎへの割当結果を処理配置実行サーバ２０に送信する。処理割当サーバ１０から割当結果を受信した処理配置実行サーバ２０は、各処理をノード５０−１〜５０−ｎに配置し、実行させる。ノード５０−１〜５０−ｎは、処理配置実行サーバ２０から割り当てられた処理を実行し、実行結果をクライアント端末３０に送信する。
【００１４】
図２は、処理配置実行サーバ２０及び処理割当サーバ１０の機能ブロック図である。
【００１５】
処理配置実行サーバ２０は、割当要求部２０１と、処理配置実行部２０２とを備える。処理配置実行サーバ２０は、図３（ａ）に示すようなハードウェア構成を有する。具体的には、処理配置実行サーバ２０は、図３（ａ）に示すように、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、記憶装置（ＨＤＤ：Hard Disk Drive）２１４、ネットワークインタフェース２１５、及び可搬型記憶媒体２１６に記憶されたデータを読み取り可能な可搬型記憶媒体用ドライブ２１７等を備えている。これら処理配置実行サーバ２０の構成各部は、バス２１８に接続されている。ＣＰＵ２１１は、ＲＯＭ２１２あるいはＨＤＤ２１４に格納されているプログラム、或いは可搬型記憶媒体用ドライブ２１７が可搬型記憶媒体２１６から読み取ったプログラムを実行することで、処理配置実行サーバ２０を図２の各部として機能させる。
【００１６】
図２に戻り、割当要求部２０１は、クライアント端末３０から、複数の関連する処理を含む一連の処理の実行要求を受信する。実行要求を受信した割当要求部２０１は、当該一連の処理に関する情報（以後、一連処理構成情報と記載する）を処理割当サーバ１０に送信し、当該一連の処理に含まれる各処理のノードへの割り当てを要求する。また、割当要求部２０１は、一連の処理を分散して実行するネットワークの構成情報（以後、ネットワーク構成情報と記載する）と、当該ネットワークにおける通信コストに関する情報（以後、通信コスト情報と記載する）とを処理割当サーバ１０に送信する。さらに、割当要求部２０１は、一連の処理を開始するノード（開始ノード）と、一連の処理を終了するノード（終了ノード）とが予め定められている場合には、開始ノード及び終了ノードの情報を処理割当サーバ１０に送信する。
【００１７】
処理配置実行部２０２は、処理割当サーバ１０から、各処理のノードへの割当結果を受信し、当該割当結果に基づいて、一連の処理に含まれる各処理を各ノードに配置し、実行させる。
【００１８】
ここで、一連処理構成情報、ネットワーク構成情報、及び通信コスト情報について詳細に説明する。
【００１９】
まず、一連処理構成情報について、図４（ａ）に基づいて説明する。一連処理構成情報は、図４（ａ）に示すように、処理名、必要計算量、及び出力側必要帯域等のフィールドを有する。処理名のフィールドには、一連の処理に含まれる処理の名称が格納される。必要計算量のフィールドには、各処理を行うにあたり必要な計算量の情報が格納される。出力側必要帯域のフィールドには、直後の処理との間のデータ通信に必要な帯域の情報が格納される。図４（ａ）の一連処理構成情報に基づいて、一連の処理を模式的に表すと図４（ｂ）となる。
【００２０】
次に、ネットワーク構成情報及び通信コスト情報について、それぞれ、図５（ａ）及び図５（ｂ）に基づいて説明する。ネットワーク構成情報は、図５（ａ）に示すように、ノード名、計算リソース、及び接続リンク等のフィールドを有する。ノード名のフィールドには、ネットワーク上に存在するノードの名称が格納される。計算リソースのフィールドには、各ノードにおいて実行可能な計算量の情報が格納される。接続リンクのフィールドには、各ノードに接続されているリンクの情報（図５（ａ）ではリンクの名称）が格納される。
【００２１】
通信コスト情報は、図５（ｂ）に示すように、リンク名及び通信コスト等のフィールドを有する。リンク名のフィールドには、ネットワーク上に存在するリンクの名称が格納される。通信コストのフィールドには、リンクを経由して通信する場合の通信コストの情報が格納される。図５（ａ）のネットワーク構成情報及び図５（ｂ）の通信コスト情報に基づいて、ネットワークを模式的に表すと図５（ｃ）となる。なお、図５（ｃ）及び以後の図面において、ＣＲは計算リソースを表し、ＣＣは通信コストを表す。
【００２２】
図２に戻り、処理割当サーバ１０は、処理グループ作成部１０３、ノード決定部１０５、及び情報出力部１０７を備える。処理割当サーバ１０は、図３（ｂ）に示すようなハードウェア構成を有する。具体的には、処理割当サーバ１０は、図３（ｂ）に示すように、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、記憶装置（ＨＤＤ）１１４、ネットワークインタフェース１１５、及び可搬型記憶媒体１１６に記憶されたデータを読み取り可能な可搬型記憶媒体用ドライブ１１７等を備えている。これら処理割当サーバ１０の構成各部は、バス１１８に接続されている。ＣＰＵ１１１は、ＲＯＭ１１２あるいはＨＤＤ１１４に格納されているプログラム（処理割当プログラムを含む）、或いは可搬型記憶媒体用ドライブ１１７が可搬型記憶媒体１１６から読み取ったプログラム（処理割当プログラムを含む）を実行することで、処理割当サーバ１０を図２の各部として機能させる。
【００２３】
図２に戻り、処理グループ作成部１０３は、処理配置実行サーバ２０から、一連の処理に含まれる各処理をノードへ割り当てる要求を受信する。また、処理グループ作成部１０３は、処理配置実行サーバ２０から、一連処理構成情報（図４（ａ））、ネットワーク構成情報（図５（ａ））、及び通信コスト情報（図５（ｂ））を受信する。また、処理グループ作成部１０３は、処理配置実行サーバ２０から開始ノード及び終了ノードの情報を受信する。
【００２４】
本実施形態では、処理グループ作成部１０３は、受信したネットワーク構成情報（図５（ａ））に基づいて、リソース割当管理テーブルを作成する。リソース割当管理テーブルは、各ノードの計算リソースの割当状況を管理するためのテーブルであり、例えば、図６（ａ）に示すように、ノード名、計算リソース、割当済み処理、及び残計算リソース等のフィールドを有する。ノード名のフィールドには、ノードの名称が格納される。計算リソースのフィールドには、ノードが実行可能な計算量の情報が格納される。割当済み処理のフィールドには、ノードに対して割り当てられた処理の情報が格納される。残計算リソースのフィールドには、ノードの計算リソースから割当済み処理の必要計算量を差し引いた値が格納される。すなわち、残計算リソースのフィールドには、処理を割当済みのノードにおいて実行可能な残りの計算量の情報が格納される。
【００２５】
また、処理グループ作成部１０３は、受信した一連処理構成情報に基づいて、ノード割当情報テーブルを作成する。ノード割当情報テーブルは、各処理を割り当てたノードの情報を管理するためのテーブルであり、例えば、図６（ｂ）に示すように、処理名及び割当ノード等のフィールドを有する。処理名のフィールドには、一連の処理に含まれる処理の名称が格納される。割当ノードのフィールドには、各処理が割り当てられたノードの情報が格納される。
【００２６】
図２に戻り、処理グループ作成部１０３は、処理間のデータ通信に必要な帯域（以下、必要帯域と記載する）に基づいて一連の処理を分割し、１以上の処理を含む処理グループを作成する。本実施形態では、処理グループ作成部１０３は、処理間の必要帯域が最小となる処理間で一連の処理を分割し、処理グループを作成する。処理グループ作成部１０３は、処理グループを作成すると、処理グループのノードへの割当を管理する処理グループ割当管理テーブル（図１０（ａ）参照）を作成する（詳細は後述する）。なお、処理間のデータ通信に必要な帯域とは、２つの連続する処理を、別々のノードに割り当てた場合に、各処理を実行するノード間でのデータ通信に必要となる帯域のことである。
【００２７】
ノード決定部１０５は、例えば、リソース割当管理テーブル（図６（ａ）参照）を参照して、ネットワーク上の複数のノードから、処理グループに含まれる全ての処理を実行可能なノードを検索し、処理グループを割り当てるノードを決定する。ノード決定部１０５は、処理グループに含まれる処理を決定したノードに割り当てる。
【００２８】
情報出力部１０７は、各処理のノードへの割当結果（例えば、ノード割当情報テーブル）を処理配置実行サーバ２０に送信する。
【００２９】
以下、処理割当サーバ１０において実行される処理について、図７、図８、及び図１５のフローチャートに沿って、その他図面を適宜参照しつつ、詳細に説明する。
【００３０】
図７には、処理割当サーバ１０による割当処理がフローチャートにて示されている。本処理は、一連の処理に含まれる各処理をノードに割り当てる、すなわち、各処理を実行するノードを決定する処理である。図７の処理は、処理割当サーバ１０が、処理配置実行サーバ２０から割当要求を受信すると開始される。
【００３１】
図７の処理では、まず、ステップＳ１０において、処理グループ作成部１０３は、開始ノード及び終了ノードが指定されているか否かを判断する。開始ノード及び終了ノードの指定がない場合には、ステップＳ１２に移行する。
【００３２】
一方、開始ノード及び終了ノードが指定されている場合、ステップＳ１１に移行し、処理グループ作成部１０３は、図８の開始ノード・終了ノードへの割当処理を開始する。ここで、処理割当サーバ１０が、図９（ａ）に示すネットワークにおいて開始ノードをノード１、終了ノードをノード３として、図９（ｂ）に示す一連の処理をノードへ割り当てる要求を受信したとする。この場合、開始ノード及び終了ノードが指定されているので、図７のステップＳ１０の判断が肯定され、処理グループ作成部１０３は、ステップＳ１１に移行し、開始ノード・終了ノードへの割当処理を開始する。
【００３３】
（開始ノード・終了ノードへの割当処理：Ｓ１１）
図８は、開始ノード・終了ノードへの割当処理（Ｓ１１）の詳細を示すフローチャートである。
【００３４】
図８の処理では、処理グループ作成部１０３は、ステップＳ１０１において、一連の処理を最初の処理から探索し、開始ノードで実行可能な範囲の処理を特定する。具体的には、処理グループ作成部１０３は、最初の処理を含み、総必要計算量が開始ノードの計算リソース以下（総必要計算量≦開始ノードの計算リソース）となる処理を、一連の処理から特定する。図９（ａ）に示すネットワークにおいて、開始ノードであるノード１の計算リソースは「５」である。この場合、処理グループ作成部１０３は、図９（ｂ）に示す一連の処理において、「開始」から「処理２」までの処理を、開始ノードで実行可能な範囲の処理であると特定する。
【００３５】
続くステップＳ１０３において、処理グループ作成部１０３は、ステップＳ１０１で特定した処理と、処理間の必要帯域とに基づいて、最初の処理を含む処理グループを作成する。具体的には、処理グループ作成部１０３は、ステップＳ１０１で特定した開始ノードで実行可能な範囲の処理における処理間の必要帯域と、開始ノードで実行可能な範囲の処理の最後の処理とその直後の処理との間の必要帯域とを比較する。そして、開始ノードで実行可能な範囲の処理における処理間の必要帯域が、最後の処理とその直後の処理との間の必要帯域よりも小さければ、開始ノードで実行可能な範囲の処理を処理間の必要帯域が最小となる処理間で分割する。開始ノードで実行可能な範囲の処理の最後の処理とその直後の処理との間の必要帯域が、開始ノードで実行可能な範囲の処理における処理間の必要帯域よりも小さければ、開始ノードで実行可能な範囲の処理の最後の処理とその直後の処理との間で一連の処理を分割する。図９（ｂ）において、「開始」から「処理２」までの処理では、処理１と処理２との間の必要帯域「１」が、特定された処理の最後の処理である「処理２」とその直後の処理「処理３」との間の必要帯域「２」よりも小さい。したがって、処理グループ作成部１０３は、「開始」から「処理２」までの処理を、必要帯域が最小である処理１と処理２との間で分割し、最初の処理である「開始」を含む処理グループ１を作成する（図９（ｃ）参照）。これにより、開始ノードで実行可能な範囲で、処理間の必要帯域が大きい処理をまとめて、開始ノードに割り当てることができる。
【００３６】
処理グループ作成部１０３は、処理グループを作成すると、例えば、図１０（ａ）に示すような処理グループ割当管理テーブルを作成する。処理グループ割当管理テーブルは、処理グループをいずれのノードに割り当てたかを管理するためのテーブルであり、図１０（ａ）に示すように、処理グループ、処理名、及び割当ノード等のフィールドを有する。処理グループのフィールドには、処理グループ作成部１０３が作成した処理グループの名称が格納される。処理名には、処理グループに含まれる処理の情報が格納される。割当ノードのフィールドには、処理グループが割り当てられたノードの情報が格納される。ステップＳ１０３の終了時点では、処理グループ１は、未だノードに割り当てられていないため、図１０（ａ）に示すように、割当ノードのフィールドは空となっている。
【００３７】
図８に戻り、続くステップＳ１０４において、ノード決定部１０５は、ステップＳ１０３で作成された処理グループを開始ノードに割り当てる。図９（ｃ）の場合、ノード決定部１０５は、処理グループ１を開始ノードであるノード１に割り当てる（図９（ｄ）参照）。このとき、ノード決定部１０５は、図１０（ｂ）に示すように、処理グループ割当管理テーブルにおいて、処理グループ１に対する割当ノードのフィールドに「ノード１」を格納する。また、ノード決定部１０５は、リソース割当管理テーブル（図６（ａ）参照）を更新する。具体的には、ノード決定部１０５は、図１０（ｃ）に示すように、ノード１の割当済み処理のフィールドに、処理グループ１に含まれる処理である「開始、処理１」を格納する。また、ノード決定部１０５は、計算リソース「５」から、処理１の必要計算量「２」を差し引いた「３」を残計算リソースのフィールドに格納する。さらに、ノード決定部１０５は、ノード割当情報テーブル（図６（ｂ）参照）を更新する。具体的には、図１０（ｄ）に示すように、「開始」及び「処理１」の割当ノードのフィールドに、「ノード１」を格納する。
【００３８】
図８に戻り、続くステップＳ１０５において、処理グループ作成部１０３は、一連の処理を最後の処理から探索し、終了ノードで実行可能な範囲の処理を特定する。具体的には、処理グループ作成部１０３は、最後の処理を含み、総必要計算量が終了ノードの計算リソース以下（総必要計算量≦終了ノードの計算リソース）となる処理を、一連の処理から特定する。図９（ａ）に示すネットワークにおいて、終了ノードであるノード３の計算リソースは「４」である。したがって、処理グループ作成部１０３は、図９（ｃ）において、「終了」から「処理３」までの処理を、終了ノードで実行可能な範囲の処理であると特定する。
【００３９】
続くステップＳ１０７において、処理グループ作成部１０３は、ステップＳ１０５で特定した処理と、処理間の必要帯域とに基づいて、最後の処理を含む処理グループを作成する。具体的には、処理グループ作成部１０３は、ステップＳ１０５で特定した終了ノードで実行可能な範囲の処理の処理間の必要帯域と、終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間の必要帯域とを比較する。そして、終了ノードで実行可能な範囲の処理の処理間の必要帯域が、終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間の必要帯域よりも小さい場合、終了ノードで実行可能な範囲の処理を処理間の必要帯域が最小となる処理間で分割する。一方、終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間の必要帯域が、終了ノードで実行可能な範囲の処理の処理間の必要帯域よりも小さい場合、一連の処理を終了ノードで実行可能な範囲の処理の最初の処理とその直前の処理との間で分割する。図９（ｃ）において、「終了」から「処理３」までの処理では、最初の処理である「処理３」とその直前の処理である「処理２」との間の必要帯域が「２」となっており、「処理３」と「終了」との間の必要帯域「１０」よりも小さい。そこで、処理グループ作成部１０３は、処理２と処理３との間で処理を分割し、最後の処理を含む処理グループ２を作成する（図９（ｄ）参照）。これにより、終了ノードで実行可能な範囲で、処理間の必要帯域が大きい処理をまとめて、終了ノードに割り当てることができる。なお、このとき、処理グループ作成部１０３は、図１１（ａ）に示すように、処理グループ割当管理テーブルに、「処理グループ２」を追加する。
【００４０】
続くステップＳ１０８において、ノード決定部１０５は、ステップＳ１０７で作成された処理グループを終了ノードに割り当てる。図９（ｄ）では、ノード決定部１０５は、処理グループ２を終了ノードであるノード３に割り当てる（図９（ｅ）参照）。そして、ノード決定部１０５は、処理グループ割当管理テーブル、リソース割当管理テーブル、及びノード割当情報テーブルを、それぞれ、図１１（ｂ）、図１１（ｃ）、及び図１１（ｄ）に示すようにそれぞれ更新する。
【００４１】
ステップＳ１０８の処理の終了後は、図７のステップＳ１２に移行する。
【００４２】
図７のステップＳ１２に移行すると、ノード決定部１０５は、未だノードに割り当てられていない処理の総必要計算量を割当可能なノードが存在するか否かを判断する。図９（ｅ）において、未だノードに割り当てられていない処理２の必要計算量は「２」である。この場合、ノード決定部１０５は、図１１（ｃ）のリソース割当管理テーブルを参照し、必要計算量「２」を割当可能なノードを検索する。具体的には、ノード決定部１０５は、残計算リソースが２以上のノードを検索する。図１１（ｃ）の場合、ノード１の残計算リソースが「３」であり、処理２の必要計算量を割当可能である。この場合、ノード決定部１０５は、ステップＳ１４に移行する。
【００４３】
ステップＳ１４に移行すると、ノード決定部１０５は、開始ノード及び終了ノードからの通信コストが最小のノードに未割当の処理を割り当てる。図９（ｅ）の場合、処理２を割当可能なノードは、ノード１のみであるため、処理２をノード１に割り当てる（図９（ｆ）参照）。ノード決定部１０５は、リソース割当管理テーブル及びノード割当情報テーブルを、それぞれ、図１２（ａ）及び図１２（ｂ）に示すようにそれぞれ更新する。なお、開始ノード及び終了ノードが指定されておらず、未割当の処理を実行可能なノードが複数ある場合には、ノード決定部１０５は、予め定められたルールに基づいて、処理を割り当てるノードを決定すればよい。例えば、ノード決定部１０５は、未割当の処理を割当可能な複数のノードのうちノード番号が一番小さいノードに、処理を割り当ててもよいし、ノード番号が一番大きいノードに処理を割り当ててもよい。
【００４４】
別例として、処理割当サーバ１０が、図１３（ａ）に示すネットワークにおいて開始ノードをノード１、終了ノードをノード４として、図１３（ｂ）に示す一連の処理をノードへ割り当てる要求を受信した場合について説明する。
【００４５】
開始ノードであるノード１は計算リソースが「３」であるため、「開始」から「処理１」までの処理を実行可能である（図８：ステップＳ１０３）。ここで、「開始」から「処理１」までの処理において「開始」と「処理１」との間の必要帯域は「１０」であり、「処理１」と「処理２」との間の必要帯域「１」よりも大きい。この場合、処理グループ作成部１０３は、処理１と処理２との間で一連の処理を分割し、最初の処理である「開始」を含む処理グループ１を作成する（図８：ステップＳ１０３、図１３（ｃ）参照）。そして、ノード決定部１０５は、処理グループ１を開始ノードであるノード１に割り当てる（図８：ステップＳ１０４、図１３（ｄ）参照）。
【００４６】
一方、終了ノードであるノード４は計算リソースが「２」であるため、「終了」から「処理４」までの処理を実行可能である（図８：ステップＳ１０５）。ここで、最初の処理である「処理４」とその直前の処理「処理３」との間の必要帯域は「２」であり、「終了」から「処理４」までの処理における処理間の必要帯域「５」よりも小さい。この場合、処理グループ作成部１０３は、処理３と処理４との間で一連の処理を分割し、最後の処理である「終了」を含む処理グループ２を作成する（図８：ステップＳ１０７、図１３（ｄ）参照）。そして、ノード決定部１０５は、処理グループ２を終了ノードであるノード４に割り当てる（図８：ステップＳ１０８：図１３（ｅ）参照）。
【００４７】
開始ノード及び終了ノードへの処理の割当が終了した時点でのリソース割当管理テーブルは、図１４に示すとおりである。ノードへ未割当の処理２及び処理３の総必要計算量は「４」であり、図１４を参照すると、処理２及び処理３の全てを実行可能なノードが複数（ノード２及びノード３）存在する。この場合、ノード決定部１０５は、処理２及び処理３をノード２に割り当てた場合の通信コストと、ノード３に割り当てた場合の通信コストとを比較し、通信コストが最小のノードに処理２及び処理３を割り当てる（図７：ステップＳ１４）。ここで、処理を割当済みのノード１とノード２とのノード間通信コストは２であり、処理を割当済みのノード４とノード２とのノード間通信コストは１７である。したがって、処理２及び処理３をノード２に割り当てた場合の通信コスト総計は３６（２×１＋１７×２）となる。一方、ノード３とノード１とのノード間通信コストは１２であり、ノード３とノード４とのノード間通信コストは７であるため、処理２及び処理３をノード３に割り当てた場合の通信コスト総計は２６（１２×１＋７×２）となる。したがって、ノード決定部１０５は、通信コスト総計が最小となるノード３に処理２及び処理３を割り当てる（図１３（ｆ）参照）。
【００４８】
図７に戻り、ステップＳ１２において、未割当の処理の総必要計算量を割当可能なノードが存在しない場合、ノード決定部１０５は、ステップＳ２０に移行し、図１５に示すノード決定処理を開始する。ここで、一例として、処理割当サーバ１０が、図１６（ａ）に示すネットワークにおいて開始ノードをノード１、終了ノードをノード４として、図１６（ｂ）に示す一連の処理をノードへ割り当てる要求を受信した場合について説明する。この場合、図７のステップＳ１１の開始ノード・終了ノードへの割当処理を行うと、最初の処理「開始」を含む処理グループ１が開始ノードであるノード１に割り当てられる。また、最後の処理「終了」を含む処理グループ２が終了ノードであるノード４に割り当てられる（図１６（ｃ））。ステップＳ１１の処理後のリソース割当管理テーブルは、図１７（ａ）となる。また、処理グループ割当管理テーブルは、図１７（ｂ）となる。なお、開始ノードであるノード１の計算リソースは「１」であり、必要計算量が「２」である処理１を実行できないため、ノード１には、「開始」のみが割り当てられている。ここで、図１６（ｃ）において、ノードへ未割当の処理である処理１〜処理３の総必要計算量は８であり、割当可能なノードが存在しないため、ステップＳ１２の判断は否定され、ノード決定部１０５は、ステップＳ２０に移行し、図１５のノード決定処理を開始する。
【００４９】
（ノード決定処理：Ｓ２０）
図１５は、ノード決定処理（Ｓ２０）の詳細を示すフローチャートである。
【００５０】
図１５の処理では、まず、ステップＳ２０１において、ノード決定部１０５は、ノードに未割当の処理が２以上存在するか否かを判断する。ここでの判断が否定された場合、ステップＳ２０３に移行し、ノード決定部１０５は、処理を割当可能なノードがない（解なし）として、本処理を終了し、図７のステップＳ１６に移行する。
【００５１】
一方、ノードに未割当の処理が２以上存在する場合、ステップＳ２０５に移行し、処理グループ作成部１０３は、未割当の処理を、処理間の必要帯域が最小な処理間で分割し、処理グループを作成する。図１６（ｃ）では、未割当の処理１〜処理３において、処理１と処理２との間の必要帯域が「１」で最小である。したがって、処理グループ作成部１０３は、未割当の処理１〜処理３を、処理１と処理２との間で分割し、処理グループ３及び処理グループ４を作成する（図１６（ｄ）参照）。このとき、処理グループ作成部１０３は、図１７（ｂ）に示す処理グループ割当管理テーブルに、図１７（ｃ）に示すように、処理グループ３及び処理グループ４を追加する。
【００５２】
続くステップＳ２０７において、ノード決定部１０５は、ノードに未割当の処理グループを選択する。例えば、ノード決定部１０５は、図１７（ｃ）に示す処理グループ割当管理テーブルにおいて、ノードに割り当てられていない処理グループ３を選択する。
【００５３】
続くステップＳ２０９において、ノード決定部１０５は、選択した処理グループに含まれる各処理の必要計算量の総和（総必要計算量）を割当可能なノードが存在するか否かを判断する。本処理では、処理グループに含まれる全ての処理を実行可能なノードが存在するか否かを判断している。ここでの判断が肯定された場合、ステップＳ２１１に移行する。
【００５４】
ステップＳ２１１に移行すると、ノード決定部１０５は、割当可能ノードの中で、処理を割当済みのノードとの通信コストが最小となるノードに処理グループを割り当てる。例えば、図１６（ｄ）では、処理グループ３に含まれる処理１の必要計算量は「２」であり、図１７（ａ）のリソース割当管理テーブルを参照すると、ノード２及びノード３に割当可能である。この場合、ノード決定部１０５は、処理を割当済みのノード（開始ノード：ノード１）との通信コストが最小となるノード２に処理グループ３を割り当てる。ノード決定部１０５は、処理グループ割当管理テーブルを図１８（ａ）に示すように更新する。また、ノード決定部１０５は、リソース割当管理テーブルを図１８（ｂ）に示すように更新する。
【００５５】
続くステップＳ２１５において、ノード決定部１０５は、全ての処理グループをノードに割り当てたか否かを判断する。具体的には、ノード決定部１０５は、処理グループ割当管理テーブル（図１８（ａ）等）において、ノードに割り当てられていない処理グループが存在するか否かを判断する。ここでの判断が肯定された場合、図１５の処理を終了し、図７のステップＳ１６に移行する。
【００５６】
一方、ノードに割り当てていない処理グループが存在する場合、ステップＳ２１５の判断は否定され、ノード決定部１０５は、ステップＳ２０７に戻り、ノードに未割当の処理グループを選択する。図１８（ａ）の処理グループ割当管理テーブルでは、処理グループ４が未だノードに割り当てられていないため、ノード決定部１０５は、処理グループ４を選択する。
【００５７】
ここで、処理グループ４に含まれる処理２及び処理３の必要計算量の総和は「５」であり、図１８（ｂ）のリソース割当管理テーブルを参照すると、割当可能なノードが存在しない。この場合、ステップＳ２０９の判断が否定され、ステップＳ２１２に移行する。
【００５８】
ステップＳ２１２に移行すると、ノード決定部１０５は、処理グループに２以上の処理が含まれるか否かを判断する。ここでの判断が否定された場合、ステップＳ２０３に移行し、処理を割当可能なノードがない（解なし）として、本処理を終了し、図７のステップＳ１６に移行する。一方、処理グループに２以上の処理が含まれる場合、ステップＳ２１３に移行する。
【００５９】
ステップＳ２１３に移行すると、処理グループ作成部１０３は、処理グループ内の処理を、処理間の必要帯域が最小の処理間で分割し、新たな処理グループを作成する。例えば、図１６（ｄ）において、処理グループ作成部１０３は、処理グループ４を、必要帯域が最小である処理２と処理３との間で分割し、処理グループ４−１及び処理グループ４−２を新たに作成する（図１６（ｅ）参照）。このとき、処理グループ作成部１０３は、図１８（ａ）の処理グループ割当管理テーブルから処理グループ４を削除し、図１８（ｃ）に示すように、処理グループ４−１及び処理グループ４−２を追加する。
【００６０】
続くステップＳ２１５において、ノード決定部１０５は、全ての処理グループをノードに割り当てたか否かを判断する。処理グループ作成部１０３及びノード決定部１０５は、ステップＳ２１５の判断が肯定されるまで、すなわち、全ての処理グループをノードに割り当てるまで、ステップＳ２０７〜ステップＳ２１３の処理を繰り返す。つまり、ステップＳ２０７〜ステップＳ２１５では、ノードで処理可能な処理グループになるまで一連の処理の分割を繰り返している。そして、全ての処理グループをノードに割り当てた時点で、ステップＳ２１５の判断が肯定され、図１５の処理を終了し、図７のステップＳ１６に移行する。
【００６１】
なお、図１６（ｅ）では、処理２を含む処理グループ４−１は、ノード２及びノード３へ割当可能（図１８（ｂ）参照）であるが、ノード決定部１０５は、処理１を割当済みのノードであるノード２との通信コストが最小となるノード２に処理グループ４−１を割り当てる（図１６（ｆ）参照）。また、処理３を含む処理グループ４―２は、ノード３へ割当可能であるため、ノード決定部１０５は、処理グループ４―２をノード３に割り当てる（図１６（ｆ）参照）。そして、ノード決定部１０５は、処理グループ４―２のノードへの割当を終了すると、全ての処理グループのノードへの割り当てが終了したため、図７のステップＳ１６に移行する。
【００６２】
図７に戻り、ステップＳ１６に移行すると、情報出力部１０７が、各処理のノードへの割当結果を処理配置実行サーバ２０に送信し、図７の全処理を終了する。例えば、情報出力部１０７は、ノード割当情報テーブル（図１２（ｂ）参照）の情報を処理配置実行サーバ２０に送信する。処理配置実行サーバ２０は、ノード割当情報テーブルの情報に基づいて、各処理をノードに配置し、一連の処理を開始させる。
【００６３】
以上詳細に説明したように、本実施形態によると、処理割当サーバ１０において、処理グループ作成部１０３が、複数の関連する処理を含む一連の処理を、処理間のデータ通信に必要な帯域に基づいて、少なくとも１つの処理を含む処理グループに分割し（図８：ステップＳ１０１，Ｓ１０３，Ｓ１０５，Ｓ１０７、図１５：ステップＳ２０５、図１６（ｄ））、ノード決定部１０５が、ネットワークに接続された複数のノードのうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを処理グループごとに特定し、特定したノードに各処理グループを割り当てる（図８：ステップＳ１０４，Ｓ１０８、図１５：ステップＳ２１１）。これにより、処理間のデータ通信に必要な帯域を考慮して各処理をノードに割り当てることができるので、ノード間での通信データ量が低減され、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。
【００６４】
具体的には、本実施形態において、処理グループ作成部１０３は、処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含める。これにより、処理間の必要帯域が大きい処理が、まとめて１つのノードに割り当てられるため、各処理を実行するノード間の通信データ量が低減される。したがって、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。
【００６５】
より具体的には、本実施形態において、処理グループ作成部１０３は、一連の処理を、処理間のデータ通信に必要な帯域が最小となる処理間で分割する。これにより、処理間の必要帯域が大きい処理が、まとめて１つのノードに割り当てられるとともに、別々のノードに割り当てられた処理間の必要帯域が小さくなるため、各処理を実行するノード間の通信データ量が低減される。したがって、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減することができる。
【００６６】
また、本実施形態において、処理グループ作成部１０３は、分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、当該処理グループを、処理グループに含まれる処理間のデータ通信に必要な帯域が最小となる処理間で分割し、新たな処理グループを作成する（図１５：ステップＳ２１３、図１６（ｅ））。これにより、ネットワーク上のノードが実行可能な範囲で、処理間の必要帯域が大きい処理をまとめて１つのノードに割り当てることができる。
【００６７】
また、本実施形態において、一連の処理を開始する開始ノードが定められている場合、処理グループ作成部１０３は、開始ノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、一連の処理の最初の処理を含む処理グループを分割する（図８：ステップＳ１０１、Ｓ１０３、図９（ｃ））。ノード決定部１０５は、最初の処理を含む処理グループを開始ノードに割り当てる（図８：ステップＳ１０４、図９（ｄ））。また、一連の処理を終了する終了ノードが定められている場合、処理グループ作成部１０３は、終了ノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、一連の処理の最後の処理を含む処理グループを分割する（図８：ステップＳ１０５、Ｓ１０７、図９（ｄ））。ノード決定部１０５は、最後の処理を含む処理グループを終了ノードに割り当てる（図８：ステップＳ１０８、図９（ｆ））。これにより、一連の処理を開始ノードで開始し、終了ノードで終了するとともに、処理間の必要帯域が大きい処理をまとめて１つのノードに割り当てることができる。
【００６８】
また、本実施形態において、ノード決定部１０５は、処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、処理グループを割り当てるノードを決定する（図７：ステップＳ１４、図１５：ステップＳ２１１）。具体的には、ノード決定部１０５は、処理を割当済みのノードからの通信コストが最小となるノードに、処理グループを割り当てる。これにより、一連の処理を複数のノードで分散実行する場合のネットワーク負荷を低減するとともに、通信コストを低減することができる。
【００６９】
なお、上記実施形態において、処理グループ作成部１０３は、一連の処理を、処理間のデータ通信に必要な帯域が最小となる処理間で分割していたが、これに限られるものではない。処理グループ作成部１０３は、例えば、一連の処理を、処理間のデータ通信に必要な帯域が所定の帯域（例えば、５）以下となる処理間で分割してもよい。このようにしても、処理間の必要帯域が所定の帯域以上である処理を、まとめて１つのノードに割り当てることができるため、ノード間の通信データ量が低減され、ネットワーク負荷を低減することができる。
【００７０】
なお、上記実施形態では、開始ノードと終了ノードとが指定されていたが、一連の処理に含まれる特定の処理を実行するノードがさらに指定されている場合がある。例えば、処理割当サーバ１０が、図１９（ａ）に示すネットワークにおいて、図１９（ｂ）に示す一連の処理をノードへ割り当てる要求を受信したとする。このとき、開始ノードにノード１が指定され、終了ノードにノード４が指定され、処理２をノード３で実行するよう指定されていたとする。この場合、処理割当サーバ１０は、図１９（ｂ）に示す一連の処理を、開始〜処理２までの処理を含む処理単位１（図１９（ｃ））と、処理２〜終了までの処理を含む処理単位２（図１９（ｄ））とに分割する。そして、処理割当サーバ１０は、開始ノードをノード１、終了ノードをノード３として、処理単位１に対する割当処理（図７）を実行し、開始ノードをノード３、終了ノードをノード４として、処理単位２に対する割当処理（図７）を実行する。これにより、特定の処理を指定されたノードで実行できるとともに、処理間の必要帯域が大きい処理をまとめて１つのノードに割り当てることができる。
【００７１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００７２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７４】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００７５】
なお、以上実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  複数の関連する処理を、処理間のデータ通信に必要な帯域に基づいて、少なくとも１つの処理を含む処理グループに分割し、
ネットワークに接続された複数のノードのうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを前記処理グループごとに特定し、特定したノードに各処理グループを割り当てる、
処理をコンピュータが実行することを特徴とする処理割当方法。
（付記２）  前記分割する処理では、前記処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含めることを特徴とする付記１に記載の処理割当方法。
（付記３）  前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が最小となる処理間で分割することを特徴とする付記１に記載の処理割当方法。
（付記４）  前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が所定の帯域以下となる処理間で分割することを特徴とする付記１に記載の処理割当方法。
（付記５）  分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、前記分割後の処理グループを、前記分割後の処理グループに含まれる処理間のデータ通信に必要な帯域に基づいて分割する、ことを特徴とする付記１〜４のいずれかに記載の処理割当方法。
（付記６）  前記複数の関連する処理を開始する第１のノードと終了する第２のノードとが定められている場合、
前記分割する処理では、前記第１のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の関連する処理の最初の処理を含む処理グループを第１の処理グループとして分割するとともに、前記第２のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の関連する処理の最後の処理を含む処理グループを第２の処理グループとして分割し、
前記割り当てる処理では、前記第１のノードに前記第１の処理グループを割り当て、前記第２のノードに前記第２の処理グループを割り当てる、ことを特徴とする付記１〜５のいずれかに記載の処理割当方法。
（付記７）  前記複数の関連する処理のうちの所定の処理を実行する第３のノードが定められている場合、
前記分割する処理では、前記複数の関連する処理の最初の処理から前記所定の処理までの処理において、前記第３のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、前記所定の処理を含む処理グループを第３の処理グループとして分割するとともに、前記所定の処理から前記複数の関連する処理の最後の処理までの処理において、前記第３のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、前記所定の処理を含む処理グループを第４の処理グループとして分割し、
前記割り当てる処理では、前記第３のノードに前記第３の処理グループと前記第４の処理グループとを割り当てる、ことを特徴とする付記１〜６のいずれかに記載の処理割当方法。
（付記８）  前記割り当てる処理では、分割後の処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、前記分割後の処理グループを割り当てるノードを特定する、ことを特徴とする付記１〜７のいずれかに記載の処理割当方法。
（付記９）  複数の関連する処理を、処理間のデータ通信に必要な帯域に基づいて分割し、少なくとも１つの処理を含む処理グループを作成する処理グループ作成部と、
ネットワークに接続された複数のノードのうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを前記処理グループごとに特定し、特定したノードに各処理グループを割り当てるノード割当部と、
を備える処理割当装置。
（付記１０）  前記処理グループ作成部は、前記処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含めることを特徴とする付記９に記載の処理割当装置。
（付記１１）  前記処理グループ作成部は、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が最小となる処理間で分割することを特徴とする付記９に記載の処理割当装置。
（付記１２）  前記処理グループ作成部は、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が所定の帯域以下となる処理間で分割することを特徴とする付記９に記載の処理割当装置。
（付記１３）  前記処理グループ作成部は、分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、前記分割後の処理グループを、前記分割後の処理グループに含まれる処理間のデータ通信に必要な帯域に基づいて分割する、ことを特徴とする付記９〜１２のいずれかに記載の処理割当装置。
（付記１４）  前記複数の関連する処理を開始する第１のノードと終了する第２のノードとが定められている場合、
前記処理グループ作成部は、前記第１のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の関連する処理の最初の処理を含む処理グループを第１の処理グループとして分割するとともに、前記第２のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の関連する処理の最後の処理を含む処理グループを第２の処理グループとして分割し、
前記ノード割当部では、前記第１のノードに前記第１の処理グループを割り当て、前記第２のノードに前記第２の処理グループを割り当てる、
ことを特徴とする付記９〜１３のいずれかに記載の処理割当装置。
（付記１５）  前記複数の関連する処理のうちの所定の処理を実行する第３のノードが定められている場合、
前記処理グループ作成部は、前記複数の関連する処理の最初の処理から前記所定の処理までの処理において、前記第３のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、前記所定の処理を含む処理グループを第３の処理グループとして分割するとともに、前記所定の処理から前記複数の関連する処理の最後の処理までの処理において、前記第３のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、前記所定の処理を含む処理グループを第４の処理グループとして分割し、
前記ノード割当部は、前記第３のノードに前記第３の処理グループと前記第４の処理グループとを割り当てる、ことを特徴とする付記９〜１４のいずれかに記載の処理割当装置。
（付記１６）  前記ノード割当部は、分割後の処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、前記分割後の処理グループを割り当てるノードを特定する、ことを特徴とする付記９〜１５のいずれかに記載の処理割当装置。
（付記１７）  複数の関連する処理を、処理間のデータ通信に必要な帯域に基づいて、少なくとも１つの処理を含む処理グループに分割し、
ネットワークに接続された複数のノードのうち、分割後の各処理グループに含まれる全ての処理を実行可能なノードを前記処理グループごとに特定し、特定したノードに各処理グループを割り当てる、
処理をコンピュータに実行させることを特徴とする処理割当プログラム。
（付記１８）  前記分割する処理では、前記処理間のデータ通信に必要な帯域が大きい処理を優先して同一の処理グループに含めることを特徴とする付記１７に記載の処理割当プログラム。
（付記１９）  前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が最小となる処理間で分割することを特徴とする付記１７に記載の処理割当プログラム。
（付記２０）  前記分割する処理では、前記複数の関連する処理を、前記処理間のデータ通信に必要な帯域が所定の帯域以下となる処理間で分割することを特徴とする付記１７に記載の処理割当プログラム。
（付記２１）  分割後の処理グループに含まれる全ての処理を実行可能なノードが無い場合、前記分割後の処理グループを、前記分割後の処理グループに含まれる処理間のデータ通信に必要な帯域に基づいて分割する、ことを特徴とする付記１７〜２０のいずれかに記載の処理割当プログラム。
（付記２２）  前記複数の関連する処理を開始する第１のノードと終了する第２のノードとが定められている場合、
前記分割する処理では、前記第１のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の関連する処理の最初の処理を含む処理グループを第１の処理グループとして分割するとともに、前記第２のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて前記複数の関連する処理の最後の処理を含む処理グループを第２の処理グループとして分割し、
前記割り当てる処理では、前記第１のノードに前記第１の処理グループを割り当て、前記第２のノードに前記第２の処理グループを割り当てる、ことを特徴とする付記１７〜２１のいずれかに記載の処理割当プログラム。
（付記２３）  前記複数の関連する処理のうちの所定の処理を実行する第３のノードが定められている場合、
前記分割する処理では、前記複数の関連する処理の最初の処理から前記所定の処理までの処理において、前記第３のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、前記所定の処理を含む処理グループを第３の処理グループとして分割するとともに、前記所定の処理から前記複数の関連する処理の最後の処理までの処理において、前記第３のノードの計算リソースと、処理間のデータ通信に必要な帯域と、に基づいて、前記所定の処理を含む処理グループを第４の処理グループとして分割し、
前記割り当てる処理では、前記第３のノードに前記第３の処理グループと前記第４の処理グループとを割り当てる、ことを特徴とする付記１７〜２２のいずれかに記載の処理割当プログラム。
（付記２４）  前記割り当てる処理では、分割後の処理グループに含まれる全ての処理を実行可能なノードが複数存在する場合、処理を割当済みのノードからの通信コストに基づいて、前記分割後の処理グループを割り当てるノードを特定する、ことを特徴とする付記１７〜２３のいずれかに記載の処理割当プログラム。
【符号の説明】
【００７６】
１０  処理割当サーバ
５０−１〜５０−ｎ  ノード
１０３  処理グループ作成部
１０５  ノード決定部
【図１】
0006582628.tif 000002
【図２】
0006582628.tif 000003
【図３】
0006582628.tif 000004
【図４】
0006582628.tif 000005
【図５】
0006582628.tif 000006
【図６】
0006582628.tif 000007
【図７】
0006582628.tif 000008
【図８】
0006582628.tif 000009
【図９】
0006582628.tif 000010
【図１０】
0006582628.tif 000011
【図１１】
0006582628.tif 000012
【図１２】
0006582628.tif 000013
【図１３】
0006582628.tif 000014
【図１４】
0006582628.tif 000015
【図１５】
0006582628.tif 000016
【図１６】
0006582628.tif 000017
【図１７】
0006582628.tif 000018
【図１８】
0006582628.tif 000019
【図１９】
0006582628.tif 000020