JP2011159165A - 並列計算機システム、並列計算機システムの制御方法及び制御プログラム - Google Patents

並列計算機システム、並列計算機システムの制御方法及び制御プログラム Download PDF

Info

Publication number
JP2011159165A
JP2011159165A JP2010021423A JP2010021423A JP2011159165A JP 2011159165 A JP2011159165 A JP 2011159165A JP 2010021423 A JP2010021423 A JP 2010021423A JP 2010021423 A JP2010021423 A JP 2010021423A JP 2011159165 A JP2011159165 A JP 2011159165A
Authority
JP
Japan
Prior art keywords
information
output
program
information processing
storage device
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.)
Withdrawn
Application number
JP2010021423A
Other languages
English (en)
Inventor
Jun Moroo
潤 師尾
Masahiko Yamada
雅彦 山田
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
Priority to JP2010021423A priority Critical patent/JP2011159165A/ja
Priority to US13/008,087 priority patent/US20110191638A1/en
Priority to EP11152262.9A priority patent/EP2354944A3/en
Publication of JP2011159165A publication Critical patent/JP2011159165A/ja
Withdrawn legal-status Critical Current

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

Abstract

【課題】並列計算機システムにおける計算処理時間の遅延を少なくする。
【解決手段】第1のプログラムを第1の領域に格納する第1の記憶装置と、第1のプログラムの実行に関する第1の情報を第1の記憶装置の第2の領域に格納するとともに、第1の情報を出力する場合、ログ出力通知を出力する第1の演算処理装置を有する第1の情報処理装置と、第2のプログラムを第3の領域に格納する第2の記憶装置と、第2のプログラムの実行に関する第2の情報を第2の記憶装置の第4の領域に格納するとともに、第1の演算処理装置からのログ出力通知を受信した場合、第2の情報を出力する第2の演算処理装置を有する第2の情報処理装置と、第3の記憶装置と、第1の情報処理装置から出力された第1の情報及び第2の情報処理装置から出力された第2の情報を第3の記憶装置に格納する第3の演算処理装置を有する第3の情報処理装置とを有する並列計算機システムが提供される。
【選択図】図7

Description

本発明は、並列計算機システム、並列計算機システムの制御方法及び制御プログラムに関する。
近年、構造解析や気象予測等の大規模な計算処理を実行するために、複数の情報処理装置を有するスーパーコンピュータ等の並列計算機システムが開発されている。並列計算機システムは、互いにネットワーク接続された複数の情報処理装置が並列に計算を実行することで、一定時間内に莫大な演算処理を実行することができる。
並列計算機システムでは、計算処理は分割されて、各情報処理装置に割り当てられる。各情報処理装置は、割り当てられた処理を、他の情報処理装置と同期をとりながら、並列して実行する。そして、各情報処理装置の計算処理の結果は、他の情報処理装置の計算処理に利用される。
情報処理装置の多くは、演算結果をハードディスク(HDD:Hard Disk Drive)に格納して、計算結果を永続的に記憶する必要がない。そのため、並列計算機システムは、ハードディスク費用の削減及びハードディスク管理の削減のため、ハードディスクを有さないディスクレス情報処理装置を含む。
並列計算機システムは、ハードディスクを備えるディスク付き情報処理装置も含む。ディスク付き情報処理装置は、並列計算機システムの計算処理結果をハードディスクに格納するとともに、ディスクレス情報処理装置が実行するプログラムを格納する。ディスク付き情報処理装置は、「イメージファイル」をディスクレス情報処理装置に送信する処理を行う。なお、「イメージファイル」は、ファイルシステムの内容と構造を含むファイルをいう。ディスクレス情報処理装置は、ディスク付き情報処理装置から受信したイメージファイルを、自己が有する主記憶装置としてのメモリに格納し、イメージファイルに含まれるプログラムを実行することで、割り当てられた計算処理を実行する。
ディスクレス情報処理装置は、計算処理に関連する情報をメモリに格納する場合がある。このような関連情報として、データログがある。データログは、各ディスクレス情報処理装置の計算時間等が記録されたデータであり、例えば、並列計算機システムの使用時間や課金の算出に使用される。一般に、ディスクレス情報処理装置のメモリの記憶容量はハードディスクの記憶容量と比較して少ない。そのため、ディスクレス情報処理装置は、メモリ上に一定量のデータログを格納すると、メモリに格納されたデータログを、ディスク付き情報処理装置に送信して、メモリからデータログを開放する必要がある。
特開平7−201190号公報 特開平8−77043号公報 特開平9−237207号公報
しかしながら、ディスクレス情報処理装置から、ディスク付き情報処理装置にデータログを送信する処理によって、ディスクレス情報処理装置に割り当てられた計算処理が遅延する。また、各ディスクレス情報処理装置は、互いに同期をとりながら演算処理を実行するために、あるディスクレス情報処理装置の計算処理の遅延が、他のディスクレス情報処理装置の計算処理を遅延させる場合がある。そして、異なるタイミングで計算処理の遅延が生じると、遅延時間が累積されることで、並列計算機システムの処理時間全体を遅延させることになる。近年、大規模な並列計算機システムは、数万台の情報処理装置を有するものもあるため、1台の情報処理装置において短時間の遅延時間であっても、大規模な並列計算機システムにとって大きな遅延時間となることがある。
開示の並列計算機システム、並列計算機システムの制御方法及び制御プログラムは、計算処理時間の遅延を少なくすることを目的とする。
開示の情報処理装置は、第1のプログラムを第1の領域に格納する第1の記憶装置と、第1のプログラムの実行に関する第1の情報を第1の記憶装置の第2の領域に格納するとともに、第1の情報を出力する場合、ログ出力通知を出力する第1の演算処理装置を有する第1の情報処理装置と、第2のプログラムを第3の領域に格納する第2の記憶装置と、第2のプログラムの実行に関する第2の情報を第2の記憶装置の第4の領域に格納するとともに、第1の演算処理装置からのログ出力通知を受信した場合、第2の情報を出力する第2の演算処理装置を有する第2の情報処理装置と、第3の記憶装置と、第1の情報処理装置から出力された第1の情報及び第2の情報処理装置から出力された第2の情報を第3の記憶装置に格納する第3の演算処理装置を有する第3の情報処理装置と、を有する。
開示の並列計算機システム、並列計算機システムの制御方法及び制御プログラムは、計算処理時間の遅延を少なくすることができる。
並列計算機システムの構成の一例を示す図である。 情報処理装置のハードウェア構成の一例を示す図である。 プロセッサコアの構成の一例を示す図である。 通信制御部の一例を示す図である。 計算ノードの主記憶装置の記憶領域の一例を示す図である。 複数の計算ノードによる計算処理及び通信処理の一例を示す図である。 複数の計算ノードにより実行されるログ出力処理の一例を示すタイムチャートである。 複数の計算ノードにより実行されるログ出力処理の一例を示すタイムチャートである。 データログ出力後に行われる計算ノード間の同期処理の一例を示す図である。 ログサイズ容量によるデータログ出力処理フローの一例を示す図である。 エラー検出によるデータログ出力処理フローの一例を示す図である。
以下、図面を参照して、開示の並列計算機システム、並列計算機システムの制御方法及び制御プログラムの一実施形態を説明する。
<並列計算機システムの構成>
図1は、並列計算機システムの構成の一例を示す図である。並列計算機システム1000は、複数の計算ノード及びIOノード(Input Output node:入出力ノード)を有する。100a、100bは、計算処理を行う計算ノードの例である。100cは、IOノードの例である。計算ノード100a、100bは、外部記憶装置を有さない情報処理装置であり、IOノード100cは、ハードディスク等の外部記憶装置を有し、入出力処理を行う情報処理装置である。情報処理装置のハードウェア構成の一例は、図2を用いて後述する。複数の計算ノードは互いに通信経路としてのネットワーク180を介して接続する。
なお、IOノードの数は、所定数の計算ノード毎に配置される。そのため、計算ノードからIOノードに対してデータの書込処理が集中した場合でも、計算ノードに書込待ちの遅延を生じさせない。
なお、並列計算機システム1000の計算ノード及びIOノードの数は、図面に示される数に限定されず、数十〜数十万のノード数であってもよい。
<情報処理装置のハードウェア構成>
図2は、並列計算機システムに含まれる情報処理装置のハードウェア構成の一例を示す図である。図2に示す情報処理装置100は、演算処理装置110、主記憶装置120、通信制御部130、入出力制御部140、外部記憶装置150、及びドライブ装置160を有する。
なお、情報処理装置100が、上記構成要素のうち外部記憶装置150もドライブ装置160も含まない場合、そのような情報処理装置は、図1に示す「計算ノード」に相当する。情報処理装置100が、外部記憶装置150又はドライブ装置160若しくはそれら両方を含む場合、そのような情報処理装置は、図1に示す「IOノード」に相当する。
[主記憶装置]
主記憶装置120は、例えば、DRAM(Dynamic Random Access Memory)で構成されるメインメモリ。なお、主記憶装置120は、プログラム、データ、及びデータログ等を格納する。主記憶装置120に格納されるプログラムは、例えば、基本ソフトとしてのOS(Operating System)、後述する計算処理機能をコーディングした計算処理用のプログラム、後述するデータログ出力機能をコーディングしたデータログ出力用のプログラムがある。なお、以下の記載におけるプログラムは、特に名称を特定しない場合は、OS、計算処理用のプログラム、データログ出力用のプログラムの少なくとも1つを意味する。
データログは、タイムスタンプ、計算ノードが実行しているプログラム名称、プロセッサコア(後述)の使用率、プロセッサコアがプログラムを実行することによって生じたイベント等が記録されたデータである。データログは、例えば、並列計算機システム1000の使用時間の算出に使用される。データログを主記憶装置120に格納する機能は、演算処理装置110が計算処理用のプログラムを実行することにより、実現される。
[外部記憶装置]
外部記憶装置150は、磁気ディスクを有するディスクアレイ、又はフラッシュメモリを用いたSSD(Solid State Drive)等である。外部記憶装置150は、主記憶装置120に格納されるプログラム及びデータを記憶することができる。上記したように外部記憶装置150は、計算ノードではなく、IOノードが備える装置である。外部記憶装置150に記憶されたプログラム及びデータは、イメージファイルとしてIOノードから計算ノードに送信される。
[ドライブ装置]
ドライブ装置160は、例えば、フロッピー(登録商標)ディスクやCD−ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)などの記憶媒体170を読み書きする装置である。ドライブ装置160は、記憶媒体170を回転させるモータや記憶媒体170上でデータを読み書きするヘッド等を含む。なお、記憶媒体170は、上記した主記憶装置120に格納されるプログラムを、記憶することができる。ドライブ装置160は、ドライブ装置160にセットされた記憶媒体170からプログラムを読み出す。演算処理装置110は、ドライブ装置160により読み出されたプログラムを、主記憶装置120及び/又は外部記憶装置150に格納する。
[演算処理装置]
図2に示す演算処理装置110は、演算を行うプロセッサコア10〜40、L2(Level2)キャッシュメモリ(2次キャッシュメモリ)本体の制御を行うL2キャッシュコントローラ50、L2キャッシュメモリ本体であるL2キャッシュRAM(Random Access Memory)60、及びメモリアクセス制御部70を有する。演算処理装置110は、入出力制御部140を介して、通信制御部130、外部記憶装置150、ドライブ装置160に接続される。L2キャッシュコントローラ50及びL2キャッシュRAM60を含み、L2キャッシュメモリと称される。
演算処理装置110は、主記憶装置120に記憶されたプログラムを実行することで、主記憶装置120にアクセスし、アクセスされたデータを演算する装置である。そして、演算処理装置110は、演算結果のデータを、主記憶装置120に格納する。演算処理装置110は、例えば、演算処理装置としてのCPU(Central Processing Unit)である。演算処理装置110は、プログラムを実行することで、後述する計算処理機能並びにログ出力処理機能を実現する。
[演算処理装置:プロセッサコア]
図3は、プロセッサコアの構成の一例を示す図である。プロセッサコアは、演算処理装置110の演算処理機能を実現する装置である。プロセッサコア10は、命令制御部(IU:Instruction Unit)12、命令実行部(EU:Execution Unit)14、L1(Level1)キャッシュ(1次キャッシュ)コントローラ16、L1キャッシュRAM18を有する。なお、図3では、プロセッサコア10について説明するが、プロセッサコア10と同じ機能を、図2に示す他のプロセッサコア20〜40も有する。なお、図2に示されるプロセッサコアの個数は、4個であるが、この個数に制限されることなく、情報処理装置100は、4個以上または4個未満のプロセッサコアを有してもよい。
命令制御部12は、L1キャッシュRAM18から読み出した命令をデコードする。そして、命令制御部12は、命令実行に使用されるオペランドを格納するソースレジスタ及び当該命令実行の結果を格納するディスティネーションレジスタを特定するレジスタアドレスを、「演算制御信号」として命令実行部14に供給する。デコードする命令は、例えば、L1キャッシュRAM18へのロード命令、ストア命令を含むメモリアクセス命令等である。命令制御部12は、データ要求信号をL1キャッシュコントローラ16に供給することで、L1キャッシュRAM18から命令を読み出す。
命令実行部14は、ロード命令又はストア命令を含むメモリアクセス命令等をデコードしたデコード結果を、「データ要求信号」としてL1キャッシュコントローラ16に供給する。L1キャッシュコントローラ16は、ロード命令に従って、データを命令実行部14の内部にある、レジスタアドレスで特定されるレジスタに供給する。命令実行部14は、命令実行部14の内部にある、レジスタアドレスで特定されるレジスタからデータを取り出し、デコードした命令に従って演算を実行する。命令実行部14は、命令の実行を終了すると、演算完了信号を命令制御部12に供給して、次の演算制御信号を受け取る。
プロセッサコア10のL1キャッシュコントローラ16は、キャッシュデータ要求信号CRQを、L2キャッシュコントローラ50に供給する。そして、プロセッサコア10は、完了通知であるキャッシュデータ応答信号CRS、及び、データ又は命令を、L2キャッシュコントローラ50から受け取る。L1キャッシュコントローラ16は、命令制御部12及び命令実行部14と独立して動作することができる。そのため、命令制御部12及び命令実行部14が所定の処理を実行中に、L1キャッシュコントローラ16は、L2キャッシュコントローラ50のデータ又は命令のアクセスを、命令制御部12及び命令実行部14と独立して行うことができる。
[演算処理装置:L2キャッシュメモリ]
図2に示すL2キャッシュコントローラ50は、L1キャッシュRAM18及び主記憶装置120へのデータの読み出し(ロード)要求又は書き込み(ストア)要求を行い、又は、L2キャッシュRAM60へのデータのロード又はストアを行う。L2キャッシュコントローラ50は、例えば、MESI(Modified Exclusive Shared Invalid)プロトコルに従って、L1キャッシュメモリ又は主記憶装置120に記憶されたデータと、L2キャッシュメモリに保持されたデータとの整合性を維持するように、データのロード又はストアを行う。例えば、MESIプロトコルでは、データは、「M(Modified:変更)」、「E(Exclusive:排他)」、「S(Share:共有)」、「I(Invalidate無効)」の4つの状態情報とともに、L1キャッシュメモリ等に格納される。
[演算処理装置:バスインタフェース]
バスインタフェース51は、入出力制御部140に演算処理装置110とのインタフェースを提供する回路である。通信制御部130が、後述するDMA(Direct Memory Access)を実行する場合は、通信制御部130は、バスインタフェース51並びにメモリアクセス制御部70を介して主記憶装置120からデータを取得又は出力する。
[演算処理装置:メモリアクセス制御部]
メモリアクセス制御部70は、主記憶装置120からのデータのロード、主記憶装置120へのデータのストア、及び主記憶装置120のリフレッシュなどの動作を制御する回路である。メモリアクセス制御部70は、L2キャッシュコントローラ50から受け取ったロード命令又はストア命令に従って、主記憶装置120に対して、ロード又はストアを行う。
[入出力制御部]
入出力制御部140は、演算処理装置110が接続されるフロントサイドバス(FSB:Front Side Bus)(「フロントサイドバス」の代わりに「CPUローカルバス」でも可である)と、通信制御部130、外部記憶装置150、及びドライブ装置160が接続されるIOバス(Input Output bus:入出力バス)とを繋ぐバスブリッジ回路である。入出力制御部140は、例えば、AGP(Accelerated Graphics Port)バス又はPCI Express(Peripheral Component Interconnect Express)バスなどの規格に従って機能するブリッジ回路である。
[通信制御部]
通信制御部130は、通信経路としてのネットワーク180と接続し、データを送受信する装置であり、例えば、NIC(Network Interface Controller)である。通信制御部130は、DMA方式によるデータ転送、又は、PIO(Programmed Input Output)方式によるデータ転送などを行う。
[通信制御部:DMA方式のデータ転送]
図4は、通信制御部の一例を示す図である。通信制御部130は、メモリ131、CPU132、コマンドキュー134、及び送受信バッファメモリ136を有する。通信制御部130がDMA方式で動作する場合、通信制御部130は、プロセッサコア10とは独立して、主記憶装置120に直接データを送信又は、主記憶装置120からデータを取得する。コマンドキュー134は、プロセッサコア10から転送されたコマンドを保持する。コマンドには、データ転送の転送先メモリのメモリアドレス、転送元メモリのメモリアドレスが特定される。
CPU132は、メモリ131に格納された通信プログラムを実行して、所定のプロトコルに従う通信処理機能を実現する。CPU132は通信処理機能を実現することで、コマンドキュー134に保持されるコマンドを読み取り、転送の主記憶装置のメモリアドレスから転送の主記憶装置のメモリアドレスにデータを転送する処理を行う。例えば、CPU132は、コマンドに含まれるメモリアドレスで特定される主記憶装置120のメモリ上の位置からデータを取得し、他の計算ノード又はIOノードに取得したデータを転送する。または、CPU132は、送受信バッファメモリ136に保持されるデータを取得して、コマンドに含まれるメモリアドレスで特定される主記憶装置120のメモリ上の位置にデータを格納する。送受信バッファメモリ136は、他の計算ノードから送信されたデータを保持し、又は、通信制御部130が送信するデータを保持する。
DMA方式のデータ伝送を行う場合、プロセッサコア10は、コマンドキュー134にコマンドを転送する処理と、データ転送の完了を受信するとき生じる割り込み処理を行う。また、通信制御部130が、主記憶装置120にメモリアクセスしている時、主記憶装置120にメモリアクセスを行おうとするプロセッサコア10との間で競合が発生する。そのため、計算ノードが主記憶装置120からデータを他の計算ノードやIOノードに送信する場合、プロセッサコア10が実行する計算処理に割り込みを生じ、又は、プロセッサコア10が実行する主記憶装置120へのアクセス処理に遅延を生じさせる。そのため、通信制御部130によるDMA方式のデータ転送処理は、プロセッサコア10の計算処理を遅延させる。
[通信制御部:PIO方式のデータ転送]
PIO方式のデータ転送では、CPU132は、送受信バッファメモリにデータが格納されると、プロセッサコア10にデータが受信された旨を通知する。プロセッサコア10は、データが受信された旨の通知を受け取ると、計算処理を中止して、送受信バッファメモリ136に保持される受信データを主記憶装置120に転送する処理を実行する。また、主記憶装置120からのデータ送信では、プロセッサコア10は主記憶装置120のメモリアドレスを指定して、データを読み出し、送受信バッファメモリ136にデータを格納する。このように、PIO方式のデータ転送は、DMA方式の処理よりもプロセッサコア10の行う処理が多いため、DMA方式よりも長い時間の計算処理の遅延を生じる。
<計算ノードの機能構成>
[計算ノードの記憶領域]
図5は、計算ノードの主記憶装置120の記憶領域の一例を示す図である。図5に示す記憶領域の一例では、主記憶装置120は、ログ記憶領域210と、プログラム保存領域220とに分けられる。ログ記憶領域210には、データログが記憶される。プログラム保存領域220には、プログラム及びデータが記憶される。ログ記録ポインタ230には、ログ記憶領域210に格納されたログの先頭アドレスが格納される。なお、先頭アドレスとは、タイムスタンプが最も新しいログが記録されたアドレスであり、例えば、メモリ空間に降順又は昇順でログが連続的に記憶された場合、メモリ空間の末端のメモリアドレスである。
[計算ノードの計算処理]
図6は、複数の計算ノードによる計算処理及び通信処理の一例を示す図である。図6に示す計算ノード100a、100bは、図1を用いて説明した計算ノードに相当する。IOノード100cは、図1を用いて説明したIOノードに相当する。図6に示す計算ノード100a、100bの主記憶装置120a、120bは、それぞれ図5に示した主記憶装置の記憶領域を有する。
計算ノード100a、100bのプロセッサコアは、主記憶装置120a、10b内に格納されるプログラムを実行することで、計算ノード100a、100bに割り当てられる計算処理を実行する。計算ノード100bに割り当てられる計算処理は、他の計算ノード100aで実行される計算処理の終了に同期して開始するように制御される。そのように、同期をとるメッセージ通信として、MPI(Message Passing Interface)を用いても良い。MPIでは、例えば、各ノードで実行される処理の開始又は処理の終了を、他のノードで実行される処理の開始又は終了と同期付けるためのメッセージが規定される。なお、このような複数の計算ノードでそれぞれ実行されている計算処理を同期させるメッセージ通信は、MPIの関数に含まれるバリア同期関数である、MPI_Barrierによって行うことができる。
図6に示される例では、計算ノード100bは、計算ノード100aによる計算処理の計算結果C1の受信に同期して、計算処理を開始するように制御される。
[計算ノードのログ出力処理]
計算ノード100a、100bのプロセッサコアは、主記憶装置120a、120b内に格納されるプログラムを実行することで、当該プログラムの実行に関するログ出力処理を実行する。1は、計算ノード100aからIOノード100cに送信されるデータログである。N1は、計算ノード100aから計算ノード100bに送信されるログ出力通知である。
[ログサイズ容量による計算ノードのログ出力処理]
計算ノード100aのプロセッサコアは、プログラム保存領域220a内に格納されるプログラムの実行に伴う計算結果C1を、プログラム保存領域220aに格納し、プログラムの実行に関するデータログを、ログ記録領域210aに格納する。計算ノード100aのプロセッサコアは、プログラム保存領域220a内に格納されるプログラムを実行して、ログ記録領域210aに格納されたデータログの容量を監視する。この監視処理は、例えば、計算ノード100aのプロセッサコアは、ログ記録ポインタ230aに格納されるメモリアドレスを監視して、ログ記録ポインタ230aのメモリアドレスが所定のメモリアドレスと一致した場合に、データログの容量が所定容量に達したと判断してもよい。データログの容量が所定容量を超えた場合、計算ノード100aは、通信制御部を用いてデータログ1をIOノード100cに出力する。
データログ1を出力した計算ノード100aは、データログ出力とともに、ログ出力通知N1をネットワークに接続された他の計算ノード100bに送信する。
計算ノード100bも、プログラム保存領域220b内に格納されるプログラムの実行に伴う計算結果C2を、プログラム保存領域220bに格納し、プログラムの実行に関するデータログを、ログ記録領域210bに格納する。そして、計算ノード100bは、計算ノード100aからのログ出力通知N1を受信した場合、プログラムの実行を停止するとともに、データログ2をIOノード100cに対して出力する。
このように、複数の計算ノードのうち一の計算ノード100aでデータログの出力が生じると、他の計算ノード100bもデータログの出力を行うように動作する。そのため、並列計算機システム1000内部の計算ノードは、いずれかの計算ノードでデータログの出力が生じると、他の計算ノードも同じタイミングでデータログを出力する。
[エラー検出による計算ノードのデータログ出力処理]
計算ノード100aのプロセッサコアは、プログラム保存領域220aに格納されたプログラムの実行においてエラーが発生した場合、主記憶装置120aの内容とともに、データログ1を、通信制御部130を介してIOノードに出力してもよい。これは、いわゆる「メモリダンプ」と呼ばれる処理であり、計算ノードのシステム障害の原因解析のため、障害が発生したときの主記憶装置120a上のデータをディスクに保存する処理である。計算ノード100aは、外部記憶装置を有さないため、主記憶装置120aの内容を、IOノード100cに出力する。メモリダンプによるデータログ1出力とともに、計算ノード100aは、ログ出力通知N1を計算ノード100bに出力する。
なお、メモリダンプは、OSによる機能であるため、上記したようにデータログ出力機能用のプログラム実行の結果によるものではない。データログ出力機能用のプログラムは、メモリダンプが生じると、他の計算ノードにログ出力通知N1を送信する機能をプロセッサコアに実現させる。このように、メモリダンプによるデータログ1自体の出力はOSの実行によりなされるため、メモリダンプ時のデータログ1の出力プログラムを別途用意しなくてもよい。
計算ノード100bのログ出力通知N1受信後の動作は、上記計算ノードによるデータログ出力処理と同じである。
図7及び図8は、複数の計算ノードにより実行されるデータログ出力を示すタイムチャートである。図7及び図8を用いて、図6のログ出力処理のタイムチャートを説明する。
[各計算ノードがランダムにデータログを出力するケース]
図7に示すタイムチャート301は、各計算ノード100a、100b、...、100nがランダムにデータログを出力するケースを示す。データログの出力311、313、31は、ログ記録領域に所定量のデータログが蓄積したケース、又は、異常発生によりメモリダンプが生じたケースによって生じる。
図4を用いて、通信制御部のデータ転送を説明したように、DMA方式でもPIO方式でも、データ転送は、プロセッサコアの計算処理Pa1、Pa2、...、Panに割り込み処理を生じる。そのため、ログ出力311、313、...、31nによって、それぞれ遅延332、334、...、33nが生じる。また、ログ出力311、313、...、31nによって、それぞれデータログa1、a2、...、anの転送が生じる。
計算ノード100aは、計算処理Pa1を終了すると、計算結果Ca1を計算ノード100bに送信する。T312に示されるように、計算ノード100bは、計算ノード100aによる計算処理の計算結果Ca1の受信に同期して、計算処理Pa2を開始する。
計算ノード100nは、計算ノード100nの1つ先に計算処理を実行する計算ノードの計算結果に同期して実行される後続処理に関係する任意の計算ノードである。T322に示されるように、計算ノード100nは、計算ノード100nの1つ先に計算処理を実行する計算ノードによる計算処理の計算結果の受信により、計算処理Panを開始する。
このように、複数の計算ノード100a〜100nは、データログ出力による遅延332、334、...、33nがそれぞれ異なるタイミングで生じる場合、遅延332、334、...、33nを加算した遅延時間が、並列計算機システム1000の計算処理時間の遅延となる。
[計算ノードが他の計算ノードのデータログの出力に同期してデータログを出力するケース]
図7に示すタイムチャート351は、各計算ノード100b、...、100nが、ある計算ノード100aのデータログ出力に同期してデータログを出力するケースを示す。データログの出力361は、ログ記録領域に所定量のデータログが蓄積したケース、又は、異常発生によりメモリダンプが生じたケースによって生じる。データログの出力363、36は、ログ出力通知367を各計算ノード100b、...、100nが計算ノード100aから受信することによって生じる。
計算ノード100aは、データログの出力361とともに、ログ出力通知367を他の計算ノード100b〜100nに通知する。他の計算ノード100b〜100nが、ログ出力通知367を受け取ると、計算ノード100b〜100nは、自ノードが有する主記憶装置からデータログを出力する。
計算ノード100aの通信制御部は、データログの転送b1を実行する。計算ノード100aは、計算処理Pb1を終了すると、計算結果Cb1を計算ノード100bに送信する。
T362に示されるように、計算ノード100bは、計算ノード100aによる計算処理の計算結果Cb1の受信に同期して、計算処理Pb2を開始する。計算ノード100nは、計算ノード100nの1つ先に計算処理を実行する計算ノードの計算結果に同期して実行される後続処理に関係する任意の計算ノードである。T372に示されるように、計算ノード100nは、計算ノード100nの1つ先に計算処理を実行する計算ノードによる計算処理の計算結果の受信に同期して、計算処理Pbnを開始する。
図4を用いて説明したように、DMA方式でもPIO方式でも、データ転送は、プロセッサコアの計算処理Pa1(図7の301参照)、Pb1(図7の351参照)に割り込み処理を生じる。そのため、ログ出力311によって、遅延332が、ログ出力361によって、遅延362がそれぞれ生じる。同様に、ログ出力363、364によって、遅延365、遅延366がそれぞれ生じる。タイムチャート351に示すように、ログ出力363、364により生じる遅延365、遅延366は、遅延362に隠蔽される。
80は、タイムチャート301の並列計算機システム1000の計算処理時間と、タイムチャート351の並列計算機システム1000の計算処理時間との差を示したものである。タイムチャート351の計算処理時間の方が、タイムチャート301の計算処理時間より短くなることがわかる。タイムチャート351に示すように、計算ノード100aで生じたログ出力361に同期して、他の計算ノードにもログ出力をさせることで、データログ出力による遅延362、365、366は、互いに重畳する。言い換えれば、タイムチャート301で説明したように遅延が累積されず、各計算ノードの遅延が隠蔽されて、並列計算機システム1000の計算処理時間の遅延時間を短縮できる。
図8に示すタイムチャート371は、タイムチャート351と同様に、各計算ノード100b〜100nが、ある計算ノード100aのデータログ出力に同期してデータログを出力するケースを示す。ただし、タイムチャート371に示される処理は、計算ノードがデータログを出力した後、他の計算ノードと同期して、計算ノードに割り当てられた計算処理を開始する同期処理372をする点において、タイムチャート351に示される処理と異なる。
各計算ノードは、データログ出力前は、例えば、MPIに従うメッセージを送受信しながら、各計算ノードが並列して進めている処理の同期をとっている。データログ出力は、並列して実行される計算処理に対する割り込みで処理される。タイムチャート301、351に示すデータログ出力処理は、データログの量が各計算ノードで異なる等の理由により、計算処理に対する遅延は、計算ノード毎に異なる。タイムチャート301に示す遅延は、各計算ノード別個に起こるが、タイムチャート351に示す遅延は、ログ出力361をトリガとして、他の計算ノードもデータログ出力するので、複数の計算ノード間の同期を一度に行うことができる。そこで、タイムチャート371では、同期処理372により各計算ノードが同期後に計算処理の開始を行うことで、データログ出力による遅延が並列して進めている計算処理に影響を与えないようにする。
図9は、データログ出力後に行われる計算ノード間の同期処理の一例を示す図である。計算ノードは、データログ出力用プログラムを実行することにより計算ノード間の同期処理を実現する。データログ出力後の計算ノード間の同期処理の手法の一例としてバタフライバリア同期を用いる。バタフライバリア同期は、各計算ノードの計算処理に同期のための同期バリアを設けておき、全ての計算ノードによる計算処理がこの同期バリアに到達したときに、各プロセッサが同期バリアを超えて次の計算処理に進むことを許す方式である。図9に示す例は、個の計算ノード100a〜100hが実行するバタフライバリア同期である。図9では、各計算ノードが交換するメッセージを点線の矢印で示した。
図9に示される計算ノード100a〜100hは、まず、隣同士の計算ノード間でメッセージを送信することで、第1のバリア同期処理191を実行する。次に、計算ノード100a〜100hは、メッセージの交換が終了した隣の計算ノードの組の対応する計算ノードとメッセージを交換し、第2のバリア同期処理192を実行する。さらに、計算ノード100a〜100hは、メッセージの交換が終了した隣の計算ノードの組の対応する計算ノードとメッセージを交換し、第3のバリア同期処理19を実行する。このように、各計算ノードがlog28=3個のメッセージを受け取ったときに、全ての計算ノードがバリアに到達したと判断し、各計算ノードは、各々に割り当てられた計算処理を再開する。
バリア同期では、例えば、通信制御部130の送受信バッファメモリ136に設けられたデータ領域と、他の計算ノードのデータ領域であるとの同期が行われる。例えば、計算ノードが8つの場合、各計算ノードは、他の計算ノードから送られる3つのメッセージをそれぞれ受け取る3つのデータ領域をそれぞれ用意する。そして、各計算ノードは、3つのデータ領域が全てメッセージで埋められたとき、全ての計算ノードがバリアに到達したと判断する。なお、バリア同期に要するメッセージの数は、2を底とし、計算ノード数を真数とした数である。そのため、計算ノード数が80,000であっても、17のメッセージ数で全計算ノードのバリア同期を確認できる。このように、バタフライバリア同期方式は、膨大な数のノード数を有する大規模な並列計算機システムであっても、少ないメッセージ数で全ノードの同期処理を行うことができる。
図10は、ログサイズ容量によるデータログ出力処理フローの一例を示す図である。図10に示すデータログ出力処理フローにおいて、後述するステップS601〜S603は、計算ノードが計算処理用のプログラムを実行することにより実現される。その他の計算ノードによる処理は、計算ノードがデータログ出力用プログラムを実行することにより実現される。
[計算ノード100aの処理フロー]
計算ノード100aは、プログラムを実行して、計算処理を開始する(S601)。計算ノード100aは、ログ記録ポインタ230aに、ログ記録領域210aの先頭メモリアドレスを書き込む(S602)。計算ノード100aは、計算処理の実行に関するデータログをログ記録領域210aに格納して、ログ記録ポインタ230aに、データログを保存した位置のメモリアドレスを書き込む(S603)。計算ノード100aは、ログ記録領域に格納されたログサイズが設定値を超えるか否か判断する(S604)。言い換えれば、計算ノード100aは、ログ記録ポインタ230aに格納されるメモリアドレスを監視し、メモリアドレスが所定メモリアドレスを超えたか否か判断する。なお、図10のS604の例は「設定値を超える/設定値以下」の組み合わせで判断しているが、「設定値以上/設定値未満」の判断でも良い。
ログサイズが設定値を超えない場合(S604 No)、計算ノード100aは、S602に戻り、計算処理を実行し続ける。一方、ログサイズが設定値を超える場合(S604 Yes)、計算ノード100aは、他の計算ノードにログ出力通知を送信する(S605)。そして、計算ノード100aは、計算処理を停止し(S606)、ログ記録領域210aに格納されたログをIOノード100cに出力する(S607)。計算ノード100aは、ログ出力が終了すると、図8及び図9で説明したように、他の計算ノードとバリア同期を行った後で(S608)、S601に戻って計算処理を再開する。
[計算ノード100bの処理フロー]
計算ノード100bは、プログラムを実行して、計算処理を開始する(S611)。計算ノード100bは、ログ記録ポインタ230bに、ログ記録領域210bの先頭メモリアドレスを書き込む(S612)。計算ノード100bは、計算処理の実行に関するデータログをログ記録領域210bに格納して、ログ記録ポインタ230bに、データログを保存した位置のメモリアドレスを書き込む(S613)。計算ノード100bは、計算ノード100aからログ出力通知を受信したかを判断する(S614)。ログ出力通知を受信しない場合(S614 No)、計算ノード100bは、ログ出力通知の受信を待つ。ログ出力通知を受信した場合(S614 Yes)、計算ノード100bは、計算処理を停止して(S615)、ログ記録領域210bに格納されたログをIOノード100cに出力する(S616)。計算ノード100bは、ログ出力が終了すると、図8及び図9で説明したように、他の計算ノードとバリア同期を行った後で(S617)、S611に戻って計算処理を開始する。
[IOノード100cの処理フロー]
IOノード100cは、計算ノード100a又は計算ノード100bからログを受信すると(S631)、受信したデータログを外部記憶装置150に保存する(S632)。
図11は、エラー検出によるデータログ出力処理フローの他の実施例を示す図である。図11に示すデータログ出力処理フローは、計算ノード100aの処理フローが図10に示すデータログ出力処理フローと異なる。図11に示す計算ノード100bとIOノード100cの処理フローは、図10に示す計算ノード100bとIOノード100cの処理フローと同じである。そのため、以下に、計算ノード100aの処理フローを説明する。
なお、図11に示すデータログ出力処理フローにおいて、ステップS601〜S603は、計算ノードが計算処理用のプログラムを実行することにより、実現される。その他の計算ノードによる処理は、計算ノードがデータログ出力用プログラムを実行することにより実現される。
図10と同様に、計算ノード100aは、計算処理を開始して、ログを主記憶装置に保存する(S601〜S603)。計算ノード100aは、自ノードでエラーが発生したか否かを判断する(S641)。エラーが発生していない場合(S641 No)、計算ノード100aは、S602に戻り、計算処理を実行し続ける。エラーが発生した場合(S641 Yes)、計算ノード100aは、他の計算ノードにログ出力通知を送信する(S605)。
ログ出力通知後、計算ノード100aは、計算処理を停止する(S642)。計算ノード100aは、OSに含まれるダンプカーネルを起動して(S643)、主記憶装置120aに格納されたデータをダンプファイルとしてIOノード100cに送信する(S644)。計算ノード100aは、ダンプファイルを送信後、プログラムを停止して(S645)、データログ出力フローを終了する。
なお、S645のように、エラーが生じた計算ノード100aのプログラム実行を停止するのは、エラーが生じた計算ノードにより誤った計算出力が生じるのを防ぐ等の理由のためである。並列計算機システム1000は、数万ノードになる場合、1台のノードをエラーにより停止させても、他のノードに計算処理を割り振ることで、継続して計算処理を実行することが可能である。
図10及び図11では、ログ出力前(S607、S616)に、計算処理を停止させたが(S66、S615)、計算処理の停止は、図8に示した同期処理(S608、S617)を行うためである。そのため、図7のタイムチャート351に示すように同期処理を行わない場合は、計算処理停止(S66、S615)及び同期処理(S608、S617)は不要である。
以上の実施形態に関し、更に以下の付記を開示する。
[付記1]
第1のプログラムを第1の領域に格納する第1の記憶装置と、前記第1のプログラムの実行に関する第1の情報を前記第1の記憶装置の第2の領域に格納するとともに、前記第1の情報を出力する場合、ログ出力通知を出力する第1の演算処理装置を有する第1の情報処理装置と、
第2のプログラムを第3の領域に格納する第2の記憶装置と、前記第2のプログラムの実行に関する第2の情報を前記第2の記憶装置の第4の領域に格納するとともに、前記第1の演算処理装置からのログ出力通知を受信した場合、前記第2の情報を出力する第2の演算処理装置を有する第2の情報処理装置と、
第3の記憶装置と、前記第1の情報処理装置から出力された第1の情報及び前記第2の情報処理装置から出力された第2の情報を前記第3の記憶装置に格納する第3の演算処理装置を有する第3の情報処理装置と、を備えることを特徴とする並列計算機システム。
[付記2]
前記並列計算機システムにおいて、
前記第1の演算処理装置は、
前記第1の領域に格納された前記第1の情報の容量を監視し、前記第1の情報の容量が所定の大きさを超えた場合、前記第1の情報を出力するとともに、前記ログ出力通知を出力することを特徴とする付記1記載の並列計算機システム。
[付記3]
前記並列計算機システムにおいて、
前記第1の演算処理装置は、
前記第1のプログラムの実行においてエラーが発生した場合、前記第1の記憶装置の第1及び第2の領域の内容を前記第3の情報処理装置に出力するとともに、ログ出力通知を前記第2の情報処理装置に出力し、
前記第3の演算処理装置は、前記第1及び第2の領域の内容を、前記第3の記憶装置に格納することを特徴とする付記1又は2記載の並列計算機システム。
[付記4]
前記並列計算機システムにおいて、
前記第1の演算処理装置は、前記第1の情報を出力する場合、前記第1のプログラムの実行を停止し、前記第1の情報の出力の完了とともに、前記第1の情報の出力完了通知を前記第2の情報処理装置に出力し、
前記第2の情報処理装置は、前記第2の情報出力とともに、前記第2のプログラムの実行を停止し、前記第2の情報の出力完了とともに、前記第2の情報の出力完了通知を前記第1の情報処理装置に出力し、
前記第1の情報処理装置は、前記第2の情報の出力完了通知を受信した場合、前記第1のプログラムの実行を開始し、
前記第2の情報処理装置は、前記第1の情報の出力完了通知を受信すると、前記第2のプログラムの実行を開始することを特徴とする付記1〜3のいずれか1項に記載の並列計算機システム。
[付記5]
第1の演算処理装置と第1の記憶装置を有する第1の情報処理装置と、第2の演算処理装置と第2の記憶装置を有する第2の情報処理装置と、第3の演算処理装置と第3の記憶装置を有する第3の情報処理装置とを備える並列計算機システムの制御方法であって、
前記第1の演算処理装置が、第1のプログラムの実行に関する第1の情報を第1の記憶装置に格納するステップと、
前記第1の演算処理装置が、前記第1の情報を出力する場合、ログ出力通知を出力するステップと、
前記第2の演算処理装置が、第2のプログラムの実行に関する第2の情報を第2の記憶装置に格納するステップと、
前記第2の情報処理装置が、前記第1の情報処理装置から前記ログ出力通知を受信した場合、前記第2の演算処理装置が、前記第2の情報を出力するステップと、
前記第3の演算処理装置が、前記第1の情報処理装置から出力された第1の情報及び前記第2の情報処理装置から出力された第2の情報を前記第3の記憶装置に格納するステップと、を有することを特徴とする並列計算機システムの制御方法。
[付記6]
前記並列計算機システムの制御方法において、
前記第1の演算処理装置が、前記第1の情報を出力するとともに、前記第1のプログラムの実行を停止するステップと
前記第1の演算処理装置が、前記第1の情報の出力の完了とともに、前記第1の情報の出力の完了通知を前記第2の情報処理装置に出力するステップと、
前記第2の演算処理装置が、前記第2の情報を出力するとともに、前記第2のプログラムの実行を停止するステップと、
前記第2の演算処理装置が、前記第2の情報の出力の完了とともに、前記第2の情報の出力の完了通知を前記第1の情報処理装置に出力するステップと、
前記第1の情報処理装置が、前記第2の情報の出力完了通知を受信した場合、前記第1の演算処理装置による前記第1のプログラムの実行を開始するステップと、
前記第2の情報処理装置が、前記第1の情報の出力完了通知を受信した場合、前記第2の演算処理装置による前記第2のプログラムの実行を開始するステップとを、有することを特徴とする付記5記載の並列計算機システムの制御方法。
[付記7]
前記第1の演算処理装置が、前記第1の領域に格納された前記第1の情報の容量を監視し、前記第1の情報の容量が所定の大きさを超えた場合、前記第1の情報を出力するとともに、前記ログ出力通知を出力するステップを有することを特徴とする付記5又は5に記載の方法。
[付記8]
前記第1の情報処理装置が、前記第1のプログラムの実行においてエラーが発生した場合、前記第1の記憶装置の第1及び第2の領域の内容を前記第3の情報処理装置に出力するとともに、前記ログ出力通知を前記第2の情報処理装置に出力するステップと、
前記第3の演算処理装置が、前記第1及び第2の領域の内容を、前記第3の記憶装置に格納するステップと、を有することを特徴とする付記5〜7のいずれかに記載の方法。
[付記9]
第1の演算処理装置と第1の記憶装置を有する第1の情報処理装置と、第2の演算処理装置と第2の記憶装置を有する第2の情報処理装置と、第3の演算処理装置と第3の記憶装置を有する第3の情報処理装置とを備える並列計算機システムの制御プログラムであって、
前記第1の演算処理装置に、前記第1の記憶装置の第1の領域に格納された第1のプログラムの実行に関する第1の情報を前記第1の記憶装置の第2の領域に格納させるステップと、
前記第1の演算処理装置に、前記第1の情報を出力する場合、ログ出力通知を出力させるステップと、
前記第2の演算処理装置に、前記第2の記憶装置の第3の領域に格納された第2のプログラムの実行に関する第2の情報を前記第2の記憶装置の第4の領域に格納させるステップと、
前記第2の情報処理装置が、前記第1の情報処理装置から前記ログ出力通知を受信した場合、前記第2の演算処理装置に、前記第2の情報を出力させるステップと、
前記第3の演算処理装置に、前記第1の情報処理装置から出力された第1の情報及び前記第2の情報処理装置から出力された第2の情報を前記第3の記憶装置に格納させるステップと、を実行させることを特徴とする並列計算機システムの制御プログラム。
[付記10]
前記並列計算機システムの制御プログラムにおいて、
前記第1の演算処理装置に、前記第1の領域に格納された前記第1の情報の容量を監視させ、前記第1の情報の容量が所定の大きさを超えた場合、前記第1の情報を出力させるとともに、前記ログ出力通知を出力させるステップステップ、を実行させることを特徴とする付記7記載の並列計算機システムの制御プログラム。
[付記11]
前記並列計算機システムの制御プログラムにおいて、
前記第1のプログラムの実行においてエラーが発生した場合、前記第1の情報処理装置に、前記第1の記憶装置の第1及び第2の領域の内容を前記第3の情報処理装置に出力するとともに、前記ログ出力通知を前記第2の情報処理装置に出力させるステップと、
前記第3の演算処理装置に、前記第1及び第2の領域の内容を、前記第3の記憶装置に格納させるステップと、を実行させることを特徴とする付記7又は8記載の並列計算機の制御プログラム。
[付記12]
前記並列計算機システムの制御プログラムにおいて、
前記第1の演算処理装置に、前記第1の情報を出力させるとともに、前記第1のプログラムの実行を停止させるステップと、
前記第1の演算処理装置に、前記第1の情報の出力の完了とともに、前記第1の情報の出力完了通知を前記第2の情報処理装置に出力させるステップと、
前記第2の演算処理装置に、前記第2の情報を出力させるとともに、前記第2のプログラムの実行を停止させるステップと、
前記第2の演算処理装置に、前記第2の情報の出力の完了とともに、前記第2の情報の出力完了通知を前記第1の情報処理装置に出力させるステップと、
前記第1の情報処理装置が、前記第2の情報の出力完了通知を受信した場合、前記第1の演算処理装置に、前記第1のプログラムの実行を開始させるステップと、
前記第2の情報処理装置が、前記第1の情報の出力完了通知を受信した場合、前記第2の演算処理装置に、前記第2のプログラムの実行を開始させるステップとを、有することを特徴とする付記7〜9のいずれか1項記載の並列計算機の制御プログラム。
10 プロセッサコア
12 命令制御部
14 命令実行部
16 L1キャッシュコントローラ
18 L1キャッシュRAM
20 プロセッサコア
50 L2キャッシュコントローラ
51 バスインタフェース
60 L2キャッシュRAM
70 メモリアクセス制御部
100 情報処理装置
100a、100b〜100n 計算ノード
100c IOノード
110 演算処理装置
120 主記憶装置
130 通信制御部
131 メモリ
132 CPU
134 コマンドキュー
136 送受信バッファメモリ
140 入出力制御部
150 外部記憶装置
160 ドライブ装置
180 ネットワーク
210、210a、210b ログ記憶領域
220、220a、220b プログラム保存領域
230、230a、230b ログ記録ポインタ
1000 並列計算機システム

Claims (10)

  1. 第1のプログラムを第1の領域に格納する第1の記憶装置と、前記第1のプログラムの実行に関する第1の情報を前記第1の記憶装置の第2の領域に格納するとともに、前記第1の情報を出力する場合、ログ出力通知を出力する第1の演算処理装置を有する第1の情報処理装置と、
    第2のプログラムを第3の領域に格納する第2の記憶装置と、前記第2のプログラムの実行に関する第2の情報を前記第2の記憶装置の第4の領域に格納するとともに、前記第1の演算処理装置からのログ出力通知を受信した場合、前記第2の情報を出力する第2の演算処理装置を有する第2の情報処理装置と、
    第3の記憶装置と、前記第1の情報処理装置から出力された第1の情報及び前記第2の情報処理装置から出力された第2の情報を前記第3の記憶装置に格納する第3の演算処理装置を有する第3の情報処理装置と、を備えることを特徴とする並列計算機システム。
  2. 前記並列計算機システムにおいて、
    前記第1の演算処理装置は、
    前記第1の領域に格納された前記第1の情報の容量を監視し、前記第1の情報の容量が所定の大きさを超えた場合、前記第1の情報を出力するとともに、前記ログ出力通知を出力することを特徴とする請求項1記載の並列計算機システム。
  3. 前記並列計算機システムにおいて、
    前記第1の演算処理装置は、
    前記第1のプログラムの実行においてエラーが発生した場合、前記第1の記憶装置の第1及び第2の領域の内容を前記第3の情報処理装置に出力するとともに、ログ出力通知を前記第2の情報処理装置に出力し、
    前記第3の演算処理装置は、前記第1及び第2の領域の内容を、前記第3の記憶装置に格納することを特徴とする請求項1又は2記載の並列計算機システム。
  4. 前記並列計算機システムにおいて、
    前記第1の演算処理装置は、前記第1の情報を出力する場合、前記第1のプログラムの実行を停止し、前記第1の情報の出力の完了とともに、前記第1の情報の出力完了通知を前記第2の情報処理装置に出力し、
    前記第2の情報処理装置は、前記第2の情報出力とともに、前記第2のプログラムの実行を停止し、前記第2の情報の出力完了とともに、前記第2の情報の出力完了通知を前記第1の情報処理装置に出力し、
    前記第1の情報処理装置は、前記第2の情報の出力完了通知を受信した場合、前記第1のプログラムの実行を開始し、
    前記第2の情報処理装置は、前記第1の情報の出力完了通知を受信すると、前記第2のプログラムの実行を開始することを特徴とする請求項1〜3のいずれか1項に記載の並列計算機システム。
  5. 第1の演算処理装置と第1の記憶装置を有する第1の情報処理装置と、第2の演算処理装置と第2の記憶装置を有する第2の情報処理装置と、第3の演算処理装置と第3の記憶装置を有する第3の情報処理装置とを備える並列計算機システムの制御方法であって、
    前記第1の演算処理装置が、第1のプログラムの実行に関する第1の情報を第1の記憶装置に格納するステップと、
    前記第1の演算処理装置が、前記第1の情報を出力する場合、ログ出力通知を出力するステップと、
    前記第2の演算処理装置が、第2のプログラムの実行に関する第2の情報を第2の記憶装置に格納するステップと、
    前記第2の情報処理装置が、前記第1の情報処理装置から前記ログ出力通知を受信した場合、前記第2の演算処理装置が、前記第2の情報を出力するステップと、
    前記第3の演算処理装置が、前記第1の情報処理装置から出力された第1の情報及び前記第2の情報処理装置から出力された第2の情報を前記第3の記憶装置に格納するステップと、を有することを特徴とする並列計算機システムの制御方法。
  6. 前記並列計算機システムの制御方法において、
    前記第1の演算処理装置が、前記第1の情報を出力するとともに、前記第1のプログラムの実行を停止するステップと
    前記第1の演算処理装置が、前記第1の情報の出力の完了とともに、前記第1の情報の出力の完了通知を前記第2の情報処理装置に出力するステップと、
    前記第2の演算処理装置が、前記第2の情報を出力するとともに、前記第2のプログラムの実行を停止するステップと、
    前記第2の演算処理装置が、前記第2の情報の出力の完了とともに、前記第2の情報の出力の完了通知を前記第1の情報処理装置に出力するステップと、
    前記第1の情報処理装置が、前記第2の情報の出力完了通知を受信した場合、前記第1の演算処理装置による前記第1のプログラムの実行を開始するステップと、
    前記第2の情報処理装置が、前記第1の情報の出力完了通知を受信した場合、前記第2の演算処理装置による前記第2のプログラムの実行を開始するステップとを、有することを特徴とする請求項5記載の並列計算機システムの制御方法。
  7. 第1の演算処理装置と第1の記憶装置を有する第1の情報処理装置と、第2の演算処理装置と第2の記憶装置を有する第2の情報処理装置と、第3の演算処理装置と第3の記憶装置を有する第3の情報処理装置とを備える並列計算機システムの制御プログラムであって、
    前記第1の演算処理装置に、前記第1の記憶装置の第1の領域に格納された第1のプログラムの実行に関する第1の情報を前記第1の記憶装置の第2の領域に格納させるステップと、
    前記第1の演算処理装置に、前記第1の情報を出力する場合、ログ出力通知を出力させるステップと、
    前記第2の演算処理装置に、前記第2の記憶装置の第3の領域に格納された第2のプログラムの実行に関する第2の情報を前記第2の記憶装置の第4の領域に格納させるステップと、
    前記第2の情報処理装置が、前記第1の情報処理装置から前記ログ出力通知を受信した場合、前記第2の演算処理装置に、前記第2の情報を出力させるステップと、
    前記第3の演算処理装置に、前記第1の情報処理装置から出力された第1の情報及び前記第2の情報処理装置から出力された第2の情報を前記第3の記憶装置に格納させるステップと、を実行させることを特徴とする並列計算機システムの制御プログラム。
  8. 前記並列計算機システムの制御プログラムにおいて、
    前記第1の演算処理装置に、前記第1の領域に格納された前記第1の情報の容量を監視させ、前記第1の情報の容量が所定の大きさを超えた場合、前記第1の情報を出力させるとともに、前記ログ出力通知を出力させるステップステップ、を実行させることを特徴とする請求項7記載の並列計算機システムの制御プログラム。
  9. 前記並列計算機システムの制御プログラムにおいて、
    前記第1のプログラムの実行においてエラーが発生した場合、前記第1の情報処理装置に、前記第1の記憶装置の第1及び第2の領域の内容を前記第3の情報処理装置に出力するとともに、前記ログ出力通知を前記第2の情報処理装置に出力させるステップと、
    前記第3の演算処理装置に、前記第1及び第2の領域の内容を、前記第3の記憶装置に格納させるステップと、を実行させることを特徴とする請求項7又は8記載の並列計算機の制御プログラム。
  10. 前記並列計算機システムの制御プログラムにおいて、
    前記第1の演算処理装置に、前記第1の情報を出力させるとともに、前記第1のプログラムの実行を停止させるステップと、
    前記第1の演算処理装置に、前記第1の情報の出力の完了とともに、前記第1の情報の出力完了通知を前記第2の情報処理装置に出力させるステップと、
    前記第2の演算処理装置に、前記第2の情報を出力させるとともに、前記第2のプログラムの実行を停止させるステップと、
    前記第2の演算処理装置に、前記第2の情報の出力の完了とともに、前記第2の情報の出力完了通知を前記第1の情報処理装置に出力させるステップと、
    前記第1の情報処理装置が、前記第2の情報の出力完了通知を受信した場合、前記第1の演算処理装置に、前記第1のプログラムの実行を開始させるステップと、
    前記第2の情報処理装置が、前記第1の情報の出力完了通知を受信した場合、前記第2の演算処理装置に、前記第2のプログラムの実行を開始させるステップとを、有することを特徴とする請求項7〜9のいずれか1項記載の並列計算機の制御プログラム。
JP2010021423A 2010-02-02 2010-02-02 並列計算機システム、並列計算機システムの制御方法及び制御プログラム Withdrawn JP2011159165A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010021423A JP2011159165A (ja) 2010-02-02 2010-02-02 並列計算機システム、並列計算機システムの制御方法及び制御プログラム
US13/008,087 US20110191638A1 (en) 2010-02-02 2011-01-18 Parallel computer system and method for controlling parallel computer system
EP11152262.9A EP2354944A3 (en) 2010-02-02 2011-01-26 Parallel computer system and method for controlling parallel computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010021423A JP2011159165A (ja) 2010-02-02 2010-02-02 並列計算機システム、並列計算機システムの制御方法及び制御プログラム

Publications (1)

Publication Number Publication Date
JP2011159165A true JP2011159165A (ja) 2011-08-18

Family

ID=43972054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010021423A Withdrawn JP2011159165A (ja) 2010-02-02 2010-02-02 並列計算機システム、並列計算機システムの制御方法及び制御プログラム

Country Status (3)

Country Link
US (1) US20110191638A1 (ja)
EP (1) EP2354944A3 (ja)
JP (1) JP2011159165A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017183169A1 (ja) * 2016-04-22 2017-10-26 富士機械製造株式会社 対基板作業機

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2575293B (en) * 2018-07-04 2020-09-16 Graphcore Ltd Data Through Gateway

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68920388T2 (de) * 1988-09-19 1995-05-11 Fujitsu Ltd Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
US5987622A (en) * 1993-12-10 1999-11-16 Tm Patents, Lp Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem
JPH07201190A (ja) 1993-12-28 1995-08-04 Mitsubishi Electric Corp 不揮発性メモリファイルシステム
JPH0877043A (ja) 1994-09-08 1996-03-22 Fujitsu Ltd ログ管理装置
JPH09237207A (ja) 1996-02-29 1997-09-09 Nec Eng Ltd メモリダンプ転送システム
JP3563907B2 (ja) * 1997-01-30 2004-09-08 富士通株式会社 並列計算機
US6732123B1 (en) * 1998-02-23 2004-05-04 International Business Machines Corporation Database recovery to any point in time in an online environment utilizing disaster recovery technology
US6643802B1 (en) * 2000-04-27 2003-11-04 Ncr Corporation Coordinated multinode dump collection in response to a fault
US7178050B2 (en) * 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
JP2005202767A (ja) * 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017183169A1 (ja) * 2016-04-22 2017-10-26 富士機械製造株式会社 対基板作業機
JPWO2017183169A1 (ja) * 2016-04-22 2019-02-21 株式会社Fuji 対基板作業機

Also Published As

Publication number Publication date
EP2354944A2 (en) 2011-08-10
EP2354944A3 (en) 2013-07-17
US20110191638A1 (en) 2011-08-04

Similar Documents

Publication Publication Date Title
US9098302B2 (en) System and apparatus to improve boot speed in serial peripheral interface system using a baseboard management controller
TWI394048B (zh) 系統裝置、處理器及存取記憶體單元之方法
US8533390B2 (en) Circular buffer in a redundant virtualization environment
US11698868B2 (en) Logging pages accessed from I/O devices
JP5583849B2 (ja) ポート共有ハードウェアを介した記憶装置への帯域外アクセス
US20090006666A1 (en) Dma shared byte counters in a parallel computer
US20170364394A1 (en) System and method to perform live migration of a virtual machine without suspending operation thereof
JP2004054949A (ja) 単一入出力ハブ下の複数ハードウェアパーティション
US20160034332A1 (en) Information processing system and method
JP5561334B2 (ja) データ転送装置
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
GB2504772A (en) Coprocessor providing service address space for diagnostics collection
WO2014206078A1 (zh) 内存访问方法、装置及系统
TW201638771A (zh) 具有多個獨立微控制器之微控制器裝置
US20130086285A1 (en) Sharing iommu mappings across devices in a dma group
US10565135B2 (en) Information processing device, information processing method, main processor core, program, information processing method, and sub processor core
US20130159632A1 (en) Memory sharing by processors
US9886327B2 (en) Resource mapping in multi-threaded central processor units
KR20130007792A (ko) 다중 프로세서를 지원하는 인터럽트 발생을 위한 장치 및 방법
WO2012138111A2 (en) Dynamic random access memory for a semiconductor storage device-based system
JP2010257209A (ja) バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法
JP2011159165A (ja) 並列計算機システム、並列計算機システムの制御方法及び制御プログラム
WO2023169185A1 (zh) 内存管理方法和装置
JP2014026531A (ja) 情報処理装置及び情報処理装置のデータ転送方法
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110323

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130402