JP6495779B2 - 演算処理管理方法及び演算装置 - Google Patents
演算処理管理方法及び演算装置 Download PDFInfo
- Publication number
- JP6495779B2 JP6495779B2 JP2015158741A JP2015158741A JP6495779B2 JP 6495779 B2 JP6495779 B2 JP 6495779B2 JP 2015158741 A JP2015158741 A JP 2015158741A JP 2015158741 A JP2015158741 A JP 2015158741A JP 6495779 B2 JP6495779 B2 JP 6495779B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- checkpoint
- processing
- global
- node
- 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
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
Description
例えば、SSIでは計算途中のプロセスが他ノードへマイグレーションするケースがあるため、チェックポイントデータに関しても、同様に他ノードへマイグレーションを行う必要がある。
まず、本実施形態に係る計算器システムの構成と特徴について説明する。
図1は、本実施形態に係る計算器システムの構成の概要を説明するための図である。
図1に示す計算機システムZ1では、3つのノード(演算装置)1(1a〜1c)が設置されている。各ノード1a〜1cは、例えば、SSIを構成している。各ノード1では、OS(Operation System)402が実行されており、複数のプロセス(演算処理)401が実行されている。なお、プロセス401は、CPU(演算部)11(図2参照)又はGPGPU(演算部)21(図2参照)によって実行される。
また、各ノード1のCPU用メモリ12(図2参照)において、プロセステーブル201が格納されているとともに、チェックポイントデータ保持領域202が確保されている。
ここで、プロセステーブル201は、実行されているプロセス401のGPGPU21(図2参照)の割り振りに関する情報(割振情報)を保持するものである。
また、チェックポイントデータ保持領域202は、GPGPU21が実行するプロセス401のチェックポイントデータが格納される記憶領域である。チェックポイントデータは、登録された時点におけるプロセス401の実行状態に関するデータが格納されている。
グローバルプロセステーブル301には、計算機システムZ1におけるノード1間で共有すべき割振情報が格納されている。すなわち、プロセステーブル201が自身のノード1における割振情報のみを格納しているのに対し、グローバルプロセステーブル301には、計算機システムZ1の各ノード1から登録された割振情報が格納されている。
図2は、本実施形態に係るノードの構成図である。
ノード1は、CPU11、GPGPU21、CPU用メモリ12、GPGPU用メモリ22、HD(Hard Disk)等の記憶装置31及び入力装置(入力部)33を有するコンピュータである。なお、図2に示す例では、ノード1に対し、GPGPU21(21a〜21b)が3つ搭載されているが、1つのGPGPU21が備えられてもよいし、2つ又は4つ以上のGPGPU21がノード1に搭載されてもよい。
CPU11、GPGPU21及び記憶装置31は、バス32によって接続されている。
そして、ノード1には、CPU11に対応して設置されているCPU用メモリ12、各GPGPU21に対応して設置されているGPGPU用メモリ22a〜22cを有している。
なお、プロセステーブル201、チェックポイントデータ保持領域202、グローバルプロセステーブル301及びグローバルチェックポイントデータ保持領域302は、記憶装置31に格納されてもよい。
割振処理部101は、プロセス401をGPGPU21や、自身におけるCPU11に割り振る。
チェックポイント処理部102は、GPGPU21に割り振ったプロセス401の割振情報や、チェックポイントデータを、プロセステーブル201や、チェックポイントデータ保持領域202、グローバルプロセステーブル301、グローバルチェックポイントデータ保持領域302に格納する。また、チェックポイント処理部102は、他のノード1に障害が生じた際において、グローバル領域300からチェックポイントデータを取得する等の処理を行う。
監視処理部104は、障害が発生したノード1があるか否かを監視する。
なお、割振処理部101、チェックポイント処理部102、リカバリ処理部103及び監視処理部104が行う詳細な処理の流れについては後記して説明する。
図3は、計算機システムにおける各ノードのハードウェア構成を示す図である。
ここでは、ネットワーク2によって接続されたノード1が2つあり(ノード1a,1b)、各ノード1において1つのCPU11と、3つのGPGPU21とが備わっている場合を示す(GPGPU21a〜GPGPU21c)。
図2で説明しているように、CPU11に対応してCPU用メモリ12が備わっており、GPGPU21に対応してGPGPU用メモリ22も3つ備わっている(GPGPU用メモリ22a〜22c)。
なお、ここでは、1つのノード1が有するGPGPU21の数が、それぞれのノード1において同じであるとしているが、異なっていてもよい。また、ここでは、1つのノード1が1つのCPU11を有するシングルコアを想定しているが、2つ以上のCPUを有するマルチコアの構成を有してもよい。
図4は、本実施形態に係るプロセステーブル及びグローバルプロセステーブルの例を示す図である。
プロセステーブル201及びグローバルプロセステーブル301において、「GPGPU ID」の欄には、GPGPU21デバイスの識別子が格納される。「Process ID」の欄には、「GPGPU ID」欄に登録されているGPGPU21に割り振るプロセス401の識別子が格納される。「メソッド名」の欄には、GPGPU21に割り振るプロセス401のメソッド名が格納される。なお、括弧内はメソッドの引数である。「メモリ開始アドレス」には、チェックポイントデータ保持領域202又はグローバルチェックポイントデータ保持領域302の開始地点を表すアドレスが格納される。「メモリサイズ」の欄には、チェックポイントデータ保持領域202の大きさを示す値が格納される。
このように、プロセステーブル201及びグローバルプロセステーブル301は、同じ構成を有しているが、前記したように、プロセステーブル201が自身のノード1における割振情報のみを格納しているのに対し、グローバルプロセステーブル301には、計算機システムZ1の各ノード1から登録された割振情報が格納されている。
図5は、本実施形態で使用される計算機システムの構成を示す図である。
計算機システムZ1(図1参照)において、複数のノード1(1a〜1c)は高速なネットワーク2を介して接続されるクラスタZ2構成となっている。
OS402(図1参照)及びプロセス401は各ノード1上で動作し、各プロセス401がリアルタイムに状態同期を行う事で、仮想的に1つのシステムとして動作する。
そして、ノード1のうちの1つにおける状態や、データに変更が生じた場合、ノード1は、即座に差分データ403を他のノード1へ送信することにより、クラスタZ2全体の同期を行う。
図6は、本実施形態に係るプロセスの割振手順を示すシーケンス図である。適宜、図2を参照する。なお、図6に示すノード1では、3つのGPGPU21a〜21cが備えられており、そのうち、2つのGPGPU21に対してプロセス401が割り振られる場合を示す。図6における各処理の詳細は後記して説明する。
まず、CPU11は、プロセスaをGPGPU21へ割り振るべきか否かを判定し、割り振る場合、割振処理部101は、GPGPU21(ここでは、GPGPU21a)へプロセスaを割り振るプロセスaの割振処理を行う(S101)。
なお、CPU11が、どのGPGPU21にプロセス401を割り振るかは、図示しないスケジューラの指示等に従ってCPU11が判断する。
プロセスaを割り振られたGPGPU21aは、プロセスaの実行を開始する(S151)。
プロセスbを割り振られたGPGPU21bは、プロセスbの実行を開始する(S161)。
図7及び図8は、本実施形態に係るGPGPUへのプロセス割振手順の詳細を示すフローチャートである。
まず、割振処理部101が、CPU11及びGPGPU21でのプロセス401のスコアSiを算出する(図7のS201)。
このスコアSiは、例えば、以下の式(1)で算出される。
Si=tmi+si ・・・ (1)
ここで、iはCPU11もしくはGPGPU21を示す。そして、式(1)におけるtmi及びsiは以下の式(2)及び式(3)で定義される。
ステップS202の結果、GPGPU21に割り振らないと判定した場合(S202→No)、処理部100は、自身で処理対象となっているプロセス401を実行し、計算を行う(S211)。
ステップS223の結果、グローバル領域300に格納する場合(S223→Yes)、チェックポイント処理部102は、チェックポイントデータ及び割振情報をグローバル領域300に格納する(S224)。具体的には、チェックポイント処理部102は、チェックポイントデータをグローバルチェックポイントデータ保持領域302に格納し、割振情報をグローバルプロセステーブル301に格納する。ステップS224の処理により、チェックポイントデータ及び割振情報が、計算機システムZ1における各ノード1で共有される。
ステップS221〜S224の処理は、図6のステップS102,S112の処理に相当する。
ステップS231は、図6のステップS101,S111に相当する処理である。このように、図6では、わかりやすくするため、プロセス401の割振処理の後に、チェックポイント登録処理が行われているが、実際には、図7に示すように、プロセス401の割振処理と、チェックポイント登録処理は、並行して行われる。
GPGPU21は、割り振られたプロセス401を実行し(図8のS233)、計算処理を行う(S234)。ステップS233,S234の処理は、図6のステップS151、S161の処理に相当する。ちなみに、図8において、破線枠の処理はGPGPU21での処理を示している。同様に、実線枠の処理はCPU11での処理を示している。
処理部100は、返された返却値を取得し、返却値においてデータの欠損や、データの欠落、エラー等がないか否かといった正当性があるか否かを判定する(S236)。ステップS237の処理は、図6のステップS121、S131の処理に相当する。
ステップS236の結果、正当性がある場合(S236→Yes)、プロセステーブル201からレコードを削除し(S241)、チェックポイント処理部102が、チェックポイントデータ保持領域202に格納されているチェックポイントデータを削除する(S242)。
ステップS243の結果、グローバル領域300にデータが保存されていない場合(S243→No)、処理部100は処理を終了する。
ステップS243の結果、グローバル領域300にデータが保存されている場合(S243→Yes)、チェックポイント処理部102は、グローバルプロセステーブル301における該当するレコードを削除し(S244)、グローバルチェックポイントデータ保持領域302に格納されているデータを削除し(S245)、処理を終了する。
ステップS241〜S245の処理は、図6のステップS122,S132の処理に相当する。
図9は、本実施形態に係る計算機システムにおけるリカバリの手順を示すシーケンス図である。図9における各処理の詳細は後記して説明する。
ここでは、ノード1cが監視処理部104を実行している監視用ノードであり、ノード1aが計算アプリケーションのプロセス401を実行している。ノード1bはノード1aにノード単位の障害が発生したときに、プロセス401を代替実行するノード1である。なお、ここでは、1つのノード1に1つのGPGPU21が備えられている例を示しているが、1つのノード1に複数のGPGPU21が備えられていてもよい。
プロセスaを割り振られたGPGPU21Aは、プロセスaの実行を開始する(S311)。
なお、ステップS301,S302,S303,S311は、図6のステップS101、S102,S111,S112,S151,S161と同様の処理であるので、ここでの説明を省略する。
ノード1bのCPU11Bは、GPGPU21Bにおいてプロセスaを起動する(S331)。CPU11Bは、一般的に行われているコンテキストスイッチの手法でプロセスaを起動(再開)するが、この際、グローバルチェックポイントデータ保持領域302に格納されているチェックポイントデータを参照し、GPGPU21Bに該チェックポイントに基づいてプロセスaを開始させる(S341)。
ステップS332,S333,S342の処理は、図6のステップS121,S122,S152,S131,S132,S162と同様の処理であるので、ここでの説明を省略する。
その後、ノード1bのCPU11Bは、新たなプロセス401をGPGPU21Bに実行させる等する。
図10は、本実施形態に係る障害検知・リカバリ処理の詳細な手順を示すフローチャートである。なお、図10において、一点鎖線で枠が示されている処理はノードcで行われている処理を示し、実線で枠が示されている処理はノード1bのCPU11で行われている処理を示し、破線で枠が示されている処理はノード1bのGPGPU21で行われている処理を示す。
ステップS401の結果、障害が検知されていない場合(S401→No)、監視処理部104は、ステップS401へ処理を戻す。
ステップS401の結果、障害が検知されると(S401→Yes)、監視処理部104は、ノード1bにノード1aで実行されていたプロセス401の起動を指示する(S402)。監視処理部104は、各ノード1で実行されている、図示しないスケジューラの指示等に基づいて、プロセスを代替実行するノードを決定する。ステップS401,S402の処理は、図9のステップS322に相当する処理である。
その後、リカバリ処理部103は、実行するプロセス401の「Process ID」をキーとしてグローバルプロセステーブル301を参照する。そして、リカバリ処理部103は、処理対象となっているプロセス401が、障害が発生したノード1aにおけるGPGPU21で実行されていたことを確認すると、取得したチェックポイントデータを基に、GPGPU21にプロセス401を割り振り(S412)、実行させる(S413)。すなわち、ノード1bのリカバリ処理部103は、プロセスIDをキーとして、グローバルプロセスデータ301の「GPGPU ID」の欄を参照し、障害が発生したノード1aにおいて、処理対象となっているプロセス401がGPGPU21で実行されているのを確認する。そして、ノード1bのリカバリ処理部103は、障害が発生したノード1aにおいて、処理対象となっているプロセス401がGPGPU21で実行されていたことから、自身においてもGPGPU21で処理対象となっているプロセス401を実行する。このようにすることで、図7のステップS201で行っていたスコアの算出を再度行う必要がなくなり、処理時間を短縮することができる。
また、このようにすることで、障害が発生したノード1におけるGPGPU用メモリ22の内容を移行する必要がなくなるので、移行に要する処理コストを低減することができる。
また、リカバリ処理部103は、グローバルチェックポイントデータ保持領域302に格納されている、再開するプロセス401に関するチェックポイントデータを、自身のチェックポイントデータ保持領域202にコピーする。また、リカバリ処理部103は、該プロセス401の割振情報を、グローバルプロセステーブル301から、再開するプロセス401に関する割振情報をプロセステーブル201にコピーする。
ここで、ステップS411,S412の処理が図9のステップS331の処理に相当し、ステップS421の処理が図9のステップS341の処理に相当する。
このように、監視処理部104を分散して実行させることで、ノード1の障害検知の精度を向上させることができる。
2 ネットワーク
11 CPU(演算部)
12 CPU用メモリ
21,21a〜21c GPGPU(演算部)
22,22a〜22c GPGPU用メモリ
100 処理部
101 割振処理部
102 チェックポイント処理部
103 リカバリ処理部
104 監視処理部
200 ローカル処理部
201 プロセステーブル
202 チェックポイントデータ保持領域
300 グローバル領域
301 グローバルプロセステーブル
302 グローバルチェックポイントデータ保持領域(記憶部)
401,401a〜401c プロセス(演算処理)
Z1 計算機システム
Claims (4)
- 複数の異なる演算部を具備する演算装置が、互いに複数接続しているシステムにおいて、
前記演算装置が、
各演算部に対し演算処理の割り振りを行うステップと、
前記演算処理の割り振りを決定すると、前記演算処理に関するチェックポイントを生成するステップと、
通信ネットワークによって、前記システムにおけるすべての演算装置間で、個々の前記演算装置のメモリに設けられているメモリ領域であるグローバル領域に同一の前記チェックポイントに関する情報を同期させて保存するステップと、
前記演算処理を行っている他演算装置における前記演算部の障害を検出すると、前記障害を生じていない別の演算装置が、前記グローバル領域に保存したチェックポイントに関する情報を読み出し、前記読みだしたチェックポイントに関する情報に従って前記演算処理を再開するステップと、
を実行することを特徴とする演算処理管理方法。 - 前記同期させてグローバル領域に保存するチェックポイントに関する情報を選択可能である
ことを特徴とする請求項1に記載の演算処理管理方法。 - 前記演算装置が、
個々の前記演算装置のメモリに設けられているメモリ領域であるローカル領域に前記演算装置自身に関するチェックポイントを保存し、
前記演算処理が終了すると、前記グローバル領域及び前記ローカル領域から、該演算処理に関するチェックポイントに関する情報を削除するステップ
を実行することを特徴とする請求項1又は請求項2に記載の演算処理管理方法。 - 複数の異なる演算部を具備する演算装置が、互いに複数接続しているシステムを構成する演算装置であって、
各演算部に対し演算処理の割り振りを行う割振処理部と、
前記演算処理の割り振りを決定すると、前記演算処理に関するチェックポイントを生成し、通信ネットワークによって、前記システムにおけるすべての演算装置間で、個々の前記演算装置のメモリに設けられているメモリ領域であるグローバル領域に同一の前記チェックポイントに関する情報を同期させて保存するチェックポイント処理部と、
前記演算処理を行っている他演算装置における前記演算部の障害を検出すると、前記グローバル領域に保存したチェックポイントを読み出し、前記読みだしたチェックポイントに従って前記演算処理を再開するリカバリ処理部と、
を有することを特徴とする演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015158741A JP6495779B2 (ja) | 2015-08-11 | 2015-08-11 | 演算処理管理方法及び演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015158741A JP6495779B2 (ja) | 2015-08-11 | 2015-08-11 | 演算処理管理方法及び演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017037507A JP2017037507A (ja) | 2017-02-16 |
JP6495779B2 true JP6495779B2 (ja) | 2019-04-03 |
Family
ID=58048608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015158741A Active JP6495779B2 (ja) | 2015-08-11 | 2015-08-11 | 演算処理管理方法及び演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6495779B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536591B2 (en) * | 2003-11-17 | 2009-05-19 | Virginia Tech Intellectual Properties, Inc. | Transparent checkpointing and process migration in a distributed system |
JP5672521B2 (ja) * | 2010-03-05 | 2015-02-18 | 日本電気株式会社 | コンピュータシステム、およびそのチェックポイントリスタート方法 |
US9021299B2 (en) * | 2011-02-18 | 2015-04-28 | Ab Initio Technology Llc | Restarting processes |
US9372752B2 (en) * | 2013-12-27 | 2016-06-21 | Intel Corporation | Assisted coherent shared memory |
-
2015
- 2015-08-11 JP JP2015158741A patent/JP6495779B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017037507A (ja) | 2017-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lorch et al. | The SMART way to migrate replicated stateful services | |
US7770064B2 (en) | Recovery of application faults in a mirrored application environment | |
US11016861B2 (en) | Crash recoverability for graphics processing units (GPU) in a computing environment | |
US20170168756A1 (en) | Storage transactions | |
JP6457633B2 (ja) | データベース・クラスタのデータ管理方法、ノード、及びシステム | |
JP6123626B2 (ja) | 処理再開方法、処理再開プログラムおよび情報処理システム | |
US10387053B1 (en) | Memory synchronization in a distributed computing system | |
CN109271376A (zh) | 数据库升级方法、装置、设备及存储介质 | |
US9436554B2 (en) | Information processing apparatus and data repairing method | |
JP2014044553A (ja) | プログラム、情報処理装置および情報処理システム | |
JP2006139621A (ja) | マルチプロセッシングシステム及びマルチプロセッシング方法 | |
JP6244949B2 (ja) | 情報処理装置、制御方法、および制御プログラム | |
JP4560074B2 (ja) | 仮想計算機システム及び同システムにおける仮想計算機復元方法 | |
CN107209748A (zh) | 信息处理设备、信息处理方法、主处理器核心、程序、信息处理方法和副处理器核心 | |
US10169441B2 (en) | Synchronous data replication in a content management system | |
JP5672521B2 (ja) | コンピュータシステム、およびそのチェックポイントリスタート方法 | |
JP6495779B2 (ja) | 演算処理管理方法及び演算装置 | |
CN117056123A (zh) | 数据恢复方法、装置、介质及电子设备 | |
CN116680211A (zh) | 虚拟内存管理方法、装置、电子设备和存储介质 | |
US10896201B2 (en) | Synchronization of block based volumes | |
US9952941B2 (en) | Elastic virtual multipath resource access using sequestered partitions | |
JP2014153935A (ja) | 並列分散処理制御装置、並列分散処理制御システム、並列分散処理制御方法および並列分散処理制御プログラム | |
JP2010231295A (ja) | 解析システム | |
JP2001022720A (ja) | マルチプロセッサシステム | |
US10592127B2 (en) | Method and system for allocating mirrored memories |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170905 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180508 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181204 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190130 |
|
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: 20190305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190307 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6495779 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |