JP2004054855A - Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium - Google Patents

Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium Download PDF

Info

Publication number
JP2004054855A
JP2004054855A JP2002221272A JP2002221272A JP2004054855A JP 2004054855 A JP2004054855 A JP 2004054855A JP 2002221272 A JP2002221272 A JP 2002221272A JP 2002221272 A JP2002221272 A JP 2002221272A JP 2004054855 A JP2004054855 A JP 2004054855A
Authority
JP
Japan
Prior art keywords
processing
allocation
terminal device
participation
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002221272A
Other languages
Japanese (ja)
Inventor
Toru Nakazawa
中沢 亨
Kazunari Iyoda
伊豫田 一成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2002221272A priority Critical patent/JP2004054855A/en
Priority to US10/513,089 priority patent/US20050188087A1/en
Priority to PCT/JP2003/006551 priority patent/WO2003100648A1/en
Priority to AU2003241771A priority patent/AU2003241771A1/en
Priority to TW092114376A priority patent/TWI325543B/en
Publication of JP2004054855A publication Critical patent/JP2004054855A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a parallel processing system, which allows a processing terminal device to execute parallel processing corresponding to operation situation and processing capability and improves efficiency and speed for its parallel processing. <P>SOLUTION: A master 2 receives a processing request from a terminal device 5 of each client 4, and invites participation to parallel processing to the whole of a slave group 6 through broadcasting communication. A slave 7 determines whether it has available resources enough to participate to the parallel processing based on its operation situation. If the slave 7 participates to the parallel processing, it replies its application for participation to the master 2. Then, the master 2 assigns processing to the slave 7 that applies for participation, and transmits the assigned processing to the slave 7. The slave 7 executes the processing received from the master 2, and after completing it, transmits the execution results to the master 2 or the terminal device 5 of the client 4. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、1の処理を複数の処理端末装置に分散して処理する並列処理システム等に関する。より詳細には、処理端末装置に並列処理への参加を募集する並列処理システム等に関する。
【0002】
【従来の技術】
従来、一般の並列処理システムは、並列処理専用の複数の処理端末装置を設け、これらの処理端末装置に並列処理を実行させるものである。また、一般OA用途に用いられているパーソナルコンピュータ等の端末装置の未使用時間等を利用するボランティア端末装置参加型の並列処理システム(例えば、バイオ計算等)が幾つか存在する。
【0003】
【発明が解決しようとする課題】
しかしながら、このようなシステムでは、基本的に膨大な計算資源に対し、処理端末装置側から処理データを取りに行き、実行結果を返す仕組みであり、処理端末装置の状態、処理能力等とは無関係であり、指示した処理結果がいつ返って来るか分からないので、納期付きの処理実行はできないという問題点がある。また、決められた処理のみ実行可能で、外部からの並列処理実行依頼を容易に実行することはできないという問題点がある。
【0004】
また、従来の並列処理システムでは、同一の処理体系、演算体系を採るCPUを対象としたものしかなく、制御機器や携帯電話機、情報家電等、互いに異なる処理体系、演算体系を採る演算装置を有する機器を対象とした並列処理手段はない。
【0005】
本発明は、以上の点に鑑みてなされたものであり、処理端末装置に稼働状況、処理能力等に応じて並列処理に係る処理を実行させ、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供することを目的とする。
【0006】
【課題を解決するための手段】
前述した目的を達成するために第1の発明は、複数の処理端末装置と、複数の依頼者側の端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記端末装置が依頼する依頼処理を並列処理により処理する並列処理システムであって、前記サーバは、前記端末装置から前記依頼処理を受信する処理受付手段と、前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約して、前記端末装置に送信する依頼処理結果送信手段と、を具備し、前記処理端末装置は、前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募手段と、前記サーバから送られた前記割付処理を実行する割付処理実行手段と、前記割付処理の実行結果を前記サーバに送信する割付処理結果送信手段と、を具備することを特徴とする並列処理システムである。
【0007】
また、第2の発明は、複数の処理端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、前記サーバは、前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約する依頼処理結果集約手段と、を具備し、前記処理端末装置は、前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募手段と、前記サーバから送られた前記割付処理を実行する割付処理実行手段と、前記割付処理の実行結果を前記サーバに送信する割付処理結果送信手段と、を具備することを特徴とする並列処理システムである。
【0008】
また、前記参加募集手段または前記参加応募手段は、ブロードキャスト通信により前記参加募集または前記参加応募を行うことが望ましい。
また、前記サーバは、階層構造をなす複数のサブサーバから構成され、前記サブサーバに前記複数の処理端末装置が接続されることが望ましい。
また、前記サーバまたは前記処理端末装置は、さらに、前記割付処理の命令コードを前記処理端末装置上で実行可能な命令コードへ変換する命令変換手段を具備することが望ましい。
また、前記処理端末装置は、さらに、前記並列処理に必要な情報及び手段を記録する外部メモリを具備することが望ましい。
【0009】
第1の発明、第2の発明では、依頼者の端末装置から依頼処理を受信すると(第1の発明)、あるいは、サーバに直接依頼処理が入力されると(第2の発明)、サーバは、ブロードキャスト通信等により、複数の処理端末装置全体に対して、依頼処理に係る並列処理への参加募集を行う。処理端末装置は、サーバから並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する。サーバは、依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、参加応募している処理端末装置に対して、当該割付処理を割り付けて送信し、処理端末装置は、当該割付処理を実行し、実行結果をサーバ又は端末装置に送信する。サーバは、割付処理の実行結果を依頼処理毎の実行結果に集約して、端末装置に送信したりする。
【0010】
第1の発明では、依頼処理は、依頼者の端末装置からネットワークを介してサーバに送られるが(「処理受付手段」)、第2の発明では、サーバに直接入力される。
「処理受付手段」は、例えば、WEB(World Wide Web)サーバ機能であり、この場合、依頼処理に係る情報は、端末装置からWEBページに入力され、ネットワークを介してサーバに送られる。
【0011】
「サーバ」は、サーバコンピュータ等であり、処理端末装置としてのスレーブを制御する「マスタ」として機能する。サーバは、依頼者の端末装置から依頼された処理あるいは当該サーバに直接入力された処理(「依頼処理」)から「割付処理」を生成して処理端末装置に割り付け、実行させる。尚、サーバは、割付処理を生成する際、必要に応じて依頼処理を分割する。
【0012】
「処理端末装置」は、並列処理専用のコンピュータ等の端末装置、あるいは、の未使用時間等に係る空き資源(リソース)を有する場合に並列処理に参加するボラティア端末装置である。ボランティア端末装置は、例えば、一般OA用途等に用いられているパーソナルコンピュータ等である。処理端末装置は、自身の稼働状況、利用状況等を監視する機能を有し、自身の稼働状況等に応じて並列処理に参加する。処理端末装置は、サーバとしてのマスタにより制御される「スレーブ」として機能する。処理端末装置は、サーバに割り付けられた割付処理等を実行する。
【0013】
処理端末装置は、コンピュータ等の情報機器、携帯情報端末(Personal Digital Assistant)、携帯電話、情報家電等であり、CPU等の演算装置を有し、ネットワークに接続可能であればいかなるものであっても構わない。また、この処理端末装置に後述するメモリ・キー等の外部メモリを設けることができる。
【0014】
「端末装置」は、コンピュータ等の情報機器、携帯情報端末(Personal Digital Assistant)、携帯電話等であり、ネットワークを介して依頼処理をサーバに送信したりする。
「ネットワーク」は、インターネット、LAN(ローカルエリアネットワーク)等のネットワークであり、有線、無線を問わない。
【0015】
「処理」(「依頼処理」あるいは「割付処理」)は、処理依頼要求、処理プログラム、処理データ等である。
「並列処理に必要な情報及び手段」は、依頼処理あるいは割付処理に係る処理プログラム、処理データ、参加応募手段、割付処理実行手段、通信設定を行う通信設定手段、命令コードを処理端末装置上で実行可能な命令コードへ変換する命令変換手段等である。
【0016】
第1の発明及び第2の発明では、サーバは、並列処理への参加を募集し、処理端末装置は、稼働状況に応じて並列処理に参加する。従って、サーバは、処理端末装置の稼働状況を管理する必要がなく、参加応募した処理端末装置に割付処理を割り当てることにより、効率的かつ高速な並列処理を実現することができる。
【0017】
また、サーバの分散化、多重化が容易であるので、耐障害性が向上する。
また、第2の発明では、ある決められた処理専用のシステムではなく、外部(依頼者の端末装置)からの依頼処理に係る複数の並列処理を実行することが容易に可能となる。
【0018】
また、サーバは、ブロードキャスト通信等により複数の処理端末装置全体に対して並列処理への参加募集を行い、また、サーバが複数の分散サーバから構成される場合、処理端末装置は、ブロードキャスト通信等により複数の分散サーバ全体に対して並列処理への参加応募を行うことができる。この場合、個々の処理端末装置の状態管理を行う必要がなく、また、サーバ(分散サーバ)、処理端末装置の双方共、相手を意識することなく指示、応答等を行うことが可能である
【0019】
また、サーバは、階層構造をなす複数のサブサーバから構成することができる。処理端末装置は、最下層等のサブサーバに接続される。処理端末装置との通信に係る処理(応答等)は、1のサーバに集中しないので、並列処理の高速化を図ることができるとともに、通信負荷を軽減し、動作の安定性を向上することができる。
【0020】
また、処理端末装置上で実行可能な命令コードへ変換する命令変換機能を処理端末装置、サーバ、外部メモリ等に設けることで、一般パーソナルコンピュータだけではなく、情報家電等の異なる処理体系、演算体系を採る演算装置(CPU等)を有する機器や携帯電話機を処理端末装置として用いた並列処理が可能となり、さらなる並列処理の高速化が可能となる。
【0021】
また、依頼処理及び割付処理は、処理依頼要求、処理プログラム、処理データ等を有する。処理プログラム、処理データ、参加応募機能、命令変換機能等に関しては、処理端末装置に設けられるUSB(Universal Serial
Bus)メモリ・キー等の外部メモリに格納することもできる。
【0022】
第3の発明は、複数の処理端末装置と、複数の依頼者側の端末装置と、にネットワークを介して接続され、前記端末装置から送られた依頼処理を並列処理により処理する1又は複数のサーバであって、前記端末装置から前記依頼処理を受信する処理受付手段と、前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約して、前記端末装置に送信する依頼処理結果送信手段と、を具備することを特徴とするサーバである。
【0023】
第4の発明は、複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する1又は複数のサーバであって、前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約する依頼処理結果集約手段と、を具備することを特徴とするサーバである。
【0024】
第3の発明、第4の発明は、それぞれ、第1の発明、第2の発明の並列処理システムで用いられるサーバに関する発明である。
【0025】
第5の発明は、1又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募手段と、前記サーバから送られる割付処理を実行する割付処理実行手段と、前記割付処理の実行結果を前記サーバに送信する割付処理結果送信手段と、を具備することを特徴とする処理端末装置である。
【0026】
第5の発明は、第1の発明または第2の発明の並列処理システムで用いられる処理端末装置に関する発明である。
【0027】
第6の発明は、複数の処理端末装置と、複数の依頼者側の端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記端末装置が依頼する依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、前記サーバは、前記端末装置から前記依頼処理を受信する処理受付工程と、前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集工程と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付工程と、前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約して、前記端末装置に送信する依頼処理結果送信工程と、を具備し、前記処理端末装置は、前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募工程と、前記サーバから送られた前記割付処理を実行する割付処理実行工程と、前記割付処理の実行結果を前記サーバに送信する割付処理結果送信工程と、を具備することを特徴とする並列処理方法である。
【0028】
第7の発明は、複数の処理端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、前記サーバは、前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集工程と、前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付工程と、前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約する依頼処理結果集約工程と、を具備し、前記処理端末装置は、前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募工程と、前記サーバから送られた前記割付処理を実行する割付処理実行工程と、前記割付処理の実行結果を前記サーバに送信する割付処理結果送信工程と、を具備することを特徴とする並列処理方法である。
【0029】
第6の発明、第7の発明は、それぞれ、第1の発明、第2の発明の並列処理システムのサーバ及び処理端末装置により実行される並列処理方法に関する発明である。
【0030】
第8の発明は、コンピュータを第3の発明または第4の発明のサーバとして機能させるプログラムである。
第9の発明は、コンピュータを第3の発明または第4の発明のサーバとして機能させるプログラムを記録した記録媒体である。
【0031】
第10の発明は、コンピュータを第5の発明の処理端末装置として機能させるプログラムである。
第11の発明は、コンピュータを第5の発明の処理端末装置として機能させるプログラムを記録した記録媒体である。
【0032】
上述のプログラムをCD−ROM等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【0033】
【発明の実施の形態】
以下に、添付図面を参照しながら、本発明に係る並列処理システム等の好適な実施形態について詳細に説明する。なお、以下の説明及び添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
【0034】
図1は、本発明の第1の実施の形態に係る並列処理システム100の概略構成を示す図である。
【0035】
図1に示すように、並列処理システム100は、管理者1のマスタ2、複数の依頼者4−1、4−2、…の端末装置5−1、5−2、…、スレーブ群6等が、ネットワーク9を介して接続されて構成される。
【0036】
ネットワーク9は、インターネット、ローカルエリアネットワーク(LAN)、社内LAN等のネットワークであり、有線、無線を問わない。
【0037】
管理者1は、並列処理システム100を管理する管理者であり、マスタ2を有する。マスタ2は、「サーバ」としてのサーバコンピュータ等であり、処理受付機能13、参加募集機能14、処理割付機能15、実行結果取得機能16等を有する。マスタ2は、複数の分散マスタ3−1、3−2、…により構成することもできる。
【0038】
処理受付機能13は、依頼者4−1、4−2、…の端末装置5−1、5−2、…から処理の依頼を受付ける。例えば、処理受付機能13は、WEB(World Wide Web)サーバとしての機能を有し、端末装置5からWEBページに入力された処理を依頼処理として受け付けることができる。また、処理受付機能13は、端末装置5からWEBページ等によりネットワーク9を介して依頼処理を受付けるだけでなく、マスタ2に直接入力された処理を依頼処理として受け付けることができる。
【0039】
参加募集機能14は、スレーブ群6の各スレーブ7−1、7−2、…に対して、並列処理への参加を募集する。処理割付機能15は、依頼された処理(依頼処理)から割付処理を生成してスレーブ7−1、7−2、…に割付ける。実行結果取得機能16は、スレーブ7−1、7−2、…から割付処理の実行結果を取得する。
【0040】
依頼者4−1、4−2、…は、処理を依頼する依頼者であり、それぞれ、端末装置5−1、5−2、…を有する。端末装置5−1、5−2…は、ネットワーク9を介して、マスタ2に処理を依頼し、スレーブ群6から処理の実行結果を受信し取得する実行結果取得機能17を有する。尚、端末装置5−1、5−2、…は、パーソナルコンピュータ、携帯情報端末(Personal DigitalAssistant)等である。
【0041】
スレーブ群6は、複数の「処理端末装置」としてのスレーブ7−1、7−2…を有する。スレーブ7−1、7−2、…は、並列処理専用のコンピュータ等の端末装置、あるいは、未使用時間等に係る空き資源、リソースを有する場合に並列処理に参加するパーソナルコンピュータ等のボランティア端末装置である。スレーブ7−1、7−2、…は、パーソナルコンピュータ、携帯情報端末(Personal Digital Assistant)、携帯電話機、演算装置を有する機器等である。
【0042】
スレーブ7−1、7−2、…は、USB(Universal SerialBus)メモリ・キー等の外部メモリ8−1、8−2、…を有する。スレーブ7−1、7−2、…(又は、外部メモリ8−1、8−2、…)は、参加応募機能11、処理実行機能12等を有する。
尚、スレーブ7には、参加応募機能11、処理実行機能12等を有する外部メモリ8を設けてもよいし、外部メモリ8を設けずスレーブ7内に参加応募機能11、処理実行機能12等を設けるようにしてもよい。
【0043】
参加応募機能11は、マスタ2から並列処理への参加募集が行われると、自身の稼働状況等から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、参加する場合は、マスタ2に対して参加応募の旨を応答する。尚、スレーブ7は、自身の稼働状況、利用状況等を常時監視することもできる。
処理実行機能12は、マスタ2から受け取った処理プログラムにより所定の処理を実行する。
【0044】
スレーブ7には、参加応募機能11、処理実行機能12、稼働状況監視、利用状況監視等に係るプログラムを常駐させてもよいし、スクリーンセーバ等に参加応募機能11、処理実行機能12、稼働状況監視等に係るプログラムを内包させ、スクリーンセーバ起動時にこれらのプログラムを起動させるようにしてもよい。
この場合、スレーブ7が未使用時には、スクリーンセーバが起動し、参加応募機能11、処理実行機能12に係るプログラムも起動するので、スレーブ7は、並列処理への参加募集に対して参加応募して当該並列処理に参加することができる。また、スクリーンセーバが起動すると、稼働状況監視に係るプログラムも起動するので、スレーブ7は、並列処理に係る処理を実行中であっても、自身の稼働状況に応じて、他の並列処理への参加募集に対して参加応募し、当該並列処理に参加することが可能である。すわわち、スレーブ7は、並列処理に係る複数の処理を同時に実行可能である。
【0045】
次に、図2乃至図5を参照しながら、並列処理システム100の処理手順について説明する。
【0046】
まず、図2及び図4を参照しながら、マスタ2が有する処理受付機能13、参加募集機能14、処理割付機能15、及び、スレーブ7−1、7−2、…が有する参加応募機能11等による処理について説明する。
【0047】
尚、「処理」の区別のため必要に応じて、端末装置5−1、5−2、…から依頼された処理を「依頼処理」と呼び、スレーブ7−1、7−2、…に分配、割り付けられた処理を「割付処理」と呼ぶ。
【0048】
図2は、処理受付機能13、参加募集機能14、処理割付機能15、参加応募機能11等に係る処理の概略を示す図である。
図4は、処理受付機能13、参加募集機能14、処理割付機能15、参加応募機能11等に係る処理の手順を示すフローチャートである。
【0049】
図2に示すように、依頼者4−1、4−2、…の端末装置5−1、5−2、…は、例えば、依頼処理A、B、…の処理依頼をマスタ2に行い、依頼処理A、B、…の処理プログラム及び処理データをマスタ2に送信する(ステップ401)。
【0050】
尚、スレーブ7(又はその外部メモリ8)には、予め、参加応募機能11等と共に、処理実行機能12に係る処理プログラム及び処理データを記憶させ、端末装置5−1、5−2、…は、処理プロクラム及び処理データを送ることなく、マスタ2に処理A、B、…の処理依頼のみ行ってもよい。あるいは、スレーブ7(又はその外部メモリ8)に、予め、参加応募機能11と共に、処理実行機能12に係る処理プログラム及び処理データの一部を記憶させ、残りの処理プログラム及び処理データに関しては、端末装置5−1、5−2、…が依頼処理A、B、…の処理依頼を行う際にマスタ2に送信するようにしてもよい。
【0051】
マスタ2は、各依頼者4−1、4−2、…の端末装置5−1、5−2、…からの依頼処理を受信し、受付ける(ステップ402)。
図2に示すように、マスタ2は、例えば、依頼者4−1の端末装置5−1から依頼処理Aを受付け(ステップ41−1)、依頼者4−2の端末装置5−2から依頼処理Bを受付け(ステップ41−2)、処理受付テーブル21を作成する。処理受付テーブル21は、端末装置と依頼処理とを対応付ける。
【0052】
ここで、処理受付機能13にWEBサーバとしての機能を設けることにより、マスタ2は、端末装置5からWEBページに入力された処理を依頼処理として受け付けることができる。
尚、ステップ401〜ステップ402の処理を随時行うようにすることができる。
【0053】
マスタ2は、ブロードキャスト通信で、スレーブ群6の全てのスレーブ7−1、7−2、…に対して並列処理への参加を募集する(ステップ403)。
スレーブ7−1、7−2、…は、自身の稼働状況から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、参加する場合は、マスタ2に対して参加応募の旨を応答する(ステップ404)。
図2に示すように、例えば、マスタ2からの参加募集の打診があると(ステップ42)、スレーブ7−1、7−2、7−4(スレーブ7−3は、参加応募せず)は、それぞれ、参加応募を行う(ステップ43−1、43−2、43−4)。
【0054】
マスタ2は、端末装置5−1、5−2、…から送られた依頼処理から割付処理を生成し、参加応募の旨の応答があったスレーブ7−1、7−2、…に割り付ける(ステップ405)。尚、マスタ2は、必要に応じて依頼処理を分割して割付処理を生成する。
図2に示すように、例えば、マスタ2は、依頼処理Aを割付処理A1と割付処理A2に分割し、依頼処理Bを割付処理Bとして、参加応募したスレーブ7−1、7−2、7−4(スレーブ7−3は、参加応募せず)に対して、それぞれ、割付処理A1、割付処理A2、割付処理Bを割り付け、処理割付テーブル31を作成する。処理割付テーブル31は、スレーブと割付処理とを対応付ける。
【0055】
マスタ2は、割付処理を割り付けた各スレーブ7−1、7−2、…に、割付処理に係る処理プログラム、処理データ等を送信し、処理を分配する(ステップ406)。
図2に示すように、例えば、マスタ2は、スレーブ7−1に割付処理A1に係る処理プログラム、処理データ等を送信し、スレーブ7−2に割付処理A2に係る処理プログラム、処理データ等を送信し、スレーブ7−4に割付処理Bに係る処理プログラム、処理データ等を送信する(ステップ44−1、44−2、44−4)。
尚、端末装置5−1、5−2、…からの処理受付の状況に応じて、ステップ403〜ステップ406の処理を随時行うようにすることができる。
【0056】
尚、ブロードキャスト通信では、同一データリンク内の全ノード(ネットワークに接続されているコンピュータ等の機器)に対して情報を送信することができるので、マスタ2は、ブロードキャスト通信により同一データリンク内のスレーブ群6全体に対して、並列処理への参加募集を行い、スレーブ7は、ブロードキャスト通信により同一データリンク内のマスタ2(分散マスタ3)全体に対して、参加応募を行うことができる。
【0057】
次に、図3及び図5を参照しながら、スレーブ7−1、7−2、…が有する処理実行機能12、マスタ2が有する実行結果取得機能16、端末装置5−1、5−2、…が有する実行結果取得機能17等による処理について説明する。
図3は、処理実行機能12、実行結果取得機能16、実行結果取得機能17等に係る処理の概略を示す図である。
図5は、処理実行機能12、実行結果取得機能16、実行結果取得機能17等に係る処理の手順を示すフローチャートである。
【0058】
スレーブ7−1、7−2…は、マスタ2から割付処理に係る処理プログラム、処理データを受け取る(ステップ501)。
図2に示すように、例えば、スレーブ7−1、7−2、7−4は、割付処理A1、A2、Bに係る処理プログラム、処理データ等を受け取る(ステップ44−1、44−2、44−4)。
尚、予め、処理プログラムや処理データがスレーブ7−1、7−2、…内や外部メモリ8−1等に記憶されている場合には、スレーブ7−1、7−2、…は、マスタ2から処理実行依頼のみを受信する。
【0059】
スレーブ7−1、7−2…は、受け取った処理プログラムを起動し、割付処理を実行する(ステップ502)。
図3に示すように、例えば、スレーブ7−1、7−2、7−4は、それぞれ、割付処理に係る処理プログラムA1、A2、Bを起動し、割付処理A1、A2、Bを実行する(ステップ45−1、45−2、45−4)。
【0060】
スレーブ7−1、7−2…は、処理プログラム終了後、処理プログラムの実行結果(割付処理の実行結果)をマスタ2に送信する(ステップ503)。
図3に示すように、例えば、スレーブ7−1、7−2、7−4は、それぞれ、実行結果a1、a2,b(割付処理の実行結果)をマスタ2に送信する(ステップ46−1、46−2、46−4)。
【0061】
マスタ2は、スレーブ7−1、7−2…から割付処理の実行結果を受信し、処理割付テーブル31に対応付けて記録する(ステップ504)。
マスタ2は、割付処理の実行結果を依頼処理毎に集約し、処理受付テーブル21に対応付けて記録する(ステップ505)。
図3に示すように、例えば、マスタ2は、割付処理毎の実行結果a1、a2、bを依頼処理毎の実行結果A、Bに集約する(ステップ47)。
【0062】
マスタ2は、依頼処理毎に取得した実行結果を対応する依頼者4−1、4−2、…の端末装置5−1、5−2、…に送信し(ステップ506)、端末装置5−1、5−2、…は、依頼した処理の実行結果を受け取る(ステップ507)。
図3に示すように、例えば、マスタ2は、依頼処理Aの実行結果Aを端末装置5−1に送信し(ステップ48−1)、依頼処理Bの実行結果Bを端末装置5−2に送信する(ステップ48−2)。
【0063】
マスタ2は、割付処理実行中のスレーブから所定の期限(例えば、処理実行開始後、1日経過)までに実行結果を受信しなかった場合、その他、割付処理実行中のスレーブが正常動作していないと認められる場合等、スレーブ群6に対して並列処理への参加募集を行い、参加応募した別のスレーブ7−1、7−2、…に、同じ処理を割振り、実行させる(ステップ403〜ステップ406)。
【0064】
また、図3に示すように、スレーブ7−1、7−2、…は、マスタ2に実行結果を送信せずに、直接、依頼者4−1、4−2、…の端末装置5−1、5−2、…に実行結果を送信してもよい(ステップ49)。さらに、スレーブ7−1、7−2、…は、ブロードキャスト通信により、ネットワーク9に実行結果を送出し、マスタ2(分散マスタ3)もしくは端末装置5が必要に応じて当該実行結果を受信するようにしてもよい。
【0065】
また、マスタ2は、並列処理を終了する時は、参加応募したスレーブ7−1、7−2、…に対して、終了指示を送り、当該終了指示を受けたスレーブ7−1、7−2、…は、参加応募、割付処理の実行等を終了する。
【0066】
尚、上記のステップ401〜ステップ406、ステップ501〜ステップ507に係る処理は、依頼処理毎、割付処理毎に独立、平行して実行することができる。例えば、ステップ504の処理において、ある時点において、依頼処理Aに係る割付処理の実行結果の全てを受信した場合、依頼処理Bに係る割付処理の実行結果の全てを受信していない場合であっても、依頼処理Aに関しては、ステップ505以降の処理を進めることができる。
【0067】
次に、端末装置5−1、5−2、…、及び、スレーブ7−1、7−2…等が異なる処理体系を採る演算装置(CPU等)を有する場合について説明する。
スレーブ7−1、7−2、…として、例えば、情報家電、携帯電話等を用いる場合、CPUの処理体系の相違により、ネットワークあるいは外部メモリを介して依頼者の端末装置から受け取った処理プログラム等をそのままスレーブ上では実行できないことがある。
【0068】
この場合、依頼者から受け取った処理プログラム等に関して、スレーブ上で実行可能な処理体系に演算コード等を変換する機能(CPU命令変換機能)をスレーブ7−1、7−2、…側またはマスタ2側に設けることにより、スレーブ上での処理プログラム等の実行を可能とすることができる。
【0069】
次に、上記の参加応募機能11、処理実行機能12、CPU命令変換機能等をスレーブ7−1、7−2、…側、例えば、USBメモリ・キー等の外部メモリ8−1、8−2、…に持たせる場合について説明する。
図6は、スレーブ7−1の外部メモリ8−1が有する機能に関する説明図である。
【0070】
図6に示すように、スレーブ7−1、7−2、…は、外部メモリ8−1、8−2、…上に、前述したスレーブの参加応募機能11、依頼された処理プログラム等である処理実行機能12に加えて、通信設定(ポートの設定等)機能51、CPU命令変換機能52等を有する。スレーブ7は、CPU命令変換機能52により必要に応じて、処理プログラムを実行可能な命令コードに変換して実行する。このCPU命令変換機能は、いわゆるエミュレーション機能等を有する。
【0071】
スレーブが上記の外部メモリを介して並列処理に参加する場合、スレーブ上の記憶装置(ハードディスク、不揮発性メモリ等)等に並列処理に係る機能、情報等を予め記録、設定する必要もなく、また、並列処理参加後のスレーブ側の設定等は、並列処理参加前の状態に保たれる。さらに、スレーブ上の記憶装置(ハードディスク、不揮発性メモリ等)等に並列処理に係る痕跡等を残すこともない。
【0072】
以上説明したように、本発明の第1の実施の形態によれば、マスタ2は、各依頼者4の端末装置5から処理の依頼(依頼処理)を受付け、ブロードキャスト通信によりスレーブ群6全体に対して並列処理への参加募集を行う。スレーブ7は、自身の稼働状況から並列処理へ参加できるだけの空き資源、リソースが残存しているかどうかを判断し、並列処理へ参加する場合は、マスタ2に対して参加応募の旨を応答する。マスタ2は、参加応募したスレーブ7に処理を割振り、割振った処理(割付処理)を送信する。スレーブ7は、マスタ2から受け取った割付処理を実行し、処理終了後、実行結果をマスタ2又は依頼者4側の端末装置5に送信し、マスタ2あるいは端末装置5は、実行結果を受け取る。
【0073】
また、マスタ2あるいはスレーブ7は、処理プログラム等に関して、スレーブ7上で実行可能な処理体系に演算コード、命令コード等を変換する機能(CPU命令変換機能)を有し、必要に応じて、処理プログラム等の演算コード、命令コード等を変換する。
【0074】
このように、マスタ2(サーバ)は、必要に応じて随時並列処理への参加を募集し、スレーブ7(処理端末装置)は、稼働状況等に応じて並列処理に参加するので、マスタ2は、スレーブ7の稼働状況等を管理する必要がなく、参加応募したスレーブ7に割付処理を割り当てることにより、効率的かつ高速な並列処理を実現することができる。従って、スレーブ7は、並列処理への途中参加が可能である。
【0075】
また、マスタ2は、複数の分散マスタ3−1、3−2、…により構成することもできる。同一の指示、同一の返信に対しても、早着優先で処理することにより容易に多重化が可能であり、ひいては耐障害性が向上する。
【0076】
また、マスタ2は、ブロードキャスト通信を用いて、スレーブ群6全体に対して参加募集を行い、参加応募の旨の応答があったスレーブ7に対して、処理を割り付けるので、スレーブ7の状態管理を行う必要がない。一方、スレーブ7側にしても、マスタ2が複数の分散マスタ3−1、3−2、…により構成される場合等、ブロードキャスト通信を用いて、応答を行うようにしてもよい。
この場合、マスタ2(分散マスタ3−1、3−2、…)、スレーブ7は、ポート設定等により、自身に必要な情報のみを受け取るようにすればよい。従って、マスタ2(分散マスタ3)、スレーブ7双方共、相手を意識することなく指示、応答等を行うことが可能である。
【0077】
尚、ブロードキャスト通信では、同一データリンク内の全ノード(ネットワークに接続されているコンピュータ等の機器)に対して情報を送信することができるので、マスタ2は、ブロードキャスト通信により同一データリンク内のスレーブ群6全体に対して、並列処理への参加募集を行い、スレーブ7は、ブロードキャスト通信により同一データリンク内のマスタ2(分散マスタ3)全体に対して、参加応募を行うことができる。
従来の並列処理では、並列処理を実行させる処理端末装置のネットワーク上の位置あるいは送信先を特定するためにIPアドレス等を管理する必要があったが、本実施の形態に示した並列処理では、ブロードキャスト通信によりネットワークにおける通信処理が行われるので、IPアドレス等を管理する必要がない。
【0078】
尚、本実施の形態では、処理プログラム及び処理データを依頼者4側の端末装置5からマスタ2に一旦送信し、各スレーブ7に送信したが、処理アプリケーションに応じて(例えば、画像データを入力とする画像生成処理等)、各スレーブ7−1、7−2、…の外部メモリ8−1、8−2、…に予め、それぞれ参加応募機能11等と共に、同じ処理プログラムを格納しておき、処理依頼の際に、異なる処理データを各スレーブ7−1、7−2、…に送信し、実行させてもよい。
【0079】
また、スレーブ7が使用不可能になった場合や指示した処理結果がなかなか返ってこない場合、並列処理に参加応募している別のスレーブ7に再度、同一処理を割振ることで、期限付きの処理の実行を可能にする。また、ある決められた処理専用のシステムではなく、外部(依頼者4の端末装置5)からの複数の並列処理を実行することが容易に可能となる。
【0080】
また、処理端末装置として、ボランティア端末装置、すなわち、一般OA用途に用いられているパーソナルコンピュータ等の未使用時間等に係る空き資源を利用可能であり、膨大な計算量を要する処理等に係る並列処理を実現することができる。この場合、企業等のパーソナルコンピュータを多数抱えているサイトでは、安価に高速計算機環境を取得できると共に、ボランティア端末装置(スレーブ)の更新毎に計算機環境も自動更新されるため、新たに計算環境を構築することなく高速化が図られる。
【0081】
更に、命令変換機能を有するメモリをスレーブ7側又はマスタ2側に持たせることで、一般のパーソナルコンピュータだけではなく、情報家電等の異なる処理体系、演算体系を採る演算装置(CPU等)を有する機器や携帯電話機を用いた並列処理が可能となり、さらなる並列処理の高速化が可能となる。
【0082】
尚、図4、図5等に示す処理を行うプログラムはCD−ROM等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【0083】
次に、本発明の第2の実施の形態について説明する。
図7は、本発明の第2の実施の形態に係る並列処理システム200の概略構成を示す図である。
【0084】
前述の第1の実施の形態では、マスタ2は、端末装置5からネットワーク9を介して処理の依頼(依頼処理)を受付け、当該依頼処理を並列処理により処理するが、第2の実施の形態では、依頼処理は、直接マスタ2に入力される。すなわち、マスタ2の処理受付機能13は、WEBページ等によりネットワーク9を介して依頼処理を受付けるだけでなく、マスタ2に直接入力された処理を依頼処理として受け付けることができる。
【0085】
第1の実施の形態では、端末装置5からネットワークを9を介してマスタ2に並列処理を依頼することができるので、リモートからの並列処理の依頼、処理実行結果の取得が可能となる。例えば、多数の並列処理専用コンピュータをセンタ内に構築し、リモートからの運用が可能となる。
一方、第2の実施の形態では、割付処理及び割付処理毎の実行結果は、ネットワーク9上を流れるが、依頼処理全体及び依頼処理毎の実行結果は、ネットワーク9上を流れることがないので、安全性、機密性を向上することができる。
【0086】
次に、本発明の第3の実施の形態について説明する。
図8は、本発明の第3の実施の形態に係る並列処理システム300の概略構成を示す図である。
図9は、本発明の第3の実施の形態に係る並列処理システム300の処理の流れを示す図である。
【0087】
並列処理システム300は、親マスタ801、親マスタに対応付けられた複数の子マスタ803、子マスタ803に対応付けられた複数のスレーブ804等がネットワーク806を介して接続されて構成される。すなわち、マスタは、階層構造をなすように構成される。
グループ802は、子マスタ803及びこれに対応付けられた複数のスレーブ804により仮想的に構成されるものである。
親マスタ801及び子マスタ803は、「サブサーバ」としてのサーバコンピュータ等であり、親マスタ801及び子マスタ803全体として、第1及び第2の実施の形態における「サーバ」としてのマスタ2に相当するするものである。
【0088】
親マスタ801は、第1の実施の形態におけるマスタ2と同様に、処理受付機能811、参加募集機能812、処理割付機能813、実行結果取得機能814を有する。
子マスタ803は、第1の実施の形態におけるスレーブ7と同様に、参加応募機能815を有し、マスタ2と同様に、参加募集機能816、処理割付機能817、実行結果取得機能818を有する。
スレーブ804は、第1の実施の形態におけるスレーブ7と同様に、参加応募機能819、処理実行機能820を有する。
【0089】
図9に示すように、例えば、親マスタ801は、依頼処理Cを受信あるいは入力されると、ブロードキャスト通信を用いて、全ての子マスタ803に対して並列処理への参加を募集する。
子マスタ803は、並列処理へ参加する場合、親マスタ801に対して参加応募の旨を応答する。
親マスタ801は、依頼処理Cから割付処理C1〜割付処理C10を生成し、参加応募した子マスタ803に当該割付処理を送信する。
尚、グループ802の処理能力(子マスタ803に対応付けられるスレーブ804の処理能力)に応じて、連続的に、例えば、割付処理C1〜割付処理C5を子マスタ803−1に、割付処理C6〜割付処理C10を子マスタ803−2に送信する。
【0090】
子マスタ803は、ブロードキャスト通信を用いて、同一グループ802内の全てのスレーブ804に対して並列処理への参加を募集する。
スレーブ804は、並列処理へ参加する場合、子マスタ803に対して参加応募の旨を応答する。
子マスタ803は、親マスタ801から受信した複数の割付処理を参加応募したスレーブ804それぞれに分配する。
【0091】
図9に示すように、例えば、子マスタ803−1は、参加応募したスレーブ804それぞれに割付処理C1、C2、…、C5を送信し、子マスタ803−2は、参加応募したスレーブ804それぞれに割付処理C6、C7、…、C10を送信する。
【0092】
スレーブ804は、それぞれ割付処理を実行し、当該割付処理の結果は、子マスタ803を介して、親マスタ801に送信される。
親マスタ801は、割付処理の実行結果を集約して、依頼処理毎の実行結果を作成する。
【0093】
このように、子マスタ803は、親マスタ801から割付処理(処理データ、処理プログラム等)を連続的に受信し、当該複数の割付処理を当該子マスタ803に対応付けられたスレーブ804(同一グループ802内のスレーブ804)に分配して実行させることができるので、並列処理の高速化を図ることができる。
【0094】
第1の実施の形態及び第2の実施の形態に示すように、上記の階層化を行わない場合、1のマスタ2に対して全てのスレーブ7が参加応募の応答等を行うため、マスタ2において通信負荷が増大し、通信ボトルネックが発生する可能性がある。
上記の第3の実施の形態では、マスタは、階層構成をなし、スレーブ804は、子マスタ803に対して応答等を行うため、並列処理システム300に係る通信負荷を軽減することができ、動作の安定性が向上する。
【0095】
図8、図9では、マスタは、2階層構成をなすが、さらなる多重の階層構成とすることができる。この場合であっても、スレーブは、同一グループ内のマスタ(当該スレーブに対応するマスタ)に対して応答等を行い、下層のマスタは、直上の階層のマスタに対して応答等を行うため、並列処理の高速化を図ることができるとともに、並列処理システムに係る通信負荷を軽減し、動作の安定性を向上することができる。
【0096】
マスタとその直下階層のマスタと間の処理(参加募集、参加応募、処理割付、実行結果の送信、実行結果の取得等)については、第1の実施の形態、第2の実施の形態におけるマスタ2とスレーブ7との間の処理と略同様である。従って、マスタの階層化等に係るシステム構成の変更も容易であり、特別の管理アプリケーション等を開発、用意する必要もない。
【0097】
例えば、図8に示すように、マスタの階層化に伴い設けられる子マスタ803は、上述のスレーブ7が有する参加応募機能、及び、上述のマスタ2が有する参加募集機能、処理割付機能、実行結果取得機能等を有していればよく、特別の管理アプリケーション等を開発、用意する必要もない。
尚、第1の実施の形態及び第2の実施の形態のいずれにおいても、第3の実施の形態に示したマスタの階層化を実現することができる。
【0098】
次に、並列処理システムにおける、ブロードキャスト通信による通信処理の詳細を説明する。
上記の第1の実施の形態〜第3の実施の形態に示した並列処理システムでは、マスタとスレーブ、端末装置等との間の通信、ネットワークを介する通信処理に関しては、ブロードキャスト通信を用いて、通信データ、情報の授受(参加募集、参加応募、処理割付、実行結果の送信、実行結果の取得等)が行われる。
【0099】
図10は、上述のマスタ2及びスレーブ7におけるブロードキャスト通信による通信処理の概略を示す図である。
尚、所定の通信処理に関する送信元と送信先のポート番号は、異なる場合があるが、説明の容易のため、所定の通信処理の種類毎にポート番号が設定され、送信元と送信先のポート番号は、同一であるものとして説明する。
【0100】
図10に示すように、マスタ2には、2000番ポート、2001番ポート、2002番ポート、2003番ポート、2004番ポート、…が設定され、スレーブ7−1には、2000番ポート、2001番ポート、スレーブ7−2には、2000番ポート、2002番ポート、スレーブ7−3には、2000番ポート、2003番ポート、スレーブ7−4には、2000番ポート、2004番ポート、…が設定される。
【0101】
2000番ポートは、マスタ2及び全てのスレーブ7の間の通信(例えば、参加募集)に関する通信ポートである。
2001番ポートは、マスタ2とスレーブ7−1との間の通信(例えば、参加応募)に関する通信ポートである。
2002番ポートは、マスタ2とスレーブ7−2との間の通信(例えば、参加応募)に関する通信ポートである。
2003番ポートは、マスタ2とスレーブ7−3との間の通信(例えば、参加応募)に関する通信ポートである。
2004番ポートは、マスタ2とスレーブ7−4との間の通信(例えば、参加応募)に関する通信ポートである。
【0102】
マスタ2は、全てのスレーブ7に対して通信データを送信する場合(例えば、並列処理への参加募集を行う場合)、送信先ポート番号2000を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク9に送出する。スレーブ7−1、7−2、7−3、7−4、…は、ポート番号2000が設定されているので、当該通信データ(送信先ポート番号2000)を受信する(ステップ1001)。
【0103】
スレーブ7−1は、マスタ2に対して通信データを送信する場合(例えば、並列処理への参加応募を行う場合)、送信先ポート番号2001を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク9に送出する。マスタ2は、ポート番号2001が設定されているので、当該通信データ(送信先ポート番号2001)を受信する(ステップ1002)。
【0104】
同様にして、スレーブ7−2、7−4は、マスタ2に対して通信データを送信する場合、それぞれ、送信先ポート番号2002、2004を通信データに付加して、当該通信データをブロードキャスト通信によりネットワーク9に送出し、マスタ2は、ポート番号2002、2004が設定されているので、当該通信データ(送信先ポート番号2002、2004)を受信する(ステップ1003、ステップ1004)。
【0105】
上記の説明では、参加募集、参加応募に関する通信処理を例としてあげたが、その他、割付処理の送受信、割付処理の実行結果の送受信等に関する通信処理に関しても、当該通信処理の種類毎に、必要に応じて、マスタ2、スレーブ7、端末装置5にポート番号を設定し、ポート番号を付加した通信データをブロードキャスト通信でネットワーク9に送出することにより、マスタ2及びスレーブ7、端末装置5の間で通信データの授受を行い、並列処理を実現することができる。尚、マスタ2が分散化、多重化されている場合は、同一の指示、同一の応答であっても、早着優先で処理するようにすればよい。
【0106】
以上、添付図面を参照しながら、本発明に係る並列処理システム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0107】
【発明の効果】
以上、詳細に説明したように本発明によれば、処理端末装置に稼働状況、処理能力等に応じて並列処理に係る処理を実行させ、並列処理の効率性及び高速性を向上させることができる並列処理システム等を提供することができる。
【図面の簡単な説明】
【図1】第1の形態に係る並列処理システム100の概略構成を示す図
【図2】処理受付、参加募集、参加応募、処理割付等に係る処理の概略を示す図
【図3】処理実行、実行結果取得等に係る処理の概略を示す図
【図4】処理受付、参加募集、参加応募、処理割付等に係る処理の手順を示すフローチャート
【図5】処理実行、実行結果取得等に係る処理の手順を示すフローチャート
【図6】スレーブ7の外部メモリ8が有する機能に関する説明図
【図7】第2の実施の形態に係る並列処理システム200の概略構成を示す図
【図8】第3の実施の形態に係る並列処理システム300の概略構成を示す図
【図9】第3の実施の形態に係る並列処理システム300の処理の流れを示す図
【図10】ブロードキャスト通信による通信処理の概略を示す図
【符号の説明】
100………並列処理システム
200………並列処理システム
300………並列処理システム
1………管理者
2………マスタ
3(3−1、3−2、…)………分散マスタ
4(4−1、4−2、…)………依頼者
5(5−1、5−2、…)………端末装置
6………スレーブ群
7(7−1、7−2、…)………スレーブ
8(8−1、8−2、…)………外部メモリ
9………ネットワーク
11………参加応募機能
12………処理実行機能
13………処理受付機能
14………参加募集機能
15………処理割付機能
16………実行結果取得機能(マスタ)
17………実行結果取得機能(端末装置)
21………処理受付テーブル
31………処理割付テーブル
51………通信設定機能
52………CPU命令変換機能
801………親マスタ
802………グループ
803………子マスタ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a parallel processing system or the like that distributes one process to a plurality of processing terminal devices for processing. More specifically, the present invention relates to a parallel processing system or the like for recruiting a processing terminal device to participate in parallel processing.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, a general parallel processing system is provided with a plurality of processing terminal devices dedicated to parallel processing, and causes these processing terminal devices to execute parallel processing. In addition, there are some volunteer terminal device-participating parallel processing systems (for example, bio-calculations) that use the unused time of a terminal device such as a personal computer used for general office automation.
[0003]
[Problems to be solved by the invention]
However, in such a system, basically, a huge amount of computational resources is fetched from the processing terminal device for processing data, and the execution result is returned. The system is irrelevant to the state of the processing terminal device, the processing capability, and the like. However, there is a problem that it is not possible to execute the process with a delivery date because it is not known when the designated process result will be returned. In addition, there is a problem that only predetermined processing can be executed, and a parallel processing execution request from the outside cannot be easily executed.
[0004]
Further, in the conventional parallel processing system, only the CPU adopting the same processing system and arithmetic system is targeted, and there are arithmetic devices employing different processing systems and arithmetic systems such as control devices, mobile phones, and information home appliances. There is no parallel processing means for equipment.
[0005]
The present invention has been made in view of the above points, and it is an object of the present invention to cause a processing terminal device to execute processing related to parallel processing according to an operation status, processing capacity, and the like, thereby improving the efficiency and speed of parallel processing. It is an object of the present invention to provide a parallel processing system or the like capable of performing the above.
[0006]
[Means for Solving the Problems]
According to a first aspect of the present invention, a plurality of processing terminal devices, a plurality of client terminal devices, and one or a plurality of servers are connected via a network. A parallel processing system for processing request processing by parallel processing, the server comprising: a processing reception unit configured to receive the request processing from the terminal device; and a processing terminal device participating in the parallel processing. Means for recruiting, and, from the request processing, the request processing is divided as necessary to generate an allocation processing, and the processing terminal device participating in the participation recruitment, Processing allocating means for allocating and transmitting allocation processing; request processing results for aggregating execution results of the allocation processing sent from the processing terminal device into execution results for each request processing and transmitting the result to the terminal device The processing terminal device, when the server receives the invitation for participation in the parallel processing, sends a request for participation in the parallel processing based on its own operation status, and if the participation is possible, responds to the participation application. Parallel comprising: an application unit; an allocation process execution unit that executes the allocation process sent from the server; and an allocation process result transmission unit that transmits an execution result of the allocation process to the server. It is a processing system.
[0007]
A second invention is a parallel processing system in which a plurality of processing terminal devices and one or a plurality of servers are connected via a network, and the request processing input to the server is processed in parallel. , The server, for the processing terminal device, from the participation recruiting means for recruiting participation in the parallel processing, from the request processing, if necessary, the request processing is divided, to generate an allocation process, A processing allocating means for allocating and transmitting the allocation processing to the processing terminal device which has applied for participation in the participation recruitment, and an execution result of the allocation processing sent from the processing terminal apparatus for each request processing. Request processing result aggregating means for aggregating into the execution result of the processing terminal device, when the server is sent a request for participation in the parallel processing from the server, the processing terminal device can judge based on its own operation status and participate. In the case, participation application means for responding to the participation application, allocation processing executing means for executing the allocation processing sent from the server, and allocation processing result transmitting means for transmitting the execution result of the allocation processing to the server. , A parallel processing system comprising:
[0008]
Preferably, the participation recruiting unit or the participation application unit performs the participation recruitment or the participation application by broadcast communication.
Further, it is preferable that the server is composed of a plurality of sub-servers having a hierarchical structure, and the plurality of processing terminal devices are connected to the sub-server.
Further, it is preferable that the server or the processing terminal device further includes an instruction conversion unit that converts an instruction code of the allocation processing into an instruction code executable on the processing terminal device.
Further, it is preferable that the processing terminal device further includes an external memory for recording information and means necessary for the parallel processing.
[0009]
In the first invention and the second invention, when the request processing is received from the requester's terminal device (first invention), or when the request processing is directly input to the server (second invention), the server In this case, the entire processing terminal device is invited to participate in the parallel processing related to the request processing by broadcast communication or the like. When the processing terminal device receives a request for participation in the parallel processing from the server, the processing terminal device responds to the participation application when it is possible to participate by judging from its own operation status. From the request processing, the server divides the request processing as necessary, generates an allocation processing, allocates the allocation processing to the processing terminal apparatus that has applied for participation, and transmits the processing, and the processing terminal apparatus , Execute the allocation process, and transmit the execution result to the server or the terminal device. The server aggregates the execution result of the allocation process into the execution result for each request process and transmits the result to the terminal device.
[0010]
In the first invention, the request processing is sent from the requester's terminal device to the server via the network ("processing accepting means"). In the second invention, the request processing is directly input to the server.
The “processing accepting unit” is, for example, a WEB (World Wide Web) server function. In this case, information relating to the request processing is input from a terminal device to a WEB page and sent to the server via a network.
[0011]
The “server” is a server computer or the like, and functions as a “master” that controls a slave as a processing terminal device. The server generates an “assignment process” from a process requested from the requester's terminal device or a process directly input to the server (“request process”), allocates the process to the processing terminal device, and executes the process. When generating the allocation processing, the server divides the request processing as needed.
[0012]
The “processing terminal device” is a terminal device such as a computer dedicated to parallel processing, or a volatile terminal device that participates in parallel processing when it has an unused resource such as unused time. The volunteer terminal device is, for example, a personal computer used for general OA use and the like. The processing terminal device has a function of monitoring its own operation status, use status, and the like, and participates in parallel processing according to its own operation status and the like. The processing terminal functions as a “slave” controlled by a master as a server. The processing terminal device executes an assignment process or the like assigned to the server.
[0013]
The processing terminal device is an information device such as a computer, a personal digital assistant (Personal Digital Assistant), a mobile phone, an information home appliance, and the like. The processing terminal device has an arithmetic device such as a CPU and can be connected to a network. No problem. Further, the processing terminal device can be provided with an external memory such as a memory key to be described later.
[0014]
The “terminal device” is an information device such as a computer, a personal digital assistant (Personal Digital Assistant), a mobile phone, or the like, and transmits a request process to a server via a network.
The “network” is a network such as the Internet or a LAN (local area network), and may be wired or wireless.
[0015]
“Process” (“request process” or “assignment process”) is a process request request, a process program, process data, or the like.
"Information and means necessary for parallel processing" are processing programs related to request processing or allocation processing, processing data, participation application means, allocation processing execution means, communication setting means for performing communication settings, and instruction codes on the processing terminal device. Instruction conversion means for converting into an executable instruction code.
[0016]
In the first invention and the second invention, the server recruits participation in the parallel processing, and the processing terminal device participates in the parallel processing according to the operation status. Therefore, the server does not need to manage the operation status of the processing terminal devices, and can realize efficient and high-speed parallel processing by allocating the allocation processing to the processing terminal devices that have applied for participation.
[0017]
In addition, since server distribution and multiplexing are easy, fault tolerance is improved.
Further, in the second invention, it is possible to easily execute a plurality of parallel processes related to a request process from the outside (the terminal device of the requester) instead of a system dedicated to a predetermined process.
[0018]
Also, the server recruits all of the plurality of processing terminal devices to participate in parallel processing by broadcast communication or the like, and when the server is composed of a plurality of distributed servers, the processing terminal device It is possible to apply for participation in parallel processing to all distributed servers. In this case, there is no need to manage the status of each processing terminal device, and both the server (distributed server) and the processing terminal device can issue an instruction, a response, etc. without being aware of the other party.
[0019]
Further, the server can be composed of a plurality of sub-servers having a hierarchical structure. The processing terminal device is connected to a sub server such as the lowest layer. Since processing (response and the like) related to communication with the processing terminal device is not concentrated on one server, parallel processing can be speeded up, communication load can be reduced, and operation stability can be improved. it can.
[0020]
In addition, by providing an instruction conversion function for converting into an instruction code executable on the processing terminal device in the processing terminal device, the server, the external memory, or the like, not only a general personal computer but also a different processing system and an arithmetic system of an information home appliance and the like. And a mobile phone as a processing terminal device having an arithmetic device (CPU or the like) adopting the above-mentioned method can be used for parallel processing, and the speed of parallel processing can be further increased.
[0021]
The request processing and the allocation processing include a processing request, a processing program, processing data, and the like. Regarding the processing program, processing data, participation application function, instruction conversion function, etc., a USB (Universal Serial) provided in the processing terminal device
(Bus) memory key or other external memory.
[0022]
A third invention is connected to a plurality of processing terminal devices and a plurality of requester-side terminal devices via a network, and performs one or a plurality of parallel processing of the request processing sent from the terminal device. A server, processing accepting means for receiving the request processing from the terminal device, participation recruiting means for recruiting participation in the parallel processing for the processing terminal device, and Processing allocation means for generating an allocation processing by dividing the request processing, and allocating and transmitting the allocation processing to a processing terminal device which has applied for participation in the participation recruitment; and And a request processing result transmitting means for aggregating the execution result of the allocation processing sent from the client into the execution result of each request processing and transmitting the result to the terminal device.
[0023]
A fourth invention is one or more servers that are connected to a plurality of processing terminal devices via a network and process input request processing by parallel processing. From the request processing, the request processing is divided as necessary from the request processing, an allocation processing is generated, and the processing terminal device that is participating in the participation recruitment is generated. Processing assignment means for assigning and transmitting the assignment processing, and request processing result aggregating means for aggregating execution results of the assignment processing sent from the processing terminal device into execution results for each request processing. A server characterized in that:
[0024]
A third invention and a fourth invention are inventions relating to servers used in the parallel processing systems of the first invention and the second invention, respectively.
[0025]
A fifth invention is a processing terminal device used in a parallel processing system that is connected to one or more servers via a network, and that processes request processing input to the server by parallel processing. When the participation recruitment to the parallel processing is sent, the participation application means for responding to the participation application when it is possible to participate by judging from its own operation status, and the allocation processing execution means for executing the allocation processing sent from the server And a allocating processing result transmitting means for transmitting an execution result of the allocating processing to the server.
[0026]
A fifth invention is an invention relating to a processing terminal device used in the parallel processing system of the first invention or the second invention.
[0027]
In a sixth aspect, a plurality of processing terminal devices, a plurality of client terminal devices, and one or a plurality of servers are connected via a network, and the request processing requested by the terminal devices is performed by parallel processing. A parallel processing method in a parallel processing system for processing, wherein the server receives a request process from the terminal device, and participates in the process terminal device soliciting participation in the parallel process. From the recruitment process and the request process, the request process is divided as necessary to generate an allocation process, and the allocation process is allocated to the processing terminal device that has applied for the participation recruitment. And a request processing result transmitting step of aggregating an execution result of the allocation processing sent from the processing terminal device into an execution result for each request process and transmitting the result to the terminal device The processing terminal device, when an invitation to participate in the parallel processing is sent from the server, if the participation is possible based on its own operation status, a participation application step of responding to the participation application. An allocation processing execution step of executing the allocation processing sent from the server; and an allocation processing result transmission step of transmitting an execution result of the allocation processing to the server. is there.
[0028]
A seventh invention is a parallel processing method in a parallel processing system in which a plurality of processing terminal devices and one or a plurality of servers are connected via a network, and the request processing input to the server is processed by the parallel processing. The server generates the allocation processing by dividing the request processing as needed from the participation recruitment step of recruiting participation in the parallel processing to the processing terminal device and the request processing. A process allocating step of allocating and transmitting the allocating process to the processing terminal device that is participating in the participation recruitment, and requesting the execution result of the allocating process sent from the processing terminal device to the request. Request processing result aggregating step of aggregating the processing results into execution results for each processing, wherein the processing terminal device receives a request for participation in the parallel processing from the server, and determines from the operating status of itself. If it is possible to participate, the participation application step of responding to the participation application, the allocation processing execution step of executing the allocation processing sent from the server, and the allocation of transmitting the execution result of the allocation processing to the server And a processing result transmitting step.
[0029]
A sixth invention and a seventh invention are inventions relating to a parallel processing method executed by the server and the processing terminal device of the parallel processing system of the first invention and the second invention, respectively.
[0030]
An eighth invention is a program that causes a computer to function as the server according to the third invention or the fourth invention.
A ninth invention is a recording medium recording a program for causing a computer to function as the server according to the third invention or the fourth invention.
[0031]
A tenth invention is a program that causes a computer to function as the processing terminal device according to the fifth invention.
An eleventh invention is a recording medium that records a program that causes a computer to function as the processing terminal device according to the fifth invention.
[0032]
The above-described program may be stored in a recording medium such as a CD-ROM and distributed, or the program may be transmitted and received via a communication line.
[0033]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of a parallel processing system and the like according to the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, components having substantially the same functional configuration will be denoted by the same reference numerals, and redundant description will be omitted.
[0034]
FIG. 1 is a diagram showing a schematic configuration of a parallel processing system 100 according to the first embodiment of the present invention.
[0035]
As shown in FIG. 1, the parallel processing system 100 includes a master 2 of an administrator 1, terminal devices 5-1 and 5-2 of a plurality of requesters 4-1, 4-2,..., A slave group 6, and the like. Are connected via a network 9.
[0036]
The network 9 is a network such as the Internet, a local area network (LAN), and a company LAN, and may be wired or wireless.
[0037]
The administrator 1 is an administrator who manages the parallel processing system 100 and has a master 2. The master 2 is a server computer or the like as a “server”, and has a processing reception function 13, a participation recruitment function 14, a processing allocation function 15, an execution result acquisition function 16, and the like. The master 2 can also be constituted by a plurality of distributed masters 3-1, 3-2,.
[0038]
The process receiving function 13 receives a request for processing from the terminal devices 5-1, 5-2,... Of the requesters 4-1, 4-2,. For example, the process receiving function 13 has a function as a WEB (World Wide Web) server, and can receive a process input to a WEB page from the terminal device 5 as a request process. In addition, the process reception function 13 can not only receive a request process from the terminal device 5 via a network 9 via a web page or the like, but also receive a process directly input to the master 2 as a request process.
[0039]
The participation recruiting function 14 recruits the slaves 7-1, 7-2,... Of the slave group 6 to participate in the parallel processing. The processing allocation function 15 generates allocation processing from the requested processing (request processing) and allocates the generated allocation processing to the slaves 7-1, 7-2,. The execution result acquisition function 16 acquires the execution result of the allocation process from the slaves 7-1, 7-2,.
[0040]
Are requesters for processing and have terminal devices 5-1, 5-2,..., Respectively. The terminal devices 5-1, 5-2,... Have an execution result acquisition function 17 for requesting the master 2 to perform a process via the network 9 and receiving and acquiring the execution result of the process from the slave group 6. The terminal devices 5-1, 5-2, ... are personal computers, personal digital assistants (Personal Digital Assistants), and the like.
[0041]
The slave group 6 has a plurality of slaves 7-1, 7-2,... As “processing terminal devices”. The slaves 7-1, 7-2,... Are terminal devices such as computers dedicated to parallel processing, or volunteer terminal devices such as personal computers that participate in parallel processing when they have free resources and resources related to unused time. It is. The slaves 7-1, 7-2,... Are personal computers, portable information terminals (Personal Digital Assistants), mobile phones, devices having arithmetic devices, and the like.
[0042]
Have external memories 8-1, 8-2,... Such as USB (Universal Serial Bus) memory keys. (Or external memories 8-1, 8-2,...) Have a participation application function 11, a processing execution function 12, and the like.
The slave 7 may be provided with an external memory 8 having a participation application function 11, a processing execution function 12, and the like, or the participation application function 11, the processing execution function 12, and the like are provided in the slave 7 without the external memory 8. It may be provided.
[0043]
When the master 2 calls for participation in parallel processing, the participation application function 11 determines whether there are free resources and resources available to participate in parallel processing based on its own operation status and the like. The master 2 responds to the request for participation. Note that the slave 7 can always monitor its own operation status, usage status, and the like.
The processing execution function 12 executes a predetermined processing according to the processing program received from the master 2.
[0044]
A program relating to the participation application function 11, the processing execution function 12, the operation status monitoring, the usage status monitoring, and the like may be resident in the slave 7, or the participation application function 11, the processing execution function 12, the operation status monitoring, and the like to a screen saver or the like. May be included, and these programs may be activated when the screen saver is activated.
In this case, when the slave 7 is not used, the screen saver is activated, and the programs related to the participation application function 11 and the processing execution function 12 are also activated. Participate in parallel processing. Further, when the screen saver is activated, the program related to the operation status monitoring is also activated. Therefore, even while the process related to the parallel processing is being executed, the slave 7 participates in another parallel process according to its own operation status. It is possible to apply for participation in the recruitment and participate in the parallel processing. That is, the slave 7 can simultaneously execute a plurality of processes related to the parallel processing.
[0045]
Next, a processing procedure of the parallel processing system 100 will be described with reference to FIGS.
[0046]
First, referring to FIGS. 2 and 4, the processing reception function 13, the participation recruitment function 14, the processing allocation function 15 included in the master 2, and the participation application function 11 included in the slaves 7-1, 7-2, etc. Will be described.
[0047]
The processing requested from the terminal devices 5-1, 5-2,... Is called "request processing" and distributed to the slaves 7-1, 7-2,. The allocated processing is referred to as “allocation processing”.
[0048]
FIG. 2 is a diagram showing an outline of processing related to the processing reception function 13, the participation recruitment function 14, the processing allocation function 15, the participation application function 11, and the like.
FIG. 4 is a flowchart showing a procedure of processing related to the processing reception function 13, the participation recruitment function 14, the processing allocation function 15, the participation application function 11, and the like.
[0049]
As shown in FIG. 2, the terminal devices 5-1, 5-2,... Of the requesters 4-1, 4-2,. The processing program and the processing data of the request processing A, B,... Are transmitted to the master 2 (step 401).
[0050]
The slave 7 (or its external memory 8) stores in advance the processing program and processing data related to the processing execution function 12 together with the participation application function 11 and the like, and the terminal devices 5-1, 5-2,. , Without sending the processing program and the processing data, only the processing request of the processing A, B,. Alternatively, the processing program and a part of the processing data related to the processing execution function 12 are stored in advance in the slave 7 (or its external memory 8) together with the participation application function 11, and the remaining processing programs and processing data are stored in the terminal 7. .. May be transmitted to the master 2 when the devices 5-1, 5-2,...
[0051]
The master 2 receives and accepts request processing from the terminal devices 5-1, 5-2,... Of each of the requesters 4-1, 4-2,.
As shown in FIG. 2, for example, the master 2 receives the request processing A from the terminal device 5-1 of the client 4-1 (step 41-1), and receives the request from the terminal device 5-2 of the client 4-2. The process B is received (step 41-2), and the process reception table 21 is created. The process reception table 21 associates the terminal device with the request process.
[0052]
Here, by providing the processing receiving function 13 with a function as a WEB server, the master 2 can receive the processing input to the WEB page from the terminal device 5 as the request processing.
It should be noted that the processing of steps 401 to 402 can be performed at any time.
[0053]
The master 2 invites all the slaves 7-1, 7-2,... Of the slave group 6 to participate in the parallel processing by broadcast communication (step 403).
The slaves 7-1, 7-2,... Determine whether there are free resources and resources available to participate in the parallel processing based on their own operation status. (Step 404).
As shown in FIG. 2, for example, when there is a request for participation from the master 2 (step 42), the slaves 7-1, 7-2, and 7-4 (the slave 7-3 does not apply for participation) , Respectively, to apply for participation (steps 43-1, 43-2, 43-4).
[0054]
The master 2 generates an assignment process from the request process sent from the terminal devices 5-1, 5-2,... And assigns the assignment process to the slaves 7-1, 7-2,. Step 405). Note that the master 2 divides the request processing as necessary to generate an allocation processing.
As shown in FIG. 2, for example, the master 2 divides the request processing A into an allocation processing A1 and an allocation processing A2, and sets the request processing B as the allocation processing B to the participating slaves 7-1, 7-2, 7 -4 (the slave 7-3 does not apply for participation), respectively, and allocates the allocation processing A1, the allocation processing A2, and the allocation processing B, and creates the processing allocation table 31. The process assignment table 31 associates slaves with assignment processes.
[0055]
The master 2 transmits a processing program, processing data, and the like relating to the allocation processing to each of the slaves 7-1, 7-2,... To which the allocation processing has been allocated, and distributes the processing (step 406).
As shown in FIG. 2, for example, the master 2 transmits a processing program, processing data, and the like related to the allocation processing A1 to the slave 7-1, and sends a processing program, processing data, and the like related to the allocation processing A2 to the slave 7-2. Then, a processing program, processing data, and the like relating to the allocation processing B are transmitted to the slave 7-4 (steps 44-1, 44-2, 44-4).
Note that the processing of Steps 403 to 406 can be performed at any time according to the status of processing reception from the terminal devices 5-1, 5-2,.
[0056]
In the broadcast communication, information can be transmitted to all nodes (e.g., computers and the like connected to the network) in the same data link. The entire group 6 is invited to participate in the parallel processing, and the slave 7 can apply for participation to the entire master 2 (distributed master 3) in the same data link by broadcast communication.
[0057]
Next, referring to FIGS. 3 and 5, the processing execution function 12 of the slaves 7-1, 7-2,..., The execution result acquisition function 16 of the master 2, the terminal devices 5-1 and 5-2, The processing performed by the execution result acquisition function 17 and the like included in.
FIG. 3 is a diagram showing an outline of processing relating to the processing execution function 12, the execution result acquisition function 16, the execution result acquisition function 17, and the like.
FIG. 5 is a flowchart showing a procedure of processing relating to the processing execution function 12, the execution result acquisition function 16, the execution result acquisition function 17, and the like.
[0058]
The slaves 7-1, 7-2,... Receive the processing program and processing data related to the allocation processing from the master 2 (step 501).
As shown in FIG. 2, for example, the slaves 7-1, 7-2, and 7-4 receive processing programs, processing data, and the like related to the allocation processing A1, A2, and B (steps 44-1 and 44-2, 44-4).
If the processing programs and processing data are stored in advance in the slaves 7-1, 7-2,... Or in the external memory 8-1, etc., the slaves 7-1, 7-2,. 2, only the processing execution request is received.
[0059]
The slaves 7-1, 7-2,... Start the received processing program and execute the allocation processing (step 502).
As shown in FIG. 3, for example, the slaves 7-1, 7-2, and 7-4 respectively start the processing programs A 1, A 2, and B related to the allocation processing and execute the allocation processing A 1, A 2, and B. (Steps 45-1, 45-2, 45-4).
[0060]
After the processing program ends, the slaves 7-1, 7-2 transmit the execution result of the processing program (the execution result of the allocation processing) to the master 2 (step 503).
As shown in FIG. 3, for example, the slaves 7-1, 7-2, and 7-4 transmit the execution results a 1, a 2, and b (the execution results of the allocation processing) to the master 2 (step 46-1). , 46-2, 46-4).
[0061]
The master 2 receives the execution result of the allocation processing from the slaves 7-1, 7-2,..., And records it in the processing allocation table 31 (step 504).
The master 2 collects the execution results of the allocation process for each request process, and records the result in association with the process reception table 21 (step 505).
As shown in FIG. 3, for example, the master 2 aggregates the execution results a1, a2, and b for each allocation process into the execution results A and B for each request process (step 47).
[0062]
The master 2 transmits the execution result acquired for each request processing to the terminal devices 5-1, 5-2,... Of the corresponding requesters 4-1, 4-2,. Receive the execution result of the requested processing (step 507).
As shown in FIG. 3, for example, the master 2 transmits the execution result A of the request processing A to the terminal device 5-1 (step 48-1), and sends the execution result B of the request processing B to the terminal device 5-2. It is transmitted (step 48-2).
[0063]
If the master 2 does not receive the execution result from the slave executing the allocation process by a predetermined time limit (for example, one day after the start of the process execution), the slave currently executing the allocation process is operating normally. If not, the slave group 6 is invited to participate in the parallel processing, and the same processing is allocated to the other slaves 7-1, 7-2,... Step 406).
[0064]
Also, as shown in FIG. 3, the slaves 7-1, 7-2,... The execution result may be transmitted to 1, 5-2,... (Step 49). Further, the slaves 7-1, 7-2,... Transmit the execution result to the network 9 by broadcast communication, and the master 2 (distributed master 3) or the terminal device 5 receives the execution result as necessary. It may be.
[0065]
When ending the parallel processing, the master 2 sends an end instruction to the participating slaves 7-1, 7-2,..., And receives the end instruction to the slaves 7-1 and 7-2. , ... end participation application, execution of allocation processing, and the like.
[0066]
Note that the processing of steps 401 to 406 and steps 501 to 507 can be executed independently and in parallel for each request processing and each allocation processing. For example, in the process of step 504, at a certain point in time, all the execution results of the allocation process related to the request process A are received, and all of the execution results of the allocation process related to the request process B are not received. Regarding the request processing A, the processing after step 505 can be advanced.
[0067]
Next, a description will be given of a case where the terminal devices 5-1, 5-2,...
When, for example, an information home appliance, a mobile phone, or the like is used as the slaves 7-1, 7-2,... May not be executed on the slave as it is.
[0068]
In this case, regarding the processing program or the like received from the client, a function (CPU instruction conversion function) for converting the operation code or the like into a processing system executable on the slave is provided by the slave 7-1, 7-2,. Provision of the processing program on the slave enables execution of a processing program or the like on the slave.
[0069]
Next, the above-mentioned participation application function 11, processing execution function 12, CPU instruction conversion function and the like are provided to the slaves 7-1, 7-2,..., For example, external memories 8-1, 8-2 such as USB memory keys. ,... Will be described.
FIG. 6 is an explanatory diagram relating to the functions of the external memory 8-1 of the slave 7-1.
[0070]
As shown in FIG. 6, the slaves 7-1, 7-2,... Are the above-mentioned slave participation application function 11, the requested processing program, etc. on the external memories 8-1, 8-2,. In addition to the processing execution function 12, a communication setting (port setting, etc.) function 51, a CPU command conversion function 52, and the like are provided. The slave 7 converts the processing program into an executable instruction code by the CPU instruction conversion function 52 as necessary and executes it. The CPU instruction conversion function has a so-called emulation function and the like.
[0071]
When the slave participates in the parallel processing via the external memory, there is no need to previously record and set functions, information, and the like related to the parallel processing in a storage device (hard disk, nonvolatile memory, or the like) or the like on the slave, and The settings on the slave side after the participation in the parallel processing are maintained in the state before the participation in the parallel processing. Further, traces related to the parallel processing are not left on the storage device (hard disk, nonvolatile memory, or the like) on the slave.
[0072]
As described above, according to the first embodiment of the present invention, the master 2 receives a processing request (request processing) from the terminal device 5 of each client 4 and broadcasts the request to the entire slave group 6 by broadcast communication. Call for participation in parallel processing. The slave 7 determines whether there are free resources and resources available to participate in the parallel processing based on its own operation status. The master 2 allocates processing to the slaves 7 who have applied for participation, and transmits the allocated processing (allocation processing). The slave 7 executes the allocation processing received from the master 2, and after the processing is completed, transmits the execution result to the master 2 or the terminal device 5 of the requester 4, and the master 2 or the terminal device 5 receives the execution result.
[0073]
The master 2 or the slave 7 has a function (CPU instruction conversion function) of converting an operation code, an instruction code, and the like into a processing system executable on the slave 7 with respect to a processing program and the like. Converts operation codes, instruction codes, etc. of programs and the like.
[0074]
As described above, the master 2 (server) recruits participation in the parallel processing as needed, and the slave 7 (processing terminal device) participates in the parallel processing according to the operation status and the like. It is not necessary to manage the operating status of the slaves 7 and the like, and efficient and high-speed parallel processing can be realized by allocating the allocation processing to the participating slaves 7. Therefore, the slave 7 can participate in the parallel processing on the way.
[0075]
The master 2 can also be configured by a plurality of distribution masters 3-1, 3-2,. Even for the same instruction and the same reply, multiplexing can be easily performed by processing on a first-come-first-served basis, thereby improving fault tolerance.
[0076]
Also, the master 2 uses broadcast communication to solicit participation from the entire slave group 6 and assigns processing to the slave 7 that has responded to the participation application, so that the state management of the slave 7 is performed. No need to do. On the other hand, on the slave 7 side, when the master 2 is composed of a plurality of distributed masters 3-1, 3-2,..., A response may be made using broadcast communication.
In this case, the master 2 (distributed masters 3-1, 3-2,...) And the slave 7 need only receive information necessary for themselves by port setting or the like. Therefore, both the master 2 (distributed master 3) and the slave 7 can issue an instruction, a response, and the like without being aware of the other party.
[0077]
In the broadcast communication, information can be transmitted to all nodes (e.g., computers and the like connected to the network) in the same data link. The entire group 6 is invited to participate in the parallel processing, and the slave 7 can apply for participation to the entire master 2 (distributed master 3) in the same data link by broadcast communication.
In the conventional parallel processing, it is necessary to manage an IP address or the like in order to specify a position or a transmission destination on the network of the processing terminal device that executes the parallel processing. However, in the parallel processing described in the present embodiment, Since communication processing in the network is performed by broadcast communication, there is no need to manage IP addresses and the like.
[0078]
In the present embodiment, the processing program and the processing data are once transmitted from the terminal device 5 on the client 4 side to the master 2 and transmitted to each slave 7. However, according to the processing application (for example, input image data) , The same processing program is stored in advance in the external memories 8-1, 8-2,... Of the slaves 7-1, 7-2,. , At the time of processing request, different processing data may be transmitted to each of the slaves 7-1, 7-2,.
[0079]
When the slave 7 becomes unusable or the processing result instructed does not return easily, the same processing is again assigned to another slave 7 that has applied for the parallel processing, thereby providing a time-limited. Enable execution of processing. In addition, it is possible to easily execute a plurality of parallel processes from the outside (the terminal device 5 of the client 4) instead of a system dedicated to a predetermined process.
[0080]
In addition, as a processing terminal device, a volunteer terminal device, that is, a free resource related to unused time of a personal computer or the like used for general OA use can be used, and parallel processing related to processing that requires an enormous amount of calculation can be performed. Processing can be realized. In this case, a site having a large number of personal computers, such as a company, can acquire a high-speed computer environment at a low cost, and the computer environment is automatically updated every time the volunteer terminal device (slave) is updated. Speedup is achieved without construction.
[0081]
Further, by providing a memory having an instruction conversion function on the slave 7 side or the master 2 side, not only a general personal computer but also an arithmetic unit (CPU or the like) adopting a different processing system or arithmetic system such as an information home appliance is provided. Parallel processing using devices and mobile phones becomes possible, and the speed of parallel processing can be further increased.
[0082]
The program for performing the processes shown in FIGS. 4 and 5 may be stored in a recording medium such as a CD-ROM and distributed, or the program may be transmitted and received via a communication line.
[0083]
Next, a second embodiment of the present invention will be described.
FIG. 7 is a diagram illustrating a schematic configuration of a parallel processing system 200 according to the second embodiment of the present invention.
[0084]
In the above-described first embodiment, the master 2 receives a request for processing (request processing) from the terminal device 5 via the network 9 and processes the request processing in parallel. Then, the request processing is directly input to the master 2. That is, the process reception function 13 of the master 2 can not only receive the request process via the network 9 by a web page or the like, but also receive the process directly input to the master 2 as the request process.
[0085]
In the first embodiment, since parallel processing can be requested from the terminal device 5 to the master 2 via the network 9, it is possible to remotely request parallel processing and obtain a processing execution result. For example, a large number of computers dedicated to parallel processing can be constructed in a center and operated remotely.
On the other hand, in the second embodiment, the allocation process and the execution result of each allocation process flow on the network 9, but the entire request process and the execution result of each request process do not flow on the network 9. Security and confidentiality can be improved.
[0086]
Next, a third embodiment of the present invention will be described.
FIG. 8 is a diagram showing a schematic configuration of a parallel processing system 300 according to the third embodiment of the present invention.
FIG. 9 is a diagram showing a processing flow of the parallel processing system 300 according to the third embodiment of the present invention.
[0087]
The parallel processing system 300 includes a parent master 801, a plurality of child masters 803 associated with the parent master, a plurality of slaves 804 associated with the child master 803, and the like connected via a network 806. That is, the master is configured to have a hierarchical structure.
The group 802 is virtually constituted by a child master 803 and a plurality of slaves 804 associated therewith.
The parent master 801 and the child master 803 are server computers and the like as “sub servers”, and correspond to the master 2 as “server” in the first and second embodiments as a whole. Is what you do.
[0088]
The parent master 801 has a processing reception function 811, a participation recruitment function 812, a processing allocation function 813, and an execution result acquisition function 814, similarly to the master 2 in the first embodiment.
The child master 803 has a participation application function 815, like the slave 7 in the first embodiment, and has a participation recruitment function 816, a processing allocation function 817, and an execution result acquisition function 818, like the master 2.
The slave 804 has a participation application function 819 and a process execution function 820, similarly to the slave 7 in the first embodiment.
[0089]
As shown in FIG. 9, for example, upon receiving or inputting the request processing C, the parent master 801 uses broadcast communication to invite all the child masters 803 to participate in the parallel processing.
When participating in the parallel processing, the child master 803 responds to the parent master 801 that the child has applied for participation.
The parent master 801 generates the allocation processing C1 to the allocation processing C10 from the request processing C, and transmits the allocation processing to the child master 803 who has applied for participation.
In addition, according to the processing capacity of the group 802 (the processing capacity of the slave 804 associated with the child master 803), for example, the allocation processing C1 to the allocation processing C5 are continuously performed on the child master 803-1, and the allocation processing C6 to The assignment processing C10 is transmitted to the child master 803-2.
[0090]
The child master 803 uses broadcast communication to invite all the slaves 804 in the same group 802 to participate in the parallel processing.
When the slave 804 participates in the parallel processing, the slave 804 responds to the child master 803 to the effect of applying for participation.
The child master 803 distributes the plurality of allocation processes received from the parent master 801 to each of the participating slaves 804.
[0091]
As shown in FIG. 9, for example, the child master 803-1 transmits the allocation processing C1, C2,..., C5 to each of the participating slaves 804, and the child master 803-2 transmits to each of the participating slaves 804 The assignment processing C6, C7,..., C10 is transmitted.
[0092]
The slaves 804 each execute an allocation process, and the result of the allocation process is transmitted to the parent master 801 via the child master 803.
The parent master 801 aggregates the execution results of the allocation processing and creates an execution result for each request processing.
[0093]
As described above, the child master 803 continuously receives the allocation processing (processing data, processing program, and the like) from the parent master 801 and performs the plurality of allocation processing on the slave 804 (the same group) associated with the child master 803. Since the program can be distributed to and executed by the slaves 804) in the 802, the speed of the parallel processing can be increased.
[0094]
As described in the first embodiment and the second embodiment, when the above-described hierarchy is not performed, all the slaves 7 respond to the participation application to one master 2, so that the master 2 , The communication load may increase and a communication bottleneck may occur.
In the third embodiment, the master has a hierarchical structure, and the slave 804 responds to the child master 803. Therefore, the communication load on the parallel processing system 300 can be reduced. Stability is improved.
[0095]
In FIGS. 8 and 9, the master has a two-layer structure, but may have a further multiplex layer structure. Even in this case, the slave responds to the master in the same group (the master corresponding to the slave), and the lower master responds to the master in the immediately higher hierarchy. The speed of the parallel processing can be increased, the communication load on the parallel processing system can be reduced, and the operation stability can be improved.
[0096]
Processing (recruitment of participation, application for participation, allocation of processing, transmission of execution results, acquisition of execution results, etc.) between the master and the master immediately below the master are described in the masters in the first embodiment and the second embodiment. The processing between the slave 2 and the slave 7 is substantially the same. Therefore, it is easy to change the system configuration related to the layering of the master, and it is not necessary to develop and prepare a special management application or the like.
[0097]
For example, as shown in FIG. 8, the child master 803 provided with the hierarchization of the master includes a participation application function of the slave 7, a participation recruitment function, a processing allocation function, and an execution result of the master 2. It is only necessary to have an acquisition function and the like, and there is no need to develop and prepare a special management application or the like.
In each of the first embodiment and the second embodiment, the hierarchization of the master shown in the third embodiment can be realized.
[0098]
Next, details of communication processing by broadcast communication in the parallel processing system will be described.
In the parallel processing systems described in the first to third embodiments, communication between a master and a slave, a terminal device, and the like, and communication processing via a network are performed using broadcast communication. Transmission and reception of communication data and information (participation recruitment, participation application, process assignment, transmission of execution results, acquisition of execution results, etc.) are performed.
[0099]
FIG. 10 is a diagram showing an outline of a communication process by broadcast communication in the above-described master 2 and slave 7.
Note that the source and destination port numbers for the predetermined communication process may be different, but for ease of explanation, port numbers are set for each type of the predetermined communication process, and the source and destination port numbers are set. The numbers are described as being the same.
[0100]
As shown in FIG. 10, port 2000, port 2001, port 2002, port 2003, port 2004,... Are set for master 2, and port 2000, port 2001 for slave 7-1. Ports 2000 and 2002 are set for the port and slave 7-2, ports 2000 and 2003 are set for the slave 7-3, and ports 2000 and 2004 are set for the slave 7-4. Is done.
[0101]
The 2000 port is a communication port for communication between the master 2 and all the slaves 7 (for example, recruitment of participation).
The port 2001 is a communication port for communication (for example, application for participation) between the master 2 and the slave 7-1.
The 2002 port is a communication port for communication (for example, participation application) between the master 2 and the slave 7-2.
The port 2003 is a communication port for communication (for example, application for participation) between the master 2 and the slave 7-3.
The 2004 port is a communication port related to communication between the master 2 and the slave 7-4 (for example, participation application).
[0102]
When transmitting communication data to all the slaves 7 (for example, when recruiting participation in parallel processing), the master 2 adds the destination port number 2000 to the communication data and broadcasts the communication data. To the network 9. Since the port numbers 2000 are set, the slaves 7-1, 7-2, 7-3, 7-4,... Receive the communication data (destination port number 2000) (step 1001).
[0103]
When transmitting communication data to the master 2 (for example, when applying for participation in parallel processing), the slave 7-1 adds the transmission destination port number 2001 to the communication data and broadcasts the communication data. To the network 9. Since the port number 2001 is set, the master 2 receives the communication data (destination port number 2001) (step 1002).
[0104]
Similarly, when transmitting communication data to the master 2, the slaves 7-2 and 7-4 add destination port numbers 2002 and 2004 to the communication data, respectively, and transmit the communication data by broadcast communication. The master 2 transmits the data to the network 9 and receives the communication data (destination port numbers 2002 and 2004) because the port numbers 2002 and 2004 are set (steps 1003 and 1004).
[0105]
In the above description, the communication process for participation recruitment and participation application has been described as an example. The master 2, slave 7, and terminal device 5 are set port numbers in accordance with the above, and the communication data with the port numbers added is transmitted to the network 9 by broadcast communication, so that the master 2, slave 7, and terminal device 5 can communicate with each other. To transmit and receive communication data, thereby realizing parallel processing. When the masters 2 are distributed and multiplexed, the same instruction and the same response may be processed with the earliest arrival priority.
[0106]
As described above, the preferred embodiments of the parallel processing system and the like according to the present invention have been described with reference to the accompanying drawings, but the present invention is not limited to such examples. It is obvious to those skilled in the art that various changes or modifications can be made within the scope of the technical idea disclosed in the present application, and these naturally belong to the technical scope of the present invention. I understand.
[0107]
【The invention's effect】
As described above in detail, according to the present invention, it is possible to cause the processing terminal device to execute the processing related to the parallel processing according to the operation status, the processing capacity, and the like, and to improve the efficiency and the speed of the parallel processing. A parallel processing system or the like can be provided.
[Brief description of the drawings]
FIG. 1 is a diagram showing a schematic configuration of a parallel processing system 100 according to a first embodiment;
FIG. 2 is a diagram showing an outline of processing relating to processing reception, participation recruitment, participation application, processing allocation, etc.
FIG. 3 is a diagram showing an outline of processing related to processing execution, acquisition of execution results, and the like;
FIG. 4 is a flowchart showing a procedure of processing related to processing reception, participation recruitment, participation application, processing allocation, and the like.
FIG. 5 is a flowchart showing a procedure of processing related to processing execution, execution result acquisition, and the like;
FIG. 6 is an explanatory diagram regarding functions of an external memory 8 of a slave 7;
FIG. 7 is a diagram illustrating a schematic configuration of a parallel processing system 200 according to a second embodiment;
FIG. 8 is a diagram showing a schematic configuration of a parallel processing system 300 according to a third embodiment.
FIG. 9 is a diagram showing a processing flow of a parallel processing system 300 according to the third embodiment.
FIG. 10 is a diagram showing an outline of communication processing by broadcast communication.
[Explanation of symbols]
100 parallel processing system
200: Parallel processing system
300 Parallel processing system
1 ... Administrator
2 ... Master
3 (3-1, 3-2, ...) ... Distributed master
4 (4-1, 4-2, ...) ... Requester
5 (5-1, 5-2, ...) ... terminal device
6 ... Slave group
7 (7-1, 7-2, ...) ... slave
8 (8-1, 8-2, ...) ... external memory
9 Network
11 …… Participation application function
12 Processing execution function
13 Processing reception function
14 ……… Participation recruitment function
15 Processing assignment function
16: Execution result acquisition function (master)
17 Execution result acquisition function (terminal device)
21 ... Processing reception table
31 Processing assignment table
51 Communication setting function
52 CPU conversion function
801 Parent master
802 ……… Group
803 child master

Claims (25)

複数の処理端末装置と、複数の依頼者側の端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記端末装置が依頼する依頼処理を並列処理により処理する並列処理システムであって、
前記サーバは、
前記端末装置から前記依頼処理を受信する処理受付手段と、
前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、
前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約して、前記端末装置に送信する依頼処理結果送信手段と、
を具備し、
前記処理端末装置は、
前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募手段と、
前記サーバから送られた前記割付処理を実行する割付処理実行手段と、
前記割付処理の実行結果を前記サーバに送信する割付処理結果送信手段と、
を具備することを特徴とする並列処理システム。
A parallel processing system in which a plurality of processing terminal devices, a plurality of client terminal devices, and one or a plurality of servers are connected via a network, and the request processing requested by the terminal devices is processed by parallel processing. So,
The server comprises:
A process receiving unit that receives the request process from the terminal device;
For the processing terminal device, participation recruiting means for recruiting participation in the parallel processing,
A process of dividing the request process from the request process as necessary, generating an allocation process, and allocating and transmitting the allocation process to a processing terminal device that has applied for the participation recruitment. Allocation means;
Request processing result transmitting means for aggregating the execution result of the allocation processing sent from the processing terminal device into an execution result for each request processing and transmitting the result to the terminal device;
With
The processing terminal device,
When an invitation for participation in the parallel processing is sent from the server, participation application means for responding to the participation application if it is possible to participate by judging from its own operation status,
Allocation processing execution means for executing the allocation processing sent from the server;
Allocation processing result transmitting means for transmitting an execution result of the allocation processing to the server;
A parallel processing system comprising:
複数の処理端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムであって、
前記サーバは、
前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、
前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約する依頼処理結果集約手段と、
を具備し、
前記処理端末装置は、
前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募手段と、
前記サーバから送られた前記割付処理を実行する割付処理実行手段と、
前記割付処理の実行結果を前記サーバに送信する割付処理結果送信手段と、
を具備することを特徴とする並列処理システム。
A parallel processing system in which a plurality of processing terminal devices and one or more servers are connected via a network, and the request processing input to the server is processed by parallel processing,
The server comprises:
For the processing terminal device, participation recruiting means for recruiting participation in the parallel processing,
A process of dividing the request process from the request process as necessary, generating an allocation process, and allocating and transmitting the allocation process to a processing terminal device that has applied for the participation recruitment. Allocation means;
Request processing result aggregating means for aggregating the execution result of the allocation processing sent from the processing terminal device into an execution result for each request processing,
With
The processing terminal device,
When an invitation for participation in the parallel processing is sent from the server, participation application means for responding to the participation application if it is possible to participate by judging from its own operation status,
Allocation processing execution means for executing the allocation processing sent from the server;
Allocation processing result transmitting means for transmitting an execution result of the allocation processing to the server;
A parallel processing system comprising:
前記参加募集手段または前記参加応募手段は、ブロードキャスト通信により前記参加募集または前記参加応募を行うことを特徴とする請求項1または請求項2に記載の並列処理システム。The parallel processing system according to claim 1, wherein the participation recruiting unit or the participation application unit performs the participation recruitment or the participation application by broadcast communication. 前記サーバは、階層構造をなす複数のサブサーバから構成され、前記サブサーバに前記複数の処理端末装置が接続されることを特徴とする請求項1から請求項3のいずれかに記載の並列処理システム。4. The parallel processing according to claim 1, wherein the server includes a plurality of sub-servers having a hierarchical structure, and the plurality of processing terminal devices are connected to the sub-server. 5. system. 複数の処理端末装置と、複数の依頼者側の端末装置と、にネットワークを介して接続され、前記端末装置から送られた依頼処理を並列処理により処理する1又は複数のサーバであって、
前記端末装置から前記依頼処理を受信する処理受付手段と、
前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、
前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約して、前記端末装置に送信する依頼処理結果送信手段と、
を具備することを特徴とするサーバ。
A plurality of processing terminal devices and a plurality of requester-side terminal devices, which are connected via a network to one or a plurality of servers that process request processing sent from the terminal devices by parallel processing,
A process receiving unit that receives the request process from the terminal device;
For the processing terminal device, participation recruiting means for recruiting participation in the parallel processing,
A process of dividing the request process from the request process as necessary, generating an allocation process, and allocating and transmitting the allocation process to a processing terminal device that has applied for the participation recruitment. Allocation means;
Request processing result transmitting means for aggregating the execution result of the allocation processing sent from the processing terminal device into an execution result for each request processing and transmitting the result to the terminal device;
A server comprising:
複数の処理端末装置にネットワークを介して接続され、入力された依頼処理を並列処理により処理する1又は複数のサーバであって、
前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集手段と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付手段と、
前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約する依頼処理結果集約手段と、
を具備することを特徴とするサーバ。
One or more servers that are connected to a plurality of processing terminal devices via a network and process input request processing by parallel processing,
For the processing terminal device, participation recruiting means for recruiting participation in the parallel processing,
A process of dividing the request process from the request process as necessary, generating an allocation process, and allocating and transmitting the allocation process to a processing terminal device that has applied for the participation recruitment. Allocation means;
Request processing result aggregating means for aggregating the execution result of the allocation processing sent from the processing terminal device into an execution result for each request processing,
A server comprising:
前記参加募集手段は、ブロードキャスト通信により前記参加募集を行うことを特徴とする請求項5または請求項6に記載のサーバ。The server according to claim 5, wherein the participation recruiting unit performs the participation recruitment by broadcast communication. 前記割付処理の命令コードを前記処理端末装置上で実行可能な命令コードへ変換する命令変換手段を具備することを特徴とする請求項5から請求項7のいずれかに記載のサーバ。The server according to any one of claims 5 to 7, further comprising an instruction conversion unit configured to convert an instruction code of the allocation processing into an instruction code executable on the processing terminal device. 階層構造をなす複数のサブサーバから構成され、前記サブサーバに前記複数の処理端末装置が接続されることを特徴とする請求項5から請求項8のいずれかに記載のサーバ。9. The server according to claim 5, comprising a plurality of sub-servers having a hierarchical structure, wherein the plurality of processing terminal devices are connected to the sub-server. 1又は複数のサーバにネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムに用いられる処理端末装置であって、
前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募手段と、
前記サーバから送られる割付処理を実行する割付処理実行手段と、
前記割付処理の実行結果を前記サーバに送信する割付処理結果送信手段と、
を具備することを特徴とする処理端末装置。
A processing terminal device connected to one or a plurality of servers via a network and used in a parallel processing system that processes request processing input to the server by parallel processing,
When an invitation for participation in the parallel processing is sent from the server, participation application means for responding to the participation application if it is possible to participate by judging from its own operation status,
Allocation processing execution means for executing allocation processing sent from the server;
Allocation processing result transmitting means for transmitting an execution result of the allocation processing to the server;
A processing terminal device comprising:
前記参加応募手段は、ブロードキャスト通信により前記参加応募を行うことを特徴とする請求項10に記載の処理端末装置。The processing terminal device according to claim 10, wherein the participation application unit performs the participation application by broadcast communication. 前記割付処理の命令コードを実行可能な命令コードへ変換する命令変換手段を具備することを特徴とする請求項10または請求項11に記載の処理端末装置。The processing terminal device according to claim 10, further comprising an instruction conversion unit configured to convert the instruction code of the allocation processing into an executable instruction code. 前記並列処理に必要な情報及び手段を記録する外部メモリを具備することを特徴とする請求項10または請求項11に記載の処理端末装置。The processing terminal device according to claim 10, further comprising an external memory that records information and means necessary for the parallel processing. コンピュータを含む情報機器、携帯情報端末、携帯電話、情報家電のいずれかであることを特徴とする請求項10から請求項13のいずれかに記載の処理端末装置。14. The processing terminal device according to claim 10, wherein the processing terminal device is any one of an information device including a computer, a mobile information terminal, a mobile phone, and an information home appliance. 複数の処理端末装置と、複数の依頼者側の端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記端末装置が依頼する依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、
前記サーバは、
前記端末装置から前記依頼処理を受信する処理受付工程と、
前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集工程と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付工程と、
前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約して、前記端末装置に送信する依頼処理結果送信工程と、
を具備し、
前記処理端末装置は、
前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募工程と、
前記サーバから送られた前記割付処理を実行する割付処理実行工程と、
前記割付処理の実行結果を前記サーバに送信する割付処理結果送信工程と、
を具備することを特徴とする並列処理方法。
In a parallel processing system in which a plurality of processing terminal devices, a plurality of requester-side terminal devices, and one or more servers are connected via a network, and the request processing requested by the terminal devices is processed by parallel processing. A parallel processing method,
The server comprises:
A process receiving step of receiving the request process from the terminal device,
For the processing terminal device, a participation recruiting step of recruiting participation in the parallel processing,
A process of dividing the request process from the request process as necessary, generating an allocation process, and allocating and transmitting the allocation process to a processing terminal device that has applied for the participation recruitment. Allocation process,
A request processing result transmitting step of aggregating the execution result of the allocation processing sent from the processing terminal device into an execution result for each request processing and transmitting the result to the terminal device;
With
The processing terminal device,
When an invitation to participate in the parallel processing is sent from the server, if it is possible to participate by judging from its own operation status, a participation application step of responding to the participation application step,
An allocation processing execution step of executing the allocation processing sent from the server,
An allocation processing result transmitting step of transmitting an execution result of the allocation processing to the server;
A parallel processing method comprising:
複数の処理端末装置と、1又は複数のサーバと、がネットワークを介して接続され、前記サーバに入力された依頼処理を並列処理により処理する並列処理システムにおける並列処理方法であって、
前記サーバは、
前記処理端末装置に対して、前記並列処理への参加募集を行う参加募集工程と、
前記依頼処理から、必要に応じて当該依頼処理を分割して、割付処理を生成し、前記参加募集に対して参加応募している処理端末装置に対して、当該割付処理を割り付けて送信する処理割付工程と、
前記処理端末装置から送られた前記割付処理の実行結果を前記依頼処理毎の実行結果に集約する依頼処理結果集約工程と、
を具備し、
前記処理端末装置は、
前記サーバから前記並列処理への参加募集が送られると、自身の稼働状況から判断して参加可能な場合、参加応募の旨を応答する参加応募工程と、
前記サーバから送られた前記割付処理を実行する割付処理実行工程と、
前記割付処理の実行結果を前記サーバに送信する割付処理結果送信工程と、
を具備することを特徴とする並列処理方法。
A parallel processing method in a parallel processing system in which a plurality of processing terminal devices and one or a plurality of servers are connected via a network, and the request processing input to the server is processed by parallel processing,
The server comprises:
For the processing terminal device, a participation recruiting step of recruiting participation in the parallel processing,
A process of dividing the request process from the request process as necessary, generating an allocation process, and allocating and transmitting the allocation process to a processing terminal device that has applied for the participation recruitment. Allocation process,
A request processing result aggregation step of aggregating the execution result of the allocation processing sent from the processing terminal device into an execution result for each request processing;
With
The processing terminal device,
When an invitation to participate in the parallel processing is sent from the server, if it is possible to participate by judging from its own operation status, a participation application step of responding to the participation application step,
An allocation processing execution step of executing the allocation processing sent from the server,
An allocation processing result transmitting step of transmitting an execution result of the allocation processing to the server;
A parallel processing method comprising:
前記参加募集工程または前記参加応募工程は、ブロードキャスト通信により前記参加募集または前記参加応募を行うことを特徴とする請求項15または請求項16に記載の並列処理方法。17. The parallel processing method according to claim 15, wherein the participation recruitment step or the participation application step performs the participation recruitment or the participation application by broadcast communication. 前記ネットワークを介する通信処理は、ブロードキャスト通信を用いることを特徴とする請求項1から請求項4のいずれかに記載の並列処理システム。The parallel processing system according to claim 1, wherein the communication processing via the network uses broadcast communication. 前記ネットワークを介する通信処理は、ブロードキャスト通信を用いることを特徴とする請求項5から請求項9のいずれかに記載のサーバ。10. The server according to claim 5, wherein the communication processing via the network uses broadcast communication. 前記ネットワークを介する通信処理は、ブロードキャスト通信を用いることを特徴とする請求項10から請求項14のいずれかに記載の処理端末装置。15. The processing terminal device according to claim 10, wherein the communication processing via the network uses broadcast communication. 前記ネットワークを介する通信処理は、ブロードキャスト通信を用いることを特徴とする請求項15から請求項17のいずれかに記載の並列処理方法。18. The parallel processing method according to claim 15, wherein the communication processing via the network uses broadcast communication. コンピュータを請求項5から請求項9、請求項19のいずれかに記載のサーバとして機能させるプログラム。A program that causes a computer to function as the server according to any one of claims 5 to 9 and 19. コンピュータを請求項5から請求項9、請求項19のいずれかに記載のサーバとして機能させるプログラムを記録した記録媒体。A recording medium storing a program for causing a computer to function as the server according to any one of claims 5 to 9 and 19. コンピュータを請求項10から請求項14、請求項20のいずれかに記載の処理端末装置として機能させるプログラム。A program for causing a computer to function as the processing terminal device according to any one of claims 10 to 14 and 20. コンピュータを請求項10から請求項14、請求項20のいずれかに記載の処理端末装置として機能させるプログラムを記録した記録媒体。A recording medium storing a program for causing a computer to function as the processing terminal device according to any one of claims 10 to 14 and 20.
JP2002221272A 2002-05-28 2002-07-30 Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium Pending JP2004054855A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002221272A JP2004054855A (en) 2002-05-28 2002-07-30 Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium
US10/513,089 US20050188087A1 (en) 2002-05-28 2003-05-26 Parallel processing system
PCT/JP2003/006551 WO2003100648A1 (en) 2002-05-28 2003-05-26 Parallel processing system
AU2003241771A AU2003241771A1 (en) 2002-05-28 2003-05-26 Parallel processing system
TW092114376A TWI325543B (en) 2002-05-28 2003-05-28 Parallel processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002153475 2002-05-28
JP2002221272A JP2004054855A (en) 2002-05-28 2002-07-30 Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium

Publications (1)

Publication Number Publication Date
JP2004054855A true JP2004054855A (en) 2004-02-19

Family

ID=31948964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002221272A Pending JP2004054855A (en) 2002-05-28 2002-07-30 Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP2004054855A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200204A (en) * 2006-01-30 2007-08-09 Ricoh Co Ltd Distributed processing system, distributed processing method, job arbiter for use in distributed processing, and program
JP2008511931A (en) * 2004-08-30 2008-04-17 ユニバーシティ オブ ユタ リサーチ ファウンデーション Locally operated desktop environment for remote computing systems
JP2017519298A (en) * 2014-06-03 2017-07-13 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー Method, computer network infrastructure, and computer program product for distributing tasks among computer systems
US10628220B2 (en) 2015-11-02 2020-04-21 Fujitsu Limited Information processing system, information processing method, and non-transitory computer-readable storage medium for storing program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008511931A (en) * 2004-08-30 2008-04-17 ユニバーシティ オブ ユタ リサーチ ファウンデーション Locally operated desktop environment for remote computing systems
JP2007200204A (en) * 2006-01-30 2007-08-09 Ricoh Co Ltd Distributed processing system, distributed processing method, job arbiter for use in distributed processing, and program
JP4725964B2 (en) * 2006-01-30 2011-07-13 株式会社リコー Distributed processing system, distributed processing method, job arbiter used for distributed processing, and program
JP2017519298A (en) * 2014-06-03 2017-07-13 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー Method, computer network infrastructure, and computer program product for distributing tasks among computer systems
US10628220B2 (en) 2015-11-02 2020-04-21 Fujitsu Limited Information processing system, information processing method, and non-transitory computer-readable storage medium for storing program

Similar Documents

Publication Publication Date Title
US20050188087A1 (en) Parallel processing system
JP5582344B2 (en) Connection management system and connection management server linkage method in thin client system
US9184989B2 (en) Grid proxy architecture for network resources
KR100621092B1 (en) Method and apparatus for sharing application using P2P
US7085805B1 (en) Remote device management in grouped server environment
WO2014169870A1 (en) Virtual network element automatic loading and virtual machine ip address acquisition method and system, and storage medium
JP2011512578A (en) Application description system and method for manageable and efficient expansion deployment
JP2008003907A (en) Method for controlling information processing distribution and computer therefor
TW202131171A (en) User code operation method of programming platform, electronic equipment and computer-readable storage medium
CN113839814A (en) Decentralized Kubernetes cluster federal implementation method and system
JP3983619B2 (en) Parallel processing system, server, parallel processing method, program, and recording medium
CN110636149B (en) Remote access method, device, router and storage medium
JP2004062603A (en) Parallel processing system, server, parallel processing method, program and recording medium
KR101262849B1 (en) Apparatus and method for allocating and releasing of image device in virtualization system
JP2004054855A (en) Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium
JP3942979B2 (en) Parallel processing system, server, parallel processing method, program, and recording medium
JP2004062620A (en) Parallel processing system, processing terminal device, parallel processing method, program and recording medium
CN112241323A (en) Computing resource discovery and management method and system based on FPGA server
JP2007102666A (en) Parallel processing system, server, processing terminal device, parallel processing method, program and recording medium
JP2004062606A (en) Parallel processing system, server, parallel processing method, program and recording medium
JP2005107851A (en) Method for setting up client, and server client system
JP2005050131A (en) Parallel processing system, server, processing terminal device, parallel processing method, program, and recording medium
JP2004062622A (en) Parallel processing system, server, parallel processing method, program and recording medium
JP2005184594A (en) Network system, network system management method, program, and recording medium
JP6888739B1 (en) SCADA web HMI system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061010

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070227