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

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

Info

Publication number
JP5994601B2
JP5994601B2 JP2012258186A JP2012258186A JP5994601B2 JP 5994601 B2 JP5994601 B2 JP 5994601B2 JP 2012258186 A JP2012258186 A JP 2012258186A JP 2012258186 A JP2012258186 A JP 2012258186A JP 5994601 B2 JP5994601 B2 JP 5994601B2
Authority
JP
Japan
Prior art keywords
nodes
synchronization
node
barrier synchronization
job
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.)
Active
Application number
JP2012258186A
Other languages
English (en)
Other versions
JP2014106660A (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
Priority to JP2012258186A priority Critical patent/JP5994601B2/ja
Priority to US14/028,887 priority patent/US20140149994A1/en
Priority to EP13185931.6A priority patent/EP2735968A3/en
Priority to CN201310606714.2A priority patent/CN103838551B/zh
Publication of JP2014106660A publication Critical patent/JP2014106660A/ja
Application granted granted Critical
Publication of JP5994601B2 publication Critical patent/JP5994601B2/ja
Active 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
    • G06F9/522Barrier synchronisation
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

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)
  • Debugging And Monitoring (AREA)

Description

本発明は、並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法に関する。
並列計算機における複数の計算ノードが実行する処理の同期をとる方法として、バリア同期が知られている。ここで、計算ノードとは、並列計算機において演算処理を実行する部分であり、演算処理装置としてのCPU(Central Processing Unit)又は演算処理部としてのプロセッサコア(Processor Core)等を含む。バリア同期は、各計算ノードがジョブのプログラム内の予め定められた位置においてバリア関数を呼びだすことにより実現できる。例えばMPI(Message Passing Interface)ライブラリを利用する場合、ジョブのプログラム内においてMPI_Barrier関数を呼び出せばバリア同期を実現できる。各計算ノードは、並列計算機における全計算ノードがバリア同期の完了を確認するまでジョブのプログラムを先に進めることができない。
また、並列計算機におけるジョブのプログラムの実行に関して、以下のような技術が知られている。具体的には、並列計算機において、共有メモリに対するアクセス履歴に基づきプログラム再現の同期を取る。その後、記録された情報に基づき再現された共有メモリ及びプロセッサ状態情報によって、チェックポイントからプログラムを再実行する。
しかし、バリア同期を実行中の並列計算機においてジョブを一旦停止し、後に再開する技術は確立されていない。バリア同期の実行中にジョブを停止した場合には、ジョブの再開後にバリア同期が適切に行われず、ジョブの進行が止まってしまうことがある。そのため、バリア同期を実行中にユーザからジョブの停止指示があった場合には、直ちにジョブを停止することはできず、バリア同期が完了するまでジョブの停止を保留することになるという問題がある。
特開平7−6144号公報 特開平7−13805号公報
1つの側面では、本発明の目的は、バリア同期の実行中に停止したジョブを再開できるようにするための技術を提供することである。
本発明に係る制御方法は、複数のノードを有する並列計算機における上記複数のノードのうちいずれかのノードである第1のノードにより実行される。そして、本制御方法は、複数のノードの各々においてジョブのプログラムの実行が停止された場合に、複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集し、第1のノードにおけるジョブのプログラムの停止位置と、複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、第1のノードにおけるジョブのプログラムの再開位置を決定する処理を含む。
バリア同期の実行中に停止したジョブを再開できるようになる。
図1は、バリア同期の進行の一例を示す図である。 図2は、本実施の形態におけるシステムの概要を示す図である。 図3は、計算ノードにおいて実行されるプログラムについて説明するための図である。 図4は、ジョブのプログラムの再開位置を決定する処理の処理フローを示す図である。 図5は、データ格納部に格納されているデータの一例を示す図である。 図6は、データ格納部に格納されているデータの一例を示す図である。 図7は、MPI_Barrier関数の内部で呼び出される関数について説明するための図である。 図8は、再開位置の決定について説明するための図である。 図9は、ジョブのプログラムの再開位置を決定する処理の処理フローを示す図である。 図10は、再開位置の決定について説明するための図である。 図11は、ジョブのプログラムの停止位置と再開位置との関係について説明するための図である。 図12は、ジョブのプログラムの停止位置と再開位置との関係について説明するための図である。 図13は、ジョブのプログラムの停止位置と再開位置との関係について説明するための図である。 図14は、ジョブのプログラムの停止位置と再開位置との関係について説明するための図である。 図15は、ジョブのプログラムの停止位置と再開位置との関係について説明するための図である。 図16は、ジョブのプログラムの停止位置と再開位置との関係について説明するための図である。
並列計算機における通信には、1対1のデータ通信(ここでは、集団通信を含む)と、バリア同期をする際に利用する1対多の通信とがある。1対1のデータ通信においては、MPIライブラリ等の通信ライブラリが、送信したデータを相手が受信したか否かを確認することができる。そのため、相手が受信したことを確認した後にジョブの停止処理を行い、その停止位置を再開位置とすれば、ジョブの再開後においても通信は問題なく行われる。一方、1対多の通信でバリア同期を実行する場合、通信ライブラリは、バリア同期の開始及び終了については確認することができるものの、バリア同期がどこまで進んでいるのか(すなわち、途中経過)を確認することはできない。
これを具体的に説明するため、図1に、バリア同期の進行の一例を示す。図1の例は、6台の計算ノードが、バリア同期専用のネットワーク(以下、バリアネットワークと呼ぶ)においてバリア同期を進行させる例である。ここで、計算ノードとは、並列計算機において演算処理を実行する部分であり、演算処理装置としてのCPU又は演算処理部としてのプロセッサコア等を含む。各計算ノードは、ハードウェア及びファームウェアを含むバリアインタフェースを有する。バリアインタフェースは、同期データの受信及び送信並びに待ち合わせを行う機構を複数個有する。ここでは、その機構をゲートと呼ぶ。ゲートには、始点となるゲート、終点となるゲート及び中継点となるゲートがある。各ゲートは、自計算ノードにおけるゲートからの同期データの受信(図1における実線矢印)と、他の計算ノードにおけるゲートからの受信(図1における点線矢印)とを待ち、受信を確認した後に次のゲートに同期データを送信する。各計算ノードにおいては、始点ゲート(ゲート1)が同期データを送信し、中継ゲート(ゲート2及びゲート3)が中継をし、終点ゲート(始点ゲートと同じゲートであるゲート1)がバリア同期完了の確認を行う。通信ライブラリは、ゲート毎に、受信及び送信の相手となるゲートの情報(例えば、計算ノード番号及びゲート番号)を設定する。通信ライブラリは、始点ゲート及び終点ゲートにおけるバリア同期の状態を確認することはできるが、中継ゲート(図1においては、ゲート2及びゲート3)におけるバリア同期の状態等を確認することができない。
ここで、ユーザからジョブの停止指示があった場合を考える。ジョブの停止指示があったときに計算ノード1乃至6がゲート1から同期データを送信し終わっていれば、計算ノード1乃至6におけるバリア同期は完了する。一方、同期データを送信し終えていない計算ノードがあった場合は、中継ゲートのいずれかが、同期データを送信し終えていない計算ノードから同期データを受信するのを待つことになり、終点ゲートに同期データが到達しない。この際、通信ライブラリは、各計算ノードの中継ゲートにおけるバリア同期の状態を確認することができないため、バリア同期がどの中継ゲートで止まっているのかがわからない。よって、通信ライブラリは、ジョブのプログラムをどの位置から再開すればバリア同期が適切に行われるのかがわからない。
そこで、以下では、バリア同期の実行中にジョブを一旦停止し、後に再開する場合において、再開後にバリア同期が適切に行われるようにジョブのプログラムの再開位置を決定する方法について説明する。
図2に、本実施の形態におけるシステムの概要を示す。本実施の形態におけるシステムは、計算ノード1乃至N(Nは2以上の自然数)を含む。図2に示したシステムは、メモリを共有しないSPMD(Single Program, Multiple Data)の並列計算機であり、バリア同期によって計算ノード間で同期をとりながら並列でジョブを実行する。但し、SPMDの並列計算機に限られるわけではない。
計算ノード1乃至Nの各々は、CPUN1及びメモリN2が搭載されたマザーボードN0を有する。マザーボードN0には、例えばLAN(Local Area Network)カード等の拡張カードであるネットワークインタフェース(図2においては、NIと略されている)N4及びバリアインタフェース(図2においては、BIと略されている)N3が接続される。
ネットワークインタフェースN4の各々は、例えばレイヤ2スイッチであるネットワークスイッチ200に接続される。各計算ノードは、ネットワークインタフェースN4においてデータを受信及び送信することにより、他の計算ノードと1対1の通信を行う。ネットワークスイッチ200は、計算ノードのネットワークインタフェース間の通信データを中継する。
バリアインタフェースN3の各々は、バリアネットワーク100を介して他のバリアインタフェースと接続される。計算ノード1乃至Nは同じバリアグループに属しており、図1に示したように、各計算ノードが同期データの受信及び送信をすることにより、バリア同期が進行する。バリア同期をするための通信は1対多の通信であり、ネットワークインタフェースN4を介した通信とは独立して行われる。
図3を用いて、計算ノード1乃至Nにおいて実行されるプログラムについて説明する。ここでは、計算ノード1を例にして説明するが、計算ノード2乃至Nについても同様である。計算ノード1においては、収集部102及び決定部103を含む同期管理部101と、ジョブ管理部105と、資源管理部106と、ジョブ実行部107と、通信処理部108とがCPU11により実行される。また、メモリ12にはデータ格納部104のための領域が確保される。
収集部102は、他の計算ノードからバリア同期の進行状況に関する情報を収集し、データ格納部104に格納する。決定部103は、データ格納部104に格納されているデータを用いて、ジョブのプログラムの再開位置を決定する処理等を実行する。ジョブ管理部105は、ユーザからジョブのプログラムの停止指示を受け付け、スワップアウト要求を資源管理部106に出力する。また、ジョブ管理部105は、ジョブ実行部107を制御する。資源管理部106は、スワップアウト要求を受け取ると、同期管理部101を起動する。また、資源管理部106は、バリアインタフェース13及びネットワークインタフェース14等における資源を解放する処理等を実行する。通信処理部108は、例えばMPIライブラリ等の通信ライブラリであり、通信に関する処理を実行する。
次に、図4乃至図16を用いて、図2に示したシステムの動作について説明する。ここでは、ジョブ(以下、第1のジョブと呼ぶ)のプログラムを停止し、第1のジョブより優先度が高いジョブ(以下、第2のジョブと呼ぶ)のプログラムを実行することを、ユーザが計算ノード1に対して指示した場合を例にして説明する。
ジョブ管理部105は、第1のジョブのプログラムの実行の停止指示を受け付けると、ジョブ実行部107に第1のジョブの停止を要求する。これに応じ、ジョブ実行部107は処理を停止する。ジョブ管理部105は、第1のジョブのプログラムの停止位置を示す情報をメモリ12に格納する。
ジョブ管理部105は、第1のジョブのスワップアウト要求を資源管理部106に出力する。資源管理部106は、他の計算ノードである計算ノード2乃至計算ノードNに対し、スワップアウト要求を送信する。計算ノード1乃至計算ノードNの各々における資源管理部106は、本実施の形態における処理を実行するスレッドとして、同期管理部101を起動する。
同期管理部101は、計算ノード1が他の計算ノードとの間で通信を行っている場合、通信処理部108に通信を中止させる。例えば、通信処理部108は、ネットワークインタフェース14による通信データの送信を中止し、またバリア同期をするための同期データの送信を中止する。また、同期管理部101は、ネットワークインタフェース14におけるメモリ等に格納された情報のうち退避すべき情報を、例えばハードディスク等の記憶装置に保存する(すなわち、スワップアウトする)。以上のような処理を実行した後、同期管理部101は、通信処理部108に対し、計算ノード間での通信を可能にする命令を出力する。これにより、ネットワークインタフェース14の資源を通信に使用できるようになる。
なお、バリアインタフェース13の資源とネットワークインタフェース14の資源とは独立であるため、以下で説明するように、バリア同期の進行状況を確認するためにネットワークインタフェース14の資源を使用することができる。
そして、同期管理部101は、第1のジョブのプログラムの再開位置を決定する処理を実行する。この処理については、図4乃至図16を用いて説明する。
まず、同期管理部101における収集部102は、ネットワークインタフェース14を介した通信を行うことにより、バリア同期の進行状況に関する情報を計算ノード2乃至Nから収集する(図4:ステップS1)。具体的には、収集部102は、計算ノード2乃至Nにおける所定のメモリ領域に格納されている、バリア同期の進行状況に関する情報を収集する。なお、自計算ノード(ここでは、計算ノード1)についてのバリア同期の進行状況に関する情報は、バリアインタフェース13におけるメモリ等の記憶装置から取得する。
バリア同期の進行状況に関する情報には、バリア同期をするための同期データの送信をしたか否かを表す情報と、バリア同期の完了状態を表すシーケンス番号とが含まれる。同期データの送信をしたか否かを表す情報は、「R(1)」又は「B(0)」のいずれかである。R(1)は同期データを未だ送信していないことを表し、「B(0)」は同期データの送信を終えバリア同期の完了を待っていることを表す。バリア同期の完了状態を表すシーケンス番号は、バリア同期が完了する度に1インクリメントされる。初期値は0である。これらの情報は、バリアインタフェースにおけるファームウェア等により更新される。
収集部102は、ステップS1において収集された、バリア同期の進行状況に関する情報をデータ格納部104に格納する。図5に、データ格納部104に格納されるデータの一例を示す。図5の例では、計算ノードが4つである場合において、各計算ノードについて同期データの送信をしたか否かを表す情報と、バリア同期の完了状態を表すシーケンス番号とが格納されている。また、収集された情報を基に、収集部102が収束判定を行い、収束判定の結果がデータ格納部104に格納される。収束判定とは、バリア同期がこれ以上進行しない状態に達したか(すなわち、収束したか)否かを判定することである。「OR:1」であり且つ「MAX−MIN:0」である場合には、収束したと判定される。いずれかの計算ノードがR(1)である場合に「OR:1」になり、いずれの計算ノードもB(0)である場合には「OR:0」になる。「MAX−MIN」は、シーケンス番号の最大値と最小値との差である。図5の例の場合には、「OR:0」であり且つ「MAX−MIN:0」であるので、収束していないと判定される。
例えば、図6に示すようなデータがデータ格納部104に格納されていれば、バリア同期が収束したと判断される。図6の例では、いずれの計算ノードも送信の状態がR(1)であるため、2回目のバリア同期の同期データを未だ送信していない状態にある。また、いずれの計算ノードもシーケンス番号が「1」であるため、1回目のバリア同期が完了している状態にある。
なお、収集部102は、ステップS1の処理を最初に実行後バリア同期が収束するまで、例えば定期的にバリア同期の進行状況に関する情報を収集し、データ格納部104を更新する。
図4の説明に戻り、決定部103は、メモリ12から、計算ノード1における第1のジョブのプログラムの停止位置を特定する(ステップS3)。
図7を用いて、MPI_Barrier関数の内部で呼び出される、MPIより低レベルの通信ライブラリに含まれる関数について説明する。本実施の形態においては、MPI_Barrier関数の内部において、バリア同期の設定関数と、同期データの送信関数と、バリア同期完了の確認関数とが呼び出される。図7においては、右に進むほどプログラムが進行しており、1回目のMPI_Barrier関数によりバリア同期の設定関数、同期データ送信関数及びバリア同期完了の確認関数が呼び出され、2回目のMPI_Barrier関数により同期データ送信関数が呼び出されている。2回目のMPI_Barrier関数によってはバリア同期の設定関数が呼び出されていないが、これは、バリア同期の設定が1回目と同じであるため設定関数を呼び出さなくてもよいからである。
本実施の形態においては、MPI_Barrier関数が呼び出されている間をバリア同期の実行中であるとみなす。そして、ジョブのプログラムの停止位置がMPI_Barrier関数の内部であった場合には、具体的にどの位置(例えば、a1、(1)、a2、(2)、a3など)においてジョブのプログラムが停止したかをステップS3において特定する。
図4の説明に戻り、決定部103は、第1のジョブのプログラムの停止位置が、計算ノード1が既に同期データを送信済みであることを示しているか判断する(ステップS5)。図7の例であれば、停止位置が(1)より後である場合には、同期データを送信済みである。なお、第1のジョブのプログラムの停止位置がa2である場合には、同期データ送信関数が途中で終了することができないので、同期データを送信済みであるとみなす。
同期データを送信済みではない場合(ステップS5:Noルート)、決定部103は、データ格納部104における収束判定の欄を参照することにより、バリア同期が収束したか判断する(ステップS7)。ステップS7においては、収束判定の欄に「○」が格納されていればバリア同期が収束したと判断し、収束判定の欄に「×」が格納されていればバリア同期が収束していないと判断する。
収束していない場合(ステップS7:Noルート)、決定部103は、収集部102によるデータ格納部104の更新によってバリア同期が収束したと判断できるようになるまでリトライする。
収束している場合(ステップS7:Yesルート)、同期データを送信するため、決定部103は、同期データ送信前の位置を再開位置に決定する(ステップS9)。決定部103は、再開位置を示す情報をメモリ12に格納する。処理は端子Aを介して図9に移行し終了する。同期データの送信前の位置とは、例えば図7における(1)である。
一方、同期データを送信済みである場合(ステップS5:Yesルート)、決定部103は、第1のジョブのプログラムの停止位置が、計算ノード1が既にバリア同期完了を確認済みであることを示しているか判断する(ステップS11)。図7の例であれば、停止位置が(2)より後である場合には、バリア同期完了を確認済みである。なお、第1のジョブのプログラムの停止位置がa3である場合には、バリア同期完了の確認関数が途中で終了することができないので、バリア同期完了を確認済みであるとみなす。
バリア同期完了を確認済みではない場合(ステップS11:Noルート)、決定部103は、データ格納部104における収束判定の欄を参照することにより、バリア同期が収束したか判断する(ステップS13)。ステップS13においては、収束判定の欄に「○」が格納されていればバリア同期が収束したと判断し、収束判定の欄に「×」が格納されていればバリア同期が収束していないと判断する。
収束していない場合(ステップS13:Noルート)、決定部103は、収集部102によるデータ格納部104の更新によってバリア同期が収束したと判断できるようになるまでリトライする。
収束している場合(ステップS13:Yesルート)、決定部103は、バリア同期が完了しているか判断する(ステップS15)。ステップS15においては、決定部103は、自計算ノード(ここでは、計算ノード1)について、データ格納部104に格納されている、同期データを送信したか否かを表す情報を参照することにより判断する。ステップS5において同期データを送信済みであると判断されているので、R(1)であればバリア同期が完了しており、B(0)であればバリア同期の完了を待っている(すなわちバリア同期が完了していない)とみなすことができる。
バリア同期が完了している場合(ステップS15:Yesルート)、バリア同期完了の確認をするため、決定部103は、バリア同期完了の確認前の位置を再開位置に決定する(ステップS17)。決定部103は、再開位置を示す情報をメモリ12に格納する。処理は端子Aを介して図9に移行し終了する。バリア同期完了の確認前の位置とは、図7の例であれば(2)である。
一方、バリア同期が完了していない場合(ステップS15:Noルート)、同期データを再送信するため、決定部103は、同期データ送信の前の位置を再開位置に決定する(ステップS19)。決定部103は、再開位置を示す情報をメモリ12に格納する。処理は端子Aを介して図9に移行し終了する。同期データ送信の前の位置とは、図7の例であれば(1)である。
図8に、ステップS19の処理により再開位置が決定される場合の一例を示す。図8において軸は時間軸であり、時間の経過に伴ってバリア同期が進行している。計算ノード1乃至3は、同期データを送信した後バリア同期完了を確認しているが、計算ノード4は、同期データを未送信である(そのため、計算ノード4による同期データの送信を表すブロックは、点線で示されている)。よって、計算ノード1乃至4においてはバリア同期が完了することはないので、計算ノード1乃至4については、ステップS19の処理により、同期データ送信の前の位置を再開位置に決定する。
図4の説明に戻り、バリア同期完了を確認済みである場合(ステップS11:Yesルート)、処理は端子Bを介して図9のステップS21に移行する。
図9の説明に移行し、決定部103は、データ格納部104における収束判定の欄を参照することにより、バリア同期が収束したか判断する(ステップS21)。ステップS21においては、収束判定の欄に「○」が格納されていればバリア同期が収束したと判断し、収束判定の欄に「×」が格納されていればバリア同期が収束していないと判断する。
収束していない場合(ステップS21:Noルート)、決定部103は、収集部102によるデータ格納部104の更新によってバリア同期が収束したと判断できるようになるまでリトライする。
収束している場合(ステップS21:Yesルート)、決定部103は、第1のジョブのプログラムの停止位置が、計算ノード1が既に次のバリア同期の同期データを送信済みであることを示しているか判断する(ステップS23)。図7の例であれば、停止位置が(3)より後である場合には、次のバリア同期の同期データを送信済みである。なお、第1のジョブのプログラムの停止位置がa4である場合には、同期データ送信関数が途中で終了することができないので、次のバリア同期の同期データを送信済みであるとみなす。
次のバリア同期の同期データを送信済みである場合(ステップS23:Yesルート)、決定部103は、次のバリア同期の同期データを送信する前の位置を再開位置に決定する(ステップS27)。決定部103は、再開位置を示す情報をメモリ12に格納する。そして処理は終了する。次のバリア同期の同期データを送信する前の位置とは、図7の例であれば(3)である。
一方、次のバリア同期の同期データを送信済みではない場合(ステップS23:Noルート)、決定部103は、バリア同期完了の確認が終了した後の位置を再開位置に決定する(ステップS25)。決定部103は、再開位置を示す情報をメモリ12に格納する。そして処理は終了する。バリア同期完了の確認が終了した後の位置とは、図7の例であれば(3)である。
図10に、ステップS25の処理により再開位置が決定される場合の一例を示す。図10において軸は時間軸であり、時間の経過に伴ってバリア同期が進行している。計算ノード1乃至4は、同期データを送信した後バリア同期完了を確認している。そのため、ジョブのプログラムの停止位置をそのまま再開位置としても、次のバリア同期は適切に行われる。
図11乃至図16を用いて、ジョブのプログラムの停止位置と再開位置との関係について説明する。図11乃至図16は、計算ノードが12台である場合の例であり、各計算ノードについて、停止位置と、停止直後についてのバリア同期の進行状況に関する情報と、収束後におけるバリア同期の進行状況に関する情報と、再開位置とが示されている。また、停止直後及び収束後について、収束判定の結果が示されている。なお、停止位置及び再開位置は、図7の例に従っている。
図11の例では、全計算ノードの停止位置が(1)であり、同期データを未送信である。よって、停止位置をそのまま再開位置としても、再開後全ノードが同期データを送信するので、バリア同期は適切に行われる。この場合、計算ノード1乃至12の再開位置は、ステップS9の処理により決定される。
図12の例では、全計算ノードの停止位置がa2であるため、停止直後、全計算ノードにおいてバリア同期が完了していない。よって、停止位置をそのまま再開位置とすれば、再開後全ノードがバリア同期完了の確認をするので、全ノードにおいてバリア同期が完了する。この場合、計算ノード1乃至12の再開位置は、ステップS17の処理により決定される。
図13の例では、計算ノード1乃至8の停止位置がa2であり、計算ノード9乃至12の停止位置が(1)である。すなわち、同期データを送信済みの計算ノードと未送信の計算ノードとが混在しているので、停止位置をそのまま再開位置とすると、いずれの計算ノードにおいてもバリア同期が完了することはない。よって、全計算ノードの再開位置を(1)とし、同期データを送信済みである計算ノード1乃至8についても再度同期データを送信するようにする。この場合、計算ノード1乃至8についてはステップS19により再開位置が決定され、計算ノード9乃至12についてはステップS9の処理により再開位置が決定される。
図14の例では、計算ノード1乃至4の停止位置がa2であり、計算ノード5及び6の停止位置が(2)であり、計算ノード7及び8の停止位置がa3であり、計算ノード9乃至12の停止位置が(3)である。よって、計算ノード1乃至6は同期データを送信済みであるので、バリア同期完了の確認前の位置である(2)から再開すればバリア同期が完了する。また、計算ノード7乃至12はバリア同期完了を確認済みであるので、バリア同期完了の確認後の位置である(3)から再開すればよい。このような場合、計算ノード1乃至6についてはステップS17の処理により再開位置が決定され、計算ノード7乃至12についてはステップS25の処理により再開位置が決定される。
図15の例では、計算ノード1乃至4の停止位置がa2であり、計算ノード5及び6の停止位置が(2)であり、計算ノード7及び8の停止位置がa3であり、計算ノード9及び10の停止位置が(3)であり、計算ノード11及び12の停止位置がa4である。よって、計算ノード1乃至6は同期データを送信済みであるので、バリア同期完了の確認前の位置である(2)から再開すればバリア同期が完了する。また、計算ノード7乃至10はバリア同期完了を確認済みであるので、バリア同期完了の確認後の位置である(3)から再開すればよい。また、計算ノード11及び12については、計算ノード1乃至10が次のバリア同期の同期データを未送信であり、次のバリア同期が完了しないため、次の同期データを送信する前の位置である(3)から再開位置とする。このような場合、計算ノード1乃至6についてはステップS17の処理により再開位置が決定され、計算ノード7乃至10についてはステップS25の処理により再開位置が決定され、計算ノード11及び12についてはステップS27の処理により再開位置が決定される。
図16の例では、計算ノード1乃至4の停止位置がa2であり、計算ノード5及び6の停止位置が(2)であり、計算ノード7及び8の停止位置がa3であり、計算ノード9乃至12の停止位置がa4である。よって、計算ノード1乃至6は同期データを送信済みであるので、バリア同期完了の確認前の位置である(2)から再開すればバリア同期が完了する。また、計算ノード7及び8はバリア同期完了を確認済みであるので、バリア同期完了の確認後の位置である(3)から再開すればよい。また、計算ノード9乃至12については、計算ノード1乃至8が次のバリア同期の同期データを未送信であり、次のバリア同期が完了しないため、次の同期データを送信する前の位置である(3)を再開位置とする。このような場合、計算ノード1乃至6についてはステップS17の処理により再開位置が決定され、計算ノード7及び8についてはステップS25の処理により再開位置が決定され、計算ノード9乃至12についてはステップS27の処理により再開位置が決定される。
以上のような処理を実行すれば、バリア同期の実行中にジョブを停止したとしても、バリア同期が適切に行われるようにジョブのプログラムの実行を再開できるようになる。
以上のような処理を実行した後、同期管理部101は、第1のジョブのプログラムを再び実行する際に用いる、バリアインタフェース13におけるメモリ等の記憶装置に格納されている情報を、例えばハードディスク等の記憶装置に退避する。ここで、資源管理部106は、バリアインタフェース13及びネットワークインタフェース14等における、メモリ及びその他のハードウェア等の資源を解放する。
そして、ジョブ管理部105が第2のジョブのプログラムを起動することにより、第2のジョブを計算ノード1において実行する。第2のジョブの実行が完了すると、同期管理部101は、第1のジョブを再度実行するために退避しておいた情報を元に戻す(すなわち、スワップインする)。そして、ジョブ管理部105は、再開位置を示す情報をメモリ12から特定する。また、ジョブ管理部105は、第1のジョブのプログラムを起動し、決定された再開位置から、第1のジョブを計算ノード1において再度実行する。なお、計算ノード2乃至Nにおいても、計算ノード1と同様に、第1のジョブを停止した後に第2のジョブを実行し、第2のジョブの実行が完了すると、第1のジョブの実行を再開する。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した計算ノード1乃至Nの機能ブロック構成は実際のプログラムモジュール構成に対応しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、上で述べた例では、バリア同期を実行するための機構としてバリアインタフェースを用いる例を示したが、バリアインタフェースを用いず、ネットワークスイッチにおけるファームウェアに同様の機能を持たせてもよい。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る並列計算機の制御方法は、複数のノード(当該ノードは、CPU又はCPUコアであってもよい)を有する並列計算機における上記複数のノードのうちいずれかのノードである第1のノードにより実行される。そして、本制御方法は、(A)複数のノードの各々においてジョブのプログラムの実行が停止された場合に、複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集し、(B)第1のノードにおけるジョブのプログラムの停止位置と、複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、第1のノードにおけるジョブのプログラムの再開位置を決定する処理を含む。
このようにすれば、バリア同期の実行中にジョブを停止したとしても、バリア同期が適切に行われるようにジョブのプログラムの実行を再開できるようになる。
また、上で述べたジョブのプログラムの再開位置を決定する処理が、(b1)複数のノードにおけるバリア同期の進行状況に関する情報に基づき、並列計算機においてバリア同期がこれ以上進行しない状態に達したか判定し、(b2)バリア同期がこれ以上進行しない状態に達した場合に、ジョブのプログラムの再開位置を決定する処理を含む。
ジョブのプログラムの停止直後においては、ジョブのプログラムの停止前に送信された同期データによってバリア同期が進行している可能性がある。そこで、上で述べたようにすれば、不適切な再開位置を決定するのを防げるようになる。
また、バリア同期がこれ以上進行しない状態に達したか判定する処理が、(b1−1)複数のノードのうち少なくともいずれかのノードが当該ノードにおいてバリア同期のための同期データを送信し終えておらず且つ複数のノードのうちいずれのノードにおいてもバリア同期が完了した又は複数のノードのうちいずれのノードにおいてもバリア同期が完了していない場合に、バリア同期がこれ以上進行しない状態に達したと判定する処理を含む。このような場合には、バリア同期の進行状況が変化しなくなっているとみなすことができる。
また、上で述べたジョブのプログラムの再開位置を決定する処理が、(b3)第1のノードがバリア同期のための同期データの送信を終えており且つ同期データを第1のノード以外のノードから受信するのを待っている場合に、同期データを再度送信する位置まで戻した位置を再開位置とするようにしてもよい。このような場合には、第1のノード以外のノードが同期データを送信していないので、バリア同期は完了しない。そこで、同期データを再度送信する位置からジョブのプログラムの実行を再開することにより、バリア同期が適切に行われるようになる。
また、上で述べたジョブのプログラムの再開位置を決定する処理が、(b4)第1のノードにおいてバリア同期が完了しさらに次のバリア同期のための同期データの送信を終えている場合に、次のバリア同期のための同期データを再度送信する位置まで戻した位置を再開位置とするようにしてもよい。このような場合には、次のバリア同期のための同期データを送信していないノードが存在する可能性があるため、次のバリア同期は完了しないことがある。そこで、次のバリア同期のための同期データを再度送信する位置からジョブのプログラムの実行を再開させることにより、次のバリア同期が適切に行われるようになる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のノードを有する並列計算機の制御プログラムであって、
前記複数のノードのうちいずれかのノードである第1のノードに、
前記複数のノードの各々においてジョブのプログラムの実行が停止された場合に、前記複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集させ、
前記第1のノードにおける前記ジョブのプログラムの停止位置と、前記複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、前記第1のノードにおける前記ジョブのプログラムの再開位置を決定させる
ことを特徴とする、並列計算機の制御プログラム。
(付記2)
前記ジョブのプログラムの再開位置を決定させる処理において、
前記複数のノードにおけるバリア同期の進行状況に関する情報に基づき、前記並列計算機においてバリア同期がこれ以上進行しない状態に達したか判定させ、
前記バリア同期がこれ以上進行しない状態に達した場合に、前記ジョブのプログラムの再開位置を決定させ
ことを特徴とする、付記1記載の並列計算機の制御プログラム。
(付記3)
前記バリア同期がこれ以上進行しない状態に達したか判定させる処理において、
前記複数のノードのうち少なくともいずれかのノードバリア同期のための同期データを送信し終えておらず且つ前記複数のノードの各々においてバリア同期が完了した場合、又は前記複数のノードのうちいずれのノードにおいてもバリア同期が完了していない場合に、前記バリア同期がこれ以上進行しない状態に達したと判定させる
ことを特徴とする、付記2記載の並列計算機の制御プログラム。
(付記4)
前記ジョブのプログラムの再開位置を決定させる処理において、
前記第1のノードがバリア同期のための同期データの送信を終えており且つ前記同期データを前記第1のノード以外のノードから受信するのを待っている場合に、前記同期データを再度送信する位置まで戻した位置を再開位置とさせる
ことを特徴とする、付記1記載の並列計算機の制御プログラム。
(付記5)
前記ジョブのプログラムの再開位置を決定させる処理において、
前記第1のノードにおいてバリア同期が完了しさらに次のバリア同期のための同期データの送信を終えている場合に、前記次のバリア同期のための同期データを再度送信する位置まで戻した位置を再開位置とさせる
ことを特徴とする、付記1記載の並列計算機の制御プログラム。
(付記6)
前記複数の計算ノードの各々は、
演算処理を実行する演算処理装置又は演算処理部を含む
ことを特徴とする、付記1記載の並列計算機の制御プログラム。
(付記7)
複数のノードを有する並列計算機の制御方法であって、
前記複数のノードのうちいずれかのノードである第1のノードが、
前記複数のノードの各々においてジョブのプログラムの実行が停止された場合に、前記複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集し、
前記第1のノードにおける前記ジョブのプログラムの停止位置と、前記複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、前記第1のノードにおける前記ジョブのプログラムの再開位置を決定する
ことを特徴とする、並列計算機の制御方法。
(付記8)
複数のノードを有する並列計算機であって、
前記複数のノードのうちいずれかのノードである第1のノードが、
前記複数のノードの各々においてジョブのプログラムの実行が停止された場合に、前記複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集する収集部と、
前記第1のノードにおける前記ジョブのプログラムの停止位置と、前記複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、前記第1のノードにおける前記ジョブのプログラムの再開位置を決定する決定部と
を有することを特徴とする並列計算機。
1,2,N 計算ノード 100 バリアネットワーク
200 ネットワークスイッチ 10,20,N0 マザーボード
11,21,N1 CPU 12,22,N2 メモリ
13,23,N3 バリアインタフェース
14,24,N4 ネットワークインタフェース
101 同期管理部 102 収集部
103 決定部 104 データ格納部
105 ジョブ管理部 106 資源管理部
107 ジョブ実行部 108 通信処理部

Claims (7)

  1. 複数のノードを有する並列計算機の制御プログラムであって、
    前記複数のノードのうちいずれかのノードである第1のノードに、
    前記複数のノードの各々においてジョブのプログラムの実行が停止された場合に、前記複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集させ、
    前記第1のノードにおける前記ジョブのプログラムの停止位置と、前記複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、前記第1のノードにおける前記ジョブのプログラムの再開位置を決定させる
    ことを特徴とする、並列計算機の制御プログラム。
  2. 前記ジョブのプログラムの再開位置を決定させる処理において、
    前記複数のノードにおけるバリア同期の進行状況に関する情報に基づき、前記並列計算機においてバリア同期がこれ以上進行しない状態に達したか判定させ、
    前記バリア同期がこれ以上進行しない状態に達した場合に、前記ジョブのプログラムの再開位置を決定させる
    ことを特徴とする、請求項1記載の並列計算機の制御プログラム。
  3. 前記ジョブのプログラムの再開位置を決定させる処理において、
    前記第1のノードがバリア同期のための同期データの送信を終えており且つ前記同期データを前記第1のノード以外のノードから受信するのを待っている場合に、前記同期データを送信した位置の前まで戻した位置を再開位置とさせる
    ことを特徴とする、請求項1記載の並列計算機の制御プログラム。
  4. 前記ジョブのプログラムの再開位置を決定させる処理において、
    前記第1のノードにおいてバリア同期が完了しさらに次のバリア同期のための同期データの送信を終えている場合に、前記次のバリア同期のための同期データを送信した位置の前まで戻した位置を再開位置とさせる
    ことを特徴とする、請求項1記載の並列計算機の制御プログラム。
  5. 前記複数のノードの各々は、
    演算処理を実行する演算処理装置又は演算処理部を含む
    ことを特徴とする、請求項1記載の並列計算機の制御プログラム。
  6. 複数のノードを有する並列計算機の制御方法であって、
    前記複数のノードのうちいずれかのノードである第1のノードが、
    前記複数のノードの各々においてジョブのプログラムの実行が停止された場合に、前記複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集し、
    前記第1のノードにおける前記ジョブのプログラムの停止位置と、前記複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、前記第1のノードにおける前記ジョブのプログラムの再開位置を決定する
    ことを特徴とする、並列計算機の制御方法。
  7. 複数のノードを有する並列計算機であって、
    前記複数のノードのうちいずれかのノードである第1のノードが、
    前記複数のノードの各々においてジョブのプログラムの実行が停止された場合に、前記複数のノードの各々から、当該ノードにおけるバリア同期の進行状況に関する情報を収集する収集部と、
    前記第1のノードにおける前記ジョブのプログラムの停止位置と、前記複数のノードにおけるバリア同期の進行状況に関する情報とに基づき、前記第1のノードにおける前記ジョブのプログラムの再開位置を決定する決定部と
    を有することを特徴とする並列計算機。
JP2012258186A 2012-11-27 2012-11-27 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法 Active JP5994601B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012258186A JP5994601B2 (ja) 2012-11-27 2012-11-27 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法
US14/028,887 US20140149994A1 (en) 2012-11-27 2013-09-17 Parallel computer and control method thereof
EP13185931.6A EP2735968A3 (en) 2012-11-27 2013-09-25 Parallel computer and control method thereof
CN201310606714.2A CN103838551B (zh) 2012-11-27 2013-11-25 并行计算机及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012258186A JP5994601B2 (ja) 2012-11-27 2012-11-27 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法

Publications (2)

Publication Number Publication Date
JP2014106660A JP2014106660A (ja) 2014-06-09
JP5994601B2 true JP5994601B2 (ja) 2016-09-21

Family

ID=49263156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012258186A Active JP5994601B2 (ja) 2012-11-27 2012-11-27 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法

Country Status (4)

Country Link
US (1) US20140149994A1 (ja)
EP (1) EP2735968A3 (ja)
JP (1) JP5994601B2 (ja)
CN (1) CN103838551B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6369286B2 (ja) * 2014-10-23 2018-08-08 富士通株式会社 プロセス間通信プログラム、解放要求方法、および並列演算装置
US9348658B1 (en) * 2014-12-12 2016-05-24 Intel Corporation Technologies for efficient synchronization barriers with work stealing support
JP7159696B2 (ja) * 2018-08-28 2022-10-25 富士通株式会社 情報処理装置,並列計算機システムおよび制御方法
JP2021043737A (ja) * 2019-09-11 2021-03-18 富士通株式会社 バリア同期システム、バリア同期方法及び並列情報処理装置
JP7338354B2 (ja) * 2019-09-20 2023-09-05 富士通株式会社 情報処理装置,情報処理システム及び通信管理プログラム
US11449339B2 (en) * 2019-09-27 2022-09-20 Red Hat, Inc. Memory barrier elision for multi-threaded workloads

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721921A (en) * 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
US6192391B1 (en) * 1997-05-30 2001-02-20 Nec Corporation Process stop method and apparatus for a distributed memory multi-processor system
JP3571976B2 (ja) * 1999-11-08 2004-09-29 富士通株式会社 デバッグ装置及び方法並びにプログラム記録媒体
JP4276028B2 (ja) * 2003-08-25 2009-06-10 株式会社日立製作所 マルチプロセッサシステムの同期方法
JP4448784B2 (ja) * 2005-03-15 2010-04-14 株式会社日立製作所 並列計算機の同期方法及びプログラム
US7516361B2 (en) * 2005-06-27 2009-04-07 Sun Microsystems, Inc. Method for automatic checkpoint of system and application software
US8280944B2 (en) * 2005-10-20 2012-10-02 The Trustees Of Columbia University In The City Of New York Methods, media and systems for managing a distributed application running in a plurality of digital processing devices
GB0613289D0 (en) * 2006-07-04 2006-08-16 Imagination Tech Ltd Synchronisation of execution threads on a multi-threaded processor
US7925791B2 (en) * 2006-07-17 2011-04-12 The Math Works, Inc. Recoverable error detection for concurrent computing programs
US8056087B2 (en) * 2006-09-25 2011-11-08 International Business Machines Corporation Effective use of a hardware barrier synchronization register for protocol synchronization
US7512836B2 (en) * 2006-12-11 2009-03-31 International Business Machines Corporation Fast backup of compute nodes in failing midplane by copying to nodes in backup midplane via link chips operating in pass through and normal modes in massively parallel computing system
US7783920B2 (en) * 2007-02-20 2010-08-24 International Business Machines Corporation Recovery routine masking and barriers to support phased recovery development
US8214662B2 (en) * 2007-04-09 2012-07-03 Panasonic Corporation Multiprocessor control unit, control method performed by the same, and integrated circuit
US8082424B2 (en) * 2007-08-01 2011-12-20 International Business Machines Corporation Determining when a set of compute nodes participating in a barrier operation on a parallel computer are ready to exit the barrier operation
US20100017655A1 (en) * 2008-07-16 2010-01-21 International Business Machines Corporation Error Recovery During Execution Of An Application On A Parallel Computer
JP5304194B2 (ja) * 2008-11-19 2013-10-02 富士通株式会社 バリア同期装置、バリア同期システム及びバリア同期装置の制御方法
US8752048B1 (en) * 2008-12-15 2014-06-10 Open Invention Network, Llc Method and system for providing checkpointing to windows application groups
FR2939922B1 (fr) * 2008-12-16 2011-03-04 Bull Sas Gestionnaire physique de barriere de synchronisation entre processus multiples
US8713294B2 (en) * 2009-11-13 2014-04-29 International Business Machines Corporation Heap/stack guard pages using a wakeup unit
US8788879B2 (en) * 2010-01-08 2014-07-22 International Business Machines Corporation Non-volatile memory for checkpoint storage
US8516487B2 (en) * 2010-02-11 2013-08-20 International Business Machines Corporation Dynamic job relocation in a high performance computing system
US8250405B2 (en) * 2010-05-27 2012-08-21 International Business Machines Corporation Accelerating recovery in MPI environments
JP5664039B2 (ja) * 2010-09-08 2015-02-04 富士通株式会社 リダクション演算装置、処理装置及びコンピュータシステム
GB2484086A (en) * 2010-09-28 2012-04-04 Metaswitch Networks Ltd Reliability and performance modes in a distributed storage system
JP5549575B2 (ja) * 2010-12-17 2014-07-16 富士通株式会社 並列計算機システム、同期装置、並列計算機システムの制御方法
US20120179896A1 (en) * 2011-01-10 2012-07-12 International Business Machines Corporation Method and apparatus for a hierarchical synchronization barrier in a multi-node system
JP5759203B2 (ja) * 2011-02-25 2015-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 反復法の並列コンピュータ計算における非同期なチェックポイント取得とそこからの回復
US9367306B2 (en) * 2011-03-30 2016-06-14 Nvidia Corporation Method for transforming a multithreaded program for general execution
JP5568048B2 (ja) * 2011-04-04 2014-08-06 株式会社日立製作所 並列計算機システム、およびプログラム
JP6036690B2 (ja) * 2011-07-07 2016-11-30 日本電気株式会社 分散実行システム及び分散プログラム実行方法
US8607247B2 (en) * 2011-11-03 2013-12-10 Advanced Micro Devices, Inc. Method and system for workitem synchronization
US9092272B2 (en) * 2011-12-08 2015-07-28 International Business Machines Corporation Preparing parallel tasks to use a synchronization register
US20130247069A1 (en) * 2012-03-15 2013-09-19 International Business Machines Corporation Creating A Checkpoint Of A Parallel Application Executing In A Parallel Computer That Supports Computer Hardware Accelerated Barrier Operations
US9652300B2 (en) * 2012-06-28 2017-05-16 Intel Corporation Systems, methods, and computer program products for preemption of threads at a synchronization barrier

Also Published As

Publication number Publication date
CN103838551A (zh) 2014-06-04
CN103838551B (zh) 2017-04-12
EP2735968A3 (en) 2016-08-17
JP2014106660A (ja) 2014-06-09
US20140149994A1 (en) 2014-05-29
EP2735968A2 (en) 2014-05-28

Similar Documents

Publication Publication Date Title
JP5994601B2 (ja) 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法
JP6520959B2 (ja) ノードシステム、サーバ装置、スケールリング制御方法及びプログラム
JP4529767B2 (ja) クラスタ構成コンピュータシステム及びその系リセット方法
JP5214537B2 (ja) マルチプロセッサシステム
JP2006072591A (ja) 仮想計算機制御方法
JP2007219757A (ja) 仮想計算機システムを機能させるためのプログラム
JP4479930B2 (ja) ノードシステム、サーバ切換え方法、サーバ装置、データ引き継ぎ方法、およびプログラム
JP2000099277A (ja) ファイルユニット間のリモート転送方法
WO2019208098A1 (ja) 連携処理再開装置、および、連携処理再開方法
JP5176230B2 (ja) 計算機システム、計算機制御方法及び計算機制御プログラム
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
CN104683486A (zh) 分布式系统中处理同步消息的方法、装置、分布式系统
TW539941B (en) State synchronization in redundant systems
WO2011116672A1 (zh) 为共享代码段打补丁的方法及装置
TWI669605B (zh) 虛擬機器群組的容錯方法及其容錯系統
CN110351122A (zh) 容灾方法、装置、系统与电子设备
JP5544516B2 (ja) 高可用サーバシステム、高可用サーバシステムの障害時復旧方法、および高可用サーバ
JP6341030B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP5605279B2 (ja) プロセス間同期方法
JP6036690B2 (ja) 分散実行システム及び分散プログラム実行方法
WO2024148934A1 (zh) 容灾控制方法及系统
CN109245922B (zh) 虚拟化系统中成员设备重启控制方法和装置
JP6251112B2 (ja) 伝送装置およびコントローラ
JP4671059B2 (ja) マルチノードネットワークシステム
JP2005327015A (ja) データ二重化方法とプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160704

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: 20160726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160808

R150 Certificate of patent or registration of utility model

Ref document number: 5994601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150