(57)【要約】【課題】処理端末装置における演算結果、処理状況等を参照可能であり、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供する。【解決手段】スレーブ７から他のスレーブ７における実行結果、演算結果、データ等に関して問い合わせがあった場合、マスタ２は、処理割付テーブル３２を参照して問い合わせに該当する実行結果、演算結果、データ等を返信し、端末装置５から依頼処理の処理状況等に関して問い合わせがあった場合、マスタ２は、処理割付テーブル３２を参照して問い合わせに該当する処理状況等を端末装置に返信する。尚、問い合わせ及び問い合わせ応答に係るマスタ２とスレーブ７及び端末装置５との間の通信は、ブロードキャスト通信で行うことができるので、マスタ２の問い合わせ応答機能２０をマスタ２の外部に設けたり、分散マスタ３−１、３−２、…それぞれに分散して設けることが可能である。【選択図】　図６
2004062608.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、
前記サーバは、
前記依頼処理から必要に応じて当該依頼処理を分割して割付処理を生成し、前記処理端末装置に当該割付処理を割り付け送信し実行させる処理割付手段と、
前記依頼処理及び前記割付処理に関する情報を対応付ける処理テーブルを保持する保持手段と、
前記処理端末装置から他の処理端末装置における割付処理に関する問合せを受信した場合、前記処理テーブルを参照して応答する問合せ応答手段と、
を具備し、
前記処理端末装置は、
前記サーバから送られた前記割付処理を実行し、実行結果を前記サーバに送信する割付処理実行手段と、
前記サーバに他の処理端末装置における割付処理に関する問合せを送信する問合せ手段と、
を具備することを特徴とする並列処理システム。
【請求項２】
前記問合せ応答手段は、さらに、前記サーバに前記ネットワークを介して前記依頼処理を送信する１又は複数の端末装置から前記依頼処理に関する問合せを受信した場合、前記処理テーブルを参照して応答することを特徴とする請求項１に記載の並列処理システム。
【請求項３】
前記問合せ応答手段は、前記処理テーブルから前記問合せに対応する情報を抽出し、当該情報を返信することを特徴とする請求項１または請求項２に記載の並列処理システム。
【請求項４】
前記問合せ応答手段は、さらに、前記抽出した情報に対して前記問合せに応じた演算処理を行った結果を返信することを特徴とする請求項３に記載の並列処理システム。
【請求項５】
前記問合せに対応する情報は、前記依頼処理または前記割付処理の実行結果または処理状況であることを特徴とする請求項３または請求項４に記載の並列処理システム。
【請求項６】
前記ネットワークを介しての通信処理は、ブロードキャスト通信により行われることを特徴とする請求項１から請求項５のいずれかに記載の並列処理システム。
【請求項７】
前記サーバは、さらに、
前記処理端末装置に前記並列処理への参加募集を行う参加募集手段を具備し、
前記処理端末装置は、さらに、
前記サーバから前記並列処理への参加募集が送られると、参加可能な場合、参加応募の旨を応答する参加応募手段を具備することを特徴とする請求項１から請求項６のいずれかに記載の並列処理システム。
【請求項８】
複数の処理端末装置に、ネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、
前記依頼処理から必要に応じて当該依頼処理を分割して割付処理を生成し、前記処理端末装置に当該割付処理を割り付け送信し実行させる処理割付手段と、
前記依頼処理及び前記割付処理に関する情報を対応付ける処理テーブルを保持する保持手段と、
前記処理端末装置から他の処理端末装置における割付処理に関する問合せを受信した場合、前記処理テーブルを参照して応答する問合せ応答手段と、
を具備することを特徴とするサーバ。
【請求項９】
前記問合せ応答手段は、さらに、前記サーバに前記ネットワークを介して前記依頼処理を送信する１又は複数の端末装置から前記依頼処理に関する問合せを受信した場合、前記処理テーブルを参照して応答することを特徴とする請求項８に記載のサーバ。
【請求項１０】
前記問合せ応答手段は、前記処理テーブルから前記問合せに対応する情報を抽出し、当該情報を返信することを特徴とする請求項８または請求項９に記載のサーバ。
【請求項１１】
前記問合せ応答手段は、さらに、前記抽出した情報に対して前記問合せに応じた演算処理を行った結果を返信することを特徴とする請求項１０に記載のサーバ。
【請求項１２】
前記問合せに対応する情報は、前記依頼処理または前記割付処理の実行結果または処理状況であることを特徴とする請求項１０または請求項１１に記載のサーバ。
【請求項１３】
前記ネットワークを介しての通信処理は、ブロードキャスト通信により行われることを特徴とする請求項８から請求項１２のいずれかに記載のサーバ。
【請求項１４】
前記処理端末装置に前記並列処理への参加募集を行う参加募集手段を具備することを特徴とする請求項８から請求項１３までのいずれかに記載のサーバ。
【請求項１５】
入力された依頼処理を並列処理により処理する１又は複数のサーバにネットワークを介して接続される、１又は複数の処理端末装置であって、
前記サーバから送られた前記割付処理を実行し、実行結果を前記サーバに送信する割付処理実行手段と、
前記サーバに他の処理端末装置における割付処理に関する問合せを送信する問合せ手段と、
を具備することを特徴とする処理端末装置。
【請求項１６】
前記ネットワークを介しての通信処理は、ブロードキャスト通信により行われることを特徴とする請求項１５のいずれかに記載の処理端末装置。
【請求項１７】
前記サーバから前記並列処理への参加募集が送られると、参加可能な場合、参加応募の旨を応答する参加応募手段を具備することを特徴とする請求項１５または請求項１６に記載の処理端末装置。
【請求項１８】
複数の処理端末装置に、ネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバが実行する並列処理方法であって、
前記依頼処理から必要に応じて当該依頼処理を分割して割付処理を生成し、前記処理端末装置に当該割付処理を割り付け送信し実行させる処理割付工程と、
前記依頼処理及び前記割付処理に関する情報を対応付ける処理テーブルを保持する保持工程と、
前記処理端末装置から他の処理端末装置における割付処理に関する問合せを受信した場合、前記処理テーブルを参照して応答する問合せ応答工程と、
を具備することを特徴とする並列処理方法。
【請求項１９】
前記問合せ応答工程は、さらに、前記サーバに前記ネットワークを介して前記依頼処理を送信する１又は複数の端末装置から前記依頼処理に関する問合せを受信した場合、前記処理テーブルを参照して応答することを特徴とする請求項１８に記載の並列処理方法。
【請求項２０】
前記問合せ応答工程は、前記処理テーブルから前記問合せに対応する情報を抽出し、当該情報を返信することを特徴とする請求項１８または請求項１９に記載の並列処理方法。
【請求項２１】
前記問合せ応答工程は、さらに、前記抽出した情報に対して前記問合せに応じた演算処理を行った結果を返信することを特徴とする請求項２０に記載の並列処理方法。
【請求項２２】
前記問合せに対応する情報は、前記依頼処理または前記割付処理の実行結果または処理状況であることを特徴とする請求項２０または請求項２１に記載の並列処理方法。
【請求項２３】
前記ネットワークを介しての通信処理は、ブロードキャスト通信により行われることを特徴とする請求項１８から請求項２２のいずれかに記載の並列処理方法。
【請求項２４】
前記処理端末装置に前記並列処理への参加募集を行う参加募集工程を具備することを特徴とする請求項１８から請求項２３までのいずれかに記載の並列処理方法。
【請求項２５】
コンピュータを請求項８から請求項１４のいずれかに記載のサーバとして機能させるプログラム。
【請求項２６】
コンピュータを請求項８から請求項１４のいずれかに記載のサーバとして機能させるプログラムを記録した記録媒体。
【請求項２７】
コンピュータを請求項１５から請求項１７のいずれかに記載の処理端末装置として機能させるプログラム。
【請求項２８】
コンピュータを請求項１５から請求項１７のいずれかに記載の処理端末装置として機能させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１の処理を複数の処理端末装置に分散して処理する並列処理システム等に関する。より詳細には、他の処理端末装置の実行結果、実行状況等を参照可能な並列処理システム等に関する。
【０００２】
【従来の技術】
従来、一般の並列処理システムは、並列処理専用の複数の処理端末装置を設け、これらの処理端末装置に並列処理を実行させるものである。また、一般ＯＡ用途に用いられているパーソナルコンピュータ等の端末装置の未使用時間等を利用するボランティア端末装置参加型の並列処理システム（例えば、バイオ計算等）が幾つか存在する。
【０００３】
【発明が解決しようとする課題】
しかしながら、このようなシステムでは、基本的に膨大な計算資源に対し、処理端末装置側から処理データを取りに行き、実行結果を返す仕組みであり、処理端末装置の状態、処理能力等とは無関係であり、指示した処理結果がいつ返って来るか分からないので、納期付きの処理実行はできないという問題点がある。また、決められた処理のみ実行可能で、外部からの並列処理実行依頼を容易に実行することはできないという問題点がある。
【０００４】
また、並列処理専用の処理端末装置を有する同一システム内でのデータ交換は可能であっても、処理端末装置参加型の並列処理では、処理端末装置が他の処理端末装置の演算結果等を参照するのは困難であり、さらに、処理端末装置の処理状況に関する外部からの問い合わせにも対応が困難であるという問題点がある。
【０００５】
本発明は、以上の点に鑑みてなされたものであり、処理端末装置における演算結果、処理状況等を参照可能であり、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供することを目的とする。
【０００６】
【課題を解決するための手段】
前述した目的を達成するために第１の発明は、複数の処理端末装置と、１又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、前記サーバは、前記依頼処理から必要に応じて当該依頼処理を分割して割付処理を生成し、前記処理端末装置に当該割付処理を割り付け送信し実行させる処理割付手段と、前記依頼処理及び前記割付処理に関する情報を対応付ける処理テーブルを保持する保持手段と、前記処理端末装置から他の処理端末装置における割付処理に関する問合せを受信した場合、前記処理テーブルを参照して応答する問合せ応答手段と、を具備し、前記処理端末装置は、前記サーバから送られた前記割付処理を実行し、実行結果を前記サーバに送信する割付処理実行手段と、前記サーバに他の処理端末装置における割付処理に関する問合せを送信する問合せ手段と、
を具備することを特徴とする並列処理システムである。
【０００７】
また、前記問合せ応答手段は、さらに、前記サーバに前記ネットワークを介して前記依頼処理を送信する１又は複数の端末装置から前記依頼処理に関する問合せを受信した場合、前記処理テーブルを参照して応答することが望ましい。
【０００８】
また、前記問合せ応答手段は、前記処理テーブルから前記問合せに対応する情報を抽出し、当該情報を返信することが望ましい。
また、前記問合せ応答手段は、さらに、前記抽出した情報に対して前記問合せに応じた演算処理を行った結果を返信することが望ましい。
【０００９】
また、前記問合せに対応する情報は、前記依頼処理または前記割付処理の実行結果または処理状況であることが望ましい。
また、前記ネットワークを介しての通信処理は、ブロードキャスト通信により行われることが望ましい。
また、前記サーバは、さらに、前記処理端末装置に前記並列処理への参加募集を行う参加募集手段を具備し、前記処理端末装置は、さらに、前記サーバから前記並列処理への参加募集が送られると、参加可能な場合、参加応募の旨を応答する参加応募手段を具備することが望ましい。
【００１０】
第１の発明では、依頼者の端末装置からネットワークを介してあるいは直接サーバに依頼処理が入力されると、サーバは、依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、処理端末装置に対して、当該割付処理を割り付け送信し実行させる。処理端末装置は、サーバから送られた割付処理を実行し、実行結果をサーバに送信する。サーバは、依頼処理、端末装置、割付処理、処理端末装置、依頼処理及び割付処理の実行結果、処理状況等を対応付ける処理テーブルをデータベース等の保持手段に記録する。
【００１１】
そして、依頼者の端末装置あるいは処理端末装置が、特定の処理端末装置における割付処理の実行結果、演算結果、データ、処理状況等が必要になった場合等、サーバに対してこれらの実行結果、演算結果、データ、処理状況等について問い合わせると、サーバは、処理テーブルを参照、検索して、問い合わせに該当する情報を抽出してを返信したり、抽出した情報に対して問合せに応じた演算処理を行った結果を返信する。
【００１２】
また、サーバは、割付処理を処理端末装置に割り付ける際、処理端末装置全体に対して並列処理への参加募集（処理要求）を行う。処理端末装置は、サーバから並列処理への参加募集が送られると、自身の負荷状況、稼働状況等に基づいて、並列処理へ参加するかどうか判定し、参加可能な場合、参加応募の旨（処理要求に応ずる旨）を応答する。
【００１３】
「サーバ」は、サーバコンピュータ等であり、処理端末装置としてのスレーブを制御する「マスタ」として機能する。サーバは、ネットワークを介してあるいは直接サーバに入力された処理（「依頼処理」）から「割付処理」を生成して処理端末装置に割り付け、実行させる。尚、サーバは、割付処理を生成する際、必要に応じて依頼処理を分割する。また、サーバは、分散化が可能である。
【００１４】
「処理端末装置」は、コンピュータ等の情報機器、携帯情報端末（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ）、携帯電話、情報家電等であり、サーバから割り付けられた処理（割付処理）を実行する。処理端末装置は、サーバとしてのマスタにより制御される「スレーブ」として機能する。
【００１５】
「端末装置」は、コンピュータ等の情報機器、携帯情報端末（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ）、携帯電話等であり、ネットワークを介して依頼処理をサーバに送信したりする。
「ネットワーク」は、インターネット、ＬＡＮ（ローカルエリアネットワーク）等のネットワークであり、有線、無線を問わない。
「処理」（「依頼処理」あるいは「割付処理」）は、処理依頼要求、処理プログラム、処理データ等である。
「問合せに応じた演算処理」とは、問合せに対応する情報として処理テーブルから抽出した情報（実行結果、処理状況等）に対して施す情報処理であり、例えば、合計値、平均値、最大値等を算出する処理、ソート処理等である。
【００１６】
「処理テーブル」は、依頼処理、割付処理に関する情報を対応付け記録する。処理テーブルは、種々の構成が可能であるが、例えば、依頼処理と割付処理とを対応付ける処理対応テーブル、端末装置、依頼処理、依頼処理の実行結果、処理状況等を対応付ける処理受付テーブル、処理端末装置、割付処理、割付処理の実行結果、処理状況等を対応付ける処理割付テーブル、等から構成することができる。
【００１７】
第１の発明では、処理端末装置は、サーバを介して他の処理端末装置における実行結果、演算結果、データ等を取得可能であるので、同一のシステム内における並列処理専用の処理端末装置でなく、互いに異なるシステムに属する並列処理への参加型の処理端末装置であっても、処理端末装置は、他の処理端末装置における処理実行結果等を参照することができる。
また、端末装置は、サーバを介して依頼処理の処理状況等を取得可能であるので、依頼処理の処理進捗状況を把握したり、処理状況によっては、処理を中止させたりすることができる。
このように、処理端末装置あるいは端末装置は、他の処理端末装置における実行結果、依頼処理の処理状況等をサーバを介して取得可能であるので、並列処理の効率性及び高速性を向上させることができる。
【００１８】
尚、問い合わせ及び問い合わせ応答等の処理に係るサーバと処理端末装置及び端末装置との間の通信は、ブロードキャスト通信で行うことができるので、サーバの問合せ応答手段（第１及び第２の問合せ応答手段）等は、サーバの外部に設けたり、サーバを構成する分散サーバそれぞれに分散して設けることが可能である。
【００１９】
第２の発明は、複数の処理端末装置に、ネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバであって、前記依頼処理から必要に応じて当該依頼処理を分割して割付処理を生成し、前記処理端末装置に当該割付処理を割り付け送信し実行させる処理割付手段と、前記依頼処理及び前記割付処理に関する情報を対応付ける処理テーブルを保持する保持手段と、前記処理端末装置から他の処理端末装置における割付処理に関する問合せを受信した場合、前記処理テーブルを参照して応答する問合せ応答手段と、を具備することを特徴とするサーバである。
【００２０】
第２の発明は、第１の発明の並列処理システムで用いられるサーバに関する発明である。
【００２１】
第３の発明は、入力された依頼処理を並列処理により処理する１又は複数のサーバにネットワークを介して接続される、１又は複数の処理端末装置であって、前記サーバから送られた前記割付処理を実行し、実行結果を前記サーバに送信する割付処理実行手段と、前記サーバに他の処理端末装置における割付処理に関する問合せを送信する問合せ手段と、を具備することを特徴とする処理端末装置である。
【００２２】
第３の発明は、第１の発明の並列処理システムで用いられる処理端末装置に関する発明である。
【００２３】
第４の発明は、複数の処理端末装置に、ネットワークを介して接続され、入力された依頼処理を並列処理により処理する１又は複数のサーバが実行する並列処理方法であって、前記依頼処理から必要に応じて当該依頼処理を分割して割付処理を生成し、前記処理端末装置に当該割付処理を割り付け送信し実行させる処理割付工程と、前記依頼処理及び前記割付処理に関する情報を対応付ける処理テーブルを保持する保持工程と、前記処理端末装置から他の処理端末装置における割付処理に関する問合せを受信した場合、前記処理テーブルを参照して応答する問合せ応答工程と、を具備することを特徴とする並列処理方法である。
【００２４】
第４の発明は、第２の発明のサーバにより実行される並列処理方法に関する発明である。
【００２５】
第５の発明は、コンピュータを第２の発明のサーバとして機能させるプログラムである。
第６の発明は、コンピュータを第２の発明のサーバとして機能させるプログラムを記録した記録媒体である。
【００２６】
第７の発明は、コンピュータを第３の発明の処理端末装置として機能させるプログラムである。
第８の発明は、コンピュータを第３の発明の処理端末装置として機能させるプログラムを記録した記録媒体である。
【００２７】
上述のプログラムをＣＤ−ＲＯＭ等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【００２８】
【発明の実施の形態】
以下に、添付図面を参照しながら、本発明に係る並列処理システム等の好適な実施形態について詳細に説明する。なお、以下の説明及び添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
【００２９】
図１は、本発明の実施の形態に係る並列処理システム１００の概略構成を示す図である。
【００３０】
図１に示すように、並列処理システム１００は、管理者１のマスタ２、複数の依頼者４−１、４−２、…の端末装置５−１、５−２、…、スレーブ群６等が、ネットワーク９を介して接続されて構成される。
【００３１】
ネットワーク９は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、社内ＬＡＮ等のネットワークであり、有線、無線を問わない。
【００３２】
管理者１は、並列処理システム１００を管理する管理者であり、マスタ２を有する。マスタ２は、「サーバ」としてのサーバコンピュータ等であり、処理受付機能１３、参加募集機能１４、処理割付機能１５、実行結果取得機能１６、問合せ応答機能２０等を有する。マスタ２は、複数の分散マスタ３−１、３−２、…により構成することもできる。
【００３３】
処理受付機能１３は、依頼者４−１、４−２、…の端末装置５−１、５−２、…から処理の依頼を受付ける。例えば、処理受付機能１３は、ＷＥＢ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）サーバとしての機能を有し、端末装置５からＷＥＢページに入力された処理を依頼処理として受け付けることができる。また、処理受付機能１３は、端末装置５からＷＥＢページ等によりネットワーク９を介して依頼処理を受付けるだけでなく、マスタ２に直接入力された処理を依頼処理として受け付けることができる。
【００３４】
参加募集機能１４は、スレーブ群６の各スレーブ７−１、７−２、…に対して、並列処理への参加を募集する。
処理割付機能１５は、依頼された処理（依頼処理）から割付処理を生成してスレーブ７−１、７−２、…に割付ける。
実行結果取得機能１６は、スレーブ７−１、７−２、…から割付処理の実行結果を取得する。
問合せ応答機能２０は、端末装置５あるいはスレーブ７から、処理状況あるいは演算結果等に関する問合せがあった場合、当該問合せに応答したりする。
【００３５】
依頼者４−１、４−２、…は、処理を依頼する依頼者であり、それぞれ、端末装置５−１、５−２、…を有する。端末装置５−１、５−２…は、ネットワーク９を介して、マスタ２に処理を依頼し、スレーブ群６から処理の実行結果を受信し取得する実行結果取得機能１７、マスタ２に依頼した処理の処理状況等を問い合わせる問合せ機能２２等を有する。尚、端末装置５−１、５−２、…は、パーソナルコンピュータ、携帯情報端末（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ）等である。
【００３６】
スレーブ群６は、複数の「処理端末装置」としてのスレーブ７−１、７−２…を有する。スレーブ７−１、７−２、…は、並列処理専用のコンピュータ等の端末装置、あるいは、未使用時間等に係る空き資源、リソースを有する場合に並列処理に参加するパーソナルコンピュータ等のボランティア端末装置である。スレーブ７−１、７−２、…は、パーソナルコンピュータ、携帯情報端末（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ）、携帯電話機、演算装置を有する機器等である。
【００３７】
スレーブ７−１、７−２、…は、それぞれ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）メモリ・キー等の外部メモリ８−１、８−２、…を有するようにしてもよい。スレーブ７−１、７−２、…（又は、外部メモリ）は、参加応募機能１１、処理実行機能１２、問合せ機能２１等を有する。
尚、スレーブ７には、参加応募機能１１、処理実行機能１２、問合せ機能２１等を有する外部メモリを設けてもよいし、外部メモリを設けずスレーブ７内に参加応募機能１１、処理実行機能１２、問合せ機能２１等を設けるようにしてもよい。
【００３８】
参加応募機能１１は、マスタ２から並列処理への参加募集が行われると、自身の稼働状況等から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、参加する場合は、マスタ２に対して参加応募の旨を応答する。尚、スレーブ７は、自身の稼働状況、利用状況、負荷（ＣＰＵ負荷率等）等を常時監視することもできる。
処理実行機能１２は、マスタ２等から受け取った処理プログラムにより所定の処理を実行する。
問合せ機能２１は、割付処理の実行時等、他の処理端末装置における演算結果、データ等が処理に必要となった場合、当該必要な演算結果、データ等をマスタ２に問い合わせたりする。
【００３９】
スレーブ７として、例えば、情報家電、携帯電話等を用いる場合、ＣＰＵの処理体系の相違により、受け取った処理プログラム等をそのままスレーブ上では実行できないことがある。この場合、スレーブ上で実行可能な処理体系に演算コード等を変換する機能（ＣＰＵ命令変換機能）をスレーブ７側（スレーブ７自身、外部メモリ等）またはマスタ２側に設けることにより、スレーブ上での当該処理プログラム等の実行を可能とすることができる。
【００４０】
次に、図２乃至図８を参照しながら、並列処理システム１００の処理手順について説明する。
【００４１】
まず、図２及び図４を参照しながら、マスタ２が有する処理受付機能１３、参加募集機能１４、処理割付機能１５、及び、スレーブ７−１、７−２、…が有する参加応募機能１１等による処理について説明する。
【００４２】
尚、「処理」の区別のため必要に応じて、端末装置５−１、５−２、…から依頼された処理を「依頼処理」と呼び、スレーブ７−１、７−２、…に分配、割り付けられた処理を「割付処理」と呼ぶ。
【００４３】
図２は、処理受付機能１３、参加募集機能１４、処理割付機能１５、参加応募機能１１等に係る処理の概略を示す図である。
図４は、処理受付機能１３、参加募集機能１４、処理割付機能１５、参加応募機能１１等に係る処理の手順を示すフローチャートである。
【００４４】
依頼者４−１、４−２、…の端末装置５−１、５−２、…は、依頼処理（依頼処理Ａ、Ｂ、…）の処理依頼をマスタ２に行い、当該依頼処理の処理プログラム及び処理データをマスタ２に送信する（ステップ４０１）。
【００４５】
尚、スレーブ７（又はその外部メモリ）には、予め、参加応募機能１１、問合せ機能２１等と共に、処理実行機能１２に係る処理プログラム及び処理データを記憶させ、端末装置５−１、５−２、…は、処理プロクラム及び処理データを送ることなく、マスタ２に処理Ａ、Ｂ、…の処理依頼のみ行ってもよい。あるいは、スレーブ７（又はその外部メモリ）に、予め、参加応募機能１１、問合せ機能２１等と共に、処理実行機能１２に係る処理プログラム及び処理データの一部を記憶させ、残りの処理プログラム及び処理データに関しては、端末装置５−１、５−２、…が依頼処理Ａ、Ｂ、…の処理依頼を行う際にマスタ２に送信するようにしてもよい。
【００４６】
マスタ２は、各依頼者４−１、４−２、…の端末装置５−１、５−２、…からの依頼処理を受信し、受付ける（ステップ４０２）。
図２に示すように、例えば、マスタ２は、依頼者４−１の端末装置５−１から依頼処理Ａを受付け（ステップ４１−１）、依頼者４−２の端末装置５−２から依頼処理Ｂを受付け（ステップ４１−２）、処理受付テーブル３１を作成する。処理受付テーブル３１は、端末装置と依頼処理とを対応付ける。
【００４７】
ここで、処理受付機能１３にＷＥＢサーバとしての機能を設けることにより、マスタ２は、端末装置５からＷＥＢページに入力された処理を依頼処理として受け付けることができる。
尚、ステップ４０１〜ステップ４０２の処理を随時行うようにすることができる。
【００４８】
マスタ２は、ブロードキャスト通信で、スレーブ群６の全てのスレーブ７−１、７−２、…に対して並列処理への参加を募集する（ステップ４０３）。
スレーブ７−１、７−２、…は、自身の負荷、稼働状況等から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、並列処理に参加可能な場合、マスタ２に対して参加応募の旨を応答する（ステップ４０４）。
【００４９】
マスタ２は、端末装置５−１、５−２、…から送られた依頼処理から割付処理を生成し、参加応募の旨の応答があったスレーブ７−１、７−２、…に割り付ける（ステップ４０５）。尚、マスタ２は、必要に応じて依頼処理を分割して割付処理を生成する。
図２に示すように、例えば、マスタ２は、依頼処理Ａを割付処理Ａ１〜割付処理Ａ５に分割し、依頼処理Ｂを割付処理Ｂとし、参加応募したスレーブ７−１に割付処理Ａ１を割り付け、参加応募したスレーブ７−２に割付処理Ａ２、Ａ３を割り付け、参加応募したスレーブ７−４に割付処理Ａ４、Ａ５を割り付ける（スレーブ７−３は参加応募しない）。マスタ２は、割付処理Ｂに関しては、現時点では割り付けを行わず、後に参加応募があった場合にスレーブ７に割り付ける。マスタ２は、スレーブと割付処理とを対応付ける処理割付テーブル３２を作成する（ステップ４４）。
【００５０】
マスタ２は、割付処理を割り付けた各スレーブ７−１、７−２、…に、割付処理に係る処理プログラム、処理データ等を送信し、処理を分配する（ステップ４０６）。
図２に示すように、例えば、マスタ２は、スレーブ７−１に割付処理Ａ１に係る処理プログラム、処理データ等を送信し、スレーブ７−２に割付処理Ａ２、Ａ３に係る処理プログラム、処理データ等を送信し、スレーブ７−４に割付処理Ａ４、Ａ５に係る処理プログラム、処理データ等を送信する（ステップ４６−１、４６−２、４６−４）。
尚、端末装置５−１、５−２、…からの処理受付の状況に応じて、ステップ４０３〜ステップ４０６の処理を随時行うようにすることができる。
【００５１】
尚、ブロードキャスト通信では、同一データリンク内の全ノード（ネットワークに接続されているコンピュータ等の機器）に対して情報を送信することができるので、マスタ２は、ブロードキャスト通信により同一データリンク内のスレーブ群６全体に対して、並列処理への参加募集を行い、スレーブ７は、ブロードキャスト通信により同一データリンク内のマスタ２（分散マスタ３）全体に対して、参加応募を行うことができる。
【００５２】
次に、図３及び図５を参照しながら、スレーブ７−１、７−２、…が有する処理実行機能１２、マスタ２が有する実行結果取得機能１６、端末装置５−１、５−２、…が有する実行結果取得機能１７等による処理について説明する。
図３は、処理実行機能１２、実行結果取得機能１６、実行結果取得機能１７等に係る処理の概略を示す図である。
図５は、処理実行機能１２、実行結果取得機能１６、実行結果取得機能１７等に係る処理の手順を示すフローチャートである。
【００５３】
スレーブ７−１、７−２…は、マスタ２から割付処理に係る処理プログラム、処理データを受け取る（ステップ５０１）。
図２に示すように、例えば、スレーブ７−１は、割付処理Ａ１に係る処理プログラム、処理データ等を受け取り（ステップ４６−１）、スレーブ７−２は、割付処理Ａ２及び割付処理Ａ３に係る処理プログラム、処理データ等を受け取り（ステップ４６−２）、スレーブ７−４は、割付処理Ａ４及び割付処理Ａ５に係る処理プログラム、処理データ等を受け取る（ステップ４６−４）。
尚、予め、処理プログラムや処理データがスレーブ７−１、７−２、…内や外部メモリ等に記憶されている場合には、スレーブ７−１、７−２、…は、マスタ２から処理実行依頼のみを受信する。
【００５４】
スレーブ７−１、７−２…は、受け取った処理プログラムを起動し、割付処理を実行する（ステップ５０２）。
図３に示すように、例えば、スレーブ７−１は、割付処理に係る処理プログラムＡ１を起動して割付処理Ａ１を実行し（ステップ４７−１）、スレーブ７−２は、割付処理に係る処理プログラムＡ２及び処理プログラムＡ３を起動して割付処理Ａ２及び割付処理Ａ３を実行し（ステップ４７−２）、スレーブ７−４は、処理プログラムＡ４及び処理プログラムＡ５を起動して割付処理Ａ４及び割付処理Ａ５を実行する（ステップ４７−４）。
【００５５】
スレーブ７−１、７−２…は、処理プログラム終了後、処理プログラムの実行結果（割付処理の実行結果）をマスタ２に送信する（ステップ５０３）。
図３に示すように、例えば、スレーブ７−１は、実行結果ａ１（割付処理Ａ１の実行結果）をマスタ２に送信し（ステップ４８−１）、スレーブ７−２は、実行結果ａ２及び実行結果ａ３（割付処理Ａ２及び割付処理Ａ３の実行結果）をマスタ２に送信し（ステップ４８−２）、スレーブ７−４は、実行結果ａ４及び実行結果ａ５（割付処理Ａ４及び割付処理Ａ５の実行結果）をマスタ２に送信する（ステップ４８−４）。
【００５６】
マスタ２は、スレーブ７−１、７−２…から割付処理の実行結果を受信し、処理割付テーブル３２に対応付けて記録する（ステップ５０４）。
マスタ２は、割付処理の実行結果を依頼処理毎に集約し、処理受付テーブル３１に対応付けて記録する（ステップ５０５）。
図３に示すように、例えば、マスタ２は、割付処理毎の実行結果ａ１〜ａ５を依頼処理毎の実行結果Ａに集約する（ステップ４９）。
【００５７】
マスタ２は、依頼処理毎に取得した実行結果を対応する依頼者４−１、４−２、…の端末装置５−１、５−２、…に送信し（ステップ５０６）、端末装置５−１、５−２、…は、依頼した処理の実行結果を受け取る（ステップ５０７）。
図３に示すように、例えば、マスタ２は、依頼処理Ａの実行結果Ａを端末装置５−１に送信する（ステップ５０−１）。
【００５８】
マスタ２は、割付処理実行中のスレーブから所定の期限（例えば、処理実行開始後、１日経過、３０秒経過）までに実行結果を受信しなかった場合、その他、割付処理実行中のスレーブが正常動作していないと認められる場合等、スレーブ群６に対して並列処理への参加募集を行い、参加応募した別のスレーブ７−１、７−２、…に、同じ処理を割振り、実行させる（ステップ４０３〜ステップ４０６）。
【００５９】
また、図３に示すように、スレーブ７−１、７−２、…は、マスタ２に実行結果を送信せずに、直接、依頼者４−１、４−２、…の端末装置５−１、５−２、…に実行結果を送信してもよい（ステップ５１）。さらに、スレーブ７−１、７−２、…は、ブロードキャスト通信により、ネットワーク９に実行結果を送出し、マスタ２（分散マスタ３）もしくは端末装置５が必要に応じて当該実行結果を受信するようにしてもよい。
【００６０】
マスタ２は、並列処理を終了する時は、参加応募したスレーブ７−１、７−２、…に対して、終了指示を送り、当該終了指示を受けたスレーブ７−１、７−２、…は、参加応募、割付処理の実行等を終了する。
【００６１】
尚、上記のステップ４０１〜ステップ４０６、ステップ５０１〜ステップ５０７に係る処理は、依頼処理毎、割付処理毎に独立、平行して実行することができる。例えば、ステップ５０４の処理において、ある時点において、依頼処理Ａに係る割付処理の実行結果の全てを受信した場合、依頼処理Ｂに係る割付処理の実行結果の全てを受信していない場合であっても、依頼処理Ａに関しては、ステップ５０５以降の処理を進めることができる。
【００６２】
以上の過程を経て、マスタ２は、各依頼者４の端末装置５から処理の依頼（依頼処理）を受付け、ブロードキャスト通信によりスレーブ群６のスレーブ７全体に対して並列処理への参加募集を行い、スレーブ７は、自身の負荷、稼働状況、利用状況等に応じて、並列処理に参加可能な場合、参加応募の旨を応答する。
マスタ２は、参加応募したスレーブ７に処理を割振り、割振った処理（割付処理）を送信する。スレーブ７は、マスタ２から受け取った割付処理を実行し、処理終了後、実行結果をマスタ２又は依頼者４側の端末装置５に送信し、マスタ２あるいは端末装置５は、実行結果を受け取る。
【００６３】
このように、マスタ２（サーバ）は、必要に応じて随時並列処理への参加を募集し、スレーブ７（処理端末装置）は、自身の負荷、稼働状況等に応じて並列処理に参加するので、マスタ２は、スレーブ７の負荷、稼働状況等を管理する必要がなく、参加応募したスレーブ７に割付処理を割り当てることにより、効率的かつ高速な並列処理を実現することができる。従って、スレーブ７は、並列処理への途中参加が可能である。
【００６４】
また、処理端末装置として、ボランティア端末装置、すなわち、一般ＯＡ用途に用いられているパーソナルコンピュータ等の未使用時間等に係る空き資源を利用可能であり、膨大な計算量を要する処理等に係る並列処理を実現することができる。この場合、企業等のパーソナルコンピュータを多数抱えているサイトでは、安価に高速計算機環境を取得できると共に、ボランティア端末装置（スレーブ）の更新毎に計算機環境も自動更新されるため、新たに計算環境を構築することなく高速化が図られる。
【００６５】
次に、図６乃至図８を参照しながら、マスタ２が有する問合せ応答機能２０、及び、スレーブ７−１、７−２、…が有する問合せ機能２１、端末装置５−１、５−２、…が有する問合せ機能２２等による処理について説明する。
【００６６】
図６は、問合せ応答機能２０、問合せ機能２１、問合せ機能２２等に係る処理の概略を示す図である。
図７は、問合せ応答機能２０、問合せ機能２１等に係る処理の手順を示すフローチャートである。
図８は、問合せ応答機能２０、問合せ機能２２等に係る処理の手順を示すフローチャートである。
【００６７】
スレーブ７は、自身に割り付けられた割付処理を実行中に、他のスレーブ７が処理した割付処理の実行結果、演算結果、データ等（以下、「必要情報」という）が必要になった場合、マスタ２に対して必要情報を通知するよう問い合わせる（ステップ７０１）。
マスタ２は、処理割付テーブル３２を参照、検索して、問い合わせに該当する必要情報を抽出し、問い合わせを行ったスレーブ７に当該抽出した必要情報を返信する（ステップ７０２）。
問い合わせを行ったスレーブ７は、必要情報を取得し、当該必要情報を用いて割付処理を続行する（ステップ７０３）。
尚、問い合わせ（ステップ７０１）及び問い合わせに対する応答（ステップ７０２）の処理は、ブロードキャスト通信により行うことができる。
【００６８】
図６に示すように、例えば、スレーブ７−４は、割付処理Ａ５を実行中に（ステップ４７−４）、スレーブ７−２が処理した割付処理Ａ２の実行結果ａ２が必要になった場合、マスタ２に対して実行結果ａ２を通知するよう問い合わせる（ステップ６１）。マスタ２は、処理割付テーブル３２を参照、検索して、実行結果ａ２「１８００」を抽出し、スレーブ７−４に送信する（ステップ６２）。
【００６９】
端末装置５は、自身が依頼した依頼処理の処理状況を通知するようマスタ２に問い合わせる（ステップ８０１）。
マスタ２は、処理割付テーブル３２を参照して、問い合わせに該当する依頼処理の処理状況を返信する（ステップ８０２）。
問い合わせを行った端末装置５は、依頼処理の処理状況を取得する（ステップ８０３）。
【００７０】
図６に示すように、例えば、端末装置５−１は、依頼処理Ａの処理の依頼をマスタ２に行い（ステップ４１−１）、必要に応じて、当該依頼処理Ａの処理状況等を通知するようマスタ２に問い合わせる（ステップ６３）。マスタ２は、処理割付テーブル３２を参照、検索して、依頼処理Ａに関する情報を抽出し、処理状況（例えば、『割付処理Ａ１〜Ａ４迄処理済、割付処理Ａ５実行中』）等を端末装置５−１に送信する（ステップ６４）。
【００７１】
以上の過程を経て、スレーブ７から他のスレーブ７における実行結果、演算結果、データ等（必要情報）に関して問い合わせがあった場合、マスタ２は、処理割付テーブル３２を参照して問い合わせに該当する実行結果、演算結果、データ等（必要情報）を返信し、端末装置５から依頼処理の処理状況等に関して問い合わせがあった場合、マスタ２は、処理割付テーブル３２を参照して問い合わせに該当する依頼処理の処理状況等を端末装置に返信する。
【００７２】
このように、スレーブ７は、マスタ２を介して他のスレーブ７における実行結果、演算結果、データ等を取得可能であるので、同一のシステム内における並列処理専用の処理端末装置でなく、互いに異なるシステムに属する並列処理への参加型の処理端末装置であっても、スレーブ７は、他のスレーブ７における処理実行結果等を参照することができる。
また、端末装置５は、マスタ２を介して依頼処理の処理状況等を取得可能であるので、依頼処理の処理進捗状況を把握したり、処理状況によっては、処理を中止させたりすることができる。
【００７３】
尚、マスタ２は、問い合わせ内容に応じて演算処理、データ処理等を行うようにしてもよい。すなわち、マスタ２は、端末装置５あるいはスレーブ７からの問い合わせに対して、マスタ２自身が処理割付テーブル３２等に保持する情報等をそのまま応答するだけでなく、当該情報等に対して問い合わせ内容に応じた所定の演算処理、データ処理等を施し、その結果を応答することもできる。
例えば、端末装置５あるいはスレーブ７から実行結果ａ１〜実行結果ａ４の平均値、合計値、最大値等の問い合わせがあった場合、マスタ２は、処理割付テーブルに保持する実行結果ａ１〜実行結果ａ４から平均値、合計値、最大値等を算出した上で、これらの平均値及び合計値を端末装置５あるいはスレーブ７に返信する。
【００７４】
尚、問い合わせ及び問い合わせ応答に係るマスタ２とスレーブ７及び端末装置５との間の通信は、ブロードキャスト通信で行うことができるので、マスタ２の問い合わせ応答機能２０をマスタ２の外部に設けたり、分散マスタ３−１、３−２、…それぞれに分散して設けることが可能である。
【００７５】
次に、並列処理システムにおける、ブロードキャスト通信による通信処理の詳細を説明する。
上記の実施の形態に示した並列処理システムでは、マスタとスレーブ、端末装置等との間の通信に関しては、ブロードキャスト通信を用いて、通信データ、情報の授受（参加募集、参加応募、処理割付、実行結果の送信、実行結果の取得、問い合わせ、問い合わせ応答等）が行われる。
【００７６】
図７は、上述のマスタ２及びスレーブ７におけるブロードキャスト通信による通信処理の概略を示す図である。
尚、所定の通信処理に関する送信元と送信先のポート番号は、異なる場合があるが、説明の容易のため、所定の通信処理の種類毎にポート番号が設定され、送信元と送信先のポート番号は、同一であるものとして説明する。
【００７７】
図７に示すように、マスタ２には、２０００番ポート、２００１番ポート、２００２番ポート、２００３番ポート、２００４番ポート、…が設定され、スレーブ７−１には、２０００番ポート、２００１番ポート、スレーブ７−２には、２０００番ポート、２００２番ポート、スレーブ７−３には、２０００番ポート、２００３番ポート、スレーブ７−４には、２０００番ポート、２００４番ポート、…が設定される。
【００７８】
２０００番ポートは、マスタ２及び全てのスレーブ７の間の通信（例えば、参加募集）に関する通信ポートである。
２００１番ポートは、マスタ２とスレーブ７−１との間の通信（例えば、参加応募、問合せ、問合せ応答）に関する通信ポートである。
２００２番ポートは、マスタ２とスレーブ７−２との間の通信（例えば、参加応募、問合せ、問合せ応答）に関する通信ポートである。
２００３番ポートは、マスタ２とスレーブ７−３との間の通信（例えば、参加応募、問合せ、問合せ応答）に関する通信ポートである。
２００４番ポートは、マスタ２とスレーブ７−４との間の通信（例えば、参加応募、問合せ、問合せ応答）に関する通信ポートである。
【００７９】
マスタ２は、全てのスレーブ７に対して通信データを送信する場合（例えば、並列処理への参加募集を行う場合）、送信先ポート番号２０００を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク９に送出する。スレーブ７−１、７−２、７−３、７−４、…は、ポート番号２０００が設定されているので、当該通信データ（送信先ポート番号２０００）を受信する（ステップ１００１）。
【００８０】
スレーブ７−１は、マスタ２に対して通信データを送信する場合（例えば、並列処理への参加応募を行う場合）、送信先ポート番号２００１を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク９に送出する。マスタ２は、ポート番号２００１が設定されているので、当該通信データ（送信先ポート番号２００１）を受信する（ステップ１００２）。
【００８１】
同様にして、スレーブ７−２、７−４は、マスタ２に対して通信データを送信する場合、それぞれ、送信先ポート番号２００２、２００４を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク９に送出し、マスタ２は、ポート番号２００２、２００４が設定されているので、当該通信データ（送信先ポート番号２００２、２００４）を受信する（ステップ１００３、ステップ１００４）。
【００８２】
上記の説明では、参加募集、参加応募に関する通信処理を例としてあげたが、その他、割付処理の送受信、割付処理の実行結果の送受信、割付処理の実行結果の問い合わせ、依頼処理の処理状況等の問い合わせ、問い合わせ応答等に関する通信処理に関しても、当該通信処理の種類毎に、必要に応じて、マスタ２、スレーブ７、端末装置５にポート番号を設定し、ポート番号を付加した通信データをブロードキャスト通信でネットワーク９に送出することにより、マスタ２及びスレーブ７、端末装置５の間で通信データの授受を行い、並列処理を実現することができる。
尚、マスタ２が分散化、多重化されている場合は、同一の指示、同一の応答であっても、早着優先で処理するようにすればよい。
【００８３】
以上、添付図面を参照しながら、本発明に係る並列処理システム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００８４】
尚、図４、図５、図７、図８等に示す処理を行うプログラムはＣＤ−ＲＯＭ等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【００８５】
【発明の効果】
以上、詳細に説明したように本発明によれば、処理端末装置における演算結果、処理状況等を参照可能であり、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供することができる。
【図面の簡単な説明】
【図１】第１の形態に係る並列処理システム１００の概略構成を示す図
【図２】処理受付、参加募集、参加応募、処理割付等に係る処理の概略を示す図
【図３】処理実行、実行結果取得等に係る処理の概略を示す図
【図４】処理受付、参加募集、参加応募、処理割付等に係る処理の手順を示すフローチャート
【図５】処理実行、実行結果取得等に係る処理の手順を示すフローチャート
【図６】問合せ応答機能、問合せ機能等に係る処理の概略を示す図
【図７】問合せ応答機能、問合せ機能等に係る処理の手順を示すフローチャート
【図８】問合せ応答機能、問合せ機能等に係る処理の手順を示すフローチャート
【図９】ブロードキャスト通信による通信処理の概略を示す図
【符号の説明】
１００………並列処理システム
１………管理者
２………マスタ
３（３−１、３−２、…）………分散マスタ
４（４−１、４−２、…）………依頼者
５（５−１、５−２、…）………端末装置
６………スレーブ群
７（７−１、７−２、…）………スレーブ
９………ネットワーク
１１………参加応募機能
１２………処理実行機能
１３………処理受付機能
１４………参加募集機能
１５………処理割付機能
１６………実行結果取得機能（マスタ）
１７………実行結果取得機能（端末装置）
２０………問合せ応答機能
２１………問合せ機能（スレーブ）
２２………問合せ機能（端末装置）
３１………処理受付テーブル
３２………処理割付テーブル
【図１】
2004062608.tif 000003
【図２】
2004062608.tif 000004
【図３】
2004062608.tif 000005
【図４】
2004062608.tif 000006
【図５】
2004062608.tif 000007
【図６】
2004062608.tif 000008
【図７】
2004062608.tif 000009
【図８】
2004062608.tif 000010
【図９】
2004062608.tif 000011