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