(57)【要約】【課題】処理端末装置に稼働状況、処理能力等に応じて並列処理に係る処理を実行させ、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供する。【解決手段】マスタ２は、スレーブ群６全体に対して並列処理への参加募集を行うと共に、保持している処理データの問い合わせを行う（ステップ４２、５１）。マスタ２は、参加応募したスレーブ７に処理を割付け、スレーブ７からの処理データの報告に基づいて、当該割付処理の処理データに対して、配布済みの処理データ、未配布の処理データを管理し、配布済みであれば処理実行依頼のみ送信し（ステップ５３−１）、未配布であれば処理データ、処理実行依頼を送信する（ステップ５４−２、５３−２）。スレーブ７は、マスタ２から受け取った処理実行依頼の割付処理を実行する。【選択図】図４
2007102666.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、
前記サーバは、
前記処理端末装置に対して、保持する以前配布された処理データを問い合わせるデータ問い合わせ手段と、
前記処理端末装置から送られた保持する処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、当該割付処理に係る処理データが配布済みの場合には当該割付処理の処理実行依頼を送信し、未配布の場合には当該割付処理に係る処理データと、その処理実行依頼を送信する処理割付手段と、
を具備し、
前記処理端末装置は、
前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、
を具備することを特徴とする並列処理システム。
【請求項２】
複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、
前記サーバは、
前記処理端末装置に対して、保持している処理データを問い合わせるデータ問い合わせ手段と、
前記処理端末装置から送られた保持している処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付けて、当該割付処理に係る処理データが配布済みの場合には処理実行依頼を、未配布の場合には前記処理データを保持する、前記処理端末装置／前記ネットワークを介して接続される記憶装置からの転送指示と、処理実行依頼を送信する処理割付手段と、
を具備し、
前記処理端末装置は、
前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、
前記サーバから転送指示が送られると、前記処理データの転送指示に従い、他の処理端末装置／前記ネットワークを介して接続された記憶装置から当該割付処理の処理データを転送するデータ転送手段と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、
を具備することを特徴とする並列処理システム。
【請求項３】
複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、
前記サーバは、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、処理実行依頼を送信する処理割付手段と、
を具備し、
前記処理端末装置は、
前記サーバから前記割付処理の処理実行依頼が送られると、自身が当該割付処理の処理データを保持していない場合、他の全ての処理端末装置に当該処理データの問い合わせを行うデータ問合せ手段と、
他の処理端末装置から処理データの問い合わせが送られると、当該処理データを自身が保持している場合、処理データ保持を応答するデータ応答手段と、
他の処理端末装置から処理データ保持の応答が送られると、応答してきた処理端末装置から当該処理データを転送するデータ転送手段と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、
を具備することを特徴とする並列処理システム。
【請求項４】
前記サーバは、
前記処理端末装置に対して、ブロードキャスト通信により、前記並列処理への参加募集を行い、前記参加募集に対して参加応募している処理端末装置に前記割付処理を割り付け送信し実行させることを特徴とする請求項１乃至請求項３いずれかに記載の並列処理システム。
【請求項５】
前記データ問い合わせ手段又は前記データ報告手段は、ブロードキャスト通信によりデータ問い合わせ又はデータ報告を行うことを特徴とする請求項１乃至請求項３いずれかに記載の並列処理システム。
【請求項６】
前記サーバは、
前記処理端末装置に対して、当該割付処理の処理データを送信する際、割付処理実行後に当該処理データを保持／破棄するかの後処理指示を送信する後処理指示手段を、具備し、
前記処理端末装置は、
前記割付処理実行後、前記サーバからの後処理指示に従い、当該割付処理に係る処理データを保持／破棄するデータ後処理手段と、
を具備することを特徴とする請求項１乃至請求項３いずれかに記載の並列処理システム。
【請求項７】
複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、
前記処理端末装置に対して、保持する以前配布された処理データを問い合わせるデータ問い合わせ手段と、
前記処理端末装置から送られた保持する処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、当該割付処理に係る処理データが配布済みの場合には当該割付処理の処理実行依頼を送信し、未配布の場合には当該割付処理に係る処理データと、その処理実行依頼を送信する処理割付手段と、
を具備することを特徴とするサーバ。
【請求項８】
複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、
前記処理端末装置に対して、保持している処理データを問い合わせるデータ問い合わせ手段と、
前記処理端末装置から送られた保持している処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付けて、当該割付処理に係る処理データが配布済みの場合には処理実行依頼を、未配布の場合には前記処理データを保持する、前記処理端末装置／前記ネットワークを介して接続される記憶装置からの転送指示と、処理実行依頼を送信する処理割付手段と、
を具備することを特徴とするサーバ。
【請求項９】
複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、処理実行依頼を送信する処理割付手段と、
を具備することを特徴とするサーバ。
【請求項１０】
前記処理端末装置に対して、当該割付処理の処理データを送信する際、割付処理実行後に当該処理データを保持／破棄するかの指示を送信する後処理指示手段を、
を具備することを特徴とする請求項７乃至請求項９いずれかに記載のサーバ。
【請求項１１】
前記処理端末装置に対して、ブロードキャスト通信により、前記並列処理への参加募集を行い、前記参加募集に対して参加応募している処理端末装置に前記割付処理を割り付け送信し実行させることを特徴とする請求項７乃至請求項９のいずれかに記載のサーバ。
【請求項１２】
前記データ問い合わせ手段は、ブロードキャスト通信によりデータ問い合わせを行うことを特徴とする請求項７乃至請求項９いずれかに記載のサーバ。
【請求項１３】
１又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、
前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、
を具備することを特徴とする処理端末装置。
【請求項１４】
１又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、
前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、
前記サーバから転送指示が送られると、前記処理データの転送指示に従い、他の処理端末装置／前記ネットワークを介して接続された記憶装置から当該割付処理の処理データを転送するデータ転送手段と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、
を具備することを特徴とする処理端末装置。
【請求項１５】
１又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、
前記サーバから前記割付処理の処理実行依頼が送られると、自身が当該割付処理の処理データを保持していない場合、他の全ての処理端末装置に当該処理データの問い合わせを行うデータ問合せ手段と、
他の処理端末装置から処理データの問い合わせが送られると、当該処理データを自身が保持している場合、処理データ保持を応答するデータ応答手段と、
他の処理端末装置から処理データ保持の応答が送られると、応答してきた処理端末装置から当該処理データを転送するデータ転送手段と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、
を具備することを特徴とする処理端末装置。
【請求項１６】
前記サーバから前記並列処理への参加募集が送られると、参加可能な場合、参加応募の旨を応答する参加応募手段を具備することを特徴とする請求項１３乃至請求項１５いずれかに記載の処理端末装置。
【請求項１７】
前記参加応募手段は、ブロードキャスト通信により前記参加応募を行うことを特徴とする請求項１３乃至請求項１５いずれかに記載の処理端末装置。
【請求項１８】
前記データ問い合わせ手段又はデータ報告手段は、ブロードキャスト通信によりデータ問い合わせ又はデータ報告を行うことを特徴とする請求項１３乃至請求項１５いずれかに記載の処理端末装置。
【請求項１９】
前記割付処理実行後、前記サーバからの指示に従い、当該割付処理に係る処理データを保持／破棄するデータ後処理手段と、
を具備することを特徴とする請求項１３乃至請求項１５いずれかに記載の処理端末装置。
【請求項２０】
複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、
前記サーバが実行する、
前記処理端末装置に対して、保持する以前配布された処理データを問い合わせるデータ問い合わせ工程と、
前記処理端末装置から送られた保持する処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理工程と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、当該割付処理に係る処理データが配布済みの場合には当該割付処理の処理実行依頼を送信し、未配布の場合には当該割付処理に係る処理データと、その処理実行依頼を送信する処理割付工程と、
を具備し、
前記処理端末装置が実行する、
前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告工程と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行工程と、
を具備することを特徴とする並列処理方法。
【請求項２１】
複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、
前記サーバが実行する、
前記処理端末装置に対して、保持している処理データを問い合わせるデータ問い合わせ工程と、
前記処理端末装置から送られた保持している処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理工程と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付けて、当該割付処理に係る処理データが配布済みの場合には処理実行依頼を、未配布の場合には前記処理データを保持する前記処理端末装置／前記ネットワークを介して接続される記憶装置からの転送指示と、処理実行依頼を送信する処理割付工程と、
を具備し、
前記処理端末装置が実行する、
前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告工程と、
前記サーバから転送指示が送られると、前記処理データの転送指示に従い、他の処理端末装置／前記ネットワークを介して接続された記憶装置から当該割付処理の処理データを転送するデータ転送工程と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行工程と、
を具備することを特徴とする並列処理方法。
【請求項２２】
複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、
前記サーバが実行する、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、処理実行依頼を送信する処理割付工程と、
を具備し、
前記処理端末装置が実行する、
前記サーバから前記割付処理の処理実行依頼が送られると、自身が当該割付処理の処理データを保持していない場合、他の全ての処理端末装置に当該処理データの問い合わせを行うデータ問合せ工程と、
他の処理端末装置から処理データの問い合わせが送られると、当該処理データを自身が保持している場合、処理データ保持を応答するデータ応答工程と、
他の処理端末装置から処理データ保持の応答が送られると、応答してきた処理端末装置から当該処理データを転送するデータ転送工程と、
前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行工程と、
を具備することを特徴とする並列処理方法。
【請求項２３】
コンピュータを請求項７乃至請求項９のいずれかに記載のサーバとして機能させるプログラム。
【請求項２４】
コンピュータを請求項７乃至請求項９のいずれかに記載のサーバとして機能させるプログラムを記録した記録媒体。
【請求項２５】
コンピュータを請求項１３乃至請求項１５のいずれかに記載の処理端末装置として機能させるプログラム。
【請求項２６】
コンピュータを請求項１３乃至請求項１５のいずれかに記載の処理端末装置として機能させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１の処理を複数の処理端末装置に分散して処理する並列処理システムに関する。より詳細には、処理端末装置に処理データを無駄なく配布する並列処理システムに関する。
【背景技術】
【０００２】
従来、一般の並列処理システムは、並列処理専用の複数の処理端末装置を設け、これらの処理端末装置に並列処理を実行させるものである。また、一般ＯＡ用途に用いられているパーソナルコンピュータ等の端末装置の未使用時間等を利用するボランティア端末装置参加型の並列処理システム（例えば、バイオ計算等）が幾つか存在する（例えば、特許文献１）。
【０００３】
また、近年、処理端末装置に稼働状況、処理能力等に応じて並列処理に係る処理を実行させ、並列処理の効率性及び高速性を向上させることができる並列処理システムの技術について開示されている（例えば、特許文献２）。
【０００４】
【特許文献１】特開平１０−２１４２５６号公報
【特許文献２】特開２００２−１５３４７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２に記載されている従来の並列処理システムでは、処理したいコンピュータから処理データの配布・実処理・結果の回収を行うもので、ネットワーク性能が飛躍的に向上しているが、既に、配布されているデータや、各コンピュータに保存されているデータ、更にはネットワーク上のストレージやデータベースに格納されているデータが存在しても、マスタからスレーブに処理指示を出す為、毎回、データをスレーブに転送する必要がある。
【０００６】
１つのデータに対して複数の処理を実行する、例えば、可視化アルゴリズムによる可視化処理を実行する場合、１つの可視化データに対して、可視化する領域や視点位置、可視化データの見せ方（温度分布、圧力分布等）等のパラメタを与えることによって複数の処理を実行する。これは、可視化データから可視化処理を行う際、パラメタを変化させることにより任意に可視化するものである。図１７は、従来の並列処理システム１０００（可視化処理の実行）の処理の流れを示す図である。
【０００７】
図１７に示すように、従来の並列処理システム１０００においては、（１）マスタは、可視化元データ９０を分割し、（２）各遊休パーソナルコンピュータ（ＰＣ）であるスレーブ７−１、７−２、７−３に、それぞれ分割したデータ９１−１、９１−２、９１−３を転送する。（３）各スレーブ７−１、７−２、７−３は、夫々、配布されたデータ９１−１、９１−２、９１−３を用いて、可視化処理を行い１時刻の静止画像９２−１、９２−２、９２−３を作成し、（４）実行結果である静止画像９２−１、９２−２、９２−３を返信する。（５）マスタは、回収した静止画像９２−１、９２−２、９２−３から動画像９３を作成する。
【０００８】
この可視化アルゴリズムによる並列処理の流れで、（３）の１時刻の静止画像作成処理では、同じデータを用いて、視点情報等のパラメタのみを変更した画像を作成することが可能であり、可視化アルゴリズムの技術者が何度も試行する部分である。例えば、従来の並列処理システム１０００においては、可視化元データサイズ：１００Ｇｂｙｔｅ、スレーブＰＣ数：２０台、ネットワーク性能：１００ＭＢｐｓ（実効速度：１秒間に５Ｍｂｙｔｅの転送が可能）の環境下で、データを２０分割して転送すると、１台当り５Ｇｂｙｔｅ（５Ｍｂｙｔｅの１０００倍）、即ち、１台のスレーブへデータ転送する時間が１０００秒（１６分以上）必要で、２０台全てにデータを配布するのに、２００００秒（５．５時間）必要であった。
従来の並列処理システム１０００では、（１）、（２）の処理を毎回実行する必要があり、既存のデータを転送するという無駄が生じていたという問題があった。
【０００９】
本発明は、以上の点に鑑みてなされたものであり、処理端末装置に稼働状況に応じて並列処理に係る処理を実行させ、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供することを目的とする。
【課題を解決するための手段】
【００１０】
前述した目的を達成するために第１の発明は、複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、前記サーバは、前記処理端末装置に対して、保持する以前配布された処理データを問い合わせるデータ問い合わせ手段と、前記処理端末装置から送られた保持する処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、当該割付処理に係る処理データが配布済みの場合には当該割付処理の処理実行依頼を送信し、未配布の場合には当該割付処理に係る処理データと、その処理実行依頼を送信する処理割付手段と、を具備し、前記処理端末装置は、前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、を具備することを特徴とする並列処理システムである。
【００１１】
また、前記サーバは、前記処理端末装置に対して、ブロードキャスト通信により、前記並列処理への参加募集を行い、前記参加募集に対して参加応募している処理端末装置に前記割付処理を割り付け送信し実行させることが望ましい。
また、前記データ問い合わせ手段又は前記データ報告手段は、ブロードキャスト通信によりデータ問い合わせ又はデータ報告を行うことが望ましい。
また、前記サーバは、前記処理端末装置に対して、当該割付処理の処理データを送信する際、割付処理実行後に当該処理データを保持／破棄するかの後処理指示を送信する後処理指示手段を、具備し、前記処理端末装置は、前記割付処理実行後、前記サーバからの後処理指示に従い、当該割付処理に係る処理データを保持／破棄するデータ後処理手段と、を具備することが望ましい。
【００１２】
第１の発明による並列処理システムでは、サーバは、処理端末装置に対して、保持する以前配布された処理データの問い合わせを行い、処理端末装置から送られた保持する処理データの報告を基に、依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理し、依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、処理端末装置に対して、当該割付処理を割り付け、当該割付処理に係る処理データが配布済みの場合には当該割付処理の処理実行依頼を送信し、未配布の場合には当該割付処理に係る処理データと、その処理実行依頼を送信する。処理端末装置は、サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告し、サーバから送られた処理実行依頼の割付処理を実行する。
【００１３】
「サーバ」は、サーバコンピュータ等であり、処理端末装置としてのスレーブを制御する「マスタ」として機能する。サーバは、ネットワークを介してあるいは直接サーバに入力された処理（「依頼処理」）から「割付処理」を生成して処理端末装置に割り付け、実行させる。尚、サーバは、割付処理を生成する際、必要に応じて依頼処理を分割する。また、サーバは、分散化が可能である。
【００１４】
「処理端末装置」は、コンピュータ等であり、サーバから割り付けられた処理（割付処理）を実行する。処理端末装置は、サーバとしてのマスタにより制御される「スレーブ」として機能する。
【００１５】
「処理」（「依頼処理」あるいは「割付処理」）は、処理依頼要求、処理プログラム、処理データ等である。
「処理データ」は、「依頼処理」または「割付処理」の処理に係るデータであり、処理プログラムを包含したものであってもよい。
【００１６】
第１の発明では、既に、配布済みのデータを利用可能となり、一度配布したデータを再配布するという無駄が生ずることがなくなり、データとパラメタを用いて即座に処理が開始可能となり、圧倒的に、効率的かつ高速な並列処理を実現することができる。
また、データが未配布の場合、マスタからのデータ転送指示により、スレーブ間でデータ転送を行うことにより、マスタとスレーブ間でデータ転送が行われないので、マスタＰＣの管理負荷低減、及びネットワーク負荷低減を図り、結果的に処理高速化を図ることを可能とする。
【００１７】
第２の発明は、複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、前記サーバは、前記処理端末装置に対して、保持している処理データを問い合わせるデータ問い合わせ手段と、前記処理端末装置から送られた保持している処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付けて、当該割付処理に係る処理データが配布済みの場合には処理実行依頼を、未配布の場合には前記処理データを保持する前記処理端末装置／前記ネットワークを介して接続される記憶装置からの転送指示と、処理実行依頼を送信する処理割付手段と、を具備し、前記処理端末装置は、前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、前記サーバから転送指示が送られると、前記処理データの転送指示に従い、他の処理端末装置／前記ネットワークを介して接続された記憶装置から当該割付処理の処理データを転送するデータ転送手段と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、を具備することを特徴とする並列処理システムである。
【００１８】
第２の発明による並列処理システムでは、サーバは、処理端末装置に対して、保持している処理データの問い合わせを行い、処理端末装置から送られた保持している処理データの報告を基に、依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理し、依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、処理端末装置に対して、当該割付処理を割り付けて、当該割付処理に係る処理データが配布済みの場合には処理実行依頼を、未配布の場合には処理データを保持する処理端末装置／ネットワークを介して接続される記憶装置からの転送指示と、処理実行依頼を送信する。処理端末装置は、サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告し、サーバから転送指示が送られると、処理データの転送指示に従い、他の処理端末装置／ネットワークを介して接続された記憶装置から当該割付処理の処理データを転送し、サーバから送られた処理実行依頼の割付処理を実行する。
【００１９】
第３の発明は、複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、前記サーバは、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、処理実行依頼を送信する処理割付手段と、を具備し、前記処理端末装置は、前記サーバから前記割付処理の処理実行依頼が送られると、自身が当該割付処理の処理データを保持していない場合、他の全ての処理端末装置に当該処理データの問い合わせを行うデータ問合せ手段と、他の処理端末装置から処理データの問い合わせが送られると、当該処理データを自身が保持している場合、処理データ保持を応答するデータ応答手段と、他の処理端末装置から処理データ保持の応答が送られると、応答してきた処理端末装置から当該処理データを転送するデータ転送手段と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、を具備することを特徴とする並列処理システムである。
【００２０】
第３の発明による並列処理システムでは、サーバは、依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、処理端末装置に対して、当該割付処理を割り付け、処理実行依頼を送信する。処理端末装置は、サーバから割付処理の処理実行依頼が送られると、自身が当該割付処理の処理データを保持していない場合、他の全ての処理端末装置に当該処理データの問い合わせを行い、他の処理端末装置から処理データの問い合わせが送られると、当該処理データを自身が保持している場合、処理データ保持を応答し、他の処理端末装置から処理データ保持の応答が送られると、応答してきた処理端末装置から当該処理データを転送し、サーバから送られた処理実行依頼の割付処理を実行する。
【００２１】
第４の発明は、複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、前記処理端末装置に対して、保持する以前配布された処理データを問い合わせるデータ問い合わせ手段と、前記処理端末装置から送られた保持する処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、当該割付処理に係る処理データが配布済みの場合には当該割付処理の処理実行依頼を送信し、未配布の場合には当該割付処理に係る処理データと、その処理実行依頼を送信する処理割付手段と、を具備することを特徴とするサーバである。
【００２２】
第５の発明は、複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、前記処理端末装置に対して、保持している処理データを問い合わせるデータ問い合わせ手段と、前記処理端末装置から送られた保持している処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付けて、当該割付処理に係る処理データが配布済みの場合には処理実行依頼を、未配布の場合には前記処理データを保持する前記処理端末装置／前記ネットワークを介して接続される記憶装置からの転送指示と、処理実行依頼を送信する処理割付手段と、を具備することを特徴とするサーバである。
【００２３】
第６の発明は、複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、処理実行依頼を送信する処理割付手段と、を具備することを特徴とするサーバである。
【００２４】
第４の発明、第５の発明、第６の発明は、それぞれ、第１の発明、第２の発明、第３の発明の並列処理システムで用いられるサーバに関する発明である。
【００２５】
第７の発明は、１又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、を具備することを特徴とする処理端末装置である。
【００２６】
第８の発明は、１又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告手段と、前記サーバから転送指示が送られると、前記処理データの転送指示に従い、他の処理端末装置／前記ネットワークを介して接続された記憶装置から当該割付処理の処理データを転送するデータ転送手段と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、を具備することを特徴とする処理端末装置である。
【００２７】
第９の発明は、１又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、前記サーバから前記割付処理の処理実行依頼が送られると、自身が当該割付処理の処理データを保持していない場合、他の全ての処理端末装置に当該処理データの問い合わせを行うデータ問合せ手段と、他の処理端末装置から処理データの問い合わせが送られると、当該処理データを自身が保持している場合、処理データ保持を応答するデータ応答手段と、他の処理端末装置から処理データ保持の応答が送られると、応答してきた処理端末装置から当該処理データを転送するデータ転送手段と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行手段と、を具備することを特徴とする処理端末装置である。
【００２８】
第７の発明、第８の発明、第９の発明は、それぞれ、第１の発明、第２の発明、第３の発明の並列処理システムで用いられる処理端末装置に関する発明である。
【００２９】
第１０の発明は、複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、前記サーバが実行する、前記処理端末装置に対して、保持する以前配布された処理データを問い合わせるデータ問い合わせ工程と、前記処理端末装置から送られた保持する処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理工程と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、当該割付処理に係る処理データが配布済みの場合には当該割付処理の処理実行依頼を送信し、未配布の場合には当該割付処理に係る処理データと、その処理実行依頼を送信する処理割付工程と、を具備し、前記処理端末装置が実行する、前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告工程と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行工程と、を具備することを特徴とする並列処理方法である。
【００３０】
第１１の発明は、複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、前記サーバが実行する、前記処理端末装置に対して、保持している処理データを問い合わせるデータ問い合わせ工程と、前記処理端末装置から送られた保持している処理データの報告を基に、前記依頼処理に係る処理データに対して、配布済みの処理データか、未配布の処理データかを管理するデータ管理工程と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付けて、当該割付処理に係る処理データが配布済みの場合には処理実行依頼を、未配布の場合には前記処理データを保持する前記処理端末装置／前記ネットワークを介して接続される記憶装置からの転送指示と、処理実行依頼を送信する処理割付工程と、を具備し、前記処理端末装置が実行する、前記サーバから処理データの問い合わせが送られると、自身の保持している処理データを報告するデータ報告工程と、前記サーバから転送指示が送られると、前記処理データの転送指示に従い、他の処理端末装置／前記ネットワークを介して接続された記憶装置から当該割付処理の処理データを転送するデータ転送工程と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行工程と、を具備することを特徴とする並列処理方法である。
【００３１】
第１２の発明は、複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、前記サーバが実行する、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記処理端末装置に対して、当該割付処理を割り付け、処理実行依頼を送信する処理割付工程と、を具備し、前記処理端末装置が実行する、前記サーバから前記割付処理の処理実行依頼が送られると、自身が当該割付処理の処理データを保持していない場合、他の全ての処理端末装置に当該処理データの問い合わせを行うデータ問合せ工程と、他の処理端末装置から処理データの問い合わせが送られると、当該処理データを自身が保持している場合、処理データ保持を応答するデータ応答工程と、他の処理端末装置から処理データ保持の応答が送られると、応答してきた処理端末装置から当該処理データを転送するデータ転送工程と、前記サーバから送られた処理実行依頼の前記割付処理を実行する割付処理実行工程と、を具備することを特徴とする並列処理方法である。
【００３２】
第１０の発明、第１１の発明、第１２の発明は、それぞれ、第１の発明、第２の発明、第３の発明の並列処理システムのサーバ及び処理端末装置により実行される並列処理方法に関する発明である。
【００３３】
第１３の発明は、コンピュータを第４の発明、第５の発明、第６の発明いずれかのサーバとして機能させるプログラムである。
第１４の発明は、コンピュータを第４の発明、第５の発明、第６の発明いずれかのサーバとして機能させるプログラムを記録した記録媒体である。
【００３４】
第１５の発明は、コンピュータを第７の発明、第８の発明、第９の発明いずれかの処理端末装置として機能させるプログラムである。
第１６の発明は、コンピュータを第７の発明、第８の発明、第９の発明いずれかの処理端末装置として機能させるプログラムを記録した記録媒体である。
【００３５】
上述のプログラムをＣＤ−ＲＯＭ等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【発明の効果】
【００３６】
本発明は、処理端末装置に稼働状況、処理能力等に応じて並列処理に係る処理を実行させ、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供することができる。
【発明を実施するための最良の形態】
【００３７】
以下に、添付図面を参照しながら、本発明に係る並列処理システム等の好適な実施形態について詳細に説明する。なお、以下の説明および添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
【００３８】
図１は、本発明の第１の実施の形態に係る並列処理システム１００の概略構成を示す図である。
【００３９】
図１に示すように、並列処理システム１００は、管理者１のマスタ２、複数の依頼者４−１、４−２、…の端末装置５−１、５−２、…、スレーブ群６等が、ネットワーク９を介して接続されて構成される。
【００４０】
ネットワーク９は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、社内ＬＡＮ等のネットワークであり、有線、無線を問わない。
【００４１】
管理者１は、並列処理システム１００を管理する管理者であり、マスタ２を有する。マスタ２は、「サーバ」としてのサーバコンピュータ等であり、処理受付機能１３、参加募集機能１４、処理割付機能１５、実行結果取得機能１６、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、データ後処理指示機能２４、データ転送指示機能２５等を有する。マスタ２は、複数の分散マスタ３−１、３−２、…により構成することもできる。
【００４２】
処理受付機能１３は、依頼者４−１、４−２、…の端末装置５−１、５−２、…から処理の依頼を受付ける。例えば、処理受付機能１３は、ＷＥＢ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）サーバとしての機能を有し、端末装置５からＷＥＢページに入力された処理を依頼処理として受け付けることができる。また、処理受付機能１３は、端末装置５からＷＥＢページ等によりネットワーク９を介して依頼処理を受付けるだけでなく、マスタ２に直接入力された処理を依頼処理として受け付けることができる。
【００４３】
参加募集機能１４は、スレーブ群６の各スレーブ７−１、７−２、…に対して、並列処理への参加を募集する。
処理割付機能１５は、依頼された処理（依頼処理）から割付処理を生成してスレーブ７−１、７−２、…に割付ける。
実行結果取得機能１６は、スレーブ７−１、７−２、…から割付処理の実行結果を取得する。
【００４４】
データ問い合わせ機能２１は、スレーブ群６の各スレーブ７−１、７−２、…に対して、保持している処理データを問い合わせる。尚、処理データとは、依頼処理、または依頼処理を分割して生成した割付処理に係るデータであり、処理プログラムを包含したものであってもよい。
データ管理機能２２は、スレーブ７−１、７−２、…から送られた保持している処理データの報告に基づいて、依頼された依頼処理に対して、配布済みの処理データと、未配布の処理データを管理する。
データ転送機能２３は、割付処理の処理データが未配布の場合、当該処理データをスレーブ７−１、７−２、…に転送する。
データ後処理指示機能２４は、データ転送手段２３により処理データを転送する際、割付処理実行後に当該処理データを保持／破棄するかの指示を送信する。
データ転送指示機能２５は、スレーブ７−１、７−２、…に対して、当該割付処理の処理データが未配布の場合、処理データを保持するスレーブ７、又は処理データを保持するネットワーク９を介して接続されるコンピュータの記憶装置等のデータロケーション情報を有するデータ転送指示を送信する。
【００４５】
依頼者４−１、４−２、…は、処理を依頼する依頼者であり、それぞれ、端末装置５−１、５−２、…を有する。端末装置５−１、５−２…は、ネットワーク９を介して、マスタ２に処理を依頼し、スレーブ群６から処理の実行結果を受信し取得する実行結果取得機能１７を有する。尚、端末装置５−１、５−２、…は、パーソナルコンピュータ、携帯情報端末（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等である。
【００４６】
スレーブ群６は、複数の「処理端末装置」としてのスレーブ７−１、７−２…を有する。スレーブ７−１、７−２、…は、並列処理専用のコンピュータ等の端末装置、あるいは、未使用時間等に係る空き資源、リソースを有する場合に並列処理に参加するパーソナルコンピュータ等のボランティア端末装置である。スレーブ７−１、７−２、…は、パーソナルコンピュータ、携帯情報端末（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話機、演算装置を有する機器等である。
【００４７】
スレーブ７−１、７−２、…は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ・キー等の外部メモリ８−１、８−２、…を有する。スレーブ７−１、７−２、…（又は、外部メモリ８−１、８−２、…）は、参加応募機能１１、処理実行機能１２、データ報告機能２６、データ後処理機能２７、（スレーブ間）データ転送機能２８、データ取得機能２９等を有する。
尚、スレーブ７には、参加応募機能１１、処理実行機能１２、データ報告機能２６、データ後処理機能２７、データ転送機能２８、データ取得機能２９等を有する外部メモリ８を設けてもよいし、外部メモリ８を設けずスレーブ７内に参加応募機能１１、処理実行機能１２、データ報告機能２６、データ後処理機能２７、データ転送機能２８、データ取得機能２９等を設けるようにしてもよい。
【００４８】
参加応募機能１１は、マスタ２から並列処理への参加募集が行われると、自身の稼働状況等から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、参加する場合は、マスタ２に対して参加応募の旨を応答する。尚、スレーブ７は、自身の稼働状況、利用状況等を常時監視することもできる。
処理実行機能１２は、マスタ２から受け取った処理プログラム、処理データ等により所定の処理を実行する。
【００４９】
データ報告機能２６は、マスタ２から処理データの問い合わせが送られると、自身の記憶部３０２に保持している処理データを報告する。
データ後処理機能２７は、割付処理実行後、マスタ２からの後処理指示に従い、当該割付処理の処理データの保持／破棄を行う。
（スレーブ間）データ転送機能２８は、処理データの転送指示に基づいて、他のスレーブ７から当該割付処理の処理データを転送する。
データ取得機能２９は、処理データの転送指示に基づいて、ネットワーク９を介して接続されたコンピュータの記憶装置から当該割付処理の処理データを取得する。
【００５０】
次に、マスタ２のハードウェア構成を説明する。図２は、マスタ２のハードウェア構成図である。
【００５１】
図２に示すように、マスタ２は、制御部２０１、記憶部２０２（ハードディスク）、メディア入出力部２０３（ドライブ装置）、通信制御部２０４（通信制御装置、通信ポート等）、入力部２０５（キーボード、マウス等）、プリンタポート２０６、表示部２０７（ディスプレイ）等が、バス２０９を介して接続される。
【００５２】
制御部２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。
【００５３】
ＣＰＵは、記憶部２０２、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、システムバス２０９を介して接続された各装置を駆動制御し、マスタ２が行う後述する各種処理（図４乃至９参照）を実現する。
ＲＯＭは、不揮発性メモリであり、コンピュータのブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。
ＲＡＭは、揮発性メモリであり、記憶部２０２、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部２０１が各種処理を行う為に使用するワークエリアを備える。
【００５４】
記憶部２０２は、ＨＤＤ（ハードディスクドライブ）であり、制御部２０１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（オペレーティングシステム）等が格納される。プログラムに関しては、ＯＳ（オペレーティングシステム）に相当する制御プログラムや、本コンピュータを適用するマスタ２が行う後述の処理に相当するアプリケーションプログラム等が格納されている。アプリケーションプログラムは、処理受付機能１３、参加募集機能１４、処理割付機能１５、実行結果取得機能１６、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、データ後処理指示機能２４、データ転送指示機能２５等に相当する並列処理マスタプログラムである。
これらの各プログラムコードは、制御部２０１により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００５５】
メディア入出力部２０３（ドライブ装置）は、データの入出力を行い、例えば、フロッピディスクドライブ、ＰＤドライブ、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＭＯドライブ等のメディア入出力装置等を有する。
【００５６】
通信制御部２０４は、通信制御装置、通信ポート等を有し、マスタ２とネットワーク９間の通信を媒介する通信インタフェースであり、ネットワーク９を介して、マスタ２と、スレーブ７−１、７−２、…や端末装置５−１、５−２、…間の通信制御を行う。
【００５７】
入力部２０５は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
【００５８】
表示部２０６は、ＣＲＴモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。
印刷部２０７は、プリンタであり、印刷出力処理を行う。
【００５９】
システムバス２０９は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００６０】
次に、スレーブ７のハードウェア構成を説明する。図３は、スレーブ７のハードウェア構成図である。
【００６１】
図３に示すように、スレーブ７は、制御部３０１、記憶部３０２（ハードディスク、外部メモリ）、メディア入出力部３０３、通信制御部３０４（通信制御装置、通信ポート等）、入力部３０５（キーボード、マウス等）、印刷部３０６（プリンタ）、表示部３０７（ディスプレイ）等が、バス３０９を介して接続される。
尚、スレーブ７のハードウェア構成は、図２について前述したマスタ２と同様の構成を採る。
【００６２】
記憶部３０２（ハードディスク）には、各構成部分を駆動制御するプログラム、参加応募機能１１、処理実行機能１２、データ報告機能２６、データ後処理機能２７、データ転送機能２８、データ取得機能２９等に相当する並列処理スレーブプログラム等が格納されている。また、ＵＳＢメモリ・キー等の外部メモリ８−１、８−２、…に、参加応募機能１１、処理実行機能１２、データ報告機能２６、データ後処理機能２７、データ転送機能２８、データ取得機能２９等からなる並列処理スレーブプログラム等を格納してもよい
【００６３】
また、依頼者４−１、４−２、…の端末装置５−１、５−２、…も、マスタ２と同様なハードウェア構成である。
【００６４】
次に、図４乃至図９を参照しながら、並列処理システム１００の処理手順について説明する。
【００６５】
まず、図４及び図６、図７を参照しながら、マスタ２が有する処理受付機能１３、参加募集機能１４、処理割付機能１５、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、データ後処理指示機能２４及び、スレーブ７−１、７−２、…が有する参加応募機能１１、データ報告機能２６等による処理について説明する。
【００６６】
尚、「処理」の区別のため必要に応じて、端末装置５−１、５−２、…から依頼された処理を「依頼処理」と呼び、スレーブ７−１、７−２、…に分配、割り付けられた処理を「割付処理」と呼ぶ。
「処理データ」は、依頼処理、または依頼処理を分割して生成した割付処理に係るデータであり、処理プログラムを包含したものであってもよい。
【００６７】
図４は、処理受付機能１３、参加募集機能１４、処理割付機能１５、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、参加応募機能１１、データ報告機能２６等に係る処理の概略を示す図である。
図６、図７は、処理受付機能１３、参加募集機能１４、処理割付機能１５、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、データ後処理指示機能２４、参加応募機能１１、データ報告機能２６等に係る処理の手順を示すフローチャートである。
【００６８】
図６に示すように、依頼者４−１、…の端末装置５−１…は、例えば、依頼処理Ａ、…の処理依頼をマスタ２に行い、依頼処理Ａ、…をマスタ２に送信する（ステップ６０１）。
【００６９】
尚、スレーブ７（又はその外部メモリ８）には、予め、参加応募機能１１、データ報告機能２６、データ後処理機能２７等と共に、処理実行機能１２に係る処理プログラム及び処理データを記憶させ、端末装置５−１、５−２、…は、処理プロクラム及び処理データを送ることなく、マスタ２に処理Ａ、…の処理依頼のみ行ってもよい。あるいは、スレーブ７（又はその外部メモリ８）に、予め、参加応募機能１１、データ報告機能２６、データ後処理機能２７と共に、処理実行機能１２に係る処理プログラム及び処理データの一部を記憶させ、残りの処理プログラム及び処理データに関しては、端末装置５−１、５−２、…が依頼処理Ａ、…の処理依頼を行う際にマスタ２に送信するようにしてもよい。
【００７０】
マスタ２は、各依頼者４−１、４−２、…の端末装置５−１、５−２、…からの依頼処理を受信し、受付ける（ステップ６０２）。尚、以降、ステップ６０２のように記述されている、マスタ２が行う処理内容は、マスタ２の制御部２０１が、実行可能プログラムである並列処理マスタプログラムを実行することにより、処理を行うものである。
図４に示すように、マスタ２は、例えば、依頼者４−１の端末装置５−１から依頼処理Ａを受付け（ステップ４１−１）、処理受付テーブル３１を作成する。処理受付テーブル３１は、端末装置と依頼処理とを対応付ける。
【００７１】
ここで、処理受付機能１３にＷＥＢサーバとしての機能を設けることにより、マスタ２は、端末装置５からＷＥＢページに入力された処理を依頼処理として受け付けることができる。
尚、ステップ６０１〜ステップ６０２の処理を随時行うようにすることができる。
【００７２】
マスタ２は、ブロードキャスト通信で、スレーブ群６の全てのスレーブ７−１、７−２、…に対して並列処理への参加を募集し（ステップ６０３）、更にブロードキャスト通信で、スレーブ群６の全てのスレーブ７−１、７−２、…に対して、保持している処理データを問い合わせる（ステップ６０４）。
スレーブ７−１、７−２、…は、自身の稼働状況から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、参加する場合は、マスタ２に対して参加応募の旨を応答し（ステップ６０５）、更に、記憶部３０２（又はその外部メモリ８）に保持している依頼処理に係る処理データを報告する（ステップ６０６）。
【００７３】
図４に示すように、例えば、マスタ２からの参加募集の打診があると（ステップ４２）、スレーブ７−１、７−２、７−４（スレーブ７−３は、参加応募せず）は、それぞれ、参加応募を行う（ステップ４３−１、４３−２、４３−４）。
マスタ２から処理データの問い合わせがあると（ステップ５１）、スレーブ７−１、７−２、７−４（スレーブ７−３は、参加応募せず）は、それぞれ、保持している処理データの報告を行う（ステップ５２−１、５２−２、５２−４）。例えば、スレーブ７−１は、記憶部３０２に割付処理Ａ１の処理データＡ１を保持し、スレーブ７−２は、処理データを保持しておらず、スレーブ７−４は記憶部３０２に割付処理Ａ３の処理データＡ３を保持している。スレーブ７−１、７−２、７−４は、それぞれ、その旨を、マスタ２に報告する。
【００７４】
マスタ２は、参加応募の旨の応答があったスレーブ７−１、７−２、…に対して、依頼処理に係る処理データの報告に基づいて、処理データ保持／未保持を管理する（ステップ６０７）。
図４に示すように、例えば、マスタ２は、端末装置５−１からの依頼処理Ａから作成した処理データＡ１、処理データＡ２、処理データＡ３からなるジョブデータリスト３３と、参加応募の旨の応答があったスレーブ７−１、７−２、…からの処理データの報告に基づいて、依頼処理Ａのデータに対する、データ保持リスト３４、データ未保持リスト３５等を作成する。データ保持リスト３４は、スレーブ７と保持している処理データとを対応付ける。データ未保持リスト３５は、処理データを保持していないスレーブ７一覧である。
【００７５】
マスタ２は、端末装置５−１、…から送られた依頼処理から割付処理を生成し、データ保持リスト３４、データ未保持リスト３５に基づいて、参加応募の旨の応答があったスレーブ７−１、７−２、…に割り付ける（ステップ６０８）。尚、マスタ２は、必要に応じて依頼処理を分割して割付処理を生成する。
図４に示すように、例えば、マスタ２は、依頼処理Ａを割付処理Ａ１、割付処理Ａ２、割付処理Ａ３に分割して、参加応募したスレーブ７−１、７−２、７−４（スレーブ７−３は、参加応募せず）に対して、それぞれ、割付処理Ａ１、割付処理Ａ２、割付処理Ａ３を割り付け、処理割付テーブル３２を作成する。処理割付テーブル３２は、スレーブと割付処理とを対応付ける。
【００７６】
マスタ２は、処理割付テーブル３２、データ保持リスト３４、データ未保持リスト３５に基づいて、割り付けた割付処理の処理データに対して、配布済み処理データ、未配布処理データを管理する（ステップ６０９）。
図４に示すように、例えば、マスタ２は、処理割付テーブル３２、データ保持リスト３４、データ未保持リスト３５に基づいて、参加応募したスレーブ７−１、７−２、７−４に割り付けた割付処理の処理データＡ１、処理データＡ２、処理データＡ３に対して、配布済み処理データ、未配布処理データを管理するデータ管理テーブル３６を作成する。データ管理テーブル３６は、スレーブ７と、割り付けた処理データと、配布有無等からなる。
【００７７】
マスタ２は、データ管理テーブル３６から、割り付けた割付処理の処理データを配布済みか否か判定し、処理データが未配布の場合（ステップ６１０のＹｅｓ）、割り付けた各スレーブ７−１、７−２、…に、割付処理に係る処理データを配布し（ステップ６１１）、処理実行後の後処理として、配布された処理データの保持／破棄を指示する（ステップ６１２）。
【００７８】
処理データが配布済みの場合、及びステップ６１１、６１２の新規配布後、マスタ２は、割り付けた各スレーブ７−１、７−２、…に、割付処理の処理実行依頼を送信する（ステップ６１３）。
図４に示すように、例えば、マスタ２は、スレーブ７−１には割り付けた割付処理Ａ１に係る処理データＡ１は配布済みであり、割付処理Ａ１の処理実行依頼を送信し（ステップ５３−１）、スレーブ７−２には割付処理Ａ２に係る処理データＡ２は未配布であり、処理データＡ２、データ後処理（保持／破棄）指示、割付処理Ａ２の処理実行指示を送信し（ステップ５４−２、５５−２、５３−２）、スレーブ７−４には割り付けた割付処理Ａ３に係る処理データＡ３は配布済みであり、割付処理Ａ３の処理実行指示を送信する（ステップ５３−４）。
尚、端末装置５−１、５−２、…からの処理受付の状況に応じて、ステップ６０３〜ステップ６１３の処理を随時行うようにすることができる。
【００７９】
尚、ブロードキャスト通信では、同一データリンク内の全ノード（ネットワークに接続されているコンピュータ等の機器）に対して情報を送信することができるので、マスタ２は、ブロードキャスト通信により同一データリンク内のスレーブ群６全体に対して、並列処理への参加募集を行い、スレーブ７は、ブロードキャスト通信により同一データリンク内のマスタ２（分散マスタ３）全体に対して、参加応募を行うことができる。
【００８０】
次に、図５及び図８を参照しながら、スレーブ７−１、７−２、…が有する処理実行機能１２、データ後処理機能２７、マスタ２が有する実行結果取得機能１６、端末装置５−１、５−２、…が有する実行結果取得機能１７等による処理について説明する。
図５は、処理実行機能１２、データ後処理機能２７、実行結果取得機能１６、実行結果取得機能１７等に係る処理の概略を示す図である。
図８は、処理実行機能１２、データ後処理機能２７、実行結果取得機能１６、実行結果取得機能１７等に係る処理の手順を示すフローチャートである。
【００８１】
スレーブ７−１、７−２…は、新規配布時に、マスタ２から割付処理に係る処理データ、及びデータ後処理指示（保持／破棄）等を受け取る（ステップ８０１）。
尚、以降、ステップ８０１のように記述されている、スレーブ７−１、７−２…が行う処理内容は、スレーブ７−１、７−２…の制御部３０１が、実行可能プログラムである並列処理スレーブプログラムを実行することにより、処理を行うものである。
図４に示すように、例えば、スレーブ７−２は、割付処理Ａ２に係る処理データＡ２、及びデータ後処理指示等を受け取る（ステップ５４−２、５５−２）。
【００８２】
スレーブ７−１、７−２…は、処理データがスレーブ７−１、７−２、…内や外部メモリ８−１等に記憶されている場合、スレーブ７−１、７−２、…は、マスタ２から処理実行依頼のみを受信する（ステップ８０２）。
【００８３】
スレーブ７−１、７−２…は、処理実行依頼の割付処理を実行する（ステップ８０３）。
図５に示すように、例えば、スレーブ７−１、７−２、７−４は、それぞれ、割付処理Ａ１、割付処理Ａ２、割付処理Ａ３を実行する（ステップ４５−１、４５−２、４５−４）。
【００８４】
スレーブ７−１、７−２…は、割付処理終了後、割付処理の実行結果（割付処理の実行結果）をマスタ２に送信する（ステップ８０４）。
図５に示すように、例えば、スレーブ７−１、７−２、７−４は、それぞれ、実行結果ａ１、ａ２、ａ３（割付処理の実行結果）をマスタ２に送信する（ステップ４６−１、４６−２、４６−４）。
【００８５】
スレーブ７−１、７−２…は、割付処理終了後、処理データ配布した際、受け取ったデータ後処理指示に従って、処理データの保持／破棄を行う（ステップ８０５）。例えば、可視化アルゴリズムによる可視化処理を行う場合、１つの可視化データ（処理データ）に対して、可視化する領域や視点位置、可視化データの見せ方（温度分布、圧力分布等）等のパラメタを与えることによって複数の処理を実行する為、実行後、処理データを保持しておくことで、次回より、処理データを再配布する必要がなくなる。
【００８６】
マスタ２は、スレーブ７−１、７−２…から割付処理の実行結果を受信し、処理割付テーブル３２に対応付けて記録する（ステップ８０６）。
マスタ２は、割付処理の実行結果を依頼処理毎に集約し、処理受付テーブル３１に対応付けて記録する（ステップ８０７）。
図５に示すように、例えば、マスタ２は、割付処理毎の実行結果ａ１、ａ２、ａ３を依頼処理毎の実行結果Ａに集約する（ステップ４７）。
【００８７】
マスタ２は、依頼処理毎に取得した実行結果を対応する依頼者４−１、４−２、…の端末装置５−１、５−２、…に送信し（ステップ８０８）、端末装置５−１、５−２、…は、依頼した処理の実行結果を受け取る（ステップ８０９）。
図５に示すように、例えば、マスタ２は、依頼処理Ａの実行結果Ａを端末装置５−１に送信する（ステップ４８−１）。
【００８８】
また、図５に示すように、スレーブ７−１、７−２、…は、マスタ２に実行結果を送信せずに、直接、依頼者４−１、４−２、…の端末装置５−１、５−２、…に実行結果を送信してもよい（ステップ４９）。さらに、スレーブ７−１、７−２、…は、ブロードキャスト通信により、ネットワーク９に実行結果を送出し、マスタ２（分散マスタ３）もしくは端末装置５が必要に応じて当該実行結果を受信するようにしてもよい。
【００８９】
また、マスタ２は、並列処理を終了する時は、参加応募したスレーブ７−１、７−２、…に対して、終了指示を送り、当該終了指示を受けたスレーブ７−１、７−２、…は、参加応募、割付処理の実行等を終了する。
【００９０】
尚、上記のステップ６０１〜ステップ６１３、ステップ８０１〜ステップ８０９に係る処理は、依頼処理毎、割付処理毎に独立、平行して実行することができる。例えば、ステップ８０６の処理において、ある時点において、依頼処理Ａに係る割付処理の実行結果の全てを受信した場合、他の依頼処理に係る割付処理の実行結果の全てを受信していない場合であっても、依頼処理Ａに関しては、ステップ８０７以降の処理を進めることができる。
【００９１】
次に、図９を参照しながら、マスタ２が有するデータ転送指示機能２５及び、スレーブ７−１、７−２、…が有する（スレーブ間）データ転送機能２８、データ取得機能２９等による処理について説明する。
図９は、データ転送指示機能２５、（スレーブ間）データ転送機能２８、データ取得機能２９等に係る処理の概略を示す図である。
【００９２】
マスタ２は、割付処理に係る処理データが未配布の場合、図６のステップ６１１では、データ転送機能２３により、該当する各スレーブ７−１、７−２、…に対して、当該割付処理に係る処理データを送信したが、データ転送指示機能２５により、データ管理テーブル３６に基づき、該当する各スレーブ７−１、７−２、…に対して、割付処理に係る処理データを保持するスレーブ７を指定してスレーブ間での処理データ転送指示を送信すること、また、スレーブ７−１、７−２、…にデータが保持されていない場合、ネットワーク９を介して接続されているコンピュータのストレージ／データベース等を検索して、割付処理に係る処理データを保持するストレージ／データベースを指定して処理データ転送指示を送信することが可能である。
【００９３】
図９に示すように、例えば、マスタ２からの参加募集の打診、処理データの問い合わせがあると、スレーブ７−１、７−２、７−４（スレーブ７−３は、参加応募せず）は、それぞれ、参加応募を行い（ステップ４３−１、４３−２、４３−４）、それぞれ、保持している処理データの報告を行う（ステップ５２−１、５２−２、５２−４）。例えば、スレーブ７−１は、記憶部３０２に割付処理Ａ１の処理データＡ１、割付処理Ａ２の処理データＡ２を保持しているが、スレーブ７−２、７−４は、処理データを保持していない。スレーブ７−１、７−２、７−４は、それぞれ、その旨を、マスタ２に報告する。
【００９４】
マスタ２は、データ管理テーブル３６から、スレーブ７−１に割り付けた割付処理Ａ１に係る処理データＡ１は配布済みであり、割付処理Ａ１、割付処理Ａ２の処理実行依頼を送信する（ステップ５３−１）。スレーブ７−２に割付処理Ａ２に係る処理データＡ２は未配布であり、データ保持リスト３４から検索し、処理データＡ２を保持するスレーブ７−１を指定しデータ転送指示を送信する（ステップ５６−２）。スレーブ７−４に割り付けた割付処理Ａ３に係る処理データＡ３は未配布であり、保持しているスレーブ７が存在せず、ネットワーク９を介して接続されているデータベースサーバ８０のデータベース８１内の処理データＡ３を検索し、そのデータロケーション情報を指定した割付処理Ａ３の処理転送示を送信する（ステップ５６−４）。
【００９５】
次に、スレーブ７−１、７−２…は、スレーブ間データ転送機能２８、データ取得機能２９により、新規配布時に、マスタ２から割付処理に係る処理データ転送指示を受け取り、処理データ転送指示に従って、指定されたスレーブ７から、該当する処理データを受信したり、指定されたネットワーク９を介して接続されているコンピュータのストレージ／データベースから該当する処理データを受信する。スレーブ７−１、７−２…は、マスタ２から送られた処理実行依頼の割付処理を実行する。
図９に示すように、例えば、スレーブ７−２は、割付処理Ａ２に係る処理データ転送指示を受け取り（ステップ５６−２）、処理データ転送指示に基づいて、スレーブ７−１から処理データＡ２を受信する（ステップ５８−２）。また、スレーブ７−４は、割付処理Ａ３に係る処理データ転送指示を受け取り（ステップ５６−４）、処理データ転送指示に基づいて、ネットワーク９を介してデータベースサーバ８０のデータベース８１内の処理データＡ３を受信する（ステップ５８−４）。
【００９６】
以上説明したように、本発明の第１の実施の形態によれば、マスタ２は、各依頼者４の端末装置５から処理の依頼（依頼処理）を受付け、ブロードキャスト通信によりスレーブ群６全体に対して並列処理への参加募集を行い、スレーブ自身が保持している処理データの問い合わせを行う。スレーブ７は、並列処理へ参加する場合は、マスタ２に対して参加応募の旨を応答し、自身が保持している処理データを報告する。マスタ２は、スレーブ７からの処理データの報告に基づき、スレーブ７に割り付けた割付処理に係る処理データが配布済みデータか、未配布データか管理する（データ管理テーブル３６を作成）。マスタ２は、データ管理テーブル３６から、処理データが配布済みの場合には処理実行依頼を送信し、処理データが未配布の場合には当該割付処理の処理データ、及びデータ後処理指示を送信し、処理実行依頼を送信する。スレーブ７は、マスタ２から受け取った処理実行依頼の割付処理を実行する。
【００９７】
また、マスタ２は、割付処理に係る処理データが未配布の場合、データ管理テーブル３６に基づき、該当する各スレーブ７−１、７−２、…に対して、割付処理に係る処理データを保持する他のスレーブ７や、ネットワーク９上のストレージ／データベースからの処理データ転送指示を送信し、スレーブ７は、受け取った処理データ転送指示に従って、他のスレーブ７やネットワーク９上のストレージ／データベースからの処理データを取得する。
【００９８】
これにより、既に、配布済みのデータを利用可能となり、一度配布したデータを再配布するという無駄が生ずることがなくなり、データとパラメタを用いて即座に処理が開始可能となり、圧倒的に、効率的かつ高速な並列処理を実現することができる。
例えば、前述した、図１７に示した従来の並列処理システム１０００（可視化アルゴリズムによる可視化処理実行）においては、可視化元データサイズ：１００Ｇｂｙｔｅ、スレーブＰＣ数：２０台、ネットワーク性能：１００ＭＢｐｓ（実効速度：１秒間に５Ｍｂｙｔｅの転送が可能）の環境下で、データを２０分割して転送すると、１台当り５Ｇｂｙｔｅ（５Ｍｂｙｔｅの１０００倍）、即ち、１台のスレーブへデータ転送する時間が１０００秒（１６分以上）必要で、２０台全てにデータを配布するのに、２００００秒（５．５時間）必要であったが、本発明を用いることにより、既にデータ配布済みであれば、５．５時間／回の処理時間を短縮でき、未配布であっても、２回目以降は５．５時間／回の処理時間を短縮できる。
【００９９】
また、データが未配布の場合、マスタからのデータ転送指示により、スレーブ間でデータ転送を行うことにより、マスタとスレーブ間でデータ転送が行われないので、マスタＰＣの管理負荷低減、及びネットワーク負荷低減を図り、結果的に処理高速化を図ることを可能とする。
【０１００】
また、データが未配布の場合、マスタからのデータ転送指示により、スレーブは、ネットワーク上のストレージ／データベースからデータ転送を行うことにより、マスタと各スレーブ間でデータ転送が行われないので、マスタＰＣの管理負荷低減、及びネットワーク負荷低減を図り、結果的に処理高速化を図ることを可能とする。
【０１０１】
また、処理端末装置として、ボランティア端末装置、すなわち、一般ＯＡ用途に用いられているパーソナルコンピュータ等の未使用時間等に係る空き資源を利用可能であり、膨大な計算量を要する処理等に係る並列処理を実現することができる。この場合、企業等のパーソナルコンピュータを多数抱えているサイトでは、安価に高速計算機環境を取得できると共に、ボランティア端末装置（スレーブ）の更新毎に計算機環境も自動更新されるため、新たに計算環境を構築することなく高速化が図られる。
【０１０２】
尚、本実施の形態では、処理プログラムおよび処理データを依頼者４側の端末装置５からマスタ２に一旦送信し、各スレーブ７に送信したが、処理アプリケーションに応じて（例えば、画像データを入力とする画像生成処理等）、各スレーブ７−１、７−２、…の外部メモリ８−１、８−２、…に予め、それぞれ参加応募機能１１等と共に、同じ処理プログラムを格納しておき、処理依頼の際に、異なる処理データを各スレーブ７−１、７−２、…に送信し、実行させてもよい。
【０１０３】
また、スレーブ７が使用不可能になった場合や指示した処理結果がなかなか返ってこない場合、並列処理に参加応募している別のスレーブ７に再度、同一処理を割振ることで、期限付きの処理の実行を可能にする。また、ある決められた処理専用のシステムではなく、外部（依頼者４の端末装置５）からの複数の並列処理を実行することが容易に可能となる。
【０１０４】
更に、命令変換機能を有するメモリをスレーブ７側又はマスタ２側に持たせることで、一般のパーソナルコンピュータだけではなく、情報家電等の異なる処理体系、演算体系を採る演算装置（ＣＰＵ等）を有する機器や携帯電話機を用いた並列処理が可能となり、さらなる並列処理の高速化が可能となる。
【０１０５】
尚、図４乃至図９等に示す処理を行うプログラムはＣＤ−ＲＯＭ等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【０１０６】
次に、本発明の第２の実施の形態について説明する。
図１０は、本発明の第２の実施の形態に係る並列処理システム２００の概略構成を示す図である。
【０１０７】
前述の第１の実施の形態では、マスタ２は、参加応募可能なスレーブ群６の処理データの報告に基づいて、当該依頼処理の処理データに対して、配布済みの処理データか、未配布の処理データかを管理し、未配布の場合、各スレーブ７に割付処理の処理データを配布するか、処理データの転送指示を送信しスレーブ側で処理データ転送を行うが、第２の実施の形態では、マスタ２は、当該依頼処理の処理データに対して、配布済みの処理データか、未配布の処理データかを管理することはせずに、当該割付処理を割り付け、処理実行依頼のみを送信し、スレーブ自身が、マスタ２から依頼された割付処理の処理データを保持しているか否か判断し、保持していない場合、他のスレーブ７に問い合わせ、データ転送、取得を行う。
【０１０８】
図１０に示すように、並列処理システム２００は、管理者１のマスタ２、複数の依頼者４−１、４−２、…の端末装置５−１、５−２、…、スレーブ群６等が、ネットワーク９を介して接続されて構成される。マスタ２は、「サーバ」としてのサーバコンピュータ等であり、処理受付機能１３、参加募集機能１４、処理割付機能１５、実行結果取得機能１６等を有する。マスタ２は、複数の分散マスタ３−１、３−２、…により構成することもできる。
【０１０９】
スレーブ群６は、複数の「処理端末装置」としてのスレーブ７−１、７−２…を有する。スレーブ７−１、７−２、…は、並列処理専用のコンピュータ等の端末装置、あるいは、未使用時間等に係る空き資源、リソースを有する場合に並列処理に参加するパーソナルコンピュータ等のボランティア端末装置である。
スレーブ７−１、７−２、…は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ・キー等の外部メモリ８−１、８−２、…を有する。スレーブ７−１、７−２、…（又は、外部メモリ８−１、８−２、…）は、参加応募機能１１、処理実行機能１２、データ問い合わせ機能１２１、データ報告機能１２６、データ転送機能１２８等を有する。
【０１１０】
データ問い合わせ機能１２１は、スレーブ７自身がマスタ２から送られた処理実行依頼された当該割付処理の処理データを保持していない場合、他のスレーブ７に当該割付処理の処理データの問い合わせを行う。
データ報告機能１２６は、他のスレーブ７から処理データの問い合わせが送られると、自身の記憶部３０２（又は、外部メモリ８）に保持している場合、保持の旨の処理データの報告を応答する。
データ転送機能１２８は、データ保持しているスレーブ７からの処理データ報告に基づいて、当該割付処理の処理データを転送、取得する。
【０１１１】
次に、図１１乃至図１３を参照しながら、並列処理システム２００の処理手順について説明する。
【０１１２】
まず、図１１及び図１３を参照しながら、マスタ２が有する処理受付機能１３、参加募集機能１４、処理割付機能１５、実行結果取得機能１６及び、スレーブ７−１、７−２、…が有する参加応募機能１１、処理実行機能１２、データ問い合わせ機能１２１、データ報告機能１２６、データ転送機能１２８等による処理について説明する。
【０１１３】
図１１は、処理受付機能１３、参加募集機能１４、処理割付機能１５、参加応募機能１１、処理実行機能１２、データ問い合わせ機能１２１、データ報告機能１２６、データ転送機能１２８等に係る処理の概略を示す図である。
図１２は、処理受付機能１３、参加募集機能１４、処理割付機能１５、参加応募機能１１等に係る処理の手順を示すフローチャートである。
図１３は、処理実行機能１２、実行結果取得機能１６、データ問い合わせ機能１２１、データ報告機能１２６、データ転送機能１２８等に係る処理の手順を示すフローチャートである。
【０１１４】
図１２に示すように、依頼者４−１、…の端末装置５−１…は、例えば、依頼処理Ａ、…の処理依頼をマスタ２に行い、依頼処理Ａ（処理プログラム、処理データ等）、…をマスタ２に送信する（ステップ１１０１）。
【０１１５】
マスタ２は、各依頼者４−１、４−２、…の端末装置５−１、５−２、…からの依頼処理を受信し、受付ける（ステップ１１０２）。
図１１に示すように、マスタ２は、例えば、依頼者４−１の端末装置５−１から依頼処理Ａを受付け（ステップ４１−１）、処理受付テーブル３１を作成する。
【０１１６】
マスタ２は、ブロードキャスト通信で、スレーブ群６の全てのスレーブ７−１、７−２、…に対して並列処理への参加を募集し（ステップ１１０３）、
スレーブ７−１、７−２、…は、自身の稼働状況から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、参加する場合は、マスタ２に対して参加応募の旨を応答する（ステップ１１０４）。
図１１に示すように、例えば、マスタ２からの参加募集の打診があると（ステップ４２）、スレーブ７−１、７−２、７−４（スレーブ７−３は、参加応募せず）は、それぞれ、参加応募を行う（ステップ４３−１、４３−２、４３−４）。
【０１１７】
マスタ２は、端末装置５−１、５−２、…から送られた依頼処理から割付処理を生成し、参加応募の旨の応答があったスレーブ７−１、７−２、…に割り付ける（ステップ１１０５）。尚、マスタ２は、必要に応じて依頼処理を分割して割付処理を生成する。
図１１に示すように、例えば、マスタ２は、依頼処理Ａを割付処理Ａ１、割付処理Ａ２、割付処理Ａ３に分割し、参加応募したスレーブ７−１、７−２、７−４（スレーブ７−３は、参加応募せず）に対して、それぞれ、割付処理Ａ１、割付処理Ａ２、割付処理Ａ３を割り付け、処理割付テーブル３２を作成する。
【０１１８】
マスタ２は、割付処理を割り付けた各スレーブ７−１、７−２、…に、割付処理の処理実行依頼を送信し、処理を分配する（ステップ１１０６）。
図１１に示すように、例えば、マスタ２は、スレーブ７−１に割付処理Ａ１に係る処理実行依頼を送信し、スレーブ７−２に割付処理Ａ２に係る処理実行依頼を送信し、スレーブ７−４に割付処理Ａ３に係る処理実行依頼を送信する（ステップ５３−１、５３−２、５３−４）。
尚、端末装置５−１、５−２、…からの処理受付の状況に応じて、ステップ１１０３〜ステップ１１０６の処理を随時行うようにすることができる。
【０１１９】
尚、ブロードキャスト通信では、同一データリンク内の全ノード（ネットワークに接続されているコンピュータ等の機器）に対して情報を送信することができるので、マスタ２は、ブロードキャスト通信により同一データリンク内のスレーブ群６全体に対して、並列処理への参加募集を行い、スレーブ７は、ブロードキャスト通信により同一データリンク内のマスタ２（分散マスタ３）全体に対して、参加応募を行うことができる。
【０１２０】
スレーブ７−１、７−２…は、マスタ２から割付処理に係る処理実行依頼を受け取る（ステップ１２０１）。
図１１に示すように、例えば、スレーブ７−１、７−２、７−４は、割付処理Ａ１、Ａ２、Ａ３に係る処理実行依頼を受け取る（ステップ５３−１、５３−２、５３−４）。
【０１２１】
スレーブ７−１、７−２…は、自身が処理実行依頼の割込処理に係る処理データを保持しているか否か判断し、保持していない場合（ステップ１２０２のＹｅｓ）、スレーブ７−１、７−２…は、他のスレーブ７全体に対して、ブロードキャスト通信で、当該処理データを保持しているかの問い合わせを行う（ステップ１２０３）。スレーブ７−１、７−２…は、他のスレーブ７から送られた当該処理データの報告を受け取ると（ステップ１２０４）、処理データ報告を受けたスレーブ７から当該処理データを転送、取得する（ステップ１２０５）。
【０１２２】
図１１に示すように、例えば、スレーブ７−２は、スレーブ群６の全てのスレーブ７−１、７−２、…に対して処理実行依頼の割付処理Ａ２に係る処理データＡ２のデータ問い合わせを行う（ステップ６１−２）。
スレーブ７−１は、処理データＡ２を記憶部３０２に保持しており、処理データＡ２のデータ問い合わせを受け取ると、処理データＡ２保持のデータ報告を応答する（ステップ６２−１）。
スレーブ７−２は、スレーブ７−１からデータ報告を受け取ると、スレーブ７−１から処理データＡ２を転送、取得する（ステップ６３−２）。
【０１２３】
スレーブ７−１、７−２…は、処理実行依頼の割付処理を実行し（ステップ１２０６）、割付処理終了後、割付処理の実行結果（割付処理の実行結果）をマスタ２に送信する（ステップ１２０７）。
【０１２４】
マスタ２は、スレーブ７−１、７−２…から割付処理の実行結果を受信し、処理割付テーブル３２に対応付けて記録し（ステップ１２０８）、割付処理の実行結果を依頼処理毎に集約し、処理受付テーブル３１に対応付けて記録する（ステップ１２０９）。マスタ２は、依頼処理毎に取得した実行結果を対応する依頼者４−１、４−２、…の端末装置５−１、５−２、…に送信し（ステップ１２１０）、端末装置５−１、５−２、…は、依頼した処理の実行結果を受け取る（ステップ１２１１）。
【０１２５】
尚、上記のステップ１１０１〜ステップ１１０６、ステップ１２０１〜ステップ１２１１に係る処理は、依頼処理毎、割付処理毎に独立、平行して実行することができる。例えば、ステップ１２０８の処理において、ある時点において、依頼処理Ａに係る割付処理の実行結果の全てを受信した場合、他の依頼処理に係る割付処理の実行結果の全てを受信していない場合であっても、依頼処理Ａに関しては、ステップ１２０９以降の処理を進めることができる。
【０１２６】
以上説明したように、本発明の第２の実施の形態によれば、マスタ２は、参加応募した各スレーブ７−１、７−２、…に対して、割り付けた割付処理に係る処理実行依頼を送信する。スレーブ７は、マスタ２から受け取った処理実行依頼の割付処理に係る処理データを自身が保持しているか否か判断し、保持していない場合、他のスレーブ全体にデータ問い合わせを行い、保持しているデータ報告を応答してきたスレーブ７から、処理データを転送、取得する。スレーブ７は、処理実行依頼の割付処理を実行し、処理終了後、マスタ２に送信する実行結果をマスタ２又は依頼者４側の端末装置５に送信する。マスタ２あるいは端末装置５は、実行結果を受け取る。
【０１２７】
これにより、既に、配布済みのデータを利用可能となり、一度配布したデータを再配布するという無駄が生ずることがなくなり、データとパラメタを用いて即座に処理が開始可能となり、圧倒的に、効率的かつ高速な並列処理を実現することができる。
マスタが割付処理に係る処理データの管理をせずに、各スレーブで、自身に割り付けられた割付処理に係るデータのロケーション情報を扱う為、マスタへの情報問い合わせの負荷、ネットワーク負荷が削減され、処理高速化を図ることを可能とする。
【０１２８】
また、処理端末装置として、ボランティア端末装置、すなわち、一般ＯＡ用途に用いられているパーソナルコンピュータ等の未使用時間等に係る空き資源を利用可能であり、膨大な計算量を要する処理等に係る並列処理を実現することができる。この場合、企業等のパーソナルコンピュータを多数抱えているサイトでは、安価に高速計算機環境を取得できると共に、ボランティア端末装置（スレーブ）の更新毎に計算機環境も自動更新されるため、新たに計算環境を構築することなく高速化が図られる。
【０１２９】
尚、本実施の形態では、処理プログラムおよび処理データを依頼者４側の端末装置５からマスタ２に一旦送信し、各スレーブ７に送信したが、処理アプリケーションに応じて（例えば、画像データを入力とする画像生成処理等）、各スレーブ７−１、７−２、…の外部メモリ８−１、８−２、…に予め、それぞれ参加応募機能１１等と共に、同じ処理プログラムを格納しておき、処理依頼の際に、異なる処理データを各スレーブ７−１、７−２、…に送信し、実行させてもよい。
【０１３０】
また、スレーブ７が使用不可能になった場合や指示した処理結果がなかなか返ってこない場合、並列処理に参加応募している別のスレーブ７に再度、同一処理を割振ることで、期限付きの処理の実行を可能にする。また、ある決められた処理専用のシステムではなく、外部（依頼者４の端末装置５）からの複数の並列処理を実行することが容易に可能となる。
【０１３１】
更に、命令変換機能を有するメモリをスレーブ７側又はマスタ２側に持たせることで、一般のパーソナルコンピュータだけではなく、情報家電等の異なる処理体系、演算体系を採る演算装置（ＣＰＵ等）を有する機器や携帯電話機を用いた並列処理が可能となり、さらなる並列処理の高速化が可能となる。
【０１３２】
尚、図１１乃至図１３等に示す処理を行うプログラムはＣＤ−ＲＯＭ等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【０１３３】
第２の実施の形態では、割付処理及び割付処理毎の実行結果は、ネットワーク９上を流れるが、依頼処理全体及び依頼処理毎の実行結果は、ネットワーク９上を流れることがないので、安全性、機密性を向上することができる。
【０１３４】
次に、本発明の第３の実施の形態について説明する。
図１４は、本発明の第３の実施の形態に係る並列処理システム３００の概略構成を示す図である。
【０１３５】
前述の第１の実施の形態では、マスタ２は、端末装置５からネットワーク９を介して処理の依頼（依頼処理）を受付け、当該依頼処理を並列処理により処理するが、第３の実施の形態では、依頼処理は、直接マスタ２に入力される。すなわち、マスタ２の処理受付機能１３は、ＷＥＢページ等によりネットワーク９を介して依頼処理を受付けるだけでなく、マスタ２に直接入力された処理を依頼処理として受け付けることができる。
【０１３６】
第１の実施の形態では、端末装置５からネットワーク９を介してマスタ２に並列処理を依頼することができるので、リモートからの並列処理の依頼、処理実行結果の取得が可能となる。例えば、多数の並列処理専用コンピュータをセンタ内に構築し、リモートからの運用が可能となる。
一方、第３の実施の形態では、割付処理及び割付処理毎の実行結果は、ネットワーク９上を流れるが、依頼処理全体及び依頼処理毎の実行結果は、ネットワーク９上を流れることがないので、安全性、機密性を向上することができる。
【０１３７】
次に、本発明の第４の実施の形態について説明する。
図１５は、本発明の第４の実施の形態に係る並列処理システム４００の概略構成を示す図である。
【０１３８】
前述の第２の実施の形態では、マスタ２は、端末装置５からネットワーク９を介して処理の依頼（依頼処理）を受付け、当該依頼処理を並列処理により処理するが、第４の実施の形態では、依頼処理は、直接マスタ２に入力される。すなわち、マスタ２の処理受付機能１３は、ＷＥＢページ等によりネットワーク９を介して依頼処理を受付けるだけでなく、マスタ２に直接入力された処理を依頼処理として受け付けることができる。
【０１３９】
第２の実施の形態では、端末装置５からネットワーク９を介してマスタ２に並列処理を依頼することができるので、リモートからの並列処理の依頼、処理実行結果の取得が可能となる。例えば、多数の並列処理専用コンピュータをセンタ内に構築し、リモートからの運用が可能となる。
一方、第４の実施の形態では、割付処理及び割付処理毎の実行結果は、ネットワーク９上を流れるが、依頼処理全体及び依頼処理毎の実行結果は、ネットワーク９上を流れることがないので、安全性、機密性を向上することができる。
【０１４０】
次に、並列処理システムにおける、ブロードキャスト通信による通信処理の詳細を説明する。
上記の第１の実施の形態及び第２の実施の形態に示した並列処理システムでは、マスタとスレーブとの間の通信に関しては、ブロードキャスト通信を用いて、通信データ、情報の授受（参加募集、参加応募、処理割付、実行結果の送信、実行結果の取得等）が行われる。
【０１４１】
図１６は、上述のマスタ２及びスレーブ７におけるブロードキャスト通信による通信処理の概略を示す図である。
尚、所定の通信処理に関する送信元と送信先のポート番号は、異なる場合があるが、説明の容易のため、所定の通信処理の種類毎にポート番号が設定され、送信元と送信先のポート番号は、同一であるものとして説明する。
【０１４２】
図１６に示すように、マスタ２には、２０００番ポート、２００１番ポート、２００２番ポート、２００３番ポート、２００４番ポート、…が設定され、スレーブ７−１には、２０００番ポート、２００１番ポート、スレーブ７−２には、２０００番ポート、２００２番ポート、スレーブ７−３には、２０００番ポート、２００３番ポート、スレーブ７−４には、２０００番ポート、２００４番ポート、…が設定される。
【０１４３】
２０００番ポートは、マスタ２及び全てのスレーブ７の間の通信（例えば、参加募集）に関する通信ポートである。
２００１番ポートは、マスタ２とスレーブ７−１との間の通信（例えば、参加応募）に関する通信ポートである。
２００２番ポートは、マスタ２とスレーブ７−２との間の通信（例えば、参加応募）に関する通信ポートである。
２００３番ポートは、マスタ２とスレーブ７−３との間の通信（例えば、参加応募）に関する通信ポートである。
２００４番ポートは、マスタ２とスレーブ７−４との間の通信（例えば、参加応募）に関する通信ポートである。
【０１４４】
マスタ２は、全てのスレーブ７に対して通信データを送信する場合（例えば、並列処理への参加募集を行う場合）、送信先ポート番号２０００を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク９に送出する。スレーブ７−１、７−２、７−３、７−４、…は、ポート番号２０００が設定されているので、当該通信データ（送信先ポート番号２０００）を受信する（ステップ１６０１）。
【０１４５】
スレーブ７−１は、マスタ２に対して通信データを送信する場合（例えば、並列処理への参加応募を行う場合）、送信先ポート番号２００１を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク９に送出する。マスタ２は、ポート番号２００１が設定されているので、当該通信データ（送信先ポート番号２００１）を受信する（ステップ１６０２）。
【０１４６】
同様にして、スレーブ７−２、７−４は、マスタ２に対して通信データを送信する場合、それぞれ、送信先ポート番号２００２、２００４を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク９に送出し、マスタ２は、ポート番号２００２、２００４が設定されているので、当該通信データ（送信先ポート番号２００２、２００４）を受信する（ステップ１６０３、ステップ１６０４）。
【０１４７】
上記の説明では、参加募集、参加応募に関する通信処理を例としてあげたが、その他、割付処理の送受信、割付処理の実行結果の送受信、データ問い合わせ、データ報告等に関する通信処理に関しても、当該通信処理の種類毎に、必要に応じて、マスタ２、スレーブ７にポート番号を設定し、ポート番号を付加した通信データをブロードキャスト通信でネットワーク９に送出することにより、マスタ２及びスレーブ７の間で通信データの授受を行い、並列処理を実現することができる。
尚、マスタ２が分散化、多重化されている場合は、同一の指示、同一の応答であっても、早着優先で処理するようにすればよい。
【０１４８】
以上、添付図面を参照しながら、本発明に係る並列処理システム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【０１４９】
【図１】第１の形態に係る並列処理システム１００の概略構成を示す図
【図２】マスタ２のハードウェア構成図
【図３】スレーブ７のハードウェア構成図
【図４】処理受付機能１３、参加募集機能１４、処理割付機能１５、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、参加応募機能１１、処理実行機能１２、データ報告機能２６等に係る処理の概略を示す図
【図５】処理実行機能１２、データ後処理機能２７、実行結果取得機能１６、実行結果取得機能１７等に係る処理の概略を示す図
【図６】処理受付機能１３、参加募集機能１４、処理割付機能１５、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、データ後処理指示機能２４、参加応募機能１１、データ報告機能２６等に係る処理の手順を示すフローチャート
【図７】処理受付機能１３、参加募集機能１４、処理割付機能１５、データ問い合わせ機能２１、データ管理機能２２、データ転送機能２３、データ後処理指示機能２４、参加応募機能１１、データ報告機能２６等に係る処理の手順を示すフローチャート
【図８】処理実行機能１２、データ後処理機能２７、実行結果取得機能１６、実行結果取得機能１７等に係る処理の手順を示すフローチャート
【図９】データ転送指示機能２５、（スレーブ間）データ転送機能２８、データ取得機能２９等に係る処理の概略を示す図
【図１０】第２の実施の形態に係る並列処理システム２００の概略構成を示す図
【図１１】処理受付機能１３、参加募集機能１４、処理割付機能１５、参加応募機能１１、処理実行機能１２、データ問い合わせ機能１２１、データ報告機能１２６、データ転送機能１２８等に係る処理の概略を示す図
【図１２】処理受付機能１３、参加募集機能１４、処理割付機能１５、参加応募機能１１等に係る処理の手順を示すフローチャート
【図１３】処理実行機能１２、実行結果取得機能１６、データ問い合わせ機能１２１、データ報告機能１２６、データ転送機能１２８等に係る処理の手順を示すフローチャート
【図１４】第３の実施の形態に係る並列処理システム３００の概略構成を示す図
【図１５】第４の実施の形態に係る並列処理システム４００の概略構成を示す図
【図１６】ブロードキャスト通信による通信処理の概略を示す図
【図１７】従来の並列処理システム１０００の処理の流れを示す図
【符号の説明】
【０１５０】
１００、２００、３００、４００………並列処理システム
１………管理者
２………マスタ
３（３−１、３−２、…）………分散マスタ
４（４−１、４−２、…）………依頼者
５（５−１、５−２、…）………端末装置
６………スレーブ群
７（７−１、７−２、…）………スレーブ
９………ネットワーク
１１………参加応募機能
１２………処理実行機能
１３………処理受付機能
１４………参加募集機能
１５………処理割付機能
１６、１７………実行結果取得機能
２１、１２１………データ問い合わせ機能
２２………データ管理機能
２３………データ転送機能
２４………データ後処理指示機能
２５………データ転送指示機能
２６、１２６………データ報告機能
２７………データ後処理機能
２８、１２８………（スレーブ間）データ転送機能
２９………データ取得機能
３１………処理受付テーブル
３２………処理割付テーブル
３３………ジョブデータリスト
３４………データ保持リスト
３５………データ未保持リスト
３６………データ管理テーブル
【図１】
2007102666.tif 000003
【図２】
2007102666.tif 000004
【図３】
2007102666.tif 000005
【図４】
2007102666.tif 000006
【図５】
2007102666.tif 000007
【図６】
2007102666.tif 000008
【図７】
2007102666.tif 000009
【図８】
2007102666.tif 000010
【図９】
2007102666.tif 000011
【図１０】
2007102666.tif 000012
【図１１】
2007102666.tif 000013
【図１２】
2007102666.tif 000014
【図１３】
2007102666.tif 000015
【図１４】
2007102666.tif 000016
【図１５】
2007102666.tif 000017
【図１６】
2007102666.tif 000018
【図１７】
2007102666.tif 000019