JP6907835B2 - 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法 - Google Patents

計算ノード装置、並列計算機システム、および計算ノード装置の制御方法 Download PDF

Info

Publication number
JP6907835B2
JP6907835B2 JP2017171480A JP2017171480A JP6907835B2 JP 6907835 B2 JP6907835 B2 JP 6907835B2 JP 2017171480 A JP2017171480 A JP 2017171480A JP 2017171480 A JP2017171480 A JP 2017171480A JP 6907835 B2 JP6907835 B2 JP 6907835B2
Authority
JP
Japan
Prior art keywords
unit
packet
calculation
data
error
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
JP2017171480A
Other languages
English (en)
Other versions
JP2019046379A (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 JP2017171480A priority Critical patent/JP6907835B2/ja
Priority to US16/055,828 priority patent/US10592299B2/en
Publication of JP2019046379A publication Critical patent/JP2019046379A/ja
Application granted granted Critical
Publication of JP6907835B2 publication Critical patent/JP6907835B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Description

本発明は、計算ノード装置、並列計算機システム、および計算ノード装置の制御方法に関する。
コンピュータシステムを用いて科学技術計算などの大規模な計算を行う場合、複数の計算機を用いた並列計算が行われる。並列計算が可能なコンピュータシステムは、並列計算機システムと呼ばれる。並列計算を行う複数の計算機の各々を計算ノード装置と呼ぶ。
並列計算を行っている複数の計算ノード装置間で、複数のプロセスが持つデータを対象とした演算であるリダクション演算が行われる。リダクション演算としては、例えば、データの総和を求める演算、最大値、最小値を求める演算等が知られている。
並列演算を実行する複数のノードにおいて、複数組の信号の同期をとる同期部を備えることにより、高速でバリア同期処理を実行するバリア同期装置が知られている(例えば、特許文献1参照)。
中間ノードにより、カットスルーデータパケットを転送することで、パケットにフレームCRCを行う前に、カットスルーデータパケットのパケット送信を開始することを可能にする技術が知られている(例えば、特許文献2参照)。
特開2010−122848号公報 特表2013−513269号公報
ある計算ノード装置においてリダクション演算を行う場合、当該計算ノード装置は、他の計算ノード装置からパケットを受信し、パケットに含まれるチェックサムを用いてパケットのエラーチェックを行い、エラーが無ければパケット内のデータを用いてリダクション演算を行う。
計算ノード装置は、パケットを末尾まで受信完了しなければ、エラーチェックを行うことは困難である。パケットのサイズが大きくなると、パケットの受信開始から受信完了までの時間が長くなり、エラーチェックの完了までの時間も長くなる。上記のように、リダクション演算は、エラーチェックの完了後に行われる。そのため、パケットのサイズが大きくなると、パケットの受信開始からリダクション演算を開始するまでの待ち時間が長くなる。
1つの側面において、本発明は、パケットの受信開始からリダクション演算を開始するまでの待ち時間を短縮することを目的とする。
実施の形態に係る計算ノード装置は、記憶部と、通信部と、エラーチェック部と、演算部と、を有する。
前記記憶部は、第1データを記憶する。
前記通信部は、第2データを含むパケットを受信する。
前記エラーチェック部は、前記パケットのエラーチェックを行い、チェック結果を出力する。
前記演算部は、前記エラーチェック部が出力したチェック結果を受信する前に、前記記憶部が記憶する第1データと前記パケットに含まれる第2データとを用いて演算を実行する。前記演算部は、前記チェック結果が受信した前記パケットにエラーが無いことを示す場合、実行した前記演算の演算結果を出力する。
実施の形態に係る計算ノード装置によれば、パケットの受信開始からリダクション演算を開始するまでの待ち時間を短縮することができる。
実施の形態に係る並列計算機システムの構成図である。 リダクション演算の例を示す図である。 パケットのフォーマットを示す図である。 実施の形態に係る計算ノード装置の構成図である。 実施の形態に係るネットワークインターフェース部の構成図である。 実施の形態に係る同期制御・リダクション演算部の構成図である。 実施の形態に係るネットワークインターフェース部の制御処理のフローチャートである。 実施の形態に係るリダクション演算器の処理を示す図である。 実施の形態に係るリダクション演算器の入出力のタイムチャートである。
以下、図面を参照しながら実施の形態について説明する。
図1は、実施の形態に係る並列計算機システムの構成図である。
並列計算機システム101は、計算ノード装置201−i(i=1〜9)を有する。
計算ノード装置201−iは、並列計算を行うコンピュータである。尚、計算ノード装置201−iは、ノードiと表記する場合がある。計算ノード装置201−iは、隣接する計算ノード装置201−iと伝送路を介して接続され、互いに通信可能である。計算ノード装置201−iは、それぞれ4つの計算ノード装置201−iと接続されている。
計算ノード装置201−1は、計算ノード装置201−2,201−3,201−4,201−7と接続されている。計算ノード装置201−2は、計算ノード装置201−1,201−3,201−5,201−8と接続されている。計算ノード装置201−3は、計算ノード装置201−1,201−2,201−6,201−9と接続されている。計算ノード装置201−4は、計算ノード装置201−1,201−5,201−6,201−7と接続されている。計算ノード装置201−5は、計算ノード装置201−2,201−4,201−6,201−8と接続されている。計算ノード装置201−6は、計算ノード装置201−3,201−4,201−5,201−9と接続されている。計算ノード装置201−7は、計算ノード装置201−1,201−4,201−8,201−9と接続されている。計算ノード装置201−8は、計算ノード装置201−2,201−5,201−7,201−9と接続されている。計算ノード装置201−9は、計算ノード装置201−3,201−6,201−7,201−8と接続されている。
計算ノード装置201−iは、接続されている計算ノード装置201−iからパケットを受信してリダクション演算を行う。
尚、実施の形態の計算ノード装置201−iの数および計算ノード装置201−iの接続形態(トポロジー)は一例であり、これに限られるものではない。
図2は、リダクション演算の例を示す図である。
図2では、ノード1〜4がそれぞれ有するベクトルV1〜V4を合計するSUMの例を示す。
ベクトルV1〜V4は、それぞれ8個の要素を有する。V1=(1,2,3,4,5,6,7)、V2=(7,8,9,10,11,12,13,14)、V3=(13,14,15,16,17,18,19,20)、V4=(19,20,21,22,23,24,25,26)である。
ベクトルV1〜V4を合計すると、SUM=(40,44,48,52,56,60,64,68)となる。図2に示すように、リダクション演算によりベクトルV1〜V4は、1つのベクトルに縮約している。
図3は、パケットのフォーマットを示す図である。
パケットは、ルーティングヘッダ、制御情報、データk(k=1〜8)、チェックサム、およびフラグ(F)を含む。パケットにおいて、先頭から順に、ルーティングヘッダ、制御情報、データk、チェックサム、およびフラグが位置する。
ルーティングヘッダは、パケットの宛先を示す宛先情報を含む。
制御情報は、リダクション演算に用いられるパケット、リードパケット、またはライトパケット等のパケットの種類を示す。
データkは、ペイロードであり、例えば、リダクション演算に用いられるデータである。例えば、データ1〜8は、それぞれ図2の要素1〜8に相当する。
チェックサムは、誤り検出符号であり、パケットのエラーチェックに用いられる値である。チェックサムは、例えば、FCS(Frame Check Sequence)である。
フラグは、パケットが無効であるかを示す情報であり、パケットのエラーチェックのチェック結果を示す。パケットのエラーが検出されると、フラグは「エラー有り」、すなわちパケットが無効であることを示す。パケットのエラーが検出されない場合、フラグは「エラー無し」、すなわちパケットは有効であることを示す。
尚、図3に示すパケットのフォーマットは一例であり、これに限られるものではない。
図4は、実施の形態に係る計算ノード装置の構成図である。
計算ノード装置201−1は、ルーター部211−j(j=1〜4)、ネットワークインターフェース部221、CPU(Central Processing Unit)231、およびメモリ241を有する。
ルーター部211−1〜211−4は、計算ノード装置201−1に隣接する計算ノード装置201−2,201−3,201−4,201−7とそれぞれ接続し、計算ノード装置201−2,201−3,201−4,201−7と通信する。ルーター部211−1〜211−4は、互いに接続し、通信可能である。ルーター部211−jは、例えば、LSI等のハードウェア回路により実現可能である。
ルーター部211−1は、受信部212、パケットチェック部213、ルーティング部214、ルーティング情報生成部215、再送要求生成部216、再送バッファ217、および送信部218を有する。
受信部212は、計算ノード装置201−2からパケットを受信する。受信部212は、通信部の一例である。
パケットチェック部213は、受信したパケットに含まれるチェックサムを用いて、当該パケットのエラーチェックを行う。パケットチェック部213は、チェック結果をパケットのフラグに記述し、ルーティング部214を介して制御部222に出力する。このようにエラーチェックのチェック結果は、パケットの末尾のフラグとして送信される。チェック結果は、パケットにエラーが検出されたときは「エラー有り」、パケットにエラーが検出されないとき「エラー無し」となる。パケットチェック部213は、パケットを受信しながらパケットのエラーチェックを行うとともにパケットの受信済み部分をルーティング部214に出力する。尚、パケットチェック部213は、パケットに含まれるチェックサムをルーティング部214に出力しなくてもよい。また、パケットチェック部213は、パケットにエラーが検出されたとき、再送要求部216にチェック結果を出力する。
ルーティング部214は、パケットに含まれるルーティングヘッダに基づいて、カットスルー方式により、パケットを受信しながらパケット受信済みの部分を制御部222またはルーター部211−2〜211−4に出力する。
ルーティング情報生成部215は、制御部222またはルーター部211−2〜211−4から受信したパケットのルーティングヘッダを更新する。
再送要求生成部216は、チェック結果=エラー有りを受信した場合、パケットの再送要求を当該パケットの送信元に送信する。
再送バッファ217は、送信済みのパケットを記憶し、計算ノード装置201−201−9から当該パケットの再送要求を受信した場合に、再送バッファ217内のパケットが再送される。
送信部218は、パケットを計算ノード装置201−2に出力する。
尚、ルーター部211−2〜211−4の構成は、ルーター部211−1と同様であるので説明は省略する。
ネットワークインターフェース部221は、制御部222、ノード要求部223、およびノード通知部224を有する。
制御部222は、受信したパケット内のデータを用いてリダクション演算を行う。制御部222は、受信したパケットをノード通知部224を介してCPU231に出力する。制御部222は、ノード要求部223から受信したCPU231からの要求をルーター部211−jに出力する。
ノード要求部223は、CPU231からの要求を制御部222に出力する。
ノード通知部224は、受信したパケットをCPU231に出力する。
CPU231は、各種演算処理を行う。
メモリ241は、計算ノード装置201−1で使用されるプログラムやデータ等を記憶する記憶部である。メモリ241は、例えば、RAM(Random Access Memory)である。
尚、ルーター部211−jおよびネットワークインターフェース部221は、計算ノード装置201−1の外に設けても良い。
また、計算ノード装置201−2〜201−9の構成は、計算ノード装置201−1と同様であるため説明は省略する。
図5は、実施の形態に係るネットワークインターフェース部の構成図である。
ネットワークインターフェース部221は、制御部222、ノード要求部223、およびノード通知部224を有する。
制御部222は、判定部251、同期制御・リダクション演算部252、送信部253、および受信バッファ254を有する。
判定部251は、パケットを受信しながら、受信したパケットの制御情報に基づいて、パケットによる処理およびパケットの送信先を判定し、パケットの受信済みの部分を同期制御・リダクション演算部252または受信バッファ254に出力する。判定部251は、受信したパケットの制御情報がリダクション演算を示す場合、パケットの送信先は同期制御・リダクション演算部252であり、当該パケットを用いてリダクション演算を行うと判定する。
判定部251は、受信したパケットの制御情報がリダクション演算を示す、すなわち受信したパケットがリダクション演算の対象のデータを含む場合に、当該パケットのエラーチェックのチェック結果の受信前に、同期制御・リダクション演算部252へ当該パケットの出力を開始する。すなわち、判定部251は、パケット全体の受信を完了する前にパケットの受信済み部分を同期制御・リダクション演算部252へ出力する。
判定部251は、パケットの送信先をCPU231と判定した場合、パケットを受信バッファ254に出力および記憶する。
同期制御・リダクション演算部252は、バリア同期の制御およびリダクション演算を行う。同期制御・リダクション演算部252は、演算結果を送信部253またはノード通知部224に出力する。同期制御・リダクション演算部252は、パケットのエラーチェックのチェック結果の受信前に、当該パケットを用いたリダクション演算を開始する。また、実施の形態において、CPU231は、同期制御・リダクション演算部252で行われるリダクション演算以外の演算を行う。
送信部253は、ノード要求部223から受信した要求および同期制御・リダクション演算部252から受信した演算結果をルーター部211−jに出力する。
受信バッファ254は、判定部251から受信したパケットを記憶する。
ノード要求部223は、CPU231からの要求を送信部253に出力する。
ノード通知部224は、パケットチェック部213によるパケットのチェック結果がエラー無しの場合に、受信バッファ254に記憶されたパケットをCPU231に出力する。また、ノード通知部224は、同期制御・リダクション演算部252から受信した演算結果をCPU231に出力する。
図6は、実施の形態に係る同期制御・リダクション演算部の構成図である。
同期制御・リダクション演算部252は、同期グループ解析部261、待避バッファ262、リダクション演算器263、先着データバッファ264、およびレジスタ265を有する。
同期グループ解析部261は、バリア同期のグループやリダクション対の検索を行う。
待避バッファ262は、先着データが無い場合に受信したパケットを記憶する記憶部である。
リダクション演算器263は、先着データバッファ264に記憶されたパケットと受信したパケットを用いてリダクション演算を行い、演算結果を出力する。
先着データバッファ264は、パケットのチェック結果がエラー無しの場合に、当該パケットを記憶する記憶部である。
レジスタ265は、バリア同期のグループやリダクション対を示す情報、およびリダクション演算において用いられる先着データの有無を示す情報などを記憶する。
図7は、実施の形態に係るネットワークインターフェース部の制御処理のフローチャートである。
ここで、受信部212は、計算ノード装置201−2からパケットを受信し、パケットチェック部213がパケットのエラーチェックを行いながら、ルーティング214がパケットを制御部222に出力するとする。また、実施の形態では、2つのプロセスそれぞれのパケットを用いてリダクション演算を行う場合を説明する。また、2つのプロセスのバリア同期・リダクション演算を繰り返すことで、2より大きい数のプロセスの同期を達成することが出来る。尚、上述のようにパケットチェック部213は、パケットのエラーチェックの結果をパケットの末尾のフラグに記述する。尚、実施の形態は、リダクション演算を対象とするため、バリア同期の説明は省略する。
ステップS11において、判定部251は、ルーティング部214からパケットを受信する。
ステップS12において、判定部251は、パケットの制御情報に基づいて、パケットに対する処理と送信先を判定する。受信したパケットの制御情報がバリア同期とリダクション演算を示す場合に、判定部251は、受信したパケットを用いてバリア同期とリダクション演算を行うと判定し、送信先は同期制御・リダクション演算部252であると判定する。受信したパケットを用いてバリア同期とリダクション演算を行うと判定された場合、判定部251は、パケットのエラーチェックのチェック結果の受信前に、同期制御・リダクション演算部252へ当該パケットの出力を開始する。尚、受信したパケットを用いてバリア同期とリダクション演算を行うと判定された場合、受信したパケットは、計算ノード装置201−2〜201−9のいずれかが有するリダクション対象のデータを含む。受信したパケットを用いてバリア同期とリダクション演算を行うと判定されない場合、判定部251は、パケットのエラーチェックのチェック結果の受信前に、受信バッファ254へ当該パケットを出力および記憶する。受信したパケットを用いてバリア同期とリダクション演算を行うと判定された場合、制御はステップS13に進み、受信したパケットを用いてバリア同期とリダクション演算を行うと判定されない場合、制御はステップS23に進む。
ステップS13において、同期グループ解析部261は、判定部251からパケットを受信し、受信したパケットの制御情報とレジスタ265内の情報に基づいて、受信したパケットが対象となるバリア同期のグループとリダクション対を検索する。リダクション対は、リダクション演算において、受信したパケットともに使用される先着データである。
ステップS14において、同期グループ解析部261は、リダクション演算において、受信したパケットともに使用される先着データ(すなわち、リダクション対)が先着データバッファ264にあるか判定する。先着データの有無を示す情報は、レジスタ265に記憶されている。先着データがある場合、制御はステップS15に進み、先着データがない場合、制御はステップS19に進む。
ステップS15において、同期グループ解析部261は、受信したパケットをリダクション演算器263に出力する。リダクション演算器263は、先着データバッファ264から先着データを読み出し、受信したパケットと先着データを用いてリダクション演算を行う。
ステップS16において、同期グループ解析部261は、パケットのエラーチェックのチェック結果を受信し、チェック結果を参照し、チェック結果がエラー無しを示す場合、制御はステップS17に進み、チェック結果がエラー有りを示す場合、制御はステップS18に進む。
ステップS17において、同期グループ解析部261は、チェック結果をリダクション演算器263に出力し、リダクション演算器263は、チェック結果がエラー無しを示すので、リダクション演算の演算結果を送信部253またはノード通知部224へ出力する。
ステップS18において、同期グループ解析部261は、リダクション演算器263へ演算結果の破棄を指示する。リダクション演算器263は、指示を受信すると演算結果を破棄する。すなわち、リダクション演算器263は、演算結果を出力しない。
ステップS19において、同期グループ解析部261は、受信したパケットに含まれるデータkを待避バッファ262に記憶し、エラーチェックのチェック結果、すなわちパケットの末尾のフラグの受信を待つ。
ステップS20において、同期グループ解析部261は、パケットのエラーチェックのチェック結果を受信し、チェック結果を参照し、チェック結果がエラー無しを示す場合、制御はステップS21に進み、チェック結果がエラー有りを示す場合、制御はステップS22に進む。
ステップS21において、同期グループ解析部261は、受信したパケットに対応するレジスタ265内の先着データの有無を示す情報(フラグ)に先着データがあることを記述する。同期グループ解析部261は、待避バッファ262に記憶されたパケットに含まれるデータkを先着データバッファ264に記憶する。先着データバッファ264に記憶されたデータkは、先着データとして利用される。
ステップS22において、同期グループ解析部261は、待避バッファ262に記憶されたパケットを破棄する。
ステップS23において、判定部251は、受信したパケットを受信バッファ254に記憶する。
ステップS24において、ノード通知部224は、パケットチェック部213によるチェック結果がエラー無しの場合、受信バッファ254からパケットを読み出して、CPU231に出力する。判定部251は、パケットチェック部213によるチェック結果がエラー有りの場合、受信バッファ254のパケットを破棄する。
図8は、実施の形態に係るリダクション演算器の処理を示す図である。
リダクション演算器263は、FIFO(First-In First-Out)266、267、269および演算器268を有する。
FIFO266は、先着データバッファ264から入力される先着データを記憶し、演算器268に出力する。FIFO266へ入力される先着データのスループットは、2n bit/cycleである。FIFO266の出力データのスループットはn bit/cycleである。
FIFO267は、同期グループ解析部261から入力される受信したパケットを記憶し、演算器268に出力する。FIFO267へ入力されるパケットのスループットは、2n bit/cycleである。FIFO267の出力データのスループットはn bit/cycleである。
演算器268は、先着データと受信したパケットを用いて演算を行い、演算結果をFIFO269に出力する。演算器268の演算処理のスループットは、n bit/cycleである。
FIFO269は、演算器268から入力される演算結果を記憶し、出力データとして演算結果を出力する。演算器268とFIFO269との間のスループットは、n bit/cycleである。FIFO269の出力データのスループットは、2n bit/cycleである。
多くの場合、短いパケット長のパケットを用いるリダクション演算は使用頻度が少なく、スループットも要求されない。そのため、演算器268に計算資源を潤沢に割り当てることは行われない。そのため、図8では、演算器268は、リダクション演算器263へのパケットのスループットの半分の演算処理能力となっている。
図9は、実施の形態に係るリダクション演算器の入出力のタイムチャートである。
図9は、図8に示すリダクション演算器263を用いて、図2に示すフォーマットのパケットを処理した場合のタイムチャートである。ここでパケットに含まれるデータkのそれぞれのサイズはn bitであるとする。また、先着データは、データk’を含み、データk’のそれぞれのサイズはn bitであるとする。
図9のタイムチャートは、上から順に、サイクルの番号、リダクション演算器263に入力される受信パケット、リダクション演算器263に入力される先着データ、演算器268の出力、リダクション演算器263の出力データを示す。
サイクル0において、受信パケットのルーティングヘッダがFIFO266に入力される。
サイクル1において、受信パケットの制御情報がリダクション演算器263に入力される。
サイクル2において、受信パケットのデータ1,2がリダクション演算器263に入力される。また、先着データのデータ1’,2’がリダクション演算器263に入力される。
サイクル3において、受信パケットのデータ3,4がリダクション演算器263に入力される。また、先着データのデータ3’,4’がリダクション演算器263に入力される。演算器268は、データ1とデータ1’の演算結果であるデータ1’’を出力する。
サイクル4において、受信パケットのデータ5,6がリダクション演算器263に入力される。また、先着データのデータ5’,6’がリダクション演算器263に入力される。演算器268は、データ2とデータ2’の演算結果であるデータ2’’を出力する。
サイクル5において、受信パケットのデータ7,8がリダクション演算器263に入力される。また、先着データのデータ7’,8’がリダクション演算器263に入力される。演算器268は、データ3とデータ3’の演算結果であるデータ3’’を出力する。
サイクル6において、受信パケットのエラーチェックのチェック結果を示すフラグ(F)がリダクション演算器263に入力される。演算器268は、データ4とデータ4’の演算結果であるデータ4’’を出力する。上記のように、サイクル6において、受信パケットのエラーチェックのチェック結果を示すフラグがリダクション演算器263に到着している。サイクル6の時点で、リダクション演算の演算結果はリダクション演算器263から出力されてないので、チェック結果がエラー有りを示す場合は、リダクション演算器263から演算結果を出力することなく、演算結果を破棄することが可能である。以下、チェック結果がエラー無しを示すとする。
サイクル7において、演算器268は、データ5とデータ5’の演算結果であるデータ5’’を出力する。リダクション演算器263は、制御情報を出力する。
サイクル8において、演算器268は、データ6とデータ6’の演算結果であるデータ6’’を出力する。リダクション演算器263は、データ1’’、2’’を出力する。
サイクル9において、演算器268は、データ7とデータ7’の演算結果であるデータ7’’を出力する。リダクション演算器263は、データ3’’、4’’を出力する。
サイクル10において、演算器268は、データ8とデータ8’の演算結果であるデータ8’’を出力する。リダクション演算器263は、データ5’’、6’’を出力する。
サイクル11において、リダクション演算器263は、データ7’’、8’’を出力する。
実施の形態の計算ノード装置によれば、受信したパケットのエラーチェックの結果を受信する前に当該パケットを用いたリダクション演算を開始するので、パケットの受信からリダクション演算開始までの待ち時間を短縮できる。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
第1データを記憶する記憶部と、
第2データを含むパケットを受信する通信部と、
前記パケットのエラーチェックを行い、チェック結果を出力するエラーチェック部と、
前記エラーチェック部が出力した前記チェック結果を受信する前に、前記記憶部が記憶する前記第1データと前記パケットに含まれる前記第2データとを用いてリダクション演算を行い、前記エラーチェック部が出力した前記チェック結果が前記パケットにエラーが無いことを示す場合、前記リダクション演算の演算結果を出力する演算部と、
を備える計算ノード装置。
(付記2)
前記演算部は、前記チェック結果が前記パケットにエラーがあることを示す場合、前記演算結果を破棄することを特徴とする付記1記載の計算ノード装置。
(付記3)
前記第1データが前記記憶部に記憶されておらず且つ前記チェック結果が前記パケットにエラーが無いことを示す場合、前記記憶部は前記第2データを記憶することを特徴とする付記1または2記載の計算ノード装置。
(付記4)
複数の計算ノード装置を有する並列計算機システムにおいて、
前記複数の計算ノード装置の各々は、
第1データを記憶する記憶部と、
他の計算ノード装置から第2データを含むパケットを受信する通信部と、
前記パケットのエラーチェックを行い、チェック結果を出力するエラーチェック部と、
前記エラーチェック部が出力したチェック結果を受信する前に、前記記憶部が記憶する第1データと前記パケットに含まれる第2データとを用いて演算を実行し、前記チェック結果が受信した前記パケットにエラーが無いことを示す場合、実行した前記演算の演算結果を出力する演算部と、
を有することを特徴とする並列計算機システム。
(付記5)
前記演算部は、前記チェック結果が前記パケットにエラーがあることを示す場合、前記演算結果を破棄することを特徴とする付記4記載の並列計算機システム。
(付記6)
前記第1データが前記記憶部に記憶されておらず且つ前記チェック結果が前記パケットにエラーが無いことを示す場合、前記記憶部は前記第2データを記憶することを特徴とする付記4または5記載の並列計算機システム。
(付記7)
第1データを記憶する記憶部と、通信部と、エラーチェック部と、演算部と、を有する計算ノード装置の制御方法において、
前記通信部が、第2データを含むパケットを受信し、
前記エラーチェック部が、前記パケットのエラーチェックを行い、チェック結果を出力し、
前記演算部が、前記エラーチェック部が出力したチェック結果を受信する前に、前記記憶部が記憶する第1データと前記パケットに含まれる第2データとを用いて演算を実行し、前記チェック結果が受信した前記パケットにエラーが無いことを示す場合、実行した前記演算の演算結果を出力する
計算ノード装置の制御方法。
(付記8)
前記演算部は、前記チェック結果が前記パケットにエラーがあることを示す場合、前記演算結果を破棄することを特徴とする付記7記載の制御方法。
(付記9)
前記第1データが前記記憶部に記憶されておらず且つ前記チェック結果が前記パケットにエラーが無いことを示す場合、前記記憶部は前記第2データを記憶することを特徴とする付記7または8記載の制御方法。
101 並列計算機システム
201 計算ノード装置
211 ルーター部
212 受信部
213 パケットチェック部
214 ルーティング部
215 ルーティング情報生成部
216 再送要求生成部
217 再送バッファ
218 送信部
221 ネットワークインターフェース部
222 制御部
223 ノード要求部
224 ノード通知部
231 CPU
241 メモリ
251 判定部
252 同期制御・リダクション演算部
253 送信部
254 受信バッファ
261 同期グループ解析部
262 待避バッファ
263 リダクション演算器
264 先着データバッファ
265 レジスタ
266,267,269 FIFO
268 演算器

Claims (5)

  1. 第1データを記憶する記憶部と、
    第2データを含むパケットを受信する通信部と、
    前記パケットのエラーチェックを行い、チェック結果を出力するエラーチェック部と、
    前記エラーチェック部が出力したチェック結果を受信する前に、前記記憶部が記憶する第1データと前記パケットに含まれる第2データとを用いて演算を実行し、前記チェック結果が受信した前記パケットにエラーが無いことを示す場合、実行した前記演算の演算結果を出力する演算部と、
    を有する計算ノード装置。
  2. 前記演算部は、前記チェック結果が前記パケットにエラーがあることを示す場合、前記演算結果を破棄することを特徴とする請求項1記載の計算ノード装置。
  3. 前記第1データが前記記憶部に記憶されておらず且つ前記チェック結果が前記パケットにエラーが無いことを示す場合、前記記憶部は前記第2データを記憶することを特徴とする請求項1または2記載の計算ノード装置。
  4. 複数の計算ノード装置を有する並列計算機システムにおいて、
    前記複数の計算ノード装置の各々は、
    第1データを記憶する記憶部と、
    他の計算ノード装置から第2データを含むパケットを受信する通信部と、
    前記パケットのエラーチェックを行い、チェック結果を出力するエラーチェック部と、
    前記エラーチェック部が出力したチェック結果を受信する前に、前記記憶部が記憶する第1データと前記パケットに含まれる第2データとを用いて演算を実行し、前記チェック結果が受信した前記パケットにエラーが無いことを示す場合、実行した前記演算の演算結果を出力する演算部と、
    を有することを特徴とする並列計算機システム。
  5. 第1データを記憶する記憶部と、通信部と、エラーチェック部と、演算部と、を有する計算ノード装置の制御方法において、
    前記通信部が、第2データを含むパケットを受信し、
    前記エラーチェック部が、前記パケットのエラーチェックを行い、チェック結果を出力し、
    前記演算部が、前記エラーチェック部が出力したチェック結果を受信する前に、前記記憶部が記憶する第1データと前記パケットに含まれる第2データとを用いて演算を実行し、前記チェック結果が受信した前記パケットにエラーが無いことを示す場合、実行した前記演算の演算結果を出力する
    計算ノード装置の制御方法。
JP2017171480A 2017-09-06 2017-09-06 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法 Active JP6907835B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017171480A JP6907835B2 (ja) 2017-09-06 2017-09-06 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法
US16/055,828 US10592299B2 (en) 2017-09-06 2018-08-06 Computation node device, parallel computer system, and control method for computation node device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017171480A JP6907835B2 (ja) 2017-09-06 2017-09-06 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法

Publications (2)

Publication Number Publication Date
JP2019046379A JP2019046379A (ja) 2019-03-22
JP6907835B2 true JP6907835B2 (ja) 2021-07-21

Family

ID=65517399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017171480A Active JP6907835B2 (ja) 2017-09-06 2017-09-06 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法

Country Status (2)

Country Link
US (1) US10592299B2 (ja)
JP (1) JP6907835B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858017A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 用于处理任务的方法、设备和计算机程序产品

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587985B1 (en) * 1998-11-30 2003-07-01 Matsushita Electric Industrial Co., Ltd. Data transmission method, data transmission apparatus, data receiving apparatus, and packet data structure
JP4344576B2 (ja) * 2003-09-26 2009-10-14 株式会社ルネサステクノロジ パケット通信装置
WO2006076787A1 (en) * 2005-01-19 2006-07-27 Nortel Networks Limited Method and system for retransmitting data packets
US7831882B2 (en) * 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US7913150B2 (en) * 2007-03-13 2011-03-22 Advanced Micro Devices, Inc. Error detection in a communications link
US7827030B2 (en) * 2007-06-15 2010-11-02 Microsoft Corporation Error management in an audio processing system
US8619620B2 (en) * 2008-09-16 2013-12-31 Qualcomm Incorporated Methods and systems for transmission mode selection in a multi channel communication system
JP5304194B2 (ja) 2008-11-19 2013-10-02 富士通株式会社 バリア同期装置、バリア同期システム及びバリア同期装置の制御方法
US8402343B2 (en) 2009-12-04 2013-03-19 St-Ericsson Sa Reliable packet cut-through
US8824606B2 (en) * 2012-01-30 2014-09-02 Qualcomm Incorporated Multiple correlators for communication device detection
JP5920299B2 (ja) * 2013-09-17 2016-05-18 コニカミノルタ株式会社 画像形成装置、遠隔制御方法、および遠隔制御プログラム

Also Published As

Publication number Publication date
US20190073247A1 (en) 2019-03-07
US10592299B2 (en) 2020-03-17
JP2019046379A (ja) 2019-03-22

Similar Documents

Publication Publication Date Title
EP2189903B1 (en) Barrier synchronization apparatus, barrier synchronization system, and barrier synchronization method
US9749222B2 (en) Parallel computer, node apparatus, and control method for the parallel computer
US9075767B2 (en) Parallel computer system, synchronization apparatus, and control method for the parallel computer system
US8572615B2 (en) Parallel computing system, synchronization device, and control method of parallel computing system
US10469200B2 (en) Minimum latency link layer metaframing and error correction
US11294841B1 (en) Dynamically configurable pipeline
JPWO2011058640A1 (ja) 並列計算用の通信方法、情報処理装置およびプログラム
US20080301537A1 (en) Packet transmission device and packet transmission method
JP6907835B2 (ja) 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法
CN108768778B (zh) 一种网络时延计算方法、装置、设备及存储介质
US10609188B2 (en) Information processing apparatus, information processing system and method of controlling information processing system
US10728178B2 (en) Apparatus and method for distribution of congestion information in a switch
US20070028152A1 (en) System and Method of Processing Received Line Traffic for PCI Express that Provides Line-Speed Processing, and Provides Substantial Gate-Count Savings
US9210093B2 (en) Alignment circuit and receiving apparatus
US7424653B2 (en) System and method for error capture and logging in computer systems
US20140301393A1 (en) Preprocessing unit for network data
US20040236982A1 (en) System and method for in-order queue draining
JP6494880B2 (ja) 転送装置およびフレーム転送方法
US20170295237A1 (en) Parallel processing apparatus and communication control method
US20230080535A1 (en) Network Path Testing via Independent Test Traffic
WO2023133097A1 (en) Adaptive temporal resource binding based on speculative pipeline interdependency
JP5639965B2 (ja) 非同期動作検索回路
CN112446474A (zh) 芯片和多芯片系统及电子设备和数据传输方法
CN112751784A (zh) 一种数据分发方法、装置、fpga及介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180910

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210614

R150 Certificate of patent or registration of utility model

Ref document number: 6907835

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150