(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-28
(45)【発行日】2023-09-05
(54)【発明の名称】情報処理装置,情報処理システム及び通信管理プログラム
(51)【国際特許分類】
G06F 9/52 20060101AFI20230829BHJP
G06F 15/173 20060101ALI20230829BHJP
【FI】
G06F9/52 150A
G06F15/173 660D
(21)【出願番号】P 2019172032
(22)【出願日】2019-09-20
【審査請求日】2022-06-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100092978
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【氏名又は名称】横田 功
(72)【発明者】
【氏名】井原 宣孝
(72)【発明者】
【氏名】川島 崇裕
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2012-221004(JP,A)
【文献】特表2011-524563(JP,A)
【文献】特開2014-106660(JP,A)
【文献】特開2015-036943(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/16-15/177
G06F 9/52
(57)【特許請求の範囲】
【請求項1】
並列ジョブを実行する複数の情報処理装置のうちのいずれかの情報処理装置であって、
エラー情報のバリア通信の発行を指示する指示部と、
前記指示部によるバリア通信の指示に基づき、他の情報処理装置のそれぞれに前記エラー情報を伝搬させる処理部と、
を備え
、
前記指示部は、当該情報処理装置においてバリア通信の発行が行なわれていない場合に、前記エラー情報のバリア通信の発行を指示し、
前記処理部は、前記エラー情報の伝搬後にバリア通信をエラーで停止させる、
情報処理装置
。
【請求項2】
前記処理部は、他の情報処理装置において前記エラー情報のバリア通信が発行された場合に、バリア通信をエラーで停止させる、
請求項
1に記載の情報処理装置。
【請求項3】
前記処理部は、当該情報処理装置又は他の情報処理装置において前記エラー情報のバリア通信が発行されていない場合に、バリア通信を正常に停止させる、
請求項1
又は2に記載の情報処理装置。
【請求項4】
並列ジョブを実行する複数の情報処理装置を有する情報処理システムであって、
前記複数の情報処理装置のうち、バリア通信の発行が行なわれていない第1の情報処理装置は、
エラー情報のバリア通信の発行を指示する指示部と、
前記指示部によるバリア通信の指示に基づき、他の情報処理装置のそれぞれに前記エラー情報を伝搬させる第1処理部と、
を備え
、
前記指示部は、当該第1の情報処理装置においてバリア通信の発行が行なわれていない場合に、前記エラー情報のバリア通信の発行を指示し、
前記第1処理部は、前記エラー情報の伝搬後にバリア通信をエラーで停止させる、
情報処理システム。
【請求項5】
並列ジョブを実行する複数の情報処理装置のうちのいずれかの情報処理装置に備えられるコンピュータに、
エラー情報のバリア通信の発行を指示し、
前記バリア通信の指示に基づき、他の情報処理装置のそれぞれに前記エラー情報を伝搬させ
、
当該情報処理装置においてバリア通信の発行が行なわれていない場合に、前記エラー情報のバリア通信の発行を指示し、
前記エラー情報の伝搬後にバリア通信をエラーで停止させる、
処理を実行させる、通信管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置,情報処理システム及び通信管理プログラムに関する。
【背景技術】
【0002】
ハイパフォーマンスコンピューティング(HPC)等における並列プログラムでは、ノード間でデータを送受信する場合に、一般的にMessage Passing Interface(MPI)ライブラリ等の通信ライブラリが使用される。
【0003】
HPC等において、優先度の高いジョブを投入する必要が発生した場合に、優先度が低いジョブを一時停止して必要な情報を退避することでノード資源が解放され、優先度が高いジョブを実行した後に退避していた情報が元に戻される。そして、一時停止していたジョブを停止したプロセスからジョブを再開させる技術が利用され、ジョブマイグレーションやジョブ凍結,ジョブスワップ等の機能が開発されている。
【0004】
バリア通信を含まないノード間データ通信を使用したジョブでは一時停止処理が開始されると、通信を行なっていたライブラリ(例えば、MPIのような通信ライブラリ)が各プロセスの情報を保存する。これにより、プロセスの再開位置は他のノードの状態によらず一意に決めることができる。バリア通信がハードウェア機能を利用している場合には、各プロセスの状態が通知し合われ、各プロセスの状態が判定されることで、ジョブの再開位置を決めることができる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平4-223533号公報
【文献】特開2004-227188号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、ジョブスワップの際にバリア通信を止めた後に、ソフトウェアレベルで各プロセスが互いに状態確認をしなければ、スワップアウトによるジョブの一時停止の処理ができず、またスワップインの後のジョブの再開位置を決めることができない。
【0007】
1つの側面では、高速にバリア通信を停止させることを目的とする。
【課題を解決するための手段】
【0008】
1つの側面では、並列ジョブを実行する複数の情報処理装置のうちのいずれかの情報処理装置であって、エラー情報のバリア通信の発行を指示する指示部と、前記指示部によるバリア通信の指示に基づき、他の情報処理装置のそれぞれに前記エラー情報を伝搬させる処理部と、を備え、前記指示部は、当該情報処理装置においてバリア通信の発行が行なわれていない場合に、前記エラー情報のバリア通信の発行を指示し、前記処理部は、前記エラー情報の伝搬後にバリア通信をエラーで停止させる。
【発明の効果】
【0009】
1つの側面では、高速にバリア通信を停止できる。
【図面の簡単な説明】
【0010】
【
図1】実施形態の一例としての情報処理システムの構成例を示すブロック図である。
【
図2】
図1に示した資源管理ノードの機能構成例を模式的に示すブロック図である。
【
図3】
図1に示した計算ノードの機能構成例を模式的に示すブロック図である。
【
図4】関連例におけるバリアネットワークにおいて全プロセスでバリア通信が完了する例を示す図である。
【
図5】関連例におけるバリアネットワークにおいてのバリア通信の再開処理を例示する図である。
【
図6】関連例におけるバリアネットワークにおいて全プロセスでバリア通信が完了しない例を示す図である。
【
図7】
図1に示した情報処理システムにおけるバリアネットワークにおいて全プロセスでエラー発生によってバリア通信を完了させる例を示す図である。
【
図8】
図1に示した情報処理システムにおけるバリアネットワークにおいてのエラー発生後のバリア通信の再開処理を例示する図である。
【
図9】
図1に示した情報処理システムにおけるバリアネットワークにおいてのエラー未発生の場合のバリア通信の再開処理を例示する図である。
【
図10】
図1に示した計算ノードにおけるバリア通信の再開処理を説明するフローチャートである。
【
図11】
図1に示した情報処理システムにおけるバリア通信の停止処理を説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【0012】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0013】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【0014】
〔A〕実施形態の一例
〔A-1〕システム構成例
並列ジョブプロセスとして使用される通信は、大別すると、ノード間の一対一データ通信及びノード間の同期をとる一対多バリア通信がある。
【0015】
本実施形態の一例における並列プロセスのバリア通信は、同期すべき全てプロセスが同期すべきプログラム一でバリア関数を呼び出すことにより実現される。例えばMPIライブラリでは、MPI_Barrier関数で、主にバリア通信の設定やバリア通信の発行,バリア通信の完了確認が行なわれており、全てのプロセスがバリア通信の完了を確認するまでプログラムは先の処理に進めないため、プロセス間の同期をとることができる。
【0016】
図1は、実施形態の一例としての情報処理システム100の構成例を示すブロック図である。
【0017】
情報処理システム100は、資源管理ノード1,複数(図する例では5つ)の計算ノード2及びネットワークスイッチ(NS)3を備える。資源管理ノード1は、各計算ノード2と通信可能に接続される。また、各計算ノード2は、他の計算ノード2と直接に接続されると共に、他の計算ノード2とNS3を介して接続される。
【0018】
資源管理ノード1は、Central Processing Unit(CPU)11及びメモリ12を備える。
【0019】
メモリ12は、例示的に、Read Only Memory(ROM)及びRandom Access Memory(RAM)を含む記憶装置である。メモリ12のROMには、Basic Input/Output System(BIOS)等のプログラムが書き込まれてよい。メモリ12のソフトウェアプログラムは、CPU11に適宜に読み込まれて実行されてよい。また、メモリ12のRAMは、一次記録メモリあるいはワーキングメモリとして利用されてよい。
【0020】
図2は、
図1に示した資源管理ノード1の機能構成例を模式的に示すブロック図である。
【0021】
CPU11は、例示的に、種々の制御や演算を行なう処理装置であり、メモリ12に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。すなわち、CPU11は、
図2に示すように、ジョブ管理部111及び資源管理部112として機能してよい。
【0022】
なお、これらのジョブ管理部111及び資源管理部112としての機能を実現するためのプログラムは、例えばフレキシブルディスク、CD(CD-ROM、CD-R、CD-RW等)、DVD(DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ(本実施形態ではCPU11)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
【0023】
ジョブ管理部111及び資源管理部112としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ12)に格納されたプログラムがコンピュータ(本実施形態ではCPU11)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【0024】
ジョブ管理部111は、ユーザ4(
図11を用いて後述)からのジョブの投入を受け付け、資源管理部112に対してスワップアウト実行依頼を発行する。
【0025】
資源管理部112は、各計算ノード2においてスワップアウトが可能であるかを判定し、スワップアウトが可能な場合に、各計算ノード2においてジョブの不活性化及びスワップアウトを実行させる。
【0026】
CPU11は、例示的に、資源管理ノード1全体の動作を制御する。資源管理ノード1全体の動作を制御するための装置は、CPU11に限定されず、例えば、MPUやDSP,ASIC,PLD,FPGAのいずれか1つであってもよい。また、資源管理ノード1全体の動作を制御するための装置は、CPU,MPU,DSP,ASIC,PLD及びFPGAのうちの2種類以上の組み合わせであってもよい。なお、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称であり、ASICはApplication Specific Integrated Circuitの略称である。また、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
【0027】
図1に示すように、各計算ノード2は、情報処理装置の一例であり、CPU21,メモリ22,バリアインタフェース(BI)23及びネットワークインタフェース(NI)24を備える。
【0028】
NI24は、NS3を介した他の計算ノード2との通信を中継する。
【0029】
BI23は、他の計算ノード2との直接の通信を中継する。
【0030】
メモリ22は、例示的に、ROM及びRAMを含む記憶装置である。メモリ22のROMには、BIOS等のプログラムが書き込まれてよい。メモリ22のソフトウェアプログラムは、CPU21に適宜に読み込まれて実行されてよい。また、メモリ22のRAMは、一次記録メモリあるいはワーキングメモリとして利用されてよい。
【0031】
図3は、
図1に示した計算ノード2の機能構成例を模式的に示すブロック図である。
【0032】
CPU21は、例示的に、種々の制御や演算を行なう処理装置であり、メモリ22に格納されたOSやプログラムを実行することにより、種々の機能を実現する。すなわち、CPU21は、
図3に示すように、資源管理部211,スワップ指示部212及びスワップ処理部213として機能してよい。
【0033】
なお、これらの資源管理部211,スワップ指示部212及びスワップ処理部213としての機能を実現するためのプログラムは、例えばフレキシブルディスク、CD(CD-ROM、CD-R、CD-RW等)、DVD(DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ(本実施形態ではCPU21)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
【0034】
資源管理部211,スワップ指示部212及びスワップ処理部213としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ22)に格納されたプログラムがコンピュータ(本実施形態ではCPU21)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【0035】
資源管理部211は、各計算ノード2においてスワップアウトを実行する。
【0036】
スワップ指示部212は、資源管理ノード1からの要求に従い、ジョブの不活性化を指示する。なお、スワップ指示部212の詳細については、
図8等を用いて後述する。
【0037】
スワップ処理部213は、ジョブの不活性化及びバリア通信の停止を実行する。なお、スワップ処理部213の詳細については、
図8及び
図9等を用いて後述する。
【0038】
CPU21は、例示的に、計算ノード2全体の動作を制御する。計算ノード2全体の動作を制御するための装置は、CPU21に限定されず、例えば、MPUやDSP,ASIC,PLD,FPGAのいずれか1つであってもよい。また、計算ノード2全体の動作を制御するための装置は、CPU,MPU,DSP,ASIC,PLD及びFPGAのうちの2種類以上の組み合わせであってもよい。
【0039】
各計算ノード2は、NI24とBI23とにより、それぞれ独立に通信を行なう。なお、各計算ノード2においてBI23が備えられない場合においては、例えばNS3のファームウェアによりBI23と同様の機能が実現されてもよい。
【0040】
MPIライブラリで並列ジョブが実行されている際に、実行中の並列ジョブ(別言すれば、MPIプログラム)の一時停止を行なった場合を説明する。ジョブを管理するコンポーネントから資源を管理するコンポーネントにジョブのスワップアウト実行依頼が発行されると、資源を管理するコンポーネントはジョブが使用する全計算ノードのスワップライブラリに対してジョブ不活性化依頼を発行する。これにより、各ノードでスワップアウト処理専用のスレッドでジョブのスワップアウト処理が開始される。この際、MPIにより計算ノード間で通信を行なっている場合には、一対一通信やバリア通信の新たな発行が中止される。スワップインはスワップアウトの逆をたどることで、停止したジョブを再開する。
【0041】
一対一データ通信では送信したデータを相手が受信したか否かを通信ライブラリで確認できるため、受信確認を待って停止処理を行ない、その時点での当該ノードの情報を保存することで、再開位置は他のノードの状態によらず一意に決めることができる。
【0042】
図4は、関連例におけるバリアネットワークにおいて全プロセスでバリア通信が完了する例を示す図である。
【0043】
図4に示す例では、1つの計算ノードに1つのプロセスが起動しているものとする。BIには、バリア通信の送受信と待ち合わせを行なうための機構であるゲートが複数個備わっている。ゲートには始点・終点となるゲートと中継点となるゲートとが含まれ、各ゲートは自プロセスゲートと他プロセスゲートとの送受信が組み合わせられている。ゲートでは、自プロセスゲートからの受信と他プロセスゲートからの受信とを待ち合わせて、次のゲートへの送信が行なわれる。
【0044】
一般的に、通信ライブラリは、ゲート毎に、送信先及び受信先(別言すれば、ノード番号及びゲート番号)を設定する。そして、始点ゲート(図示する例では、ゲート#1)からバリア通信が発行され、終点ゲート(図示する例では、ゲート#1)でバリア通信の完了確認が行なわれる。
【0045】
バリア通信では、このようにバリア通信専用のネットワークが構築され、通信ライブラリが通信を開始するとハードウェア内又はファームウェア内で送受信が繰り返し行なわれ、一般的にはバリア通信がどこまで進んだのか通信ライブラリは関知しない。すなわち、通信ライブラリは、中継ゲート(図示する例では、ゲート#27,#28)でのバリア通信の状態等を確認することができない。
【0046】
図5は、関連例におけるバリアネットワークにおいてのバリア通信の再開処理を例示する図である。
図6は、関連例におけるバリアネットワークにおいて全プロセスでバリア通信が完了しない例を示す図である。
【0047】
バリア通信の一時停止を指示した際、
図5に示すように、一時停止の契機(符号A1参照)において全プロセスでバリア通信が発行されていれば(符号A2参照)、バリア通信は
図4に示したように終点ゲートまで到達して完了する。
【0048】
一方、
図6に示すように、一時停止の契機においてバリア通信を発行していないプロセス(図示する例では、プロセス#3が起動しているノード)があった場合を想定する。この場合には、中継ゲート(図示する例では、ゲート#27,#28)のどこかでバリア通信未発行のプロセスからの通信待ちが発生し、終点ゲートにバリア通信は到達しない。この際、通信ライブラリでは各プロセスの中継ゲート(図示する例では、ゲート#27,#28)のハードウェア又はファームウェアが行なっている途中経過のバリア通信の情報を取得し保存することができない。
【0049】
従って、バリア通信がどの中継ゲートで止まっているのか判断できないので、互いの状態を通信することで通知し合い、バリア通信が完了せずに止まったことや、再開位置を決める必要がある。
【0050】
このように、関連例では、ジョブスワップの際にバリア通信をハードウェアによって止めた後、各プロセスはバリア発行グループ内に含まれる全プロセスの状態をプロセス間で確認してバリア通信が完了せずに止まったり、再発行の際の再開位置を決めたりしている。しかしながら、実施形態の一例においては、全プロセスの状態の確認処理をしなくてもよい。
【0051】
図7は、
図1に示した情報処理システム100におけるバリアネットワークにおいて全プロセスでエラー発生によってバリア通信を完了させる例を示す図である。
【0052】
スワップアウト指示が発行された際に、図示するように、バリア通信を発行していないプロセス#3でスワップ処理を行なうスレッドがエラータイプのバリア通信を発行する。自プロセスからのバリア通信(実線矢印を参照)と、他プロセスからのバリア通信(破線矢印を参照)との待ち合わせで、片方又は両方がエラータイプを受けた場合(破線円を参照)には、その先のバリア通信でもエラータイプが発行される。このため、全プロセスの終点ゲートでバリア通信がエラーとなって完了する。
【0053】
図8は、
図1に示した情報処理システム100におけるバリアネットワークにおいてのエラー発生後のバリア通信の再開処理を例示する図である。
【0054】
図示する例では、プロセス#0~#2はプロセス#3がスワップアウトの契機(符号B1参照)においてバリアを発行していないため、待ってもバリアは完了しない。ここで、プロセス#3がエラータイプのバリアを発行することで、バリアを完全に安全に停止することができる(符号B2参照)。スワップインの契機(符号B3参照)の後、バリアを発行していたプロセス#0~#2はバリアを再発行し、プロセス#3はバリアの発行から再開される。
【0055】
すなわち、スワップ指示部212は、エラー情報のバリア通信の発行を指示する指示部の一例として機能する。また、スワップ処理部213は、バリア通信の指示に基づき、他の計算ノード2のそれぞれにエラー情報を伝搬させる処理部の一例として機能する。
【0056】
スワップ指示部212は、自計算ノード2においてバリア通信の発行が行なわれていない場合に、エラー情報のバリア通信の発行を指示してよい。また、スワップ処理部213は、エラー情報の伝搬後にバリア通信をエラーで停止させてよい。
【0057】
スワップ処理部213は、他の計算ノード2においてエラー情報のバリア通信が発行された場合に、バリア通信をエラーで停止させてよい。
【0058】
スワップアウトの指示が発生した際に、プロセス#3がバリア通信を発行していなかったので、プロセス#3でエラータイプのバリア通信を発行して、バリア通信を完了させた。スワップイン指示が発行された際に、全プロセスでもう一度バリア通信を発行し直すことで、中断した位置から再開したことになる。
【0059】
図9は、
図1に示した情報処理システム100におけるバリアネットワークにおいてのエラー未発生の場合のバリア通信の再開処理を例示する図である。
【0060】
図示する例では、スワップアウトの契機(符号C1参照)までに、プロセス#1~#4の全てがバリアを発行しているため、バリアはいずれ完了する。そして、バリア停止処理(符号C2参照)のスワップインの契機(符号C3参照)の後に、バリアの結果確認から再開される。
【0061】
すなわち、スワップ処理部213は、自計算ノード2又は他の計算ノード2においてエラー情報のバリア通信が発行されていない場合に、バリア通信を正常に停止させてよい。
【0062】
スワップアウト指示が発行された際に、全プロセスがバリア通信を発行していたので、バリア通信は待てば完了する。このような場合は、スワップイン指示が発行された際にバリアの結果を確認すればよい。
【0063】
〔A-2〕動作例
図1に示した計算ノード2におけるバリア通信の再開処理を、
図10に示すフローチャート(ステップS1~S21)に従って説明する。
【0064】
資源管理部211は、資源管理ノード1からバリア通信の設定に関する情報を受信する(ステップS1)。
【0065】
スワップ指示部212は、資源管理ノード1からスワップアウト指示を受け取る(ステップS2)。
【0066】
スワップ処理部213は、自ノードにおいて、バリアの発行が行なわれているかを判定する(ステップS3)。
【0067】
バリアの発行が行なわれている場合には(ステップS3のYesルート参照)、スワップ処理部213は、バリアの完了確認関数を呼んでいて正常にバリアが完了しているかを判定する(ステップS4)。
【0068】
バリアの完了確認関数を呼んでおらず又は正常にバリアが完了していない場合には(ステップS4のNoルート参照)、スワップ処理部213は、バリアの完了確認を行なってエラーで完了することを確認する(ステップS5)。
【0069】
スワップ処理部213は、バリア設定を保存し、バリアを停止する(ステップS6)。
【0070】
スワップ指示部212は、資源管理ノード1からスワップイン指示を受信する(ステップS7)。
【0071】
スワップ処理部213は、バリア設定を復元する(ステップS8)。
【0072】
スワップ処理部213は、バリアの再実行からプロセスを再開する(ステップS9)。そして、バリア通信の再開処理は終了する。
【0073】
ステップS4において、バリアの完了確認関数を呼んでいて正常にバリアが完了している場合には(ステップS4のYesルート参照)、スワップ処理部213は、バリア設定を保存し、バリアを停止する(ステップS10)。
【0074】
スワップ処理部213は、バリアの完了結果を保存する(ステップS11)。
【0075】
スワップ指示部212は、資源管理ノード1からスワップイン指示を受信する(ステップS12)。
【0076】
スワップ処理部213は、バリア設定を復元する(ステップS13)。
【0077】
スワップ処理部213は、バリアの完了結果を復元する(ステップS14)。
【0078】
スワップ処理部213は、バリアの結果確認からプロセスを再開する(ステップS15)。そして、バリア通信の再開処理は終了する。
【0079】
ステップS3において、バリアの発行が行なわれていない場合には(ステップS3のNoルート参照)、スワップ処理部213は、エラータイプのバリアを発行する(ステップS16)。
【0080】
スワップ処理部213は、バリアの完了結果を行なってエラーで完了することを確認する(ステップS17)。
【0081】
スワップ処理部213は、バリア設定を保存し、バリアを停止する(ステップS18)。
【0082】
スワップ指示部212は、資源管理ノード1からスワップイン指示を受信する(ステップS19)。
【0083】
スワップ処理部213は、バリア設定を復元する(ステップS20)。
【0084】
スワップ処理部213は、停止した位置からプロセスを再開する(ステップS21)。そして、バリア通信の再開処理は終了する。
【0085】
次に、
図1に示した情報処理システム100におけるバリア通信の停止処理を、
図11に示すフローチャート(符号D1~D16)に従って説明する。
【0086】
図11において、実線矢印はプロセス間通信を示し、破線矢印はコール関数又は戻りを示す。計算ノード2において、アプリケーション20が実行される。
【0087】
ユーザ4は、資源管理ノード1に対して、緊急ジョブを投入する(符号D1参照)。
【0088】
資源管理ノード1のジョブ管理部111は、ユーザ4に対して、緊急ジョブの投入完了を返す(符号D2参照)。
【0089】
資源管理ノード1において、ジョブ管理部111は、資源管理部112に対して、スワップアウトの実行要求を発行する(符号D3参照)。
【0090】
資源管理ノード1の資源管理部112は、計算ノード2の資源管理部211に対して、スワップ可能判定を実行する(符号D4参照)。
【0091】
計算ノード2の資源管理部211は、資源管理ノード1の資源管理部112に対して、スワップ可能判定の応答を行なう(符号D5参照)。
【0092】
資源管理ノード1の資源管理部112は、計算ノード2のスワップ指示部212に対して、ジョブの不活性化をさせる(符号D6参照)。
【0093】
スワップ指示部212は、スワップ処理部213に対して、ジョブの不活性化を指示する(符号D7参照)。
【0094】
スワップ処理部213は、バリア通信を停止させる(符号D8参照)。
【0095】
これにより、アプリケーション20は停止され(符号D9参照)、メモリ22上の情報はハードディスク等の記憶装置(不図示)に退避される。また、使用していたメモリ22やCPU21等の資源は解放され、緊急ジョブが使用できる状態になる。
【0096】
スワップ処理部213は、スワップ指示部212に対して、ジョブの不活性化の完了を応答する(符号D10参照)。
【0097】
スワップ指示部212は、資源管理ノード1の資源管理部112に対して、ジョブの不活性化の完了を応答する(符号D11参照)。
【0098】
資源管理ノード1の資源管理部112は、計算ノード2の資源管理部211に対して、スワップアウトの開始を指示する(符号D12参照)。
【0099】
これにより、計算ノード2の資源管理部211は、ジョブプロセスの停止及びキャッシュ掃出しを行ない、資源管理ノード1の資源管理部112に対して、スワップアウトの完了を応答する(符号D13参照)。
【0100】
資源管理ノード1の資源管理部112は、ジョブ管理部111に対して、スワップアウトの実行を応答する(符号D14参照)。
【0101】
ジョブ管理部111は、資源管理部112に対して、緊急ジョブの実行依頼を発行する(符号D15参照)。
【0102】
資源管理部112は、ジョブ管理部111に対して、緊急ジョブの実行を応答する(符号D16参照)。そして、バリア通信の停止処理は終了する。
【0103】
〔A-3〕効果
実施形態の一例における計算ノード2によれば、例えば、以下の作用効果を奏することができる。
【0104】
スワップ指示部212は、エラー情報のバリア通信の発行を指示する。また、スワップ処理部213は、バリア通信の指示に基づき、他の計算ノード2のそれぞれにエラー情報を伝搬させる。
【0105】
これにより、バリア通信の停止通知がノード間通信ではなく、バリア通信機構を用いて実行されるため、高速にバリア通信を停止できる。また、ジョブスワップ処理が単純化され、安全にバリア通信を停止及び再開できる。
【0106】
スワップ指示部212は、自計算ノード2においてバリア通信の発行が行なわれていない場合に、エラー情報のバリア通信の発行を指示する。また、スワップ処理部213は、エラー情報の伝搬後にバリア通信をエラーで停止させる。
【0107】
これにより、自計算ノード2においてバリア通信が発行されていない場合に、他の計算ノード2におけるバリア通信を高速に安全に停止させることができる。
【0108】
スワップ処理部213は、他の計算ノード2においてエラー情報のバリア通信が発行された場合に、バリア通信をエラーで停止させる。
【0109】
これにより、自計算ノード2においてバリア通信が発行されている場合に、自計算ノード2におけるバリア通信を高速に安全に停止させることができる。
【0110】
スワップ処理部213は、自計算ノード2又は他の計算ノード2においてエラー情報のバリア通信が発行されていない場合に、バリア通信を正常に停止させる。
【0111】
これにより、各計算ノード2においてエラーが発生していない場合においても、緊急ジョブのためにバリア通信を高速に安全に停止させることができる。
【0112】
〔B〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0113】
〔C〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0114】
(付記1)
並列ジョブを実行する複数の情報処理装置のうちのいずれかの情報処理装置であって、
エラー情報のバリア通信の発行を指示する指示部と、
前記指示部によるバリア通信の指示に基づき、他の情報処理装置のそれぞれに前記エラー情報を伝搬させる処理部と、
を備える、情報処理装置。
【0115】
(付記2)
前記指示部は、当該情報処理装置においてバリア通信の発行が行なわれていない場合に、前記エラー情報のバリア通信の発行を指示し、
前記処理部は、前記エラー情報の伝搬後にバリア通信をエラーで停止させる、
付記1に記載の情報処理装置。
【0116】
(付記3)
前記処理部は、他の情報処理装置において前記エラー情報のバリア通信が発行された場合に、バリア通信をエラーで停止させる、
付記1又は2に記載の情報処理装置。
【0117】
(付記4)
前記処理部は、当該情報処理装置又は他の情報処理装置において前記エラー情報のバリア通信が発行されていない場合に、バリア通信を正常に停止させる、
付記1~3のいずれか1項に記載の情報処理装置。
【0118】
(付記5)
並列ジョブを実行する複数の情報処理装置を有する情報処理システムであって、
前記複数の情報処理装置のうち、バリア通信の発行が行なわれていない第1の情報処理装置は、
エラー情報のバリア通信の発行を指示する指示部と、
前記指示部によるバリア通信の指示に基づき、他の情報処理装置のそれぞれに前記エラー情報を伝搬させる第1処理部と、
を備える、情報処理システム。
【0119】
(付記6)
前記第1処理部は、前記エラー情報の伝搬後にバリア通信をエラーで停止させる、
付記5に記載の情報処理システム。
【0120】
(付記7)
前記複数の情報処理装置のうち、他の情報処理装置から前記エラー情報のバリア通信が発行された第2の情報処理装置は、
前記エラー情報を受信した場合に、バリア通信をエラーで停止させる第2処理部を備える、
付記5又は6に記載の情報処理システム。
【0121】
(付記8)
前記複数の情報処理装置のうち、当該情報処理装置又は他の情報処理装置において前記エラー情報のバリア通信が発行されていない第3の情報処理装置は、
バリア通信を正常に停止させる第3処理部を備える、
付記5~7のいずれか1項に記載の情報処理システム。
【0122】
(付記9)
並列ジョブを実行する複数の情報処理装置のうちのいずれかの情報処理装置に備えられるコンピュータに、
エラー情報のバリア通信の発行を指示し、
前記バリア通信の指示に基づき、他の情報処理装置のそれぞれに前記エラー情報を伝搬させる、
処理を実行させる、通信管理プログラム。
【0123】
(付記10)
当該情報処理装置においてバリア通信の発行が行なわれていない場合に、前記エラー情報のバリア通信の発行を指示し、
前記エラー情報の伝搬後にバリア通信をエラーで停止させる、
処理を前記コンピュータに実行させる、付記9に記載の通信管理プログラム。
【0124】
(付記11)
他の情報処理装置において前記エラー情報のバリア通信が発行された場合に、バリア通信をエラーで停止させる、
処理を前記コンピュータに実行させる、付記9又は10に記載の通信管理プログラム。
【0125】
(付記12)
当該情報処理装置又は他の情報処理装置において前記エラー情報のバリア通信が発行されていない場合に、バリア通信を正常に停止させる、
処理を前記コンピュータに実行させる、付記9~11のいずれか1項に記載の通信管理プログラム。
【符号の説明】
【0126】
1 :資源管理ノード
11 :CPU
111 :ジョブ管理部
112 :資源管理部
12 :メモリ
2 :計算ノード
20 :アプリケーション
21 :CPU
211 :資源管理部
212 :スワップ指示部
213 :スワップ処理部
22 :メモリ
3 :NS
4 :ユーザ