JP2018097435A - 並列処理装置及びノード間通信プログラム - Google Patents

並列処理装置及びノード間通信プログラム Download PDF

Info

Publication number
JP2018097435A
JP2018097435A JP2016238848A JP2016238848A JP2018097435A JP 2018097435 A JP2018097435 A JP 2018097435A JP 2016238848 A JP2016238848 A JP 2016238848A JP 2016238848 A JP2016238848 A JP 2016238848A JP 2018097435 A JP2018097435 A JP 2018097435A
Authority
JP
Japan
Prior art keywords
node
failure
transmission
calculation
communication
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
JP2016238848A
Other languages
English (en)
Other versions
JP6784160B2 (ja
Inventor
井原 宣孝
Nobutaka Ihara
宣孝 井原
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 JP2016238848A priority Critical patent/JP6784160B2/ja
Priority to US15/833,121 priority patent/US10417173B2/en
Publication of JP2018097435A publication Critical patent/JP2018097435A/ja
Application granted granted Critical
Publication of JP6784160B2 publication Critical patent/JP6784160B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】並列プログラムの実行時間を短くすること。
【解決手段】故障監視デーモン31が、一定時間間隔で計算ノード1及び経路を監視し、ポート故障を検出すると、故障情報ファイルを作成して全計算ノード1へ配付する。故障情報ファイルは、故障情報記憶部41に記憶される。そして、送信確認部43が、データ送信後に一定時間経過してもデータ受信完了が通知されない場合に、いずれかの経路の故障によりデータ送信が失敗したと判断する。そして、送信確認部43は、故障情報記憶部41を参照して経路を再検索し、再検索した経路を用いてデータを再送信する。
【選択図】図4

Description

本発明は、並列処理装置及びノード間通信プログラムに関する。
ネットワークで接続された複数の計算ノードが連携して並列プログラムを実行するHPC(High Performance Computing)では、故障計算ノードや故障経路がジョブの割り当て時にわかっている場合には、故障個所を避けるように通信経路の設定が行われる。しかし、ジョブ実行中に通信経路が切断された場合、発行された通信命令が送信先の計算ノードに届かず、通信命令が失われてしまう。
そこで、通信命令を再送することが行われる。例えば、MPI(Message Passing Interface)ライブラリを用いて通信を行う場合、MPIライブラリは、下層の低レベル通信ライブラリを介して通信を行うため、低レベル通信ライブラリの送信関数と受信確認関数を複数回呼び出すことで再送を行う。
なお、送信先プロセッサから、受信バッファの異常発生により受信バッファが使用不許可となったことが通知された場合は送信データの再送信を停止し、受信バッファが使用中であることが通知された場合は所定のタイミングで送信データの再送信を行う技術がある。この技術によれば、無意味な再送信の繰り返しを防ぐことができる。
また、受信先で障害が発生すると、サービスプロセッサが、宛先の論理アドレスを物理アドレスに変換する変換テーブルの論理アドレスと物理アドレスの対応を変更することで、ネットワークルーティングの動的再構成処理を高速かつ効率的に行う技術がある。
特開平5−265989号公報 特開平7−262146号公報
通信命令を再送するために、低レベル通信ライブラリの送信関数と受信確認関数を複数回呼び出すと、並列プログラム実行時間が長くなるという問題がある。
本発明は、1つの側面では、並列プログラムの実行時間を短くすることを目的とする。
1つの態様では、並列処理装置は、管理ノードと複数の計算ノードとを備える。管理ノードは、計算ノードのポートの故障情報を定期的に収集し、故障情報に更新があった場合に、全計算ノードに故障ポートの情報を含む故障ポート情報を送信する。各計算ノードは、低通信ライブラリにおいて、計算ノード間通信を行って失敗したときに、管理ノードにより送信された故障ポート情報を参照して再送ルートを決定し、決定した再送ルートを用いて計算ノード間通信を再実行する。
1つの側面では、本発明は、並列プログラムの実行時間を短くすることができる。
図1は、実施例1に係る並列処理装置の構成を示す図である。 図2は、通信に関係するコンポーネントの階層構造を示す図である。 図3は、送信命令キュー、送信完了キュー及び受信完了キューの関係を説明するための図である。 図4は、並列処理装置の機能構成を示す図である。 図5は、故障情報ファイルの一例を示す図である。 図6は、故障情報ファイルの配付を説明するための図である。 図7は、再送時の経路変更を説明するための図である。 図8は、再検索された経路を使う場合の送出方向の情報の一例を示す図である。 図9は、送信処理のフローを示すフローチャートである。 図10は、故障情報ファイルの作成処理のフローを示すフローチャートである。 図11は、タイムアウト積算を説明するための図である。 図12は、タイムアウト積算の解消を説明するための図である。 図13は、実施例2に係る並列処理装置の機能構成を示す図である。 図14は、実施例2に係る送信部による処理のフローを示すフローチャートである。
以下に、本願の開示する並列処理装置及びノード間通信プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
まず、実施例1に係る並列処理装置の構成について説明する。図1は、実施例1に係る並列処理装置6の構成を示す図である。図1に示すように、並列処理装置6は、4つの計算ノード1と、ブートIOノード1aと、NS2と、制御ノード3とを有する。
なお、図1では、説明の便宜上4台の計算ノード1のみを示すが、並列処理装置6は、より多くの計算ノード1を有する。また、図1では、計算ノード1が1次元配置される場合を示すが、計算ノード1は2次元配置、3次元配置等より多くの次元に配置される。また、計算ノード1は、メッシュ状に配置されてもよいし、トーラス状に配置されてもよい。また、図1では、1台のブートIOノード1aのみを示すが、並列処理装置6は、より多くのブートIOノード1aを有する。
計算ノード1は、他の計算ノード1と連携して並列プログラムを実行する情報処理装置である。計算ノード1は、CPU(Central Processing Unit)&メモリ11と、NI(Network Interface)12とを有する。
CPU&メモリ11は、メインメモリからプログラムを読み出して実行する中央処理装置とプログラムやプログラムの実行途中結果などを記憶するメインメモリである。プログラムは、例えば、DVDに記憶され、DVDから読み出されて計算ノード1にインストールされる。あるいは、プログラムは、ネットワークを介して接続されたコンピュータシステムのデータベース等に記憶され、データベース等から読み出されて計算ノード1にインストールされる。そして、インストールされたプログラムは、HDD(Hard Disk Drive)に記憶され、メインメモリに読み出されてCPUによって実行される。NI12は、NS2を介して他の計算ノード1と通信するためのインターフェースである。
ブートIOノード1aは、計算ノード1へのデータの入力及び計算ノード1からのデータの出力等を行う。ブートIOノード1aは、所定の個数の計算ノード1の入出力を担当する。ブートIOノード1aは、CPU&メモリ11と、NI12とを有する。ブートIOノード1aは、制御ノード3と接続され、制御ノード3と計算ノード1の間のデータの送受信を中継する。
NS2は、計算ノード1及びブートIOノード1aを接続するためのスイッチである。計算ノード1は、NS2を介して他の計算ノード1又はブートIOノード1aと通信する。
制御ノード3は、並列処理装置6を制御する装置である。制御ノード3は、ブートIOノード1aと接続される。制御ノード3は、後述するように、計算ノード1及び通信経路を監視する。
次に、通信に関係するコンポーネントの階層構造について説明する。図2は、通信に関係するコンポーネントの階層構造を示す図である。図2に示すように、MPIライブラリ21は、低レベル通信ライブラリ22により実現される。低レベル通信ライブラリ22は、ユーザ空間で動作するソフトウェアである。低レベル通信ライブラリ22は、他の計算ノード1の低レベル通信ライブラリ22と通信を行う。
低レベル通信ライブラリ22は、ネットワークインターフェースドライバ23により実現される。ネットワークインターフェースドライバ23は、カーネル空間で動作するソフトウェアである。ネットワークインターフェースドライバ23は、ネットワークインターフェース(NI)12を用いて他の計算ノード1のネットワークインターフェースドライバ23と通信を行う。
次に、送信命令キュー、送信完了キュー及び受信完了キューの関係について説明する。図3は、送信命令キュー、送信完了キュー及び受信完了キューの関係を説明するための図である。図3において、送信ノード1bは、送信側の計算ノード1であり、受信ノード1cは、受信側の計算ノード1である。
図3に示すように、NI12は、送信命令キュー12aと、送信完了キュー12bと、受信完了キュー12cとを有する。低レベル通信ライブラリ22は、上位のMPIライブラリ21から渡された送信命令を送信命令キュー12aに書き込んで送信指示を行う(1)。
送信命令キュー12aに書き込まれた送信命令を実行すると、NI12は、送信完了通知を送信完了キュー12bに設定する(2)。そして、通信相手の受信ノード1cにデータ送信が行われる(3)と、受信完了キュー12cに送信完了通知が設定される(4)。図3では、送信ノード1bのデータB(10)が受信ノード1cのA(10)に送信される。
次に、並列処理装置6の機能構成について説明する。図4は、並列処理装置6の機能構成を示す図である。なお、図4では、説明の便宜上1つの計算ノード1の機能構成を示すが、他の計算ノード1の機能構成も同じである。
図4に示すように、制御ノード3は、故障監視デーモン31と、故障情報記憶部32とを有する。計算ノード1は、故障情報記憶部41と、送信部42と、送信確認部43と、受信確認部44と、再送情報記憶部45と有する。なお、故障情報記憶部41、送信部42、送信確認部43、受信確認部44及び再送情報記憶部45は、低レベル通信ライブラリ22の機能として実現される。
故障監視デーモン31は、制御ノード3上で動作するデーモンであり、一定時間毎に全計算ノード1及び通信経路の状態を確認し、ポート故障が発生していた場合には、故障情報ファイルを作成し、故障情報記憶部32に書き込む。
故障情報記憶部32は、故障情報ファイルを記憶する。故障情報ファイルには、故障したポートに関する情報が記載される。図5は、故障情報ファイルの一例を示す図である。図5に示すように、故障情報ファイルには、ノードID(node_id)と、座標情報(vcoord)と、ポート番号(port_no)と、ポート状態(port_stat)が故障した計算ノード1について記載される。
ノードIDは、故障が発生した計算ノード1を識別する識別子である。座標情報は、故障が発生した計算ノード1の座標である。例えば、計算ノード1が3次元に配置される場合には、座標情報はx、y、zで表される。ここで、xはX軸の座標、yはY軸の座標、zはZ軸の座標であり、各々0以上の整数である。
ポート番号は、隣接する計算ノード1と通信するためのポートの番号である。例えば、計算ノード1が3次元に配置される場合には、「0」は「Z+」に対応し、「1」は「Z−」に対応し、「2」は「X−」に対応し、「3」は「X+」に対応し、「4」は「Y−」に対応し、「5」は「Y+」に対応する。ここで、「+」は各軸の正方向を示し「−」は各軸の負方向を示す。例えば、ポート番号が「0」のポートは、Z軸の正方向にデータを送信する場合に使われる。
ポート状態は、ポートが故障しているか否かを表す。例えば、「1」は「ハード異常ルータFatal検出」を示し、「2」は「ハード異常ポートルータFatal検出」を示し、「3」は「ハード異常Alarm検出」を示す。
例えば、ノードIDが「011」である計算ノード1の座標は(1,1,2)、Z軸の正方向にデータを送信する場合に使われるポートが「ハード異常ポートルータFatal検出」の状態にある。
故障監視デーモン31は、故障情報ファイルを更新すると、故障情報ファイルを全計算ノード1に配付する。図6は、故障情報ファイルの配付を説明するための図である。図6に示すように、故障監視デーモン31は、例えば、1分毎に全計算ノード1の状態を確認し、故障情報ファイル32aを作成する。そして、故障監視デーモン31は、故障情報ファイル32aを更新すると、故障情報ファイル32aを全計算ノード1に配付する。故障情報ファイル32aは、低レベル通信ライブラリ22によって使用される。
故障情報記憶部41は、故障情報ファイル32aを記憶する。送信部42は、MPIライブラリ21から送信命令を受信すると、送信命令を送信命令キュー12aに書き込んで実行する。送信命令キュー12aに書き込まれた送信命令がNI12により実行されると、NI12は送信完了キュー12bに送信完了通知を書き込む。
送信確認部43は、送信完了キュー12bに送信完了通知が書き込まれたことを確認する。そして、送信確認部43は、受信完了キュー12cに受信完了通知が書き込まれた否かを確認する。送信確認部43は、送信命令キュー12aの送信命令に対応する受信完了通知を確認する。そして、送信確認部43は、送信命令に対応する受信完了通知を確認すると、送信完了をMPIライブラリ21に渡す。
一方、送信命令を送信命令キュー12aに書き込んで一定時間経過しても受信完了通知が確認できない場合には、送信確認部43は、故障が発生したと判定し、再送処理を行う。送信確認部43は、再送部43aを有し、再送部43aが再送処理を行う。
再送部43aは、故障情報ファイル32aを取得し、故障情報ファイル32aを使って経路を再構築する。このとき、再送部43aは、自身の計算ノード1から他の全ての計算ノード1への経路を再検索する。そして、再送部43aは、再構築した経路を用いてデータの再送信を行う。そして、再送部43aは、再送したことを示す情報と、再検索した経路を使う場合の送出方向の情報とを再送情報記憶部45に格納する。
図7は、再送時の経路変更を説明するための図である。図7に示すように、送信ノード1bは、X軸の正方向に隣接する計算ノード1にデータを送信することによって受信ノード1cへデータを送信する。その際、経路で故障が発生すると、送信ノード1bの再送部43aは、故障情報ファイル32aを使って送信先の隣接ノードを再計算する。図7では、Y軸の正方向に隣接する計算ノード1が送信先として再計算により特定される。そして、再送部43aは、Y軸の正方向に隣接する計算ノード1にデータを再送信する。
なお、データをX軸の正負、Y軸の正負のどの方向に送信するかは送信命令により指定される。また、送出方向によってデータの転送経路は決められている。例えば、Y軸の正方向に転送されたデータは、受信ノード1cとy座標が同じ計算ノード1まで転送され、その後X軸の正方向に転送されて受信ノード1cに到達する。2次元のメッシュ配置の場合には、経路は2つであり、2次元のトーラス配置の場合には、経路は4つである。
受信確認部44は、受信完了キュー12cに受信完了通知が書き込まれたことが確認された場合に、MPIライブラリ21に受信完了を通知する。
再送情報記憶部45は、再送が行われたか否かを示す情報と、再送部43aによって再検索された経路を使う場合の送出方向の情報を記憶する。図8は、再検索された経路を使う場合の送出方向の情報の一例を示す図である。図8は、ノードIDが0である計算ノード1の場合を示す。
図8に示すように、再検索された通信経路を使う場合の送出方向の情報には、ノードIDと方向とが含まれる。ノードIDは、送信先の計算ノード1の識別子である。方向は、対応する計算ノード1に送信する場合の送出方向であり、2次元トーラス配置の場合には、「X+」、「X−」、「Y+」、「Y−」のいずれかである。例えば、ノードIDが「1」である計算ノード1のデータを送信する場合には、y軸の+方向にデータを送信する。
次に、送信処理のフローについて説明する。図9は、送信処理のフローを示すフローチャートである。図9に示すように、低レベル通信ライブラリ22は、MPIライブラリ21から送信命令を取得する(ステップS1)と、送信命令キュー12aに送信命令を書き込んでデータ送信を指示する(ステップS2)。
そして、低レベル通信ライブラリ22は、送信完了キュー12bを確認し(ステップS3)、ステップS6又はステップS7がみたされるまでステップS4〜ステップS7の処理を繰り返す。すなわち、低レベル通信ライブラリ22は、受信完了キュー12cを確認し(ステップS4)、受信完了通知があるか否かを判定する(ステップS5)。
そして、低レベル通信ライブラリ22は、受信完了通知がある場合には、該当する送信の受信完了通知であるか否かを判定し(ステップS6)、該当する送信の受信完了通知である場合には、ステップS13へ進む。一方、該当する送信の受信完了通知でない場合には、低レベル通信ライブラリ22は、ステップS4へ戻る。また、受信完了通知がない場合には、低レベル通信ライブラリ22は、送信後一定時間経過したか否かを判定し(ステップS7)、経過していない場合には、ステップS4へ戻る。
一方、一定時間経過した場合には、低レベル通信ライブラリ22は、故障情報ファイル32aを取得し(ステップS8)、取得した故障情報ファイル32aを使って経路を再検索する(ステップS9)。そして、低レベル通信ライブラリ22は、再検索された経路に基づく送信命令を送信命令キュー12aに設定し(ステップS10)、データの再送信を指示する(ステップS11)。そして、低レベル通信ライブラリ22は、再送を行ったことを示す情報と再検索した経路の情報を再送情報記憶部45に格納し(ステップS12)、ステップS3に戻る。
また、ステップS6で該当する送信の受信完了通知である場合には、低レベル通信ライブラリ22は、MPIライブラリ21へ送信完了通知を応答し(ステップS13)、その後、MPIライブラリ21へ受信完了通知を応答する(ステップS14)。
このように、低レベル通信ライブラリ22が、データ送信後に一定時間経過した場合に、故障情報ファイル32aを用いて経路を再検索し、再検索した経路を用いてデータを再送信するので、MPIライブラリ21による再送を不要とすることができる。
なお、ステップS1〜ステップS2の処理は、低レベル通信ライブラリ22の送信関数に対応する送信部42による処理である。ステップS1〜ステップS13の処理は、送信確認部43による処理である。ステップS14の処理は、受信確認部44による処理である。
次に、故障情報ファイル32aの作成処理のフローについて説明する。図10は、故障情報ファイル32aの作成処理のフローを示すフローチャートである。図10に示すように、故障監視デーモン31は、並列処理装置6の起動中ステップS21〜ステップS24の処理を繰り返す。
すなわち、故障監視デーモン31は、一定時間間隔で全計算ノード1及び経路を監視し(ステップS21)、ポートに故障があるか否かを判定する(ステップS22)。そして、ポートに故障がない場合には、故障監視デーモン31は、ステップS21へ戻る。
一方、ポートに故障がある場合には、故障監視デーモン31は、故障情報ファイル32aを作成し(ステップS23)、作成した故障情報ファイル32aを全計算ノード1へ配付する(ステップS24)。
このように、故障監視デーモン31が、故障情報ファイル32aを作成して全計算ノード1へ配付することで、各計算ノード1は、通信経路を再検索することができる。
上述してきたように、実施例1では、故障監視デーモン31が、一定時間間隔で計算ノード1及び経路を監視し、ポート故障を検出すると、故障情報ファイル32aを作成して全計算ノード1へ配付する。そして、低レベル通信ライブラリ22が、データ送信後に一定時間経過してもデータ受信完了が通知されない場合に、故障情報ファイル32aを用いて経路を再検索し、再検索した経路を用いてデータを再送信する。したがって、MPIライブラリ21による再送を不要とすることができ、並列プログラムの実行時間を短くすることができる。
また、実施例1では、送信確認部43が、データ受信完了が通知されない場合に、故障情報ファイル32aを用いて経路を再検索し、再検索した経路を用いてデータを再送信する。したがって、受信完了の確認前にMPIライブラリ21に送信完了を通知することを防ぐことができる。
また、実施例1では、故障ファイル32aは、ノードID、座標情報、ポート番号及びポートの状態を含むので、低レベル通信ライブラリ22は、故障したポートを使用しない経路を再検索することができる。
なお、実施例1では、低レベル通信ライブラリ22が故障情報ファイル32aを用いて経路を再検索する場合について説明したが、本発明はこれに限定されるものではなく、外部の経路検索プログラムに経路検索を行わせる場合にも同様に適用することができる。
ところで、上記実施例1では、送信確認部43は、故障情報ファイル32aを用いて再検索した経路の情報を再送情報記憶部45に格納する。この情報は、再送時だけでなく最初のデータ送信時にも利用可能である。この情報を利用しない場合、他の受信ノード1cへのデータ送信でもタイムアウトが発生する場合がある。このような受信ノード1cの数が多い場合、タイムアウトが積算される問題がある。
図11は、タイムアウト積算を説明するための図である。図11では、枠で囲まれた15個の計算ノード1のいずれかが受信ノード1cになると、タイムアウトが発生し、タイムアウトが積算され、並列プログラムの実行時間が長くなる。例えば、タイムアウト時間を1分とし、経路故障の影響を受ける計算ノード1が50個あったとすると、最悪の場合、50分並列プログラムの動作が止まってしまう。
一方、最初のデータ送信から再送情報記憶部45の情報を用いることによって、タイムアウト積算を解消することができる。図12は、タイムアウト積算の解消を説明するための図である。図12に示すように、送信ノード1bは、枠で囲まれたいずれかの計算ノード1を受信ノード1cとする場合、再送情報記憶部45の情報を用いてデータの送出方向を変更する。したがって、枠で囲まれたいずれかの計算ノード1を受信ノード1cとする場合に、データの再送が不要となり、タイムアウト積算を解消することができる。
そこで、実施例2では、再送情報記憶部45の情報を用いてデータの送信を行う低レベル通信ライブラリについて説明する。図13は、実施例2に係る並列処理装置の機能構成を示す図である。
なお、ここでは説明の便宜上、図4に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。図13に示すように、実施例2に係る計算ノード10は、図4に示した計算ノード1と比較すると、送信部42に替えて送信部42aを有する。送信部42aは、送信を行う際に、再送情報記憶部45の情報を参照し、再送が行われた場合には、再送情報記憶部45が記憶する送出情報を用いてデータを送出する。
図14は、実施例2に係る送信部42aによる処理のフローを示すフローチャートである。図14に示すように、送信部42aは、MPIライブラリ21から送信命令を取得し(ステップS31)、再送を行ったか否かを再送情報記憶部45を参照して判定する(ステップS32)。
そして、送信部42aは、再送を行った場合には、再検索された経路に基づく送信命令を送信命令キュー12aに設定し(ステップS33)、再送を行っていない場合には所定の経路に基づく送信命令を送信命令キュー12aに設定する(ステップS34)。そして、送信部42aは、データ送信を指示する(ステップS35)。
上述してきたように、実施例2では、送信部42aが、再送情報記憶部45の情報を用いて送出方向を変更するので、計算ノード1間の再送を減らすことができる。
なお、実施例2では、低レベル通信ライブラリ22が再送情報記憶部45の情報を用いて送出方向を変更する場合について説明したが、本発明はこれに限定されるものではなく、例えばMPIライブラリ21が再送情報記憶部45の情報を用いて送出方向を指示する場合にも同様に適用することができる。
以上の実施例1〜2を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)計算ノードのポートの故障情報を定期的に収集し、故障情報に更新があった場合に、全計算ノードに故障ポートの情報を含む故障ポート情報を送信する管理ノードと、
低通信ライブラリにおいて、計算ノード間通信を行って失敗したときに、前記管理ノードにより送信された故障ポート情報を参照して再送ルートを決定し、決定した再送ルートを用いて前記計算ノード間通信を再実行する複数の計算ノードと
を有することを特徴とする並列処理装置。
(付記2)前記再送ルートを決定して前記計算ノード間通信を再実行する処理は、送信完了を確認する処理の中で行うことを特徴とする付記1に記載の並列処理装置。
(付記3)前記故障ポート情報には、計算ノードを識別するためのノード識別子、該計算ノードの並列処理装置における座標を示す座標情報、隣接する計算ノードへのデータ送信に用いられるポートを識別するポート番号、及び、ポートの状態が含まれることを特徴とする付記1又は2に記載の並列処理装置。
(付記4)再送が行われたことを示す情報を再送経路とともに記憶する再送情報記憶部と、
前記再送情報記憶部を参照し、再送が行われた場合には、前記再送経路を用いて送信を行う送信部と
を有することを特徴とする情報処理装置。
(付記5)並列プログラムを連携して実行する複数の計算ノード間の通信を実現するノード間通信プログラムにおいて、
前記複数の計算ノードを管理する管理ノードが各計算ノードのポートの故障情報を定期的に収集し、故障情報に更新があった場合に、故障ポートの情報に関して作成した故障ポート情報を前記管理ノードから受信し、
計算ノード間通信を行って失敗したときに、前記故障ポート情報を参照して再送ルートを決定し、
決定した再送ルートを用いて前記計算ノード間通信を再実行する
処理をコンピュータに実行させることを特徴とするノード間通信プログラム。
1 計算ノード
1a ブートIOノード
1b 送信ノード
1c 受信ノード
2 NS
3 制御ノード
11 CPU&メモリ
12 NI
12a 送信命令キュー
12b 送信完了キュー
12c 受信完了キュー
21 MPIライブラリ
22 低レベル通信ライブラリ
23 ネットワークインターフェースドライバ
31 故障監視デーモン
32 故障情報記憶部
32a 故障情報ファイル
41 故障情報記憶部
42,42a 送信部
43 送信確認部
43a 再送部
44 受信確認部
45 再送情報記憶部

Claims (4)

  1. 計算ノードのポートの故障情報を定期的に収集し、故障情報に更新があった場合に、全計算ノードに故障ポートの情報を含む故障ポート情報を送信する管理ノードと、
    低通信ライブラリにおいて、計算ノード間通信を行って失敗したときに、前記管理ノードにより送信された故障ポート情報を参照して再送ルートを決定し、決定した再送ルートを用いて前記計算ノード間通信を再実行する複数の計算ノードと
    を有することを特徴とする並列処理装置。
  2. 前記再送ルートを決定して前記計算ノード間通信を再実行する処理は、送信完了を確認する処理の中で行うことを特徴とする請求項1に記載の並列処理装置。
  3. 前記故障ポート情報には、計算ノードを識別するためのノード識別子、該計算ノードの並列処理装置における座標を示す座標情報、隣接する計算ノードへのデータ送信に用いられるポートを識別するポート番号、及び、ポートの状態が含まれることを特徴とする請求項1又は2に記載の並列処理装置。
  4. 並列プログラムを連携して実行する複数の計算ノード間の通信を実現するノード間通信プログラムにおいて、
    前記複数の計算ノードを管理する管理ノードが各計算ノードのポートの故障情報を定期的に収集し、故障情報に更新があった場合に、故障ポートの情報に関して作成した故障ポート情報を前記管理ノードから受信し、
    計算ノード間通信を行って失敗したときに、前記故障ポート情報を参照して再送ルートを決定し、
    決定した再送ルートを用いて前記計算ノード間通信を再実行する
    処理をコンピュータに実行させることを特徴とするノード間通信プログラム。
JP2016238848A 2016-12-08 2016-12-08 並列処理装置及びノード間通信プログラム Active JP6784160B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016238848A JP6784160B2 (ja) 2016-12-08 2016-12-08 並列処理装置及びノード間通信プログラム
US15/833,121 US10417173B2 (en) 2016-12-08 2017-12-06 Parallel processing apparatus and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016238848A JP6784160B2 (ja) 2016-12-08 2016-12-08 並列処理装置及びノード間通信プログラム

Publications (2)

Publication Number Publication Date
JP2018097435A true JP2018097435A (ja) 2018-06-21
JP6784160B2 JP6784160B2 (ja) 2020-11-11

Family

ID=62489424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016238848A Active JP6784160B2 (ja) 2016-12-08 2016-12-08 並列処理装置及びノード間通信プログラム

Country Status (2)

Country Link
US (1) US10417173B2 (ja)
JP (1) JP6784160B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6878981B2 (ja) * 2017-03-23 2021-06-02 住友電気工業株式会社 スイッチ装置、通信制御方法および通信制御プログラム
US12111779B2 (en) * 2022-09-30 2024-10-08 Mellanox Technologies, Ltd. Node identification allocation in a multi-tile system with multiple derivatives

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170393A (en) * 1989-05-18 1992-12-08 California Institute Of Technology Adaptive routing of messages in parallel and distributed processor systems
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
JPH05265989A (ja) 1992-03-16 1993-10-15 Mitsubishi Electric Corp マルチプロセッサシステム
JP3402398B2 (ja) 1994-03-17 2003-05-06 株式会社日立製作所 並列プロセッサシステムの通信制御方法
US5822605A (en) * 1994-03-24 1998-10-13 Hitachi, Ltd. Parallel processor system with a broadcast message serializing circuit provided within a network
JP3709289B2 (ja) * 1998-09-01 2005-10-26 株式会社日立製作所 データ再送を実行するデータ送受信装置及び並列プロセッサシステム
US20030105799A1 (en) * 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
JP6048505B2 (ja) * 2012-09-24 2016-12-21 富士通株式会社 並列計算機、ノード装置、及び並列計算機の制御方法
US10637681B2 (en) * 2014-03-13 2020-04-28 Silicon Laboratories Inc. Method and system for synchronization and remote control of controlling units
JP2017059885A (ja) * 2015-09-14 2017-03-23 富士通株式会社 コントローラ及び経路再設定方法
US10868708B2 (en) * 2015-11-02 2020-12-15 Google Llc System and method for handling link loss in a network
JP2018025912A (ja) * 2016-08-09 2018-02-15 富士通株式会社 通信方法、通信プログラムおよび情報処理装置
JP6801409B2 (ja) * 2016-12-02 2020-12-16 富士通株式会社 経路探索システム、経路探索方法及び経路探索プログラム

Also Published As

Publication number Publication date
JP6784160B2 (ja) 2020-11-11
US10417173B2 (en) 2019-09-17
US20180165245A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
CN108604202B (zh) 并行处理系统的工作节点重建
JP5872731B2 (ja) クラスタの複数のノードのそれぞれに対してリンクの障害の検出を伝えるためのコンピュータ実装方法、非一時的なコンピュータ可読媒体およびコンピュータシステム
EP3129903B1 (en) Systems and methods for fault tolerant communications
JP4611922B2 (ja) 制御プログラム、制御方法および制御装置
JP3640187B2 (ja) マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード
US8726274B2 (en) Registration and initialization of cluster-aware virtual input/output server nodes
CN107533493B (zh) 恢复服务加速
Avresky et al. Dynamic reconfiguration in computer clusters with irregular topologies in the presence of multiple node and link failures
KR101983208B1 (ko) 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템
CN104598341A (zh) 用于确定在互连/控制器之间的故障的位置的方法和系统
US9032118B2 (en) Administration device, information processing device, and data transfer method
US7747897B2 (en) Method and apparatus for lockstep processing on a fixed-latency interconnect
JP2008519321A (ja) 環境適応故障許容コンピューティングのための方法およびシステム
JP6784160B2 (ja) 並列処理装置及びノード間通信プログラム
US20240020297A1 (en) Metrics and events infrastructure
JP7311335B2 (ja) 分散型コンテナ監視システム及び分散型コンテナ監視方法
US9594651B2 (en) Parallel computer system and control method for parallel computer system
Georgiou et al. A self-stabilizing control plane for the edge and fog ecosystems
JP2018165908A (ja) 情報処理装置、情報処理方法及びプログラム
JP6588484B2 (ja) 復旧装置、復旧方法、および復旧プログラム
Sen et al. Aegis: Reliable application execution over the mobile cloud
JP6279180B2 (ja) 親局装置、子局装置、プロセス委譲管理方法、プロセス実行方法、プロセス委譲管理プログラム及びプロセス実行プログラム
JP6447047B2 (ja) 送受信制御装置及び送受信制御方法、ノード装置、マルチノードシステム、並びにコンピュータ・プログラム
JP5246360B2 (ja) ネットワークシステム及び情報処理方法
JP2019109735A (ja) システム、計算機、システム制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200729

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201006

R150 Certificate of patent or registration of utility model

Ref document number: 6784160

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150