JPWO2011001519A1 - 計算装置および並列計算機システム - Google Patents

計算装置および並列計算機システム Download PDF

Info

Publication number
JPWO2011001519A1
JPWO2011001519A1 JP2011520710A JP2011520710A JPWO2011001519A1 JP WO2011001519 A1 JPWO2011001519 A1 JP WO2011001519A1 JP 2011520710 A JP2011520710 A JP 2011520710A JP 2011520710 A JP2011520710 A JP 2011520710A JP WO2011001519 A1 JPWO2011001519 A1 JP WO2011001519A1
Authority
JP
Japan
Prior art keywords
instruction
holding unit
computing device
unit
command
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.)
Granted
Application number
JP2011520710A
Other languages
English (en)
Other versions
JP5590032B2 (ja
Inventor
雄太 樋口
雄太 樋口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2011001519A1 publication Critical patent/JPWO2011001519A1/ja
Application granted granted Critical
Publication of JP5590032B2 publication Critical patent/JP5590032B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

計算装置1bは、処理部3bと受信部2bとを有しており、ネットワークを通じてプロセスの状態を遷移させる処理を示す制御パケットを受信する。そして、計算装置1bは、制御パケットを受信した場合には、制御パケットに示された処理を実行する。このような計算装置1bを複数有する並列計算機システムは、制御パケットを各計算装置1bに対して周期的に送信する制御パケット生成装置4bを備えている。そして、並列計算機システムは、制御パケットを用いて、各計算装置1bが処理を実行するタイミングを同期させる。

Description

この発明は、計算装置、並列計算機システムおよび同期プログラムに関する。
従来、気象予測等の科学技術計算分野(HPC分野:High Performance Computing分野)における複雑な問題を計算するために、並列計算機システムが用いられる。並列計算機システムでは、ノードと呼ばれる複数の計算機と管理サーバとがネットワークを介してそれぞれ接続される。そして、並列計算機システムは、複数のノードを用いて、複雑な問題を解く場合に用いられるプログラムを高速で処理する。
具体的には、並列計算機システムは、プログラムの実行単位であるジョブを複数のプロセスに分割し、分割したプロセスを各ノードに割り当てる。ここで、プロセスとは、各ノードが実際に演算処理を行うプログラムである。各ノードは、プロセスを取得した場合には、取得したプロセスの演算処理を実行する。そして、各ノードは、プロセスの演算処理が完了した場合には、演算結果を管理サーバへ送信して、演算処理を終了する。
また、並列計算機システムは、演算処理が終了したノードに対して新たなプロセスを送信し、演算処理を実行させる。そして、並列計算機システムは、各ノードが実行した演算処理の結果を管理サーバに集約し、ジョブの全体の演算結果を得る。
ここで、各ノードが実行する演算処理について詳しく説明する。まず、各ノードは、プロセスを取得した場合には、演算処理を開始し、取得したプロセスを記憶部へ展開して実行可能な状態にする生成処理を実行する。ここで、各ノードは、他のノードの演算処理の経過を用いて、自ノードの演算処理を実行する場合がある。
そのため、各ノードは、取得したプロセスを記憶部へ展開した場合には、プロセスを振り分けられた他のノードを識別する初期化処理を実行する。そして、各ノードは、全てのノードにプロセスが振り分けられた後に、他のノードを全て識別した場合には、プロセスの計算を行う計算処理を実行する。
次に、各ノードは、計算処理の結果を取得した場合には、計算処理の結果を管理サーバに対して送信する送信処理を実行する。そして、各ノードは、計算結果を送信した場合には、プロセスの演算処理を終了する。
ここで、並列計算機システムは、各ノードの演算処理を同期させる技術として、同期ポイントを用いて、各ノードが実行する計算処理の進行具合を同期させる技術が知られている。
具体的には、並列計算機システムでは、プロセスとして実行されるプログラムの途中に、同時にプロセスを実行する各ノードにおいて、他のノードとの同期をはかる同期ポイントが設定されている。各ノードは、計算処理を実行し、同期ポイントまで計算処理を進行させた場合には、同期ポイントまで計算処理を進行させたことを他のノードに対して通知する。そして、各ノードは、プロセスを振り分けられた全てのノードが同期ポイントまで計算処理を進行させた場合には、同期ポイントよりも先の計算処理を実行する。
特開2001−142852号公報
しかし、上記した同期ポイントを設定し、各ノードが実行する計算処理の進行を同期させる技術では、並列計算機システムは、各ノードが実行する計算処理の進行を同期させるのみであり、生成処理等の処理を同期させていない。そのため、各ノードは、それぞれ独自のタイミングでプロセスの演算処理を開始するので、並列計算機システム全体として非協調的に演算処理を実行するという問題があった。
例えば、上記した技術では、各ノードは、プロセスを取得するタイミングにズレが生じた場合には、先にプロセスを取得したノードが未だプロセスを取得していないノードよりも早く、取得したプロセスの演算処理を開始する。従って、プロセスを取得するタイミングにズレが生じた場合には、各ノードはそれぞれ異なったタイミングで生成処理を実行し、初期化処理を開始する。しかし、各ノードは、他のプロセスを割り振られたノードを識別するまで初期化処理を継続する。結果として、上記した技術では、各ノード間において、プロセスを取得してから演算処理を終了するまでの時間と、各ノードが実際に処理を実行している時間とに乖離を生じてしまうという問題があった。
また、例えば、上記した技術では、並列計算機システムは、プロセスの演算処理が終了したノードに対して新たなプロセスの振り分けを行う。ここで、並列計算機システムは、各ノードが実行する計算処理の進行具合のみを同期させる。そのため、並列計算機システムは、最適なプロセスの振り分けを行うことができなかった。
図14を用いて、具体的に説明する。図14は、従来技術を説明する図である。図14に示すように、各ノードは、ツリー状のネットワークである数値交換用ネットワークを用いて、接続される。図14に示したネットワークスイッチは、数値交換用ネットワークの分岐点に設置され、ネットワーク上を流れる情報の受け渡しを行う。また、図14の下に示すように、各ノードは、管理用ネットワークを用いて、管理サーバと接続される。
ここで、各ノードは、他のノードが実行する演算処理の経過を取得するために、他ノードと通信を行う場合には、上記ツリーにおける近傍にあるノードの方が遠方にあるノードよりも高速に通信を行うことができる。そのため、並列計算機システムは、二つのプロセスを振り分ける場合には、比較的近傍に存在する2つのノードに対してプロセスを振り分けるのが望ましい。例えば、並列計算機システムは、二つのプロセスを振り分ける場合には、図14に示したノード7およびノード8に対して振り分けるのが望ましい。
ここで、各ノードは、振り分けられたプロセスの演算処理をおおむね同時期に終了する。しかし、並列計算機システムは、ノード8が演算処理を終了する前にノード7およびノード10が演算処理を終了した場合には、新たなプロセスをノード7およびノード10に振り分ける。そのため、並列計算機システムは、計算機資源の適切な利用を行うことができないという問題があった。
開示の技術は、上記に鑑みてなされたものであって、各計算装置が協調的に処理を実行して、プロセスを取得してから演算処理を終了するまでの時間と各ノードが実際に処理を実行している時間との乖離を低減するとともに、計算機資源の適切な利用を行うことができる。
本願の開示する計算装置は、プロセスに対して実行される命令が生じた場合には、もしくは、プロセスに含まれる命令を実行する場合には、命令の実行を一時的に保留する。そして、計算装置は、実行を保留された命令と同一の命令を示す制御情報を受信した場合には、保留された命令を実行する。
本願の開示する計算装置、並列計算機システムおよび同期プログラムは、各計算装置が協調的に処理を実行することで、プロセスを取得してから演算処理を終了するまでの時間と各ノードが実際に処理を実行している時間との乖離を低減するとともに、計算機資源の適切な利用を行うことができる。
図1は、実施例1に係る計算装置を表すブロック図である。 図2は、実施例2に係る並列計算機システムを説明する図である。 図3は、実施例2に係る計算装置および制御パケット生成装置の構成を説明するブロック図である。 図4は、パケット番号とプロセスに対して実行される命令との対応を説明する図である。 図5は、計算装置が実行するプロセスの演算処理の流れを説明するフローチャートである。 図6は、計算装置が実行する中断命令および再開処理の流れを説明するフローチャートである。 図7は、計算装置が割り込み命令を実行する処理の流れについて説明するフローチャートである。 図8は、計算装置が実行する発信命令の処理の流れを説明するフローチャートである。 図9は、計算装置が実行するプログラム実行命令の処理の流れを説明するフローチャートである。 図10は、計算装置1および計算装置1bと同様の機能を有するプログラムを実行するコンピュータを説明する図である。 図11は、プログラムが行う処理の流れを説明するフローチャートである。 図12は、並列計算機システムの構成を説明する図である。 図13は、高機能スイッチを備えた並列計算機システムを表す図である。 図14は、従来技術を説明する図である。
以下に添付図面を参照して、開示の計算装置、並列計算機システムおよび同期プログラムの実施例を詳細に説明する。
以下の実施例では、計算装置1の構成および処理の流れを順に説明する。
まず最初に、図1を用いて、実施例1に係る計算装置の構成について説明する。ここで、図1は、実施例1に係る計算装置を表すブロック図である。図1に示すように、計算装置1は、受信部2、処理部3および保留部5を有している。また、受信部2は、ネットワークを用いて、外部の制御情報生成装置4と接続されている。ネットワークには、計算装置1と同様の構成を有する計算装置1B、計算装置1Cが接続されている。なお、図1では省略したが、図1に図示した各計算装置以外にも、ネットワークには、多数の計算装置が接続されている。
制御情報生成装置4は、配布されるプロセスに対して実行される命令、もしくは、配布されるプロセスに含まれる命令を示す制御情報を生成する。また、制御情報生成装置4は、制御情報をネットワーク全体に送信する。
受信部2は、制御情報生成装置4から送信された制御情報を受信する。保留部5は、プロセスに対して実行される命令が発生した場合には、もしくは、配布されるプロセスに含まれる命令を実行する場合には、命令の実行を一時的に保留する。
処理部3は、保留部5に保留された命令と、受信部4に受信された制御情報とが対応する場合には、保留部5に保留された命令を実行する。
次に、実施例1に係る計算装置1が行う処理の流れを説明する。まず、受信部2は、ネットワークを介して、制御情報生成装置4から発信された制御情報を受信する。ここで、保留部5は、プロセスに対して実行される命令が発生した場合には、もしくは、配布されるプロセスに含まれる命令を実行する場合には、命令を保留し、処理部3による命令の実行を保留させる。処理部3は、保留部5によって保留されている命令と対応する制御情報が受信部2によって受信された場合には、保留部5によって保留されている命令を実行する。
上述してきたように、実施例1に係る計算装置1は、プロセスに対して実行される命令が生じた場合には、生じた命令を保留部5に保留する。そして、計算装置1は、保留部5に保留された命令と対応する制御情報が受信部2によって受信された場合には、保留部5に保留された命令を実行する。
そのため、計算装置1は、制御情報を取得したタイミングでプロセスに対する命令を実行するので、プロセスに対する命令を実行するタイミングを、他の計算装置1と同期させることができる。結果として、計算装置1は、協調的にプロセスに対する命令を実行することができる。
実施例2では、制御情報に示された各演算処理の命令を実行する計算装置1bを有する並列計算機システムについて図を参照して説明する。
まず最初に、実施例2に係る並列計算機システムの構成について、図2を用いて説明する。ここで、図2は、実施例2に係る並列計算機システムを説明する図である。図2では省略されているが、各計算装置1b以外にも、数値計算用ネットワークには、各ネットワークスイッチを介して、複数の計算装置が接続されている。計算装置A〜Dを含む全ての計算装置は、計算装置1bと同じ機能を有している。以下、計算装置1bと記載した場合には、計算装置A〜Dを含む計算装置を表す。
実施例2に係る並列計算機システムは、図2に示すように、複数の計算装置1bを高速に通信を行う数値交換用ネットワークで接続する。各計算装置1bは、数値交換用ネットワークを介して、他の計算装置1bと演算処理に必要な数値の送受信を行う。
また、図2の下側に示すように、各計算装置1bは、数値計算用ネットワークとは別に、管理用ネットワークに接続されている。並列計算機システムは、管理用ネットワークを介して、各計算装置1bに演算処理を実行させるプロセスの送信を行う。また、並列計算機システムは、管理用ネットワークを用いて、各計算装置1bが演算処理を実行した結果を管理サーバ11bに集約する。
具体的には、並列計算機システムは、管理用ネットワークに接続された管理サーバ11bを用いて、各計算装置1bの管理を実行する。管理サーバ11bは、管理用ネットワークを用いて、各計算装置1bへ振り分けられたプロセスを送信する。
また、管理サーバ11bは、管理用ネットワークを用いて、各計算装置1bが実行したプロセスの結果を集約する。そして、並列計算機システムは、管理サーバ11bに集約されたプロセスの結果を用いて、ジョブの処理を進める。
次に、制御パケット生成装置4bについて説明する。制御パケット生成装置4bは、制御パケットを周期的に生成し、生成された制御パケットをネットワーク上の各計算装置1bに対して周期的に同報送信する。また、制御パケットは、プロセスに対して実行される命令を示す。
具体的には、制御パケット生成装置4bは、命令を示す情報として、制御パケットが生成された順番を示す順序番号が含まれた制御パケットを生成する。そして、制御パケット生成装置4bは、生成された制御パケットを、所定の間隔をあけてネットワークに接続された全計算装置1bへ送信する。
また、制御パケット生成装置4bは、図2に示すように、ツリー状に構成された数値計算用ネットワークの最上位に設置されたネットワークスイッチ20に接続されている。制御パケット生成装置4bは、数値計算用のネットワークを用いて、各計算装置1bへ制御パケットを送信している。
ここで、実施例2に係る計算装置1bが受信されたプロセスに対して実行する命令について説明する。ここで、プロセスに対して実行される命令とは、プロセスに含まれない命令のことをいう。つまり、プロセスに含まれない命令とは、計算装置1b内のOS(Operating System)や、外部の管理サーバ11b等から実行が指示される命令である。プロセスに含まれない命令として、例えば、再開命令、生成命令、送信命令、割り込み命令、割り込み防止命令、発信命令、プログラム実行命令等が存在する。
また、プロセスに含まれる命令とは、計算装置1bが管理サーバ11bから配布されたプロセス内に実行が指示されている所定の命令であり、例えば、プロセスに含まれる命令として、中断命令が存在する。
再開命令は、OS、計算装置1bの管理を行う常駐プログラム、もしくは管理サーバ11b等から、一時停止された処理を再開するように指示された場合に発生する。生成命令は、計算装置1bがプロセスを取得した場合に発生する。送信命令は、計算装置1bがプロセスの処理を終了した場合に発生する。割り込み命令は、OS、常駐プログラム、もしくは管理サーバ11b等から、実行している処理とは別の処理を実行させる要求があった場合に発生する。
割り込み防止命令は、OS、常駐プログラム、もしくは管理サーバ11b等から、実行している処理を優先して実行するように要求があった場合に発生する。発信命令は、OS、常駐プログラム、もしくは管理サーバ11b等から、計算装置1bの状態を管理サーバ11bへ通知するシグナルを送信するよう要求された場合に発生する。プログラム実行命令は、OS、常駐プログラム、もしくは管理サーバ11b等から、実行している処理とは別のプログラムを実行するように要求された場合に発生する。
また、プロセスに含まれない命令であっても、例えば、割り込み防止命令は、プロセス内に実行が指示される場合がある。また、中断命令は、計算装置1b内のOSや、外部の管理サーバ11b等から実行を要求される場合がある。
次に、図3を用いて、実施例2に係る各計算装置1bの構成および制御パケット生成装置4bの構成について説明する。ここで、図3は、実施例2に係る計算装置および制御パケット生成装置の構成を説明するブロック図である。図3に示すように、計算装置1bは、受信部2b、処理部3b、保留部5bおよび記憶部6bとを有している。また、制御パケット生成装置4bは、制御パケット生成部12、順序番号付与部13、制御パケット送信部14を有している。また、計算装置A1Dおよび計算装置D1Gは、図3において省略された各計算装置と同様に、計算装置1bと同様の構成を有している。
順序番号付与部13は、順序番号を生成し、制御パケット生成部12へ転送する。具体的には、順序番号付与部13は、各制御パケットの作成された順番を表す順序番号を生成し、制御パケット生成部12へ転送する。制御パケット生成部12は、制御パケットを生成し、順序番号付与部13から転送された順序番号を付して制御パケット送信部14へ転送する。
制御パケット送信部14は、制御パケット生成部13から転送された制御パケットを、ネットワーク上の各計算装置1bに同報送信する。例えば、制御パケット送信部14は、ネットワーク上の各計算装置1bに対して、制御パケットをマルチキャスト送信する。
受信部2bは、プロセスに対して実行される命令を示す制御パケットを受信する。具体的には、受信部2bは、制御パケット生成装置4bから同報送信された制御パケットを数値交換用ネットワークを介して、受信する。
また、受信部2bは、管理用ネットワークを用いて、管理サーバ11bから振り分けられたプロセスを取得する。受信部2bは、管理サーバ11bからプロセスを取得した場合には、取得されたプロセスを処理部3bへ転送する。
記憶部6bは、プロセスに対して実行される命令と制御パケットに付される順序番号とを対応付けて記憶している。具体的には、記憶部6bは、図4に示すように、順序番号と、プロセスに対して実行される命令とを対応付けて記憶している。ここで、図4は、パケット番号とプロセスに対して実行される命令との対応を説明する図である。
保留部5bは、プロセスに対して実行される命令が発生した場合には、発生した命令を保留する。具体的には、保留部5bは、取得したプロセスに対して処理を実行する命令が発生した場合には、発生した命令を保留し、発生した命令を処理部3bが実行を保留させる。
以下、保留部5bが実行する処理について詳しく説明する。保留部5bは、処理部3bがプロセスを取得した結果、取得されたプロセスに対して生成処理を実行させる命令である生成命令が生じた場合には、生じた生成命令を保留する。そのため、保留部5bは、処理部3bに生成処理の実行を待機させる。
また、保留部5bは、取得されたプロセスに対する計算処理が終了した結果、処理部3bに送信処理を実行させる命令である送信命令が生じた場合には、生じた送信命令を保留する。そのため、保留部5bは、処理部3bに送信処理の実行を待機させる。
ここで、計算装置1bは、振り分けられたプロセスとは別のプログラム(例えば、常駐プログラム)を実行する場合がある。しかし、計算装置1bは、プロセスと常駐プログラムとを同時に実行することができない。そのため、計算装置1bは、処理部が実行している演算処理を一時的に待機させる中断処理を実行し、常駐プログラムを実行させる。実施例2に係る並列計算機システムは、各計算装置1bが中断処理を実行するタイミングも同期させる。
保留部5bは、処理部3bに中断処理を実行させる命令である中断命令が生じた場合には、生じた中断命令を保留する。そのため、保留部5bは、処理部3bに送信処理の実行を待機させる。
また、計算装置1bは、常駐プログラムの実行が終了した場合には、一時的に待機させた演算処理を再開させる再開命令を実行する。実施例2に係る並列計算機システムは、生成処理を実行する場合と同様に、各計算装置1bが再開処理を実行するタイミングを同期させる。
そのため、保留部5bは、処理部3bに再開処理を実行させる命令である再開命令が生じた場合には、生じた再開命令を保留する。そのため、保留部5bは、処理部3bに送信処理の実行を待機させる。
ここで、各計算装置1bは、実行するプロセスに設定された優先度を用いて、演算処理を行う。例えば、各計算装置1bは、優先度「1」のプロセスに対する演算処理を実行中に、優先度「2」のプロセスを取得した場合には、優先度「2」のプロセスに対して優先的に演算処理を実行する。具体的には、計算装置1bは、優先度「1」のプロセスに対する演算処理を待機させ、優先度「2」のプロセスに対する演算処理を実行する割り込み処理を行う。
実施例2に係る並列計算機システムは、各計算装置1bが割り込み処理を実行するタイミングも同期させる。保留部5bは、処理部3bに割り込み処理を実行させる命令である割り込み命令が生じた場合には、生じた割り込み命令を保留する。そのため、保留部5bは、処理部3bに割り込み処理の実行を待機させる。
ここで、各計算装置1bは、実行している処理を優先させるために、割り込み処理を実行させないようにする割り込み防止処理を実行する場合がある。そのため、実施例2に係る並列計算機システムは、各計算装置1bに割り込み処理を実行させないようにするタイミングを同期させる。
保留部5bは、処理部3bに割り込み処理を実行させないようにする割り込み防止命令が生じた場合には、生じた割り込み防止命令を保留する。そのため、保留部5bは、処理部3bに割り込み防止処理の実行を待機させる。
ここで、各計算装置1bは、並列計算システム全体の処理状況を認識するため、各計算装置1bの状況を通知するシグナルを発信する発信処理の実行を所定の時刻に命令される。そのため、実施例2に係る並列計算機システムは、全ての計算装置1bから一度にシグナルを取得するために、制御パケットを用いて、各計算装置1bが発信処理を実行するタイミングを同期させる。
保留部5bは、処理部3bに発信処理を実行させる命令である発信命令が生じた場合には、生じた発信命令を保留する。そのため、保留部5bは、処理部3bに送信処理の実行を待機させる。
また、各計算装置1bは、実行しているプロセスとは別のプログラム(例えば、常駐プログラム)を実行するプログラム実行処理を命令される場合がある。実施例2に係る並列計算機システムは、各計算装置1bがプログラム実行処理を実行するタイミングを同期させる。
そのため、保留部5bは、処理部3bにプログラム実行処理を実行させる命令であるプログラム実行命令が生じた場合には、生じたプログラム実行命令を保留する。そのため、保留部5bは、処理部3bにプログラム実行処理の実行を待機させる。
次に、処理部3bは、記憶部6bに記憶された順序番号と命令とに基づいて、保留部5bに保留された命令と受信部2bに受信された制御パケットが示す命令とが対応していると判別した場合には、保留部5bに保留された命令を実行する。
具体的には、処理部3bは、受信部2bによって受信された制御パケットの順序番号を読み出す。次に、処理部3bは、読み出された順序番号と対応付けて記憶された命令を記憶部6bから読み出す。次に、処理部3bは、読み出された命令が保留部5bによって保留されているかを判別する。そして、処理部3bは、読み出された命令が保留部5bによって保留されている場合には、保留されている命令を実行する。
以下、処理部3bが実行する処理について、図4を用いて具体的に説明する。処理部3bは、受信部2bによって受信された制御パケットの順序番号が奇数番号である場合には、記憶部6bに奇数番号と対応付けて記憶された中断命令を読み出す。次に、処理部3bは、読み出された中断命令が保留部5bによって保留されているか判断する。処理部3bは、中断命令が保留部5bによって保留されている場合には、中断命令を実行する。
また、処理部3bは、受信部2bによって受信された制御パケットの順序番号が偶数である場合には、記憶部6bに奇数番号と対応付けて記憶された再開命令を読み出す。次に、処理部3bは、読み出された再開命令が保留部5bによって保留されているか判断する。処理部3bは、再開命令が保留部5bによって保留されている場合には、再開命令を実行する。
また、処理部3bは、受信部2bによって受信された制御パケットの順序番号が60の倍数である場合には、記憶部6bに60の倍数と対応付けて記憶された生成命令を読み出す。次に、処理部3bは、読み出された生成命令が保留部5bによって保留されているか判断する。処理部3bは、生成命令が保留部5bによって保留されている場合には、生成命令を実行する。
また、処理部3bは、受信部2bによって受信された制御パケットの順序番号が30の倍数である場合には、記憶部6bに30の倍数と対応付けて記憶された送信命令を読み出す。次に、処理部3bは、読み出された送信命令が保留部5bによって保留されているか判断する。処理部3bは、送信命令が保留部5bによって保留されている場合には、送信命令を実行する。
ここで、並列計算機システムは、制御パケットを用いて、各計算装置1bが割り込み処理を実行する優先度の設定を行う。例えば、図4に示すように、処理部3bは、各計算装置1bが割り込み優先度「X」以下の処理を実行する命令を受けても、命令を実行しないように設定する割り込み命令(1)を受ける場合がある。計算装置1bは、割り込み命令(1)を実行した場合には、優先度が「X」よりも高い処理を実行する命令が生じた場合にのみ、割り込み処理を実行する。
また、例えば、処理部3bは、各計算装置1bが割り込み優先度「Y」以下の処理を実行する命令を受けても、命令を実行しないように設定する割り込み命令(2)を受ける場合がある。計算装置1bは、割り込み命令(2)を実行した場合には、優先度が「Y」よりも高い処理を実行する命令が生じた場合にのみ、割り込み処理を実行する。
以下、処理部3bが各割り込み命令を実行する流れについて説明する。処理部3bは、受信部2bによって受信された制御パケットの順序番号を40で除算した余りが10以上である場合には、記憶部6bに対応付けて記憶された割り込み命令(1)を読み出す。次に、処理部3bは、読み出された割り込み命令(1)が保留部5bによって保留されているか判断する。処理部3bは、割り込み命令(1)が保留部5bによって保留されている場合には、割り込み命令(1)を実行する。
また、処理部3bは、受信部2bによって受信された制御パケットの順序番号を40で除算した余りが5以上10未満である場合には、記憶部6bに対応付けて記憶された割り込み命令(2)を読み出す。次に、処理部3bは、読み出された割り込み命令(2)が保留部5bによって保留されているか判断する。処理部3bは、割り込み命令(2)が保留部5bによって保留されている場合には、割り込み命令(2)を実行する。
また、処理部3bは、受信部2bによって受信された制御パケットの順序番号を40で除算した余りが5未満である場合には、記憶部6bに対応付けて記憶された割り込み防止命令を読み出す。次に、処理部3bは、読み出された割り込み防止命令が保留部5bによって保留されているか判断する。処理部3bは、割り込み防止命令が保留部5bによって保留されている場合には、割り込み防止命令を実行する。
また、処理部3bは、受信部2bによって受信された制御パケットの順序番号が180の倍数である場合には、記憶部6bに180の倍数と対応付けて記憶された発信命令を読み出す。次に、処理部3bは、読み出された発信命令が保留部5bによって保留されているか判断する。処理部3bは、発信命令が保留部5bによって保留されている場合には、発信命令を実行する。
また、処理部3bは、受信部2bによって受信された制御パケットの順序番号が360の倍数である場合には、記憶部6bに360の倍数と対応付けて記憶されたプログラム実行命令を読み出す。次に、処理部3bは、読み出されたプログラム実行命令が保留部5bによって保留されているか判断する。処理部3bは、プログラム実行命令が保留部5bによって保留されている場合には、プログラム実行命令を実行する。
次に、図5〜図9を用いて、並列計算機システムが実行する処理の流れについて説明する。まず、図5を用いて、計算装置1bが実行するプロセスの演算処理の流れについて説明する。ここで、図5は、計算装置が実行するプロセスの演算処理の流れを説明するフローチャートである。計算装置1bは、電源を入れられたことをトリガとして、演算処理を開始する。
まず、計算装置1bは、受信部2bがプロセスを取得したかを判別する(ステップS101)。次に、保留部5bは、プロセスが取得されている場合には(ステップS101肯定)、プロセスの取得によって発生する生成命令を保留する(ステップS102)。次に、処理部3bは、制御パケットが受信されているか判別する(ステップS103)。次に、処理部3bは、制御パケットが受信部2bによって受信されている場合には(ステップS103肯定)、記憶部6に記憶された順序番号と命令とに基づいて、受信された制御パケットが示す命令が生成命令であるか判別する(ステップS104)。
次に、処理部3bは、受信された制御パケットが生成命令を示す場合には(ステップS104肯定)、生成命令を実行する(ステップS105)。一方、処理部3bは、プロセスを取得していない場合には(ステップS101否定)、新たなパケットを受信するまで待機する。
また、処理部3bは、受信部2bが制御パケットを受信していない場合には(ステップS103否定)、パケットの受信を待機する。また、処理部3bは、受信部2bによって受信された制御パケットがプロセスの生成命令を示していない場合には(ステップS104否定)、新たなパケットの受信を待機する。
処理部3bは、生成命令を実行した場合には、初期化処理を実行する(ステップS106)。次に、処理部3bは、プロセスに対する計算処理を実行し、計算処理の結果を得る(ステップS107)。次に、保留部5bは、計算処理結果の取得によって発生する送信命令を保留する(ステップS108)。
次に処理部3bは、受信部2bによって制御パケットが受信されたかどうか判別する(ステップS109)。処理部3bは、受信部2bによって制御パケットが受信されている場合には(ステップS109肯定)、記憶部6bに記憶された順序番号と命令とに基づいて、受信された制御パケットが送信命令を示しているかを判別する(ステップS110)。
処理部3bは、受信された制御パケットが送信命令を示している場合には(ステップS110肯定)、計算処理の結果を管理サーバ11bへ送信し、プロセスの演算処理を終了する(ステップS111)。
一方、処理部3bは、受信部2bによって制御パケットが受信されていない場合には(ステップS109否定)、制御パケットの受信を待つ。また、処理部3bは、受信された制御パケットが送信命令を示していない場合には(ステップS110否定)、送信命令を示す制御パケットが受信されるまで送信命令を実行しない。
次に、図6を用いて、計算装置1bが実行する中断命令および再開処理の流れについて説明する。ここで、図6は、計算装置1bが実行する中断命令および再開処理の流れを説明するフローチャートである。計算装置1bは、中断処理の命令が発生したことをトリガとして、処理を開始する。
まず、保留部5bは、中断命令を保留する(ステップS201)。次に、処理部3bは、受信部2bによって制御パケットが受信されたか判別する(ステップS202)。処理部3bは、制御パケットが受信されている場合には(ステップS202肯定)、記憶部6bに記憶された順序番号と命令とに基づいて、制御パケットが示す命令が中断命令であるかを判別する(ステップS204)。
処理部3bは、制御パケットが示す命令が中断命令である場合には(ステップS204肯定)、実行しているプロセスの演算処理を中断する(ステップS205)。一方、処理部3bは、制御パケットが受信されていない場合には(ステップS202否定)、実行している処理を継続する(ステップS203)。また、処理部3bは、受信された制御パケットが示す命令が中断命令を示していない場合には(ステップS204否定)、実行している処理を継続する(ステップS203)。
一方、処理部3bは、実行しているプロセスの演算処理を中断させた場合には(ステップS205)、中断されたプロセスに対する演算処理を再開させる再開命令の発生を判別する(ステップS206)。保留部5bは、再開命令が発生した場合には(ステップS206肯定)、発生した再開命令を保留する(ステップS207)。
次に処理部3bは、受信部2bによって制御パケットが受信されたかどうか判別する(ステップS208)。処理部3bは、受信部2bによって制御パケットが受信されている場合には(ステップS208肯定)、記憶部6bに記憶された順序番号と命令とに基づいて、受信された制御パケットが再開命令を示しているかを判別する(ステップS209)。
処理部3bは、受信された制御パケットが再開命令を示している場合には(ステップS209肯定)、一時停止されている演算処理を再開し(ステップS210)、プロセスの演算処理を終了する。
一方、処理部3bは、中断命令を実行した後に(ステップS205)、再開命令が発生していない場合には(ステップS206否定)、プロセスを中断させたままにする。また、処理部3bは、受信部2bによって制御パケットが受信されていない場合には(ステップS208否定)、制御パケットの受信を待つ。また、処理部3bは、受信された制御パケットが再開命令を示していない場合には(ステップS209否定)、再開命令を示す制御パケットが受信されるまで再開命令を実行しない。
次に、図7を用いて、計算装置1bが割り込み命令を実行する処理の流れについて説明する。ここで、図7は、計算装置が割り込み命令を実行する処理の流れについて説明するフローチャートである。計算装置1bは、割り込み処理命令の発生をトリガとして処理を開始する。
まず、保留部5bは、発生した割り込み処理命令を保留する(ステップS301)。処理部3bは、受信部2bによって制御パケットが受信されたか判別する(ステップS302)。処理部3bは、制御パケットが受信されている場合には(ステップS302肯定)、記憶部6bに記憶された順序番号と命令とに基づいて、制御パケットが示す命令が割り込み命令であるかを判別する(ステップS303)。
処理部3は、制御パケットが示す命令が割り込み命令である場合には(ステップS303肯定)、制御パケットが割り込み命令の制限を解除しているかを判別する(ステップS304)。処理部3bは、制御パケットが割り込み命令の制限を解除している場合には(ステップS304肯定)、保留部5bに保留された割り込み命令を実行する(ステップS308)。その後、処理部3bは、処理を終了する。
一方、処理部3bは、制御パケット割り込み命令の制限を解除していない場合には(ステップS304否定)、制御パケットが割り込み防止命令を示しているかを判別する(ステップS305)。処理部3bは、制御パケットが割り込み防止命令を示している場合には(ステップS305肯定)、割り込み処理を実行しない(ステップS309)。
一方、処理部3bは、制御パケットが割り込み防止命令を示していない場合には(ステップS305否定)、制御パケットが示す割り込み命令の優先度が、待機している割込み命令の優先度よりも低いかどうかを判別する(ステップS306)。
処理部3bは、制御パケットが示す割り込み命令の優先度が、待機している割り込み命令の優先度よりも低い場合には(ステップ306肯定)、実行中の演算処理を中断し、制限よりも高い優先度を有する割り込み命令を実行する(ステップS307)。その後、処理部3bは、処理を終了する。
一方、処理部3bは、制御パケットを取得していない場合には(ステップS302否定)、制御パケットの取得を待つ。また、処理部3bは、制御パケットが割り込み命令を表していない場合には(ステップS303否定)、新たな制御パケットの受信を待つ。
また、処理部3bは、制御パケットが示す割り込み命令の優先度が保留されている割り込み命令の優先度よりも高い場合には(ステップS306否定)、割り込み命令を実行しない(ステップS309)。その後、処理部3bは、処理を終了する。
また、処理部3bは、制御パケットが割り込み命令の制限を解除している場合には(ステップS304肯定)、保留させている割り込み命令を実行し(ステップS308)、その後、処理を終了する。
次に、図8を用いて、計算装置1bが実行する発信命令の流れについて説明する。ここで、図8は、計算装置が実行する発信命令の処理の流れを説明するフローチャートである。計算装置1bは、発信命令が発生したことをトリガとして処理を開始する。
まず、保留部5bは、発信命令を保留する(ステップS401)。次に、処理部3bは、受信部2bによって制御パケットが受信されたか判別する(ステップS402)。処理部3bは、制御パケットが受信されている場合には(ステップS402肯定)、記憶部6bに記憶された順序番号と命令とに基づいて、制御パケットが示す命令が発信命令であるかを判別する(ステップS403)。
次に、処理部3bは、制御パケットが示す命令が発信命令である場合には(ステップS403肯定)、保留部5bに保留されていた発信命令を実行し、シグナルを発信する(ステップS404)。次に、処理部3bは、中断させた演算処理を再開させて(ステップS406)、処理を終了する。
一方、処理部3bは、制御パケットが受信されていない場合には(ステップS402否定)、制御パケットの受信を待つ。また、処理部3bは、受信された制御パケットが示す命令が発信命令ではない場合には(ステップS403否定)、保留された発信命令を実行せず(ステップS405)、制御パケットの受信を待つ。
次に、図9を用いて、計算装置1bが実行するプログラム実行命令の流れについて説明する。ここで、図9は、計算装置が実行するプログラム実行命令の処理の流れを説明するフローチャートである。計算装置1bは、プログラム実行命令が発生したことをトリガとして処理を開始する。
まず、保留部5bは、プログラム実行命令を保留する(ステップS501)。次に、処理部3bは、受信部2bによって制御パケットが受信されたか判別する(ステップS502)。処理部3bは、制御パケットが受信されている場合には(ステップS502肯定)、記憶部6bに記憶された順序番号と命令とに基づいて、制御パケットが示す命令がプログラム実行命令であるかを判別する(ステップS503)。
次に、処理部3bは、制御パケットが示す命令がプログラム実行命令である場合には(ステップS503肯定)、保留部5bに保留されていたプログラム実行命令を実行する(ステップS504)。次に、処理部3bは、実行していたプログラムを終了し、中断していたプロセスの演算処理を再開する(ステップS506)。
一方、処理部3bは、制御パケットが受信されていない場合には(ステップS502否定)、制御パケットの受信を待つ。また、処理部3bは、受信された制御パケットが示す命令がプログラム実行命令ではない場合には(ステップS503否定)、保留されたプログラム実行命令を実行せず(ステップS505)、制御パケットの受信を待つ。
上述してきたように、実施例2に係る並列計算機システムでは、プロセスに対して実行される命令が発生した場合には、発生した命令を保留する。そして、並列計算機システムは、保留された命令と対応する制御パケットが受信された場合には、保留された命令を実行する。そのため、並列計算機システムは、ネットワークに接続された各計算装置1bが命令を実行するタイミングを同期させることができる。結果として、並列計算機システムは、各計算装置1bを協調的に制御して計算を行うことができる。
例えば、各計算装置1bは、生成命令が発生した場合には、発生した生成命令を保留し、生成命令と対応する制御パケットを受信してから生成命令を実行するので、初期化処理を実行するタイミングをそろえることができる。
そのため、各計算装置1bは、初期化処理を実行する場合には、プロセスを割り振られた他の計算装置1bを読み出すために長時間の待機を必要としない。結果として、実施例2に係る並列計算機システムは、各計算装置1bのプロセスを取得してから演算処理を終了するまでの時間と、各計算装置1bが実際に演算処理を実行する時間とをそろえることができる。
また、各計算装置1bは、送信命令が発生した場合には、発生した送信命令を保留し、送信命令と対応する制御パケットを受信してから送信命令を実行するので、プロセスの実行結果を送信する送信命令を実行するタイミングを同期させることができる。そのため、実施例2に係る並列計算機システムは、新たにプロセスの振り分けを行うことができる計算装置1bをまとめて把握するので、プロセスの振り分けを適切に行い、計算機資源の適切な利用を行うことができる。
つまり、並列計算機システムは、図2に示した計算装置A1D、計算装置D1G、計算装置B1Eの順にプロセスの計算処理が終了した場合にも、各計算装置A〜Dが送信命令を実行するタイミングの同期を行う。そのため、並列計算機システムは、新たなプロセスを振り分ける計算装置を、計算装置A1D、計算装置B1E、計算装置D1Gから選択することができる。
結果として、並列計算機システムは、例えば2つのプロセスを新たに振り分ける場合には、計算装置A1Dと計算装置B1Eとに振り分けることができる。つまり、並列計算機システムは、近傍に設置された計算装置A1Dおよび計算装置B1Eにプロセスを振り分けることができるので、計算機資源を適切に用いることができる。
また、各計算装置1bは、中断命令が発生した場合には、発生した中断命令を保留し、中断命令と対応する制御パケットを受信してから中断命令を実行する。そのため、並列計算機システムは、各計算装置1bが中断命令を実行するタイミングを同期させることができる。
結果として、例えば、並列計算機システムは、各計算装置1bが実行しているプロセスの計算処理を一時的に待機させ、常駐プログラムを実行するタイミングを同期させることができる。そして、並列計算機システムは、各計算装置1bの保守を同時に行い、計算機資源の有効な管理を行うことができる。
ここで、各計算装置1bは、再開命令を実行し、中断されていたプロセスの演算処理を再開する場合には、初期化処理を再度実行する必要がある。そのため、各計算装置1bは、異なったタイミングで再開命令を実行した場合には、他の計算装置1bが初期化処理を実行するまで待機する必要がある。
そこで、実施例2に係る並列計算機システムは、各計算装置1bが再開命令を実行するタイミングを同期させる。具体的には、各計算装置1bは、再開命令が発生した場合には、発生した再開命令を保留し、再開命令と対応する制御パケットを受信してから、保留された再開命令を実行する。
そのため、各計算装置1bは、初期化処理を実行する場合には、プロセスを割り振られた他の計算装置1bを読み出すために長時間の待機を必要としない。結果として、実施例2に係る並列計算機システムは、各計算装置1bのプロセスを取得してから演算処理を終了するまでの時間と、各計算装置1bが実際に演算処理を実行する時間とをそろえることができる。
また、各計算装置1bは、割り込み命令が発生した場合には、発生した割り込み命令を保留し、保留された命令と対応する制御パケットを受信してから、保留された割り込み命令を実行する。そのため、並列計算機システムは、各計算装置1bが割り込み命令を実行するタイミングの同期を行うので、各計算装置1bが実行する計算処理の進行具合をずらすことなく割り込み処理を実行させることができる。
また、並列計算機システムは、各計算装置1bが実行する割り込み処理の優先度をそろえることができるので、各計算装置1bに振り分けられたプロセスごとの優先度による割り込み処理のばらつきを防ぐことができる。結果として。並列計算機システムは、各計算装置1bが実行する計算処理の進行具合をずらすことなく割り込み処理を実行させることができる。
また、各計算装置1は、割り込み防止命令が発生した場合には、発生した割り込み防止命令を保留し、保留された割り込み防止命令に対応する制御パケットを受信してから、割り込み防止命令を実行する。そのため、並列計算機システムは、各計算装置1bが実行する割り込み処理を一度に防止させることができるので、振り分けられたプロセスを最優先で実行させることができる。
また、各計算装置1は、発信命令が発生した場合には、発生した発信命令を保留し、保留した発信命令と対応する制御パケットを受信してから発信命令を実行する。そのため、並列計算機システムは、各計算装置1bがシグナルを通知する発信命令を実行するタイミングを同期させるので、各計算装置1bから送信されたシグナルを受信するタイミングをそろえることができる。結果として、並列計算機システムは、各計算装置1bの状況を同時に把握することができるので、計算機資源の状態を正確に把握することができる。
また、各計算装置1bは、他の計算装置1bから発信されるシグナルに基づいて、プログラムに対する処理の進行具合の制御を行う場合がある。ここで、並列計算機システムは、各計算装置1bが発信命令を実行するタイミングを同期させるので、各計算装置1bは、処理の進行具合を制御するタイミングを同期させることができる。
一方、各計算装置1bは、他の計算装置1bの処理の進行具合を正確に識別するために、各計算装置1bから同時に発信されたシグナルを用いるのが望ましい。結果として、並列計算機システムは、各計算装置1bが実行する制御のタイミングを同期させるので、各計算装置1bが実行する処理の制御を適切に行うことができる。
また、各計算装置1bは、プログラム実行命令が発生した場合には、発生したプログラム実行命令を保留し、保留されたプログラム実行命令と対応する制御パケットを受信してから、プログラム実行命令を実行する。そのため、並列計算機システムは、プログラム実行命令を実行するタイミングを同期させるので、各計算装置1bが新たに実行するプログラム(例えば常駐プログラム)の進行具合をそろえることができる。結果として、並列計算機システムは、各計算装置1bが新たに実行するプログラムに対する処理の進行状態を正確に把握することができるので、並列計算機システムは、計算機資源の把握を正確に行うことができる。
さて、これまで開示の計算装置、並列計算機システムおよび同期プログラムについて説明したが、開示の計算装置、並列計算機システムおよび同期プログラムは上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例3として他の実施例を説明する。
(1)制御パケットについて
実施例2に係る処理部3bは、制御パケットが有している順序番号に応じて、各種処理を実行していた。しかし実施例は、これに限定されるものではなく、並列計算機システムは、制御パケットのヘッダを用いてもよい。例えば、処理部3bは、制御パケットのヘッダのうち、所定の位置のビットが「1」である場合には、生成命令を示しているとしてもよい。
また、実施例2に係る処理部3bは、図4に示すように対応付けられた順序情報と命令とに基づいて、制御パケットが示す命令を判別していた。しかし、実施例は、これに限定されるものではなく、パケット番号と実行する処理とは別の対応を有していてもよい。
(2)制御パケット生成装置について
実施例2に係る制御パケット生成装置4bは、数値交換用ネットワークの最上位に設置された汎用スイッチに接続されてた。しかし、実施例は、これに限定されるものではなく、例えば、図13に示すように、汎用スイッチに制御パケット生成装置4bの機能を持たせた高機能スイッチを数値交換用ネットワークの最上位に設置してもよい。ここで、図13は、高機能スイッチを備えた並列計算機システムを表す図である。
また、実施例2に係る制御パケット生成装置4bは、数値交換用ネットワークの最上位に設置されていた。しかし、実施例は、これに限定されるものではなく、各計算装置1bが制御パケットを同時に受信することができる場合には、数値交換用ネットワークのどこに設置されてもよい。また、制御パケット生成装置4bは、数値交換用ネットワークのみならず、管理ネットワークを用いて、各計算装置1bに制御パケットを送信してもよい。
また、制御パケット生成装置は、ナノ秒、マイクロ秒、ミリ秒、秒、クロック単位など幅広い単位で制御パケットを送信する間隔を動的に変更可能である。また、制御パケット生成装置は、送信する制御パケットごとに異なった時間間隔で送信することができる。
また、実施例1および実施例2に係る制御パケット生成装置4bは、制御パケットを周期的に生成し、各計算装置1bへ送信していた。ここで、制御パケットを生成し送信する周期は限定されるものではなく、ユーザが各計算装置1bおよび並列計算機システムの構成に応じて変化させることができる。
(3)記憶部について
実施例2に係る記憶部5bは、図4に示すように、制御パケットが有する順序番号と処理部3bが実行する命令とを対応づけて記憶していた。しかし、実施例は、これに限定されるものではなく、制御パケットが有する順序番号と処理部3bが実行する処理との対応は、変化するものであってもよい。また、並列計算機システムを使用するユーザーが、例えば管理サーバ11を用いて、制御パケットが有する順序番号と処理部3bが実行する処理との対応を変更してもよい。
(4)プログラム
これまで、ハードウェアを利用して各種の処理を実現する並列計算機システムおよび計算装置1bについて説明したが、開示の計算装置、並列計算機システムおよび同期プログラムはこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現してもよい。
そこで、以下では、図10を用いて、実施例2に示した計算装置1bと同様の機能を有するプログラムを実行するコンピュータの一例を説明する。なお、本実施例は、実施例2に示した計算装置1b以外にも、実施例1に示した各計算装置1と同様の機能も有する。また、図10は、計算装置1および計算装置1bと同様の機能を有するプログラムを実行するコンピュータを説明する図である。
図10に例示されたコンピュータ100は、HDD(Hard Disk Drive)110、RAM(Random Access Memory)150、CPU(Central Processing Unit)140、ROM(Read Only Memory)130をバス170で接続されている。さらにバス170には、数値交換用ネットワークおよび管理用ネットワークと接続する場合に用いられる接続端子部分I/O(Input/Output)160が接続されている。
ROM130には、処理プログラム131および保留プログラム132があらかじめ保存されている。CPU140が処理プログラム131および保留プログラム132をROM130から読み出して実行することによって、図10に示すように、各プログラム131〜132は、処理プロセス141および保留プロセス142として機能するようになる。なお、処理プロセス141は、図1に示した処理部3および図3に示した処理部3bと同等の機能を有する。また、保留プロセス142は、図1に示した保留部5および図3に示した保留部5bと同様の機能を有する。
また、HDD110には、順序番号対応処理テーブル111が記憶されている。順序番号対応処理テーブル111は、実施例2に係る記憶部6bに記憶されていた順序番号および命令と同様の情報を有している。処理プロセス141は、順序番号対応処理テーブル111に記憶された順序番号および命令に基づいて、受信された制御パケットが示す命令を判別する。
また、コンピュータ100は、I/O160を用いて、実施例1および実施例2に係る受信部と同様の機能を有している。なお、各プログラム131〜132は、ROM130に保留されている必要は無く、例えばHDD110に記憶されており、CPU140によってRAM150へ展開され、各プロセス141〜142として機能するようにしてもよい。
また、CPU140は、MCU(Micro Controller Unit)や、MPU(Micro Processing Unit)でもよい。
次に、図11を用いて、コンピュータによって実行されたプログラムが行う処理の流れについて説明する。ここで、図11は、プログラムが行う処理の流れを説明するフローチャートである。プログラムは、実行される命令が発生したことをトリガとして処理を開始する。
まず、保留プロセス142は、発生した命令を保留する(ステップS601)。次に、処理プロセス141は、I/O160にパケットが受信されたかどうかを判別する(ステップS602)。制御プロセス141は、パケットを受信した場合には(ステップS602肯定)、受信されたパケットが制御パケットであるかを判別する(ステップS603)。
次に、処理プロセス141は、受信されたパケットが制御パケットである場合には(ステップS603肯定)、制御パケットと対応付けられた命令があるか順序番号対応処理テーブル111に基づいて判別する(ステップS604)。処理プロセス141は、制御パケットと対応付けられた命令が記憶されていた場合には(ステップS604肯定)、制御パケットと対応付けられた命令と、保留された命令とが同一かを判別する(ステップS605)。
処理プロセス141は、制御パケットと対応付けられた命令と、保留された命令とが同一である場合には(ステップS605肯定)、保留された命令を実行する(ステップS606)。一方、処理プロセス141は、パケットが受信されていない場合には(ステップS602否定)、別のパケットの受信を待つ。また、処理プロセス141は、受信されたパケットが制御パケットではない場合には(ステップS603否定)、別のパケットの受信を待つ。
また、処理プロセス141は、制御用パケットが示す命令が順序番号対応処理テーブル111に記憶されていない場合には(ステップS604否定)、別パケットの受信を待つ。また、処理プロセス141は、制御パケットが示す命令と保留プロセス142によって保留された命令とが同一ではない場合には(ステップS605否定)、別のパケットの受信を待つ。
なお、本実施例で説明した並列計算プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。また、図12に示すように、並列計算機システムは、並列計算プログラムおよび並列計算プログラムを実施するハードウェアを有する計算装置1bを有している。
また、並列計算機システムは、ネットワークカードを用いて、計算装置と各ネットワークを接続している。また、並列計算機システムは、各ネットワークを用いて、制御パケット生成装置、汎用スイッチを接続している。ここで、図12は、並列計算機システムの構成を説明する図である。
並列計算プログラムは、インターネットなどのネットワークを介して配布することができる。また、並列計算プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読取可能な記憶媒体に記憶され、コンピュータによって記憶媒体から読み出されることによって実行することもできる。
1 計算装置
1B 計算装置
1C 計算装置
1D 計算装置A
1E 計算装置B
1F 計算装置C
1G 計算装置D
1b 計算装置
2 受信部
2b 受信部
3 処理部
3b 処理部
4 制御情報生成装置
4b 制御パケット生成装置
5 保留部
5b 保留部
6b 記憶部
7 ノード
8 ノード
9 ノード
10 ノード
11b 管理サーバ
12 制御パケット生成部
13 順序番号付与部
14 制御パケット送信部
20 ネットワークスイッチ
100 コンピュータ
110 HDD(Hard Disc Drive)
130 ROM(Read Only Memory)
140 CPU(Central Processing Unit)
150 RAM(Random Access Memory)
160 I/O(Input/Output)
170 バス

Claims (12)

  1. 配布されるプロセスに対して実行される命令、もしくは、配布されるプロセスに含まれる命令を示す制御情報をネットワーク上の各計算装置に対して送信する制御情報生成装置から、前記制御情報を受信する受信部と
    前記プロセスに対して実行される命令が発生した場合には、もしくは、前記配布されるプロセスに含まれる命令を実行する場合には、当該命令の実行を保留とする保留部と、
    前記保留部に実行を保留された命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された命令を実行する処理部と、
    を備えることを特徴とする計算装置。
  2. 前記制御情報生成装置によって作成される前記制御情報の作成順番を表す順序番号と、前記プロセスに対する命令とを対応付けて記憶する記憶部をさらに備え、
    前記受信部は、前記制御情報生成装置から前記順序番号が付加された前記制御情報を受信し、
    前記処理部は、前記記憶部に記憶された順序番号および命令に基づいて、前記受信部によって受信された前記制御情報が示す命令と、前記保留部に保留された命令とが対応していると判断した場合には、前記保留部に保留された命令を実行することを特徴とする請求項1に記載の計算装置。
  3. 前記保留部は、前記プロセスを実行可能な状態に展開する生成命令が発生した場合には、当該生成処理の命令を一時的に保留し、
    前記処理部は、前記保留部に保留された生成命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された生成命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  4. 前記保留部は、前記プロセスの実行結果を送信する送信命令が発生した場合には、当該送信命令を一時的に保留し、
    前記処理部は、前記保留部に保留された送信命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された送信命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  5. 前記保留部は、前記命令の実行を一時的に中断させる中断命令が発生した場合には、当該中断命令を一時的に保留し、
    前記処理部は、前記保留部に保留された中断命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された中断命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  6. 前記保留部は、前記中断されている命令の実行を再開させる再開命令が発生した場合には、当該再開命令を一時的に保留し、
    前記処理部は、前記保留部に保留された再開命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された再開命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  7. 前記保留部は、実行しているプロセスとは別のプロセスを実行させる割り込み命令が発生した場合には、当該割り込み命令を一時的に保留し、
    前記処理部は、前記保留部に保留された割り込み命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された割り込み命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  8. 前記保留部は、前記割り込み命令を実行させないようにする割り込み防止命令が発生した場合には、当該割り込み防止命令を一時的に保留し、
    前記処理部は、前記保留部に保留された割り込み防止命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された割り込み防止命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  9. 前記保留部は、前記計算装置の状況を示すシグナルを発信する発信命令を取得した場合には、当該発信命令を一時的に保留し、
    前記処理部は、前記保留部に保留された発信命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された発信命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  10. 前記保留部は、前記プロセスに対する命令を一時的に中断し、前記プロセスとは別のプログラムを実行させるプログラム実行命令を取得した場合には、当該プログラム実行命令を一時的に保留し、
    前記処理部は、前記保留部に保留されたプログラム実行命令と前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留されたプログラム実行命令を実行することを特徴とする請求項1もしくは請求項2に記載の計算装置。
  11. プロセスに対して実行される命令を示す制御情報を受信する受信部と、
    前記プロセスに対する命令が発生した場合には、当該命令の実行を保留とする保留部と、
    前記保留部に保留された命令と、前記受信部に受信された前記制御情報が示す命令とが対応する場合には、前記保留部に保留された命令を実行する処理部と、
    を備えることを特徴とする計算装置を複数備え、
    前記制御情報を周期的に生成し、前記制御情報をネットワーク上の各計算装置に対して周期的に同報送信する制御情報生成部を備えることを特徴とする並列計算機システム。
  12. プロセスに対して実行される命令を示す制御情報を受信する受信手順と、
    プロセスに対して実行される命令が発生した場合には、当該命令の実行を保留とする保留手順と、
    前記保留手順に保留された命令と、前記受信手順に受信された前記制御情報が示す命令とが対応する場合には、前記保留手順に保留された命令を実行する処理手順と、
    をコンピュータに実行させることを特徴とする同期プログラム。
JP2011520710A 2009-06-30 2009-06-30 計算装置および並列計算機システム Expired - Fee Related JP5590032B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/062015 WO2011001519A1 (ja) 2009-06-30 2009-06-30 計算装置、並列計算機システムおよび同期プログラム

Publications (2)

Publication Number Publication Date
JPWO2011001519A1 true JPWO2011001519A1 (ja) 2012-12-10
JP5590032B2 JP5590032B2 (ja) 2014-09-17

Family

ID=43410617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011520710A Expired - Fee Related JP5590032B2 (ja) 2009-06-30 2009-06-30 計算装置および並列計算機システム

Country Status (4)

Country Link
US (1) US20120096245A1 (ja)
EP (1) EP2450795A1 (ja)
JP (1) JP5590032B2 (ja)
WO (1) WO2011001519A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6770935B2 (ja) 2017-07-03 2020-10-21 日立オートモティブシステムズ株式会社 車両制御装置用の検証装置
US20190047581A1 (en) * 2017-08-14 2019-02-14 GM Global Technology Operations LLC Method and apparatus for supporting mission-critical applications via computational cloud offloading

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0199757B1 (en) * 1984-11-05 1990-02-28 Hughes Aircraft Company Instruction flow computer
US5590380A (en) * 1992-04-22 1996-12-31 Kabushiki Kaisha Toshiba Multiprocessor system with processor arbitration and priority level setting by the selected processor
JPH08106430A (ja) * 1994-10-05 1996-04-23 Hitachi Ltd データ転送方法
JP3163237B2 (ja) * 1995-09-28 2001-05-08 株式会社日立製作所 並列計算機システムの管理装置
JP3573546B2 (ja) * 1995-10-27 2004-10-06 富士通株式会社 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
US5911057A (en) * 1995-12-19 1999-06-08 Texas Instruments Incorporated Superscalar microprocessor having combined register and memory renaming circuits, systems, and methods
JP3402566B2 (ja) * 1997-03-18 2003-05-06 株式会社日立製作所 マルチプロセッサ
JPH10269185A (ja) * 1997-03-25 1998-10-09 Hitachi Ltd バリア同期方法
JP2000181890A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd マルチプロセッサ交換機及びその主プロセッサ切替方法
JP2001142852A (ja) 1999-11-12 2001-05-25 Natl Inst Of Advanced Industrial Science & Technology Meti 高速並列計算用同期及び通信制御装置
JP2002041492A (ja) * 2000-07-26 2002-02-08 Furuno Electric Co Ltd マルチプロセッサ装置
US7103628B2 (en) * 2002-06-20 2006-09-05 Jp Morgan Chase & Co. System and method for dividing computations
JP4376692B2 (ja) * 2004-04-30 2009-12-02 富士通株式会社 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ
JP2006086718A (ja) * 2004-09-15 2006-03-30 Fujitsu Ltd アクセスルータ及び端末装置
US8205205B2 (en) * 2007-03-16 2012-06-19 Sap Ag Multi-objective allocation of computational jobs in client-server or hosting environments
JP5018252B2 (ja) * 2007-06-06 2012-09-05 株式会社日立製作所 デバイス割り当て変更方法
JP2009089019A (ja) * 2007-09-28 2009-04-23 Fujitsu Ltd マルチキャスト配信制御装置、コンピュータプログラム、マルチキャスト配信制御システム及びマルチキャスト配信制御方法

Also Published As

Publication number Publication date
WO2011001519A1 (ja) 2011-01-06
EP2450795A1 (en) 2012-05-09
JP5590032B2 (ja) 2014-09-17
US20120096245A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
EP3716577A1 (en) Cloud service migration method and apparatus, and electronic device
JP5793690B2 (ja) インタフェース装置、およびメモリバスシステム
JP2019522293A (ja) アクセラレーション・リソース処理方法及び装置
CN107025205A (zh) 一种分布式系统中的训练模型的方法及设备
Nemati et al. Partitioning real-time systems on multiprocessors with shared resources
CN111367630A (zh) 一种基于云计算的多用户多优先级的分布式协同处理方法
KR20130115553A (ko) 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
US20190087236A1 (en) Resource scheduling device, system, and method
CN104102548A (zh) 任务资源调度处理方法和系统
JP5453825B2 (ja) プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法
JP5176230B2 (ja) 計算機システム、計算機制御方法及び計算機制御プログラム
US20140019793A1 (en) Strictly increasing virtual clock for high-precision timing of programs in multiprocessing systems
US20170324678A1 (en) Network bandwidth sharing in a distributed computing system
WO2014047902A1 (zh) 负载均衡方法、装置、系统及计算机可读介质
JP2008263436A (ja) 負荷分散装置及びネットワーク装置
JP2016131298A (ja) パス計算装置およびパス計算方法
JP5590032B2 (ja) 計算装置および並列計算機システム
JP6610398B2 (ja) 並列処理装置及び通信制御方法
TWI442323B (zh) 用於多核心/眾核心的工作排程與分配管理架構及其方法
JP5212743B2 (ja) 通信方法
JP2005316679A (ja) 並列演算処理装置
Kumar et al. An algorithm for online reconfiguration of resource reservations for hard real-time systems
CN106357429B (zh) 一种数据处理方法及系统
CN104468701A (zh) 一种用于异构存储集群系统的i/o服务质量维护方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140714

R150 Certificate of patent or registration of utility model

Ref document number: 5590032

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees