JP2013156886A - 計算装置、演算処理システム、チェックポイント設定方法及びプログラム - Google Patents

計算装置、演算処理システム、チェックポイント設定方法及びプログラム Download PDF

Info

Publication number
JP2013156886A
JP2013156886A JP2012017856A JP2012017856A JP2013156886A JP 2013156886 A JP2013156886 A JP 2013156886A JP 2012017856 A JP2012017856 A JP 2012017856A JP 2012017856 A JP2012017856 A JP 2012017856A JP 2013156886 A JP2013156886 A JP 2013156886A
Authority
JP
Japan
Prior art keywords
memory
memory usage
checkpoint
instruction
execution
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
JP2012017856A
Other languages
English (en)
Other versions
JP5966389B2 (ja
Inventor
Yuki Mizuno
佑基 水野
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2012017856A priority Critical patent/JP5966389B2/ja
Publication of JP2013156886A publication Critical patent/JP2013156886A/ja
Application granted granted Critical
Publication of JP5966389B2 publication Critical patent/JP5966389B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Abstract

【課題】メモリイメージの増大を低下させることができる計算装置、演算処理システム、チェックポイント設定方法及びプログラムを提供すること。
【解決手段】本発明にかかる計算装置は、チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置である。計算装置は、計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録するメモリ使用量記録部101と、複数のプロセスにおけるメモリ使用量を集計し集計したメモリ使用量に基づいてチェックポイントを設定する操作端末30に対してメモリ使用量記録部101に記録されたメモリ使用量を送信する通信部102と、を備えるものである。
【選択図】図1

Description

本発明は計算装置に関し、特にチェックポイントを設定してメモリイメージを取得する計算装置に関する。
ハイパフォーマンスコンピューティングの分野においては、大規模計算を行うために、多数の計算ノードをネットワークを介して接続した計算クラスタが用いられる。計算クラスタの大規模化に伴いハードウェア部品も増加している。そのため、計算ノードが、障害などに遭遇する頻度が高まっている。その結果、問題発生時におけるジョブのリカバリがますます重要になってきている。ジョブのリカバリ方法の一つを以下に説明する。計算ノードは、定期的にチェックポイントを設定し、設定されたチェックポイントにおいてメモリイメージを採取及び保存する。計算ノードは、問題発生時に、直前のチェックポイントのメモリイメージを復元し、ジョブをリスタートする。このリカバリ方法の場合、リスタートのために、チェックポイントでジョブを構成する全プロセスのメモリイメージを保存する必要があり、ジョブを構成するプロセス数とそれら各プロセスのメモリ使用量の増大が、そのままチェックポイントで採取するメモリイメージの増大につながる。メモリイメージの増大は、保存領域の圧迫、計算ノードから保存領域までの転送負荷の増大などの問題を発生させる。そのため、チェックポイントを効率よく設定しメモリイメージを採取する必要がある。
以上の状況において、本分野の大規模計算では、計算クラスタを有効利用するために、各計算ノードのプロセスを用いて協調動作をし、さらに計算を進める分散メモリ並列ジョブが多く利用されている。そして、業界標準であるMPI(Message Passing Interface)ライブラリを使い、単一プログラムに対して計算データを各プロセスに分割して実行するSPMD(Single Program Multiple Data)型のジョブを用いて、大規模計算を行うことが多い。また、本分野の計算方式の一つに、パラメータを変更しながら同一プログラムを繰り返し実行して最適解を求める、パラメータサーベイがあり、シミュレーションの分野などで多く利用されている。
ここで、チェックポイントを効率よく設定する方法として、特許文献1には、実行時間とチェックポイント時間の割合に着目した方法が開示されている。さらに、特許文献2には、CPU(Central Processing Unit)使用率及びI/O使用量に着目した方法が開示されている。
特開2004−094422号公報 特開2006−172065号公報
しかし、特許文献1及び2に開示されているチェックポイントの設定方法は、チェックポイント設定時点におけるメモリ使用量が考慮されていないため、メモリイメージの増大に起因する問題に対処することができないという問題がある。
本発明はこのような問題を解決するためになされたものであり、メモリイメージの増大を低下させることができる計算装置、演算処理システム、チェックポイント設定方法及びプログラムを提供することを目的とする。
本発明の第1の態様にかかる計算装置は、チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置であって、前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録するメモリ使用量記録部と、複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量に基づいて前記チェックポイントを設定する操作端末に対して前記メモリ使用量記録部に記録されたメモリ使用量を送信する通信部と、を備えるものである。
本発明の第2の態様にかかる演算処理システムは、チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置と、前記計算装置に対して前記チェックポイント情報を送信する操作端末とを備える演算処理システムであって、前記計算装置は、前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録するメモリ使用量記録部と、前記操作端末に対して前記メモリ使用量記録部に記録されたメモリ使用量を送信する通信部と、を有し、前記操作端末は、複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量を表示し、ユーザから前記チェックポイントの設定位置に関する情報の入力を受け付けるものである。
本発明の第3の態様にかかるチェックポイント設定方法は、チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置において実行されるチェックポイント設定方法であって、前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録し、複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量に基づいて前記チェックポイントを設定する操作端末に対して前記記録したメモリ使用量を送信するものである。
本発明の第4の態様にかかるプログラムは、チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置のコンピュータに実行させるプログラムであって、前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録するステップと、複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量に基づいて前記チェックポイントを設定する操作端末に対して前記記録したメモリ使用量を送信するステップと、をコンピュータに実行させるものである。
本発明により、メモリイメージの増大を低下させることができる計算装置、演算処理システム、チェックポイント設定方法及びプログラムを提供することができる。
実施の形態1にかかる計算装置の構成図である。 実施の形態1にかかる演算処理システムの構成図である。 実施の形態1にかかる計算装置の構成図である。 実施の形態1にかかるメモリ操作命令実行位置記録部に記録される情報テーブルを説明した図である。 実施の形態1にかかる操作端末の構成図である。 実施の形態1にかかる計算ジョブメモリ使用量テーブルを説明した図である。 実施の形態1にかかる計算プロセスメモリ使用量テーブルを説明した図である。 実施の形態1にかかる計算プロセスメモリ使用量テーブルを説明した図である。 実施の形態1にかかる計算プロセスメモリ使用量テーブルの集計テーブルを説明した図である。 実施の形態1にかかる集計テーブルの情報をグラフ化した図である。 実施の形態1にかかるチェックポイント実施指示に関する情報を説明した図である。 実施の形態1にかかるチェックポイント実施指示記録部に保存される情報テーブルを説明した図である。 実施の形態1にかかるメモリ使用量の記録処理の流れを説明した図である。 実施の形態1にかかるチェックポイント実施指示の作成処理の流れを説明した図である。 実施の形態1にかかるチェックポイント実施処理の流れを説明した図である。 実施の形態3にかかるバルクジョブメモリ使用量テーブルを説明した図である。 実施の形態4にかかる計算装置の構成図である。 実施の形態5にかかる同期チェックポイントの動作を説明した図である。 実施の形態5にかかる同期チェックポイントの動作を説明した図である。
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。図1を用いて本発明の実施の形態1にかかる計算装置の構成例について説明する。計算装置10は、プロセス11〜13を備えている。また、それぞれのプロセスは、メモリ使用量記録部101と、通信部102とから構成されている。また、計算装置10のそれぞれのプロセスは、通信部102を介して操作端末30と通信を行う。
操作端末30は、例えば、サーバ装置や、パーソナルコンピュータ等であってもよい。操作端末30は、プロセス11〜13におけるメモリ使用量を集計し、集計したメモリ使用量に基づいて計算装置10、11及び20におけるチェックポイントを設定する。チェックポイントは、メモリイメージを取得するポイントである。計算装置10において障害が発生し、計算ジョブのリスタートを行う際に、直前のチェックポイントにおいて取得されたメモリイメージを復元し、計算ジョブをリスタートする。操作端末30は、単一のプログラムに対して計算データを分割して実行しているプロセス11〜13からそれぞれのメモリ使用量を収集し、メモリ使用量に関する統計データを生成する。また、操作端末30は、統計データを確認したユーザからチェックポイント設定指示に関する情報入力を受け付ける。
計算装置10は、設定されたチェックポイントのタイミングにおいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する。計算装置10は、複数のプロセスの動作を実行する装置であり、サーバ装置や、パーソナルコンピュータ等であってもよい。それぞれのプロセスは、メモリ使用量記録部101と、通信部102とを備えている。
メモリ使用量記録部101は、計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録する。メモリ操作命令とは、例えば、プログラムの実行に必要なメモリを確保するメモリ確保命令や、不要なメモリを解放するメモリ解放命令を含む。メモリ使用量記録部101は、例えば、メモリ操作命令の実行指示がなされた場合に、メモリ操作命令の実行前後におけるメモリ使用量を記録してもよい。メモリ操作命令の実行前後のメモリ使用量とは、例えば、メモリ確保命令においては、メモリを確保する前のメモリ使用量とメモリを確保した後のメモリ使用量である。もしくは、メモリ解放命令においては、メモリを解放する前のメモリ使用量とメモリを解放した後のメモリ使用量である。
通信部102は、メモリ使用量記録部101において記録されたメモリ使用量を操作端末30に対して送信する。通信部102は、メモリ使用量記録部101に記録されている情報が更新されるたびにメモリ使用量を操作端末30に対して送信してもよく、定期的にメモリ使用量記録部101に記録されているメモリ使用量を操作端末30に対して送信してもよい。また、通信部102は、メモリ使用量を外部記憶装置等へ記憶し、操作端末30は、外部記憶装置等に記憶されたメモリ使用量を取得するようにしてもよい。
以上説明したように、図1にかかる計算装置10を用いることにより、チェックポイントを設定する操作端末30に対して、計算装置10におけるメモリ使用量を送信することができる。これにより、操作端末30を操作するユーザは、メモリ使用量を考慮したチェックポイントを設定することができる。例えば、メモリ使用量が少ないタイミングに、チェックポイントを設定することにより、取得するメモリイメージの容量が増大することを防止することができる。
また、本図においては、計算装置10が複数のプロセスを有する構成について説明したが、複数の計算装置が単一もしくは複数のプロセスを有してもよい。
続いて、図2を用いて本発明の実施の形態1にかかる演算処理システムの構成例について説明する。演算処理システムは、計算装置10と、操作端末30と、記憶装置40とから構成されている。また、計算装置10と、操作端末30と、記憶装置40とは、ネットワーク50を介して通信を行う。
計算装置10は、複数のプロセスを用いて計算ジョブもしくはプログラムを実行する装置である。計算装置10は、計算ノード等と称されてもよい。また、計算ジョブは、複数のプロセス及びメモリに分散して並列的に処理される分散メモリ並列ジョブと称されてもよい。
操作端末30は、ユーザから入力される指示情報を、ネットワーク50を介して計算装置10へ出力する。ユーザから入力される指示情報は、計算ジョブの実行指示や、計算装置10におけるチェックポイントの設定指示等を含む。
記憶装置40は、計算装置10において計算ジョブを実行するにあたり必要なデータを記憶する装置である。本図においては、記憶装置40は、独立した装置として説明しているが、例えば、計算装置10又は操作端末30に備えられてもよい。もしくは、記憶装置40は、計算装置10及び操作端末30に備えられてもよい。また、本図においては、操作端末30は、ネットワーク50を介して計算装置10と通信を行う構成について説明しているが、計算装置10と直接接続して通信を行ってもよい。
続いて、図3を用いて本発明の実施の形態1にかかる計算装置10の詳細な構成例について説明する。計算装置10は、複数の計算プロセスから構成される。以下に、複数の計算プロセスのうち計算プロセス120の構成例について説明する。なお、他の計算プロセスの構成も計算プロセス120の構成と同様である。
計算プロセス120は、メモリ使用量記録部101と、通信部102と、ユーザプログラム103と、分散メモリ並列部106と、チェックポイント実施指示記録部107と、メモリ操作命令実行位置記録部108と、メモリ管理部109と、チェックポイント実施部110とを備えている。分散メモリ並列部106は、メモリ操作命令実行部104と、同期命令実行部105と、を有している。
ユーザプログラム103は、複数の計算プロセスを用いて実行されるプログラムである。つまり、ユーザプログラム103は、各計算プロセスにおいて計算を実行するために必要な命令列が規定されている。
分散メモリ並列部106は、計算プロセス120においてユーザプログラム103を実行するために用いられる複数のライブラリが格納されている。分散メモリ並列部106に格納されているライブラリが提供する機能には、メモリ操作命令もしくは同期命令等が含まれている。ここで、分散メモリ並列部106において、メモリ操作命令を実行する要素をメモリ操作命令実行部104とし、同期命令を実行する要素を同期命令実行部105とする。
メモリ操作命令は、ユーザプログラム103を実行するにあたり必要なメモリの確保もしくは不要なメモリの解放をメモリ管理部109に依頼する命令である。同期命令は、例えば、複数の計算プロセスにおいて計算ジョブが実行されるSPMDプログラムにおいて全計算プロセスの待ち合わせを実行する命令である。
メモリ使用量記録部101は、メモリ操作命令が実行される前後のメモリ使用量と、メモリ操作命令実行位置記録部108とに記録されたメモリ操作命令実行位置を記録する。また、メモリ使用量記録部101は、通信部102を介して記憶装置40へ、記録したメモリ使用量を送信する。もしくは、メモリ使用量記録部101は、通信部102を介して操作端末30へ記録したメモリ使用量を通知してもよい。
メモリ操作命令実行位置記録部108は、メモリ操作命令及び同期命令を実行する際に呼び出され、メモリ操作命令の実行位置を記録する。メモリ操作命令実行位置記録部108は、図4に示されるテーブル108−1の形式によりメモリ操作命令の実行位置を記録してもよい。メモリ操作命令の実行位置は、同期命令が実行された回数と、メモリ操作命令が実行された回数を用いて定められる。本図においては、例えば、メモリ操作命令実行部104において実行されたメモリ操作命令は、同期命令がまだ実行されておらず、メモリ確保命令及びメモリ確保命令がそれぞれ1回実行された位置であることを示している。
図3に戻り、チェックポイント実施指示記録部107は、チェックポイント実施指示において指定された位置と、メモリ操作命令実行位置記録部108に記録されているメモリ操作命令の実行位置とから、チェックポイント実施可否を判定する。チェックポイント実施指示は、ユーザから入力された情報に基づいて操作端末30が生成する情報である。チェックポイント実施指示には、チェックポイントを実施する位置が示されている。チェックポイント実施可能と判定した場合、チェックポイント実施指示記録部107は、チェックポイント実施部110を呼び出してチェックポイントを実施する。ここで、チェックポイントの実施とは、チェックポイントを設定しメモリイメージを採取することを意図する。
チェックポイント実施部110は、実行中の計算プロセスのメモリイメージを記憶装置40に記憶する。メモリ管理部109は、メモリの確保や解放等を実行し、計算プロセスが利用するメモリを管理する。
続いて、図5を用いて本発明の実施の形態1にかかる操作端末30の構成例について説明する。操作端末30は、ユーザに対して計算ジョブのメモリ使用量を表示し、ユーザから計算装置10に対する操作指示に関する情報を受け付ける。
メモリ使用量取得部31は、記憶装置40に記憶されたメモリ使用量に関する情報を抽出する。もしくは、メモリ使用量取得部31は、計算装置10のメモリ使用量記録部101からメモリ使用量に関する情報を受け取ってもよい。メモリ使用量取得部31は、メモリ使用量に関する情報として、図6のように管理された計算ジョブメモリ使用量テーブル101−1を受け取ってもよい。以下に、計算ジョブメモリ使用量テーブル101−1の構成について説明する。
図6の計算ジョブメモリ使用量テーブル101−1は、計算ジョブもしくは実行するユーザプログラムを識別するジョブID101−2と、プロセスID101−3と、計算プロセスメモリ使用量テーブル101−4とから構成される。プロセスID101−3は、計算装置10において実行される計算プロセスの識別子である。また、計算プロセスメモリ使用量テーブル101−4は、各計算プロセスにおいて使用されたメモリ使用量である。計算プロセスメモリ使用量テーブル101−4は、計算プロセス120のメモリ使用量記録部101において記録されたメモリ使用量が設定される。ジョブID101−2は、計算装置10において実行されている計算ジョブの識別子である。ジョブID101−2には、一番若番のプロセスID101−3が設定されてもよい。
図5に戻り、メモリ使用量集計部32は、計算ジョブメモリ使用量テーブル101−1に含まれる全てのプロセスID101−3の計算プロセスメモリ使用量テーブル101−4を集計する。操作端末30は、メモリ使用量集計部32において集計した結果を、操作端末30の表示部(図示せず)に表示する。
チェックポイント採取位置作成部33は、ユーザから入力されるチェックポイントを実施するタイミングに関する情報に基づいて、チェックポイント実施指示を作成する。ユーザは、計算プロセスメモリ使用量テーブル101−4の集計結果に基づいて、チェックポイントを実施するタイミングを判断する。
続いて、図7を用いて、計算プロセスメモリ使用量テーブル7−1の構成例について説明する。計算プロセスメモリ使用量テーブル7−1は、メモリ操作命令種別と、メモリ操作命令実行位置と、メモリ操作命令実行時刻と、使用メモリとから構成される表である。
メモリ操作種別は、実行されたメモリ操作命令の種別であり、例えば、メモリ確保命令もしくはメモリ解放命令が設定される。メモリ操作命令実行位置は、実行されたメモリ操作命令が、実行中の計算のどの位置で呼び出されたかを示している。本実施の形態においては、位置情報として、同期命令の実行回数と、同期命令以降にメモリ操作命令を実行した回数をメモリ操作命令種別ごとにカウントした値を用いる。
メモリ操作命令実行時刻は、メモリ操作命令が実行された時刻を示す。メモリ操作命令実行時刻に設定される時刻は、計算プロセス120が計算ジョブの実行を開始した時から経過した時間である。
使用メモリは、メモリ操作命令の実行前後における計算プロセスのメモリ使用量を示している。また、図8に、計算装置10内の他の計算プロセスにおいて記録された計算プロセスメモリ使用量テーブル8−1を示す。
続いて、図9を用いて、メモリ使用量集計部32における、計算プロセスメモリ使用量テーブル7−1及び8−1を集計したテーブルについて説明する。メモリ使用量集計部32は、計算プロセスメモリ使用量テーブル7−1及び8−1において、メモリ操作命令種別及びメモリ操作命令実行位置が等しい行を抽出し、メモリ操作命令種別およびメモリ操作命令実行位置を設定する。メモリ使用量集計部32は、抽出した行を比較してメモリ操作命令実行時刻が最も遅い時刻を、メモリ操作命令実行時刻に設定する。さらに、メモリ使用量集計部32は、抽出した行の使用メモリの合計を算出し、算出した値を使用メモリに設定する。使用メモリの合計は、実行前と実行後に分けて算出される。
例えば、メモリ使用量集計部32は、図7及び図8における、メモリ操作命令種別としてメモリ確保、メモリ操作命令実行位置として同期命令実行回数が1回目、メモリ操作命令種別ごとの実行回数が1回目である行を抽出する。抽出した行のメモリ操作命令実行時刻は、図7の方が10と遅いため、メモリ操作命令実行時刻には10を設定する。さらに、実行前の使用メモリは、図7及び図8ともに50であるため、合計して100を設定する。実行後の使用メモリは、図7が100であり、図8が150であるため、合計して250を設定する。その他の行についても同様に設定される。
続いて、図10を用いてメモリ使用量集計部32が集計した集計データを操作端末30の表示部に表示した結果について説明する。図10のグラフは、縦軸にメモリ使用量を示し、横軸に呼び出し時刻を示す。図10のグラフは、図9の集計データに基づいて作成される。呼び出し時刻10においては、メモリ確保命令の実行前の使用メモリは100であり、メモリ確保命令の実行後の使用メモリは250であることを示している。さらに、時刻25においては、メモリ解放命令の実行前の使用メモリは350であり、メモリ確保命令の実行後の使用メモリは150であることを示している。さらに、時刻40においては、メモリ解放命令の実行前の使用メモリは150であり、メモリ確保命令の実行後の使用メモリは250であることを示している。
続いて、図11を用いて、チェックポイント採取位置作成部33において作成されたチェックポイント実施指示11−1について説明する。チェックポイント実施指示11−1は、同期命令実行回数が0回目かつメモリ解放命令実行回数が1回目の後であって、同期命令実行回数が1回目且つメモリ確保命令実行回数が1回目の前に、チェックポイントを設定することを示している。
また、図12は、操作端末30からチェックポイント実施指示を受信した計算装置10のチェックポイント実施指示記録部107に保存されるテーブルを示している。図12のテーブル12−1は、同期命令実行回数が0回目であって、メモリ確保命令実行回数が1回目の前であってメモリ解放命令実行回数が1回目の後にチェックポイントを設定することを示している。
続いて、図13を用いて計算プロセス120におけるメモリ使用量の記録処理の流れについて説明する。計算ジョブは、計算装置10において複数の計算プロセスにおいて実行される。本図においては、1つの計算プロセスに着目して、メモリ使用量の記録処理の流れについて説明する。
はじめに、計算プロセス120において計算ジョブの実行中に、同期命令実行部105において、同期命令の実行指示がなされた場合(S11:YES)、メモリ操作命令実行位置記録部108は、同期命令実行回数を1増加し、メモリ操作命令実行回数を0に初期化する(S12)。次に、同期命令実行部105は、同期命令を実行しステップS11以降の処理に戻る。
計算ジョブの実行中に、同期命令の実行指示がなされず(S11:NO)、メモリ操作命令実行部104において、メモリ操作命令の実行指示がなされた場合(S11:YES)、メモリ操作命令実行位置記録部108は、メモリ種別に対応したメモリ操作命令実行回数を1増加する(S15)。次に、メモリ使用量記録部101は、メモリ操作命令実行位置記録部108を参照し、同期命令実行回数と種別に応じたメモリ操作命令実行回数とをメモリ操作命令実行位置として、実行したメモリ操作命令の種別、メモリ操作命令実行時刻及びメモリ操作命令実行前後のメモリ使用量を、図7もしくは図8において説明した形式を用いて記録する(S16)。次に、メモリ操作命令実行部104は、メモリ操作命令を実行しステップS11以降の処理に戻る。
計算ジョブの実行中に、メモリ操作命令の実行指示がなされず(S14:NO)、実行中のユーザプログラムが終了していない場合(S18:NO)、ステップS11以降の処理を繰り返す。実行中のユーザプログラムが終了した場合、メモリ使用量記録部101に記録されている情報を、記憶装置40へ出力する(S19)。記憶装置40は、出力された情報を計算ジョブ使用量テーブルの計算プロセスメモリ使用量テーブルに記憶する。
続いて、図14を用いて操作端末30におけるチェックポイント実施指示の作成処理の流れについて説明する。
はじめに、メモリ使用量取得部31は、記憶装置40から計算ジョブ使用量テーブルを取得する(S21)。次に、メモリ使用量集計部32は、計算ジョブ使用量テーブルの全プロセスを集計する(S22)。具体的には、図9において説明した集計テーブルを生成する。次に、メモリ使用量集計部32は、図9おいて説明した集計テーブルを図10のようにグラフ化して、操作端末30の表示部へ表示させる(S23)。次に、チェックポイント採取位置作成部33は、ユーザからチェックポイント実施個所に関する情報の入力を受け付ける(S24)。次に、チェックポイント採取位置作成部33は、ユーザから入力された情報に基づいて、チェックポイント実施指示を作成する(S25)。生成されたチェックポイント実施指示は、ネットワーク50を介して操作端末30から計算装置10へ送信される。
続いて、図15を用いて、計算装置10におけるチェックポイント実施処理の流れについて説明する。はじめに、チェックポイント実施指示記録部107は、操作端末30から送信されたチェックポイント実施指示を受信し、受信したチェックポイント実施指示を読み込む(S31)。次に、ステップS32〜S36の処理は、図13におけるステップS11〜15の処理と同様であるため、詳細な説明を省略する。
次に、ステップS36において、メモリ操作命令実行位置記録部108のメモリ操作命令実行位置が更新されると、チェックポイント実施指示記録部107に記録されているチェックポイント実施位置と、メモリ操作命令実行位置記録部108に記録されているメモリ操作命令実行位置とが一致するか否かが判定される(S37)。チェックポイント実施位置と、メモリ操作命令実行位置とが一致する場合(S37:一致)、ステップS35において実行指示がなされたメモリ操作命令のメモリ種別が判定される(S38)。メモリ種別がメモリ確保命令である場合(S38:確保)、チェックポイント実施部110は、メモリイメージを採取し、記憶装置40へ保存する(S39)。次に、メモリ操作命令実行部104は、メモリ確保命令を実行し、ステップS32以降の処理を繰り返す(S40)。ステップS38において、メモリ種別がメモリ解放命令である場合(S38:解放)、メモリ操作命令実行部104は、メモリ解放命令を実行する(S42)。次に、チェックポイント実施部110は、メモリイメージを採取し、記憶装置40へ保存し、ステップS32以降の処理を繰り返す(S42)。
ステップS37において、チェックポイント実施位置と、メモリ操作命令実行位置とが一致しない場合(S37:不一致)、ステップS32以降の処理を繰り返す。ステップS43の処理は、図13におけるステップS18と同様であるため詳細な説明を省略する。
以上説明したように、本発明の実施の形態1にかかる演算処理システムを用いることにより、ユーザはメモリ使用量に基づいてチェックポイントの実施タイミングを決定することができる。そのため、メモリ使用量の少ない位置にチェックポイントを設定することにより、採取するメモリイメージの増大を抑止することができる。
また、上記の説明においては、ユーザによってチェックポイントの実施タイミングが決定されるように説明を行ったが、例えば、一番メモリ使用量の少ない位置を自動的に判定し、その位置にチェックポイントを設定するようにしてもよい。
(実施の形態2)
本発明の実施の形態1においては、初回のユーザプログラム実行時におけるメモリ使用量を収集し、収集したデータに基づいて、次回以降のユーザプログラム実行時におけるチェックポイント実施位置を決定する。本発明の実施の形態2においては、初回のユーザプログラム実行時のみではなく、各回においてメモリ使用量を収集し、常に最新のメモリ使用量に応じてチェックポイント実施位置を決定する処理の流れについて説明する。
上述した処理を実行するために、図15のステップS36とステップS37との間において、メモリ使用量記録部101を更新する。つまり、メモリ使用量記録部101は、メモリ操作命令実行位置記録部108を参照し、同期命令実行回数と種別に応じたメモリ操作命令実行回数とをメモリ操作命令実行位置として、実行したメモリ操作命令の種別、メモリ操作命令実行時刻及びメモリ操作命令実行前後のメモリ使用量を、図7もしくは図8において説明した形式を用いて記録する。
さらに、図15のステップS43の後に、メモリ使用量記録部101に記録されている情報を、記憶装置40へ出力する。このようにして、チェックポイント実施処理とメモリ使用量の記録処理を同一のユーザプログラム実行時に行うことにより、メモリ使用量は常に更新され、ユーザに対して最新のメモリ使用量を確認させることができる。また、ユーザは最新のメモリ使用量に応じてチェックポイントを設定することができるため、より最適なチェックポイント位置を設定することができる。
(実施の形態3)
続いて、図16を用いて本発明の実施の形態3にかかるメモリ使用量の算出方法について説明する。実施の形態3においては、同じプログラムの実行を複数回繰り返すパラメータサーベイを前提として説明を行う。パラメータサーベイを実行する場合、過去に実行されたプログラムにおけるメモリ使用量の平均を計算して、ユーザに対して平均結果に関するメモリ使用量を確認させてもよい。
例えば、図16にバルクジョブメモリ使用量テーブル16−1を示す。バルクジョブメモリ使用量テーブル16−1は、パラメータサーベイを行う全計算ジョブにバルクジョブID16−2を割り当てる。バルクジョブメモリ使用量テーブル16−1は、図6において説明した計算ジョブメモリ使用量テーブル101−1をまとめて保存する。ジョブID毎に作成された計算プロセスメモリ使用量テーブルにおいて、メモリ操作種別とメモリ操作実行位置が同じ行同士において、メモリ操作命令実行時刻及び使用メモリの平均をとる。
以上説明したように、本発明の実施の形態3におけるメモリ使用量の算出方法を用いることにより、初回のメモリ使用量のみならず、過去に実行されたプログラムにおけるメモリ使用量をすべて反映させることができるため、ユーザに対してより正確なメモリ使用量を確認させることができる。
(実施の形態4)
続いて、図17を用いて本発明の実施の形態4にかかる計算プロセス120の構成例について説明する。図17の計算プロセス120は、図3における計算プロセス120に、チェックポイント要求記録部111を追加した点において異なる。その他の構成は、図3における計算プロセス120と同様である。
チェックポイント要求記録部111は、計算ジョブ実行前に決定されるチェックポイント採取指示とは別に、計算ジョブ実行中にユーザから要求されるチェックポイント採取指示を記録する。計算ジョブ実行中にユーザからチェックポイント採取指示があった場合、ユーザプログラム103は、チェックポイント要求記録部111に対して、ユーザからチェックポイントが要求されたことを記録する。
また、図15のステップS31とステップ32との間に、ユーザからチェックポイント要求があったかどうかを判定し、チェックポイント要求があった場合には、チェックポイント要求記録部111に対して、チェックポイントが要求されたことを記録する処理を追加してもよい。さらに、ステップS36とステップS37との間において、チェックポイント要求記録部111に、チェックポイント要求がされたことが記録されている場合には、ステップS38以降におけるチェックポイントを実施するようにしてもよい。また、チェックポイント要求記録部111に記録されているチェックポイント要求に関しては、チェックポイント実施後に消去するようにしてもよい。
以上説明したように、本発明の実施の形態4にかかる計算プロセス120を用いることにより、任意のタイミングにおいてチェックポイントの設定を行うことができる。そのため、ユーザが必要と判断したタイミングにおいてチェックポイントの設定を行うことができるため、ユーザにとって必要なデータの収集が可能となる。
(実施の形態5)
続いて、本発明の実施の形態5にかかるチェックポイント実施処理について説明する。実施の形態5においては、全プロセスでチェックポイントの実施を待ち合わせ、プロセス間の通信状態等の不整合を解消した後、同時にチェックポイントを実施する方法について説明する。このようなチェックポイントの実施方法を同期チェックポイントとする。
ここで、図18を用いて通信命令を跨いでメモリ操作命令が実行される場合における同期チェックポイントについて説明する。図18Aは、プロセス1及び2におけるメモリ操作処理を示している。プロセス1は、メモリ確保命令を実行し、さらにメモリ解放命令が実行された後に、プロセス2との間における通信命令を実行する。プロセス2は、メモリ確保命令を実行した後に、プロセス1との間における通信命令を実行し、その後にメモリ解放命令を実行する。
図18B及びCは、プロセス1又はプロセス2におけるチェックポイント採取位置作成部33において作成されたチェックポイント実施指示11−1を示している。チェックポイントは、18−1及び18−2において示された場所において実施される。
ここで、同期チェックポイントを実施する場合、プロセス1が、18−2のメモリ解放命令の実行後にチェックポイントを実施しようとしてプロセス2を待ち合せる。しかし、プロセス2は、18−2のメモリ解放命令の前の通信命令でプロセス1の通信を待ち合せる。そのため、チェックポイントを実施することができずデッドロックが発生してしまう。
そこで、メモリ操作命令実行位置の表現形式を、同期命令実行回数及びメモリ操作命令種別ごとの実行回数の組み合わせから、同期命令実行回数及びメモリ操作命令の実行アドレスに変更して、同期チェックポイントを実行するようにする。メモリ操作命令の実行アドレスは、メモリ上にロードされたプログラムの命令列の先頭からのアドレスである。
具体的には、図19に示されるように、図19B及びCのメモリ操作命令実行位置において、メモリ操作命令実行アドレスを用いる。ここで、図19B及びCに示されるように、通信命令を跨いだメモリ解放命令は、実行アドレスが異なる。そのため、メモリ操作命令実行位置が異なるため、チェックポイントの設定対象から除外することができる。これにより、デッドロックを発生させるような同期チェックポイントを回避し、安全に同期チェックポイントを実施することができる。
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、図13における計算装置の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。)
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
10 計算装置
11 プロセス
12 プロセス
13 プロセス
30 操作端末
31 メモリ使用量取得部
32 メモリ使用量集計部
33 チェックポイント採取位置作成部
40 記憶装置
50 ネットワーク
101 メモリ使用量記録部
102 通信部
103 ユーザプログラム
104 メモリ操作命令実行部
105 同期命令実行部
106 分散メモリ並列部
107 チェックポイント実施指示記録部
108 メモリ操作命令実行位置記録部
109 メモリ管理部
110 チェックポイント実施部
111 チェックポイント要求記録部
120 計算プロセス

Claims (10)

  1. チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置であって、
    前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録するメモリ使用量記録部と、
    複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量に基づいて前記チェックポイントを設定する操作端末に対して前記メモリ使用量記録部に記録されたメモリ使用量を送信する通信部と、を備える計算装置。
  2. 前記メモリ操作命令の実行回数及び前記複数のプロセスにおける前記計算ジョブの実行を待ち合せる同期命令の実行回数を用いて示される位置情報を記録する位置情報記録部をさらに備え、
    前記メモリ使用量記録部は、
    前記位置情報と前記メモリ使用量とを対応付けて記録する、請求項1に記載の計算装置。
  3. 前記位置情報は、
    前記メモリ操作命令が実行される際に、前記メモリ操作命令の実行回数が増加され、前記同期命令が実行される際に前記同期命令の実行回数が増加される、請求項2に記載の計算装置。
  4. 前記操作端末から、前記位置情報を用いて前記チェックポイントの設定位置を示すメモリイメージ取得指示に関する情報を受け取る指示情報記録部をさらに備え、
    前記指示情報記録部は、
    前記メモリ操作命令が実行される際に、前記位置情報記録部に記録されている前記位置情報と、前記メモリイメージ取得指示において示された前記チェックポイントの設定位置情報とが一致する場合に、前記チェックポイントにおける前記メモリイメージを取得する、請求項3に記載の計算装置。
  5. 前記計算ジョブが複数回繰り返し実行される場合、
    前記メモリ使用量記録部は、
    初回に実行される前記計算ジョブ実行中のメモリ操作命令に応じて前記メモリ使用量を記録し、
    前記指示情報記録部は、
    前記メモリ使用量に基づいて前記操作端末において決定された前記チェックポイントの設定位置を受け取る、請求項4に記載の計算装置。
  6. 前記計算ジョブが複数回繰り返し実行される場合、
    前記メモリ使用量記録部は、
    前記計算ジョブが実行される毎に前記メモリ使用量を更新し、
    前記指示情報記録部は、
    前記更新されたメモリ使用量に基づいて前記操作端末において決定された前記チェックポイントの設定位置を受け取る、請求項4に記載の計算装置。
  7. 前記メモリ操作命令を実行する際に操作されるメモリ上の実行アドレス及び前記複数のプロセスにおける前記計算ジョブの実行を待ち合せる同期命令の実行回数を用いて示される位置情報を記録する位置情報記録部をさらに備え、
    前記メモリ使用量記録部は、
    前記位置情報と前記メモリ使用量とを対応付けて記録する、請求項1に記載の計算装置。
  8. チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置と、前記計算装置に対して前記チェックポイント情報を送信する操作端末とを備える演算処理システムであって、
    前記計算装置は、
    前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録するメモリ使用量記録部と、
    前記操作端末に対して前記メモリ使用量記録部に記録されたメモリ使用量を送信する通信部と、を有し、
    前記操作端末は、
    複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量を表示し、ユーザから前記チェックポイントの設定位置に関する情報の入力を受け付ける、演算処理システム。
  9. チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置において実行されるチェックポイント設定方法であって、
    前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録し、
    複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量に基づいて前記チェックポイントを設定する操作端末に対して前記記録したメモリ使用量を送信する、チェックポイント設定方法。
  10. チェックポイント情報に基づいて、障害発生時に計算ジョブのリスタートを行うためのメモリイメージを取得する計算装置のコンピュータに実行させるプログラムであって、
    前記計算ジョブ実行中のメモリ操作命令に応じてメモリ使用量を記録するステップと、
    複数のプロセスにおける前記メモリ使用量を集計し前記集計したメモリ使用量に基づいて前記チェックポイントを設定する操作端末に対して前記記録したメモリ使用量を送信するステップと、をコンピュータに実行させるプログラム。
JP2012017856A 2012-01-31 2012-01-31 計算装置、演算処理システム、チェックポイント設定方法及びプログラム Expired - Fee Related JP5966389B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012017856A JP5966389B2 (ja) 2012-01-31 2012-01-31 計算装置、演算処理システム、チェックポイント設定方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012017856A JP5966389B2 (ja) 2012-01-31 2012-01-31 計算装置、演算処理システム、チェックポイント設定方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2013156886A true JP2013156886A (ja) 2013-08-15
JP5966389B2 JP5966389B2 (ja) 2016-08-10

Family

ID=49051989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012017856A Expired - Fee Related JP5966389B2 (ja) 2012-01-31 2012-01-31 計算装置、演算処理システム、チェックポイント設定方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5966389B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102022481B1 (ko) * 2017-12-06 2019-09-18 연세대학교 산학협력단 Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887424A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 電子計算機
JPH11345137A (ja) * 1998-05-29 1999-12-14 Toshiba Corp チェックポイントロールバック方式計算機システム、チェックポイントロールバック計算機システムに於けるメモリ管理制御方法、及び同方法を格納した記憶媒体
JP2006172065A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd チェックポイント採取方法、システム及びプログラム
JP2008502953A (ja) * 2003-11-17 2008-01-31 ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行
JP2008077498A (ja) * 2006-09-22 2008-04-03 Toshiba Corp 保守制御装置
JP2010102404A (ja) * 2008-10-21 2010-05-06 Canon Inc 情報処理装置及びその制御方法、並びに、プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887424A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 電子計算機
JPH11345137A (ja) * 1998-05-29 1999-12-14 Toshiba Corp チェックポイントロールバック方式計算機システム、チェックポイントロールバック計算機システムに於けるメモリ管理制御方法、及び同方法を格納した記憶媒体
JP2008502953A (ja) * 2003-11-17 2008-01-31 ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行
JP2006172065A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd チェックポイント採取方法、システム及びプログラム
JP2008077498A (ja) * 2006-09-22 2008-04-03 Toshiba Corp 保守制御装置
JP2010102404A (ja) * 2008-10-21 2010-05-06 Canon Inc 情報処理装置及びその制御方法、並びに、プログラム

Also Published As

Publication number Publication date
JP5966389B2 (ja) 2016-08-10

Similar Documents

Publication Publication Date Title
CN104618693B (zh) 一种基于云计算的监控视频在线处理任务管理方法及系统
WO2023005075A1 (zh) 数据的容灾恢复方法、系统、终端设备及计算机存储介质
KR20120040707A (ko) 폴트 톨러런트 배치 처리
CN110019469B (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
CN107566214B (zh) 一种性能测试方法和装置
WO2021057514A1 (zh) 任务调度方法、装置、计算机设备和计算机可读介质
US20140156853A1 (en) Computer and resource retrieval method
WO2015014117A1 (zh) 云服务器及其虚拟机管理方法
EP3438847A1 (en) Method and device for duplicating database in distributed system
WO2018177350A1 (zh) 一种提供序列号的方法、装置、电子设备和可读存储介质
TW201835764A (zh) 監控服務設備之系統
JPWO2018131556A1 (ja) リソース設定制御装置、リソース設定制御システム、リソース設定制御方法、および、リソース設定制御プログラム
CN106375103B (zh) 一种告警数据采集和发送方法
US11070635B2 (en) Device management server and method
JP5966389B2 (ja) 計算装置、演算処理システム、チェックポイント設定方法及びプログラム
EP3602301B1 (en) Anticipatory collection of metrics and logs
JPWO2010018637A1 (ja) 業務フロー分散処理システム及び方法
JP6040894B2 (ja) ログ生成装置、及びログ生成方法
JP6915345B2 (ja) クラウド管理装置、クラウド管理方法、及びプログラム
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
CN111723064A (zh) 日志采集方法、装置、服务器及存储介质
CN103180824A (zh) 分配信息
JP6412462B2 (ja) トランザクション管理方法、トランザクション管理装置
CN105760215A (zh) 基于映射规约模型分布式文件系统作业的运行方法
CN106484523B (zh) 一种硬件设备管理方法及其装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R150 Certificate of patent or registration of utility model

Ref document number: 5966389

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees