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