JP7159696B2 - 情報処理装置,並列計算機システムおよび制御方法 - Google Patents

情報処理装置,並列計算機システムおよび制御方法 Download PDF

Info

Publication number
JP7159696B2
JP7159696B2 JP2018159280A JP2018159280A JP7159696B2 JP 7159696 B2 JP7159696 B2 JP 7159696B2 JP 2018159280 A JP2018159280 A JP 2018159280A JP 2018159280 A JP2018159280 A JP 2018159280A JP 7159696 B2 JP7159696 B2 JP 7159696B2
Authority
JP
Japan
Prior art keywords
information processing
data
node
stage
target data
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
JP2018159280A
Other languages
English (en)
Other versions
JP2020035058A (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 JP2018159280A priority Critical patent/JP7159696B2/ja
Priority to US16/538,882 priority patent/US10848551B2/en
Publication of JP2020035058A publication Critical patent/JP2020035058A/ja
Application granted granted Critical
Publication of JP7159696B2 publication Critical patent/JP7159696B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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
    • 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/17325Synchronisation; Hardware support therefor
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Description

本発明は、情報処理装置,並列計算機システムおよび制御方法に関する。
複数のノードを備え、これらのノードを並列に用いて計算を行なう並列計算機システムにおいて、リダクション演算を行なうことが知られている。
リダクション演算は、複数のプロセスが持つデータを対象とした演算であり、例えば、データの総和を求める演算や、最大値、最小値を求める演算等が知られている。
図10はリダクション演算を説明するための図である。
この図10に示す例においては、4つのノード#0~#3が有するデータの総和を求めるリダクション演算を示している。すなわち、ノード#0,#1,#2,#3がそれぞれ有するデータ“1”,“7”“13”,“19”の総和“40”を算出する例を示している。
特開2010-122848号公報 特開2012-128808号公報 特開2012-58958号公報 特開2007-257269号公報 特開平2-72480号公報
従来の並列計算機システムにおいて、複数ノードのデータの総和演算を行なう場合に、計算をする度に桁上がり分の領域を拡張していかないと上位ビットが桁あふれ(オーバフロー)によって消えてしまう場合がある。
図11は従来の並列計算機システムにおける総和演算を説明するための図である。
この図11においては、各ノード#0~#3のリダクション加算器が5bitである例を示す。5bitで表現できる数字は0~31である。
ノード#0,#1,#2,#3がそれぞれ有するデータ“1”,“7”“13”,“19”の総和を(1+7)+(13+19)のように2つに分割して計算する場合について考える。
1+7=8であり、この“8”を二進数で表すと“1000”であるので、5bitのリダクション加算器でもそのまま取り扱うことができる。これに対して、13+19=32である。この“32”を二進数で表記すると“100000”となり、5bitのリダクション加算器では表現可能な範囲を超えているので、桁あふれが発生し、最上位ビットの“1”が落ちて、演算結果として“0(00000)”が出力される。
すなわち、ノード#2のデータ“13”とノード#3のデータ“19”との合計を算出するに際して、合計“32”が得られるべきところを上位ビットの桁あふれが生じ、“0”となる。これにより、各データの総和は1+7+13+19=8と出力され、演算結果に誤りが生じる。
また、このような従来の並列計算機システムにおいて、各ノードのデータの平均を算出する平均演算を行なう場合に、各ノードのデータの総和を最後にノード数で除算して求める。
なお、平均演算は、このようにノード間で総和を算出した後にローカルにプロセス数で割り算することで処理可能であるので、MPI(Message Passing Interface)等のソフトウェアインターフェースでは、プロセス間集団通信に関する平均の定義は無い。
図10に示した各ノード#0,#1,#2,#3がそれぞれ有するデータ“1”,“7”,“13”,“19”の総和“40”をノード数“4”で除算すると、40/4=10となる。
一方、図11に示した桁あふれによる誤りが生じた結果の総和演算の結果“8”をノード数“4”で除算すると、8/4=2となり、正しい平均値(本例では“10”)との間で誤差(本例では“8”)が生じる。
このような桁あふれを原因とする誤りの発生を防止すべく、計算を行なう度に桁上がり分の領域を拡張する手法が知られている。すなわち、加算するたびに1bitずつ拡張することで桁あふれを回避する。
図12は従来の並列計算機システムにおける領域拡張を伴う総和演算を説明するための図である。
この図12においては、合計の計算を行なう度に1ビット分の領域拡張(ビット拡張)を行なうことで、桁あふれの発生を阻止している。
しかしながら、このように計算を行なう度にビット拡張を行なうことで、転送データ量が増加し、帯域を消費するという課題がある。
例えば、1024個のノードの総和を求める場合には、5bitの演算領域に対して10bitのビット拡張を行なうことで、リダクション演算における後続するステージのノードに対して、15bitのパケット通信が発生し、通信帯域が浪費される。
1つの側面では、本発明は、ビット拡張を行なうことなく高精度な集団平均演算を実現できるようにすることを目的とする。
このため、この情報処理装置は、複数の情報処理装置を備える並列計算機システムのうちの第1の情報処理装置であって、前記複数の情報処理装置のうちの1つ以上の他の情報処理装置からの演算対象データの待ち合わせを行なう待ち合わせ処理部と、複数の演算対象データの平均演算の処理を複数のステージに分割してリダクション演算を実行する処理において、待ち合わせた前記演算対象データを含む複数の演算対象データの第1のステージにおける平均値を算出することで前記第1の情報処理装置における前記演算対象データのビット拡張を抑制する演算処理部と、算出した前記平均値を、前記複数の情報処理装置のうちの前記他の情報処理装置と異なる、前記第1のステージに後続する第2のステージにおける平均値を算出する第2の情報処理装置に送信する送信部とを備える。
一実施形態によれば、ビット拡張を行なうことなく高精度な集団平均演算を実現できる。
実施形態の一例としての並列計算機システムの構成を例示する図である。 実施形態の一例としての並列計算機システムにおけるノードのハードウェア構成を例示する図である。 実施形態の一例としての並列計算機システムのノードにおける演算制御装置の構成を例示する図である。 実施形態の一例としての並列計算機システムのノードにおける演算制御部の構成を例示する図である。 実施形態の一例としての並列計算機システムにおける平均演算を説明するための図である。 実施形態の一例としての並列計算機システムにおける演算器をハードウェア記述言語で表した例を示す図である。 実施形態の一例としての並列計算機システムにおける平均演算の処理例を示す図である。 実施形態の一例としての並列計算機システムにおける処理ツリーを例示する図である。 実施形態の一例としての並列計算機システムの演算制御部によるリダクション演算処理を説明する処理フローである。 リダクション演算を説明するための図である。 従来の並列計算機システムにおける総和演算を説明するための図である。 従来の並列計算機システムにおける領域拡張を伴う総和演算を説明するための図である。
以下、図面を参照して本情報処理装置,並列計算機システムおよび制御方法にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としての並列計算機システム1の構成を例示する図である。
この図1に例示する並列計算機システム1においては、複数(図1においては9個を図示)のノード10を伝送路11を介して格子状に接続することで二次元メッシュネットワークが構成されている。並列計算機システム1は、相互結合網として構成され、格子の交点位置にノード10が配置されている。
ノード10は、本並列計算機システム1において、ジョブの配置単位となるプロセッサの集合であり、例えば、情報処理装置(コンピュータ)である。
図2は実施形態の一例としての並列計算機システム1におけるノード10のハードウェア構成を例示する図である。
ノード10は、図2に示すように、CPU(Central Processing Unit)101および演算制御装置102を備える。
CPU101は、ノード10全体を制御する。CPU101は、複数の演算コアを備えたマルチコアプロセッサであってもよい。また、ノード10においては、複数のCPU101を備えることで構成されたマルチプロセッサであってもよい。
また、CPUに代えて、MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、CPU101に代えて、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
CPU101は、ノード10に備えられた図示しないメモリに、OS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部を一時的に格納(展開)し、これらのプログラムを実行することで、種々の機能を実現する。
OSプログラムやアプリケーションプログラム、およびこれらのプログラムの実行に用いられる各種データは、HDDやSSD,SCM等の図示しない補助記憶装置に格納される。HDDはHard Disk Driveの略称である。SSDはSolid State Driveの略称である。SCMはStorage Class Memoryの略称である。
また、ノード10は図示しないネットワークインタフェースを備える。ネットワークインタフェースは、伝送路11を介して、他のノード10または通信機器との間でデータの送受信を行なう。ネットワークインタフェースはインタコネクトであってもよい。ネットワークインタフェースは演算制御装置102を備える。例えば、演算制御装置102はNIC(Network Interface Card)に備えられてもよい。
演算制御装置102は、演算処理および同期制御を行なう。本並列計算機システム1においては、演算制御装置102は、平均演算およびバリア同期制御を行なう。
図3は実施形態の一例としての並列計算機システム1のノード10における演算制御装置102の構成を例示する図である。
演算制御装置102は、図3に示すように、演算制御部103,送信部104,受信部105,ノード要求部106およびノード通知部107を備える。
送信部104および受信部105は、当該演算制御装置102が備えられたノード10(以下、自ノード10という場合がある)に伝送路11を介して接続された他のノード10(以下、他ノード10という場合がある)との間でデータ等の送受信を行なう。
送信部104は他のノード10に対してデータ等の送信を行なうものであり、データをパケットとして送信する。受信部105は他のノード10から送信されるデータ等を受信するものであり、データをパケットとして受信する。
ノード要求部106およびノード通知部107は、自ノード10に備えられたCPU101との間でデータ等の送受信を行なう。
ノード要求部106は、自ノード10のCPU101からの演算指示やデータ等を受信するものであり、データをパケットとして受信する。ノード通知部107は、自ノード10のCPU101に対して演算結果やデータ等を送信するものであり、データをパケットとして送信する。
演算制御部103は演算処理および同期処理を行なう。
図4は実施形態の一例としての並列計算機システム1のノード10における演算制御部103の構成を例示する図である。
演算制御部103は、図4に示すように、演算器1031,制御回路1032,マルチプレクサ(MUX:multiplexer)1033,デマルチプレクサ(DEMUX:demultiplexer)1034,演算リソース1035および同期部82を備える。
演算制御部103は、バタフライによりバリア同期を行ないつつ平均演算を行なう。
平均演算の第1の対象データは、CPU101からノード要求部106を介して入力され、マルチプレクサ1033に入力される。平均演算の第2の対象データは、伝送路11から受信部105を介してパケットとして入力され、マルチプレクサ1033に入力される。
一方、平均演算の結果は、デマルチプレクサ1034からノード通知部107を介してCPU101に出力される。また、平均演算の結果は、デマルチプレクサ1034から送信部104に出力され、この送信部104から伝送路11へパケットとして送信される。これにより、伝送路11に接続された他ノード10に平均演算の結果が伝送される。
平均演算を実行するために、CPU101は、図示しないキーボード等の入出力装置から入力された設定条件に従って、演算制御部103における第1の同期信号の送信先及び第2の同期信号の送信先を、演算制御部103に設定してもよい。
また、CPU101は、平均演算の開始時に演算制御装置102に対して演算対象のデータを送信し、また、演算制御装置102から平均演算結果を受信する。このように、演算制御装置102は、伝送路11を介して、他のノード10の演算制御装置102との間で通信を行ない、当該通信に基づいて、平均演算を行なう。
更に、平均演算を実行するために、演算制御装置102の備える同期部82は、同期成立の後に、第2の同期信号の送信を送信部104に指示(図示「パケット送信指示」)すると共に、予め定められた平均演算を制御回路1032に指示する。ノード通知部107は、第2の同期信号送信の指示を受信した場合、第2の同期信号と共に、演算器1031における平均演算の結果をCPU101に送信する。
同期部82は、設定条件に従って、伝送路11を介して、他のノード10の同期部82との間で通信を行ない、当該通信に基づいて、バリア同期を行なう。すなわち、同期部82は、他のノード10からの演算対象データの待ち合わせを行なう待ち合わせ処理部に相当する。
バリア同期を行なう複数のプロセスは、その処理が同期をとるポイントつまりバリアポイントに到着した場合、自身の処理を停止する。即ち、複数のプロセスは自身がバリアポイントに到達した場合、各々、他のプロセスがバリアポイントに到着するのを待ち合わせる。複数のプロセスは、各々、バリア同期を行なう全てのプロセスがバリアポイントに到着した時点で、即ち、バリア同期が成立した時点で、停止した処理を再開する。これにより、並列処理されている複数のプロセス間で、並列処理の同期をとることができる。
このようなバリア同期を実現するアルゴリズムの一つに、バタフライ演算がある。バタフライ演算を単にバタフライと称してもよい。バタフライにおいては、処理を複数のステージに分割し、ステージ毎に他のプロセスと信号の通信を行なう。この例においては、バリア同期のアルゴリズムとして、バタフライを用いてもよい。
同期部82は、制御レジスタ822に、タイプレジスタを備える。タイプレジスタは、演算器1031における平均演算の制御のために、演算の種類を示す情報を格納してもよい。タイプレジスタに格納される情報も、設定条件の一部として、図示しない入出力装置から入力されてもよい。
ここで、平均演算について簡単に説明する。平均演算は、バリア同期と同一のアルゴリズムを用いて実行することができる。即ち、平均演算は、バタフライによるバリア同期を実行するバタフライネットワークにより実行することができる。
従って、平均演算は、処理を複数のステージに分割し、各プロセスはステージ毎に他のプロセスと信号の通信を行なう。1個のノード10上で1個のプロセスが動作する場合、プロセスとノード10とは同一と考えて良い。各ステージにおけるプロセスの処理及び送信先は、基本的に、バリア同期と同じである。
平均演算の最初のステージ#1においては、各プロセスは、演算の対象となるデータを次のステージ#2のプロセスに送信する。ステージ#2において各プロセスは、前のステージ#1のプロセスからのデータを受信した場合、例えば、自身が持っているデータとの加算を行ない、演算結果を次のステージ#3のプロセスに送信する。最後のステージ#3において各プロセスは、前のステージ#2のプロセスからデータを受信した場合、例えば、受信したデータと前のステージ#2での自身の演算結果との平均演算を行なう。この平均演算の結果が、集団平均演算の結果となる。
平均演算は、例えば、以下のように行なわれる。
CPU101は、平均演算の対象となる各組に対応する制御レジスタ822に、設定条件に基づいて、次ステージの宛先ノードアドレス、制御レジスタ番号等を設定する。この後、CPU101は、入力データ及び平均同期開始信号を演算制御装置102に送信する。これにより、演算制御装置102(演算制御部103)による平均演算が開始される。最後のステージに対応した制御レジスタ822において同期が成立した場合、演算制御装置102は、演算結果と平均演算完了の信号とを、CPU101に送る。
受信部105は伝送路11を介してパケットを他ノード10から受信し、受信したパケットに基づいて、同期信号及び宛先との組を同期信号を同期部82に送信し、パケットとして受信したデータを演算制御部103に送信する。
演算制御部103において、データが「リードデータ」としてマルチプレクサ1033を介して、演算器1031に入力される。CPU101からのデータは、例えば、平均演算の開始時に入力される。
平均演算中のデータは、図示しない記憶装置に格納される。これにより、記憶装置は、平均演算中のデータを保持する。記憶装置の記憶容量は、例えば、(制御レジスタ822の数)×(データのビット数)とされる。平均演算中のデータを保持すべき記憶装置のアドレスは、制御回路1032からライトアドレスにより指定される。記憶装置のライトアドレスは、当該平均演算に用いられる制御レジスタ822に対応し、当該制御レジスタ822の制御レジスタ番号に基づいて生成される。
記憶装置に格納された平均演算中のデータは、制御回路1032からリードアドレスを指定することにより、読み出されて演算器1031に入力される。記憶装置のリードアドレスは、当該平均演算に用いられる制御レジスタ822に対応し、当該制御レジスタ822の制御レジスタ番号に基づいて生成される。
同期部82の制御部821は、制御レジスタ822の宛先レジスタの値(Destination)を参照し、宛先レジスタにおいて他ノード10が指定されている場合に、送信部104に対してパケット送信指示の信号を出し、送信部104に対しデータを送る。送信部104に送られるデータは、制御レジスタ822が最初のステージである場合には入力データレジスタの値であり、後続のステージである場合には演算器1031からの演算結果である。入力データレジスタの値を送信部104に送信する場合、制御部821は、演算指示としてバイパスを指定する。
一方、宛先レジスタにおいて自プロセス又は自ノードの制御レジスタ822を指定されている場合には、制御部821は、自プロセス又は自ノードの同期部82に同期信号を送るため、宛先レジスタにおいて指定された制御レジスタ822のシグナルレジスタの値(Signal)を読み出す。
シグナルレジスタに同期成立を示す情報(例えば「1」)が設定されていない場合には、制御部821は、シグナルレジスタに「1」を設定し、データを記憶装置の制御レジスタ822に対応するアドレスに格納する。データは、制御レジスタ822が最初のステージである場合には入力データレジスタの値であり、後続のステージである場合には前ステージの演算結果である。
マルチプレクサ1033は、制御回路1032からの入力部選択の指示に従って、受信部105からのデータ、又は、ノード要求部106からのデータを選択して、制御回路1032又は演算器1031に入力する。入力部選択の指示は、例えば、受信部105から同期信号及び宛先が入力された場合には、受信部105のデータをマルチプレクサ1033に出力し、これ以外の場合には、ノード要求部106からのデータをマルチプレクサ1033に出力してもよい。
演算器1031は、記憶装置で待ち合わせているデータと、マルチプレクサ1033を介して入力されるパケットからのデータ又は先の演算結果とについて、平均演算を行なう。即ち、演算器1031は、制御回路1032からの指示を受信した場合、記憶装置に記憶されたデータを用いて、平均演算を行なう。具体的には、演算器1031は、制御回路1032からの演算指示に従って、平均演算を実行して、その結果を、デマルチプレクサ1034に入力する。
演算器1031は、例えば記憶装置から入力するデータつまり第1データと、受信部105が受信したパケットからのデータ又は演算器1031が前ステージで行なった演算結果つまり第2データとの間で、平均演算を行なう。
演算制御部103は、2^n 個の演算対象データ(演算対)の加算を行ない、この加算値に対してn bit shift(nビットシフト)を行なって、下位nビットを除いた上位ビットを抽出することで、平均演算を実現する。なお、nは1以上の自然数である。
すなわち、演算制御部103は、大規模ノードによる平均演算を2^n個のグループに分割し、それぞれのグループで演算された結果を更に次の段で構成したグループで演算するという操作を繰り返すことによって最終的な全ノード10の平均値を作成する。このように、演算器1031は、待ち合わせた演算対象データを含む複数の演算対象データの平均演算を行なって平均値を算出する演算処理部に相当する。
以下、n=1の例について示す。すなわち、演算制御部103は、2つのパケット(2packet)を待ち合せ演算し、2packetを出力する機能を有する。
なお、パケットの待ち合わせは、例えば、バタフライによるバリア同期等、既知の種々の手法を用いて実現することができる。
演算リソース1035は、例えば、グループ定義や待ち合わせ中の中間データである。
2packetを待ち合せる設定においては演算器1031による演算を行ない、2packetを待ち合せない設定においては、そのまま転送する。
パケットにはID(identification)が埋め込まれ、演算制御部103内でどのパケットが組になり演算されるかを識別することができる。
受信部105から届いたパケットは、先行パケットが無ければそのまま保存され、対になるパケットを待ち合せる。演算器1031において、受信部105から届いたパケットは先行パケットがあれば対になる先行パケットと届いたパケットにて平均演算を行なう。
平均演算の結果は、送信部104に転送され、他ノード10、すなわち、後続するステージの演算制御部103に向けて転送される。最終結果が得られた場合は、ノード通知部107からCPU101に対して通知を行ない処理を終了する。
図5は実施形態の一例としての並列計算機システム1における平均演算を説明するための図である。
この図5に示す例においては、各ノード#0~#3の演算器1031がそれぞれ5bitであり、ノード#0,#1,#2,#3がそれぞれデータ“1”,“7”“13”,“19”を有する。
なお、ノード#0~#3において、符号#に後続する数字はノード10を特定するノード識別番号である。
本並列計算機システム1においては、ノード#0のデータ“1”とノード#1のデータ“7”とを用いて、(1+7)/2を演算することで、平均値(途中平均値)“4”を算出する。また、ノード#2のデータ“13”とノード#3のデータ“19”とを用いて、(13+19)/2を演算することで、途中平均値“16”を算出する。
そして、これらの途中平均値“4”,“16”を用いて(4+16)/2を演算することで、平均値“10”を算出する。
すなわち、ノード#0,#1,#2,#3のデータ“1”,“7”“13”,“19”の平均を、((1+7)/2 + (13+19)/2)/2として計算する。
また、演算器1031は、途中平均値および平均値を算出するに際して、2^n 個の演算対のデータの加算値に対して、n bit shift(nビットシフト)を行なって下位ビットの切り捨てを行なうことで除算を実現する。
本実施形態においては、それぞれ5ビットの2進数で表した2つのデータの加算値に対して1bit shift(1ビットシフト)を行なって最下位ビットの切り捨てを行なうことで2での除算を実現する。
図5に示す例においては、“1(00001)”と“7(00111)”との加算値“8(01000)”を1bit shiftして最下位ビットの“0”を切り捨てることで、途中平均値“4(00100)”を算出している。
同様に、“13(01101)”と“19(10011)”との加算値“32(100000)”を1bit shiftして最下位ビットの“0”を切り捨てることで、途中平均値“16(10000)”を算出している。
そして、最後に、“4(00100)”と“16(10000)”との加算値“20(010100)”を1bit shiftして最下位ビットの“0”を切り捨てることで、平均値“10(01010)”を算出している。すなわち、(4+16)/2=10の計算をして平均値を得ることが出来る。
本並列計算機システム1における平均演算によれば、各ステージの演算を行なう毎にビット拡張を行なう必要がなく、演算規模に応じて必要bit数が増加することがないので、ノード10間のパケット通信の帯域を浪費することがない。
なお、(1+8)のように、2つデータの加算値が奇数になる場合は、1ビットシフトを行なうことで最下位ビットが落ちるために完全な精度を保証するものではない。しかしながら、1ビットシフトによる最下位ビット落ちは、桁あふれによる上位ビット落ちと比較して誤差は格段に小さい。例えばn=1の場合、誤差は0.5以下であることが保障可能である。また、低次精度で良い計算であってハードウェア資源を可能な限り節約したいような需要に答えることが可能である。
図6は実施形態の一例としての並列計算機システム1における演算器1031をハードウェア記述言語で表した例を示す図である。
この図6に例示する演算回路は、5ビットの平均操作を保障するものであり、6ビットの加算器(work[5:0])を有する。この6ビットの加算器において5ビットの2つの入力(input A,input B)を加算している(符号P1参照)。そして、この加算器による演算結果の上位5ビットの切り出しを行ない、次ステージにはこの5ビットのみを受け継ぐことで、1ビットシフトを実現している(符号P2参照)。
なお、この図6に示す例においては、符号なし整数を対象と想定して記述しているが、これに限定されるものではなく、符号有り整数等について実装してもよい。
デマルチプレクサ1034は、演算器1031からの入力を、送信部104またはノード通知部107に出力する。
デマルチプレクサ1034は、例えば、制御回路1032等から出力部選択の指示に従って出力先を選択してもよい。出力部選択の指示は、平均演算が完了する以前には、演算器1031からのデータを送信部104に出力し、これ以外の場合には、ノード通知部107に出力してもよい。
ノード通知部107は、平均演算の結果(平均値,途中平均値)を、CPU101に出力する。ノード通知部107から出力される平均演算の結果は、平均演算の完了時にCPU101に入力される。
送信部104は、演算制御部103のデマルチプレクサ1034から、演算結果、パケット送信指示で指定された宛先ノードアドレス、制御レジスタ番号を受信した場合、これらに基づいて、パケットを生成し、生成したパケットを伝送路11へ送信する。
例えば、制御回路1032は、ステージ毎に演算の中間結果である途中平均値の送信先を変更する処理を行なってもよい。制御回路1032は、同期信号及び制御レジスタ番号を受信部105から受信した場合、受信した制御レジスタ番号に対応する制御レジスタに同期信号を送信してもよい。
制御回路1032は、同期が成立した場合、送信部104へ同期信号の送信指示を出す。この時、制御回路1032は、自プロセス又は自ノード10内の指定された制御レジスタに同期信号を送信することに加えて、演算器1031を制御する。即ち、制御回路1032は、演算器1031に入力されているデータと、記憶装置で待ち合わせているデータとの間で、平均演算を行なわせる。一方、同期が成立していない場合、制御回路1032は、データを記憶装置に保持させる。
自プロセス又は自ノード10の指定された制御レジスタに同期信号を送信した場合において、同期が成立した場合、制御回路1032は、更に、演算結果と記憶装置で待ち合わせているデータとの平均演算を繰り返すよう演算器1031を制御する。一方、同期が成立しない場合、制御回路1032は、演算結果を記憶装置に送信する。
制御回路1032は、平均演算開始の信号を受け取ると、指定された組つまり制御レジスタの送信先に、同期信号と入力されたデータとを送信する。この後、最後の組で同期が成立した場合、制御回路1032は、演算結果と平均演算完了の信号とを、CPU101に送信する。
(B)動作
図7は実施形態の一例としての並列計算機システム1における平均演算の処理例を示す図である。
この図7に示す例においては、平均演算の処理を第1ステージ,第2ステージおよび第3ステージに分けて示す。また、複数のノード#0~#3のうち、ノード識別番号が偶数であるノード#0およびノード#2が平均演算を行なう。
第1ステージにおいて、ノード#0およびノード#1は、パケットにID=Aを載せてノード#0のインタコネクトに送り付ける。ノード#0においては、演算器1031がID=Aが付与されたノード#0のデータとノード#1のデータとを用いて平均演算を行なう。
また、ノード#2およびノード#3は、パケットにID=Bを載せてノード#2のインタコネクトに送り付ける。ノード#2においては、演算器1031がID=Bが付与されたノード#2のデータとノード#3のデータとを用いて平均演算を行なう。
第2ステージにおいて、ノード#0およびノード#2は、それぞれパケットにID=Cを載せてノード#0のインタコネクトに送り付ける。ノード#0においては、演算器1031がID=Cを付与されたノード#2からのデータとノード#0のデータとを用いて平均演算を行なう。
また、ノード#0およびノード#2は、それぞれパケットにID=Dを載せてノード#2のインタコネクトに送り付ける。ノード#2においては、演算器1031がID=Dを付与されたノード#0からのデータとノード#2のデータとを用いて平均演算を行なう。
第3ステージにおいて、ノード#0は、ノード#0およびノード#1にパケットを送り演算結果を返却する。また、ノード#2は、ノード#2およびノード#3にパケットを送り演算結果を返却する。
図8は実施形態の一例としての並列計算機システム1における処理ツリーを例示する図である。この図8に例示する並列計算機システム1は、16個のノード#0~ノード#fを備える。そして、隣接するノード10間でデータの平均値(途中平均値)をそれぞれ算出して伝達することで全体の平均値を算出(集団平均演算)し、算出した平均値を全ノード10に伝達している。なお、図8中において白丸はそれぞれノード10を示す。
次に、上述の如く構成された実施形態の一例としての並列計算機システムの演算制御部103による平均演算処理を、図9に示す処理フロー(ステップS1~S13)に従って説明する。
なお、図9においては、バタフライによるバリア同期を行ないつつ平均演算を行なう例を示している。
CPU101は、平均演算を開始する前に、平均演算を行なうノード数から使用する制御レジスタ822の数を決定し、各制御レジスタ822の宛先レジスタにバタフライでの次ステージに対応した宛先ノードアドレスと制御レジスタ番号とを、タイプレジスタに演算種類を設定する(ステップS1)。
レジスタの設定は、以下のように行なわれる。ノード数が2のべき乗である場合、バタフライにおいては、同期成立の後、自プロセス又は自ノードの次ステージと他ノードでの次ステージの2箇所に対して、同期信号を送信する。従って、宛先レジスタに指定する宛先は、自プロセス又は自ノードの制御レジスタ番号と、他ノードの宛先ノードアドレス及び制御レジスタ番号とを含む。最初のステージにおいては、信号の待ち合わせを行なわないので、シグナルレジスタは使わず、最後のステージにおいては、宛先レジスタは使わない。そのため、最初と最後のステージにおいては同一の制御レジスタ822を指定する。
ノード数が2のべき乗でない場合、追加ノードの中継ステージにあたる制御レジスタ822を、他のノードつまり追加ノードに設ける。追加ノードにおいて、最初のステージの制御レジスタ822と、最後のステージの制御レジスタ822とが、通信しないように設定する。更に、追加ノードの制御レジスタ822のタイプレジスタを通過(バイパス)に設定し、追加ノードに演算を行なわせないように設定する。
CPU101は、平均演算を開始するため、入力データを入力データレジスタへ送信し、平均演算開始信号を同期部82に送信する(ステップS2)。平均演算開始信号は、入力レジスタ番号と、最初のステージに対応した制御レジスタ番号とを含む。
同期部82の制御部821は、平均演算開始の信号が送られると、平均演算開始信号で指定された制御レジスタ822の宛先レジスタの値(Destination)を読む(ステップS3)。
宛先レジスタにおいて他ノード10が指定されている場合、制御部821は、送信部104に対してパケット送信指示の信号を出し、送信部104に対しデータを送る。送信部104に送られるデータは、制御レジスタ822が最初のステージである場合には入力データレジスタの値であり、後続のステージである場合には演算器1031からの演算結果である。入力データレジスタの値を送信部104に送信する場合、演算指示としてバイパスを指定する。送信部104は、データと、パケット送信指示で指定された宛先ノードアドレス及び制御レジスタ番号とに基づいて、パケットを生成し、これを伝送路11へ送信する。
また、自プロセス又は自ノードの制御レジスタ822を指定されている場合、制御部821は、自プロセス又は自ノードの同期部82に同期信号を送るため、宛先レジスタにおいて指定された制御レジスタ822のシグナルレジスタの値(Signal)を読む(ステップS4)。
制御部821は、シグナルレジスタに「1」が設定されているか否かを調べる(ステップS5)。シグナルレジスタに「1」が設定されている場合(ステップS5のYesルート参照)、同期成立となる。一方、シグナルレジスタに「1」が設定されていない場合(ステップS5のNoルート参照)、同期は成立していない。
同期が成立していない場合、制御部821は、シグナルレジスタに「1」を設定し、データを記憶装置の制御レジスタ822に対応するアドレスに格納する。データは、制御レジスタ822が最初のステージである場合には入力データレジスタの値であり、後続のステージである場合には前ステージの演算結果である。この後、制御部821は、他のプロセスからのパケットの受信を待ち合わせる(ステップS6)。
受信部105は、他のプロセスからパケットを受信した場合、受信したパケットに基づいて、データ、同期信号、宛先となる制御レジスタ番号を取り出し、マルチプレクサ1033および同期部82へ対応する情報を送信する(ステップS7)。
同期部82は、受信部105から同期信号、制御レジスタ番号を受信した場合、指定された制御レジスタ822のSignalの値を読取る(ステップS8)。この後、ステップS5以下を繰り返す。
一方、ステップS5において同期が成立している場合(ステップS5のYesルート参照)、演算器1031は平均演算を行なう(ステップS9)。演算対象となるデータは、制御レジスタ822が最初のステージの次ステージに対応している場合には入力データレジスタの値である。また、制御レジスタ822がそれ以降のステージに対応しており、同期成立の要因がパケットからの同期信号である場合には、当該データはパケットに含まれるデータである。受信した同期信号が自プロセス又は自ノード10の同期装置からの同期信号である場合、前ステージにおける演算結果と、同期が成立した制御レジスタ822に対応する記憶装置内のアドレスに格納するデータとの間で演算を行なう。受信した情報が演算結果の場合はタイプレジスタの値から演算の種類を指定する。
更に、制御部821は、制御レジスタ822が最後のステージに対応したものか否かを調べる(ステップS10)。
最後のステージに対応する制御レジスタ822で同期が成立した場合(ステップS10のYesルート参照)、制御部821は、演算結果を出力データレジスタに格納し、CPU101に平均演算完了の信号を送信する(ステップS11)。
CPU101は、制御部821からの平均演算完了の信号を受け取り、出力データレジスタから演算結果を読み取る(ステップS12)。
ステップS10において制御レジスタ822が最後のステージに対応したものでない場合(ステップS10のNoルート参照)、同期が成立した制御レジスタ822の宛先レジスタの値を読取る(ステップS13)。この後、ステップS4以下の処理を繰り返す。
(C)効果
このように、実施形態の一例としての並列計算機システム1によれば、集団平均演算を行なうに際して、各ノード10の演算器1031が各ステージにおいて、2^n要素の加算の実行後にnビットシフトを行なうことで平均値(途中平均値)を算出する。
例えば、n=1の場合に、2つのノード10の処理対象データを加算した後に、この加算値(二進数)に対して1ビットシフトを行なうことで、平均値(途中平均値)を算出する。
これにより、次ステージに転送するデータのビット数が削減され、ビット拡張を行なうことなく平均値を求めることができ、次ステージに正しい途中計算値を送信することができる。従って、ビット拡張を行なうことなく高精度な集団平均演算を実現することができる。
そして、加算によるオーバフローを気にすることなくインタコネクトに集団平均演算をオフロードすることが出来る。
(D)その他
上述した実施形態において、演算器1031としての機能は、例えば、NICに搭載されたプロセッサがプログラムを実行することで実現してもよい。例えば、NICに搭載されたプロセッサが図6に例示したハードウェア記述言語で記述されたプログラム等を実行することで演算器1031としての機能を実現してもよい。
なお、演算器1031としての機能を実現するためのプログラム(演算制御プログラム)は、例えばフレキシブルディスク,CD(CD-ROM,CD-R,CD-RW等),DVD(DVD-ROM,DVD-RAM,DVD-R,DVD+R,DVD-RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてもよい。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
演算器1031としての機能を実現する際には、内部記憶装置(例えば、NICに搭載されたメモリ)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではNICに搭載されたプロセッサ)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
プロセッサ(処理部)は、NICにおける機能を制御する。プロセッサは、マルチプロセッサであってもよい。プロセッサは、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサは、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
また、演算器1031としての機能を実現する回路装置をNICに備え、ハードウェアによって実現してもよい。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態においては、2^n個の演算対象データの平均演算を行なうためにnビットシフトを行なう例としてn=1の場合について示しているが、これに限定されるものではない。すなわち、nは1以外の値であってもよく、種々変形して実施することができる。
例えば、n=2の場合においては、演算器1031は、4つのノード10のデータの加算を行なった後に、2ビットシフトを行ない、下位2ビットを除いた上位ビットを取得することで平均演算を行なってもよい。
また、上述した実施形態においては、ノード10のNICに演算制御装置102が備えられた例を示しているが、これに限定されるものではなく、種々変形して実施することができる。
例えば、スイッチ等のノード10が接続されるネットワーク中継装置に演算制御装置102としての機能を備えてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の情報処理装置を備える並列計算機システムのうちの第1の情報処理装置であって、
前記複数の情報処理装置のうちの1つ以上の他の情報処理装置からの演算対象データの待ち合わせを行なう待ち合わせ処理部と、
待ち合わせた前記演算対象データを含む複数の演算対象データの平均演算を行なって平均値を算出する演算処理部と、
算出した前記平均値を、前記複数の情報処理装置のうちの前記他の情報処理装置と異なる第2の情報処理装置に送信する送信部と
を備える、情報処理装置。
(付記2)
前記待ち合わせ処理部により待ち合わせが行なわれる前記他の情報処理装置からの演算対象データが、前記他の情報処理装置において算出された前記平均値である、付記1記載の情報処理装置。
(付記3)
前記送信部によって送信された前記平均値が、前記第2の情報処理装置において、前記演算対象データとして用いられる、付記1または2記載の情報処理装置。
(付記4)
前記演算処理部が、
2^n個の前記演算対象データの加算を行ない、当該加算による加算値に対してnビットシフトを行なって下位のnビットを除いた上位ビットを抽出することで平均演算を行なう、付記1~3のいずれか1項に記載の情報処理装置。
(付記5)
複数の情報処理装置を備える並列計算機システムにおいて、
前記複数の情報処理装置のうちの第1の情報処理装置が、
前記複数の情報処理装置のうちの1つ以上の他の情報処理装置からの演算対象データの待ち合わせを行なう待ち合わせ処理部と、
待ち合わせた前記演算対象データを含む複数の演算対象データの平均演算を行なって平均値を算出する演算処理部と、
算出した前記平均値を、前記複数の情報処理装置のうちの前記他の情報処理装置と異なる第2の情報処理装置に送信する送信部と
を備える、並列計算機システム。
(付記6)
前記待ち合わせ処理部により待ち合わせが行なわれる前記他の情報処理装置からの演算対象データが、前記他の情報処理装置において算出された前記平均値である、付記5記載の並列計算機システム。
(付記7)
前記第2の情報処理装置が、前記送信部によって送信された前記平均値を前記演算対象データとして用いる、付記5または6記載の並列計算機システム。
(付記8)
前記演算処理部が、
2^n個の前記演算対象データの加算を行ない、当該加算による加算値に対してnビットシフトを行なって下位のnビットを除いた上位ビットを抽出することで平均演算を行なう、付記5~7のいずれか1項に記載の並列計算機システム。
(付記9)
複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法であって、
前記複数の情報処理装置のうちの第1の情報処理装置により、
前記複数の情報処理装置のうちの1つ以上の他の情報処理装置からの演算対象データの待ち合わせを行なう処理と、
待ち合わせた前記演算対象データを含む複数の演算対象データの平均演算を行なって平均値を算出する処理と、
算出した前記平均値を、前記複数の情報処理装置のうちの前記他の情報処理装置と異なる第2の情報処理装置に送信する処理と
を備える、制御方法。
(付記10)
前記待ち合わせが行なわれる前記他の情報処理装置からの演算対象データが、前記他の情報処理装置において算出された前記平均値である、付記9記載の制御方法。
(付記11)
前記送信された前記平均値が、前記第2の情報処理装置において、前記演算対象データとして用いられる、付記9または10記載の制御方法。
(付記12)
前記第1の情報処理装置により、
2^n個の前記演算対象データの加算を行ない、当該加算による加算値に対してnビットシフトを行なって下位のnビットを除いた上位ビットを抽出することで平均演算を行なう、付記9~11のいずれか1項に記載の制御方法。
1 並列計算機システム
10 ノード
11 伝送路
82 同期部
101 CPU
102 演算制御装置
103 演算制御部
104 送信部
105 受信部
106 ノード要求部
107 ノード通知部
821 制御部
822 制御レジスタ
1031 演算器
1032 制御回路
1033 マルチプレクサ
1034 デマルチプレクサ
1035 演算リソース

Claims (5)

  1. 複数の情報処理装置を備える並列計算機システムのうちの第1の情報処理装置であって、
    前記複数の情報処理装置のうちの1つ以上の他の情報処理装置からの演算対象データの待ち合わせを行なう待ち合わせ処理部と、
    複数の演算対象データの平均演算の処理を複数のステージに分割してリダクション演算を実行する処理において、待ち合わせた前記演算対象データを含む複数の演算対象データの第1のステージにおける平均値を算出することで前記第1の情報処理装置における前記演算対象データのビット拡張を抑制する演算処理部と、
    算出した前記平均値を、前記複数の情報処理装置のうちの前記他の情報処理装置と異なる、前記第1のステージに後続する第2のステージにおける平均値を算出する第2の情報処理装置に送信する送信部と
    を備える、情報処理装置。
  2. 前記待ち合わせ処理部により待ち合わせが行なわれる前記他の情報処理装置からの演算対象データが、前記他の情報処理装置において算出された前記第1のステージの前段の第3のステージにおける平均値である、請求項1記載の情報処理装置
  3. 前記演算処理部が、
    2^n個(nは1以上の自然数)の前記演算対象データの加算を行ない、当該加算による加算値に対してnビットシフトを行なって下位のnビットを除いた上位ビットを抽出することで平均演算を行なう、請求項1または2記載の情報処理装置。
  4. 複数の情報処理装置を備える並列計算機システムにおいて、
    前記複数の情報処理装置のうちの第1の情報処理装置が、
    前記複数の情報処理装置のうちの1つ以上の他の情報処理装置からの演算対象データの待ち合わせを行なう待ち合わせ処理部と、
    複数の演算対象データの平均演算の処理を複数のステージに分割してリダクション演算を実行する処理において、待ち合わせた前記演算対象データを含む複数の演算対象データの第1のステージにおける平均値を算出することで前記第1の情報処理装置における前記演算対象データのビット拡張を抑制する演算処理部と、
    算出した前記平均値を、前記複数の情報処理装置のうちの前記他の情報処理装置と異なる、前記第1のステージに後続する第2のステージにおける平均値を算出する第2の情報処理装置に送信する送信部と
    を備える、並列計算機システム。
  5. 複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法であって、
    前記複数の情報処理装置のうちの第1の情報処理装置により、
    前記複数の情報処理装置のうちの1つ以上の他の情報処理装置からの演算対象データの待ち合わせを行なう処理と、
    複数の演算対象データの平均演算の処理を複数のステージに分割してリダクション演算を実行する処理において、待ち合わせた前記演算対象データを含む複数の演算対象データの第1のステージにおける平均値を算出することで前記第1の情報処理装置における前記演算対象データのビット拡張を抑制する処理と、
    算出した前記平均値を、前記複数の情報処理装置のうちの前記他の情報処理装置と異なる、前記第1のステージに後続する第2のステージにおける平均値を算出する第2の情報処理装置に送信する処理と
    を備える、制御方法。
JP2018159280A 2018-08-28 2018-08-28 情報処理装置,並列計算機システムおよび制御方法 Active JP7159696B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018159280A JP7159696B2 (ja) 2018-08-28 2018-08-28 情報処理装置,並列計算機システムおよび制御方法
US16/538,882 US10848551B2 (en) 2018-08-28 2019-08-13 Information processing apparatus, parallel computer system, and method for control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018159280A JP7159696B2 (ja) 2018-08-28 2018-08-28 情報処理装置,並列計算機システムおよび制御方法

Publications (2)

Publication Number Publication Date
JP2020035058A JP2020035058A (ja) 2020-03-05
JP7159696B2 true JP7159696B2 (ja) 2022-10-25

Family

ID=69640448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018159280A Active JP7159696B2 (ja) 2018-08-28 2018-08-28 情報処理装置,並列計算機システムおよび制御方法

Country Status (2)

Country Link
US (1) US10848551B2 (ja)
JP (1) JP7159696B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122848A (ja) 2008-11-19 2010-06-03 Fujitsu Ltd バリア同期装置、バリア同期処理システム及び方法、リダクション演算装置、リダクション演算処理システム及び方法

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60230300A (ja) 1984-04-27 1985-11-15 日本電信電話株式会社 分割順次デイジタル平均化回路
JPH0272480A (ja) 1988-09-08 1990-03-12 Fuji Electric Co Ltd 平均値の演算方式
JPH04114232A (ja) * 1990-09-05 1992-04-15 Mitsubishi Electric Corp マイクロコンピュータ
US20020116595A1 (en) * 1996-01-11 2002-08-22 Morton Steven G. Digital signal processor integrated circuit
US7003660B2 (en) * 2000-06-13 2006-02-21 Pact Xpp Technologies Ag Pipeline configuration unit protocols and communication
JP2001034472A (ja) * 1999-07-16 2001-02-09 Mitsubishi Electric Corp データ処理装置および除算、剰余算アルゴリズム
US20030002474A1 (en) * 2001-03-21 2003-01-02 Thomas Alexander Multi-stream merge network for data width conversion and multiplexing
US7142616B2 (en) * 2001-04-09 2006-11-28 Matsushita Electric Industrial Co., Ltd. Front end processor for data receiver and nonlinear distortion equalization method
US9170812B2 (en) * 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US20130111188A9 (en) * 2003-07-24 2013-05-02 Martin Vorbach Low latency massive parallel data processing device
US8392900B1 (en) * 2005-03-17 2013-03-05 Hewlett-Packard Development Company, L.P. Methods and systems for barrier reduction in parallel processing systems
US7584342B1 (en) * 2005-12-15 2009-09-01 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays and SIMD instruction issue
US7788468B1 (en) * 2005-12-15 2010-08-31 Nvidia Corporation Synchronization of threads in a cooperative thread array
US7861060B1 (en) * 2005-12-15 2010-12-28 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior
JP4413198B2 (ja) 2006-03-23 2010-02-10 富士通株式会社 浮動小数点データの総和演算処理方法及びコンピュータシステム
US7640284B1 (en) * 2006-06-15 2009-12-29 Nvidia Corporation Bit reversal methods for a parallel processor
US7836116B1 (en) * 2006-06-15 2010-11-16 Nvidia Corporation Fast fourier transforms and related transforms using cooperative thread arrays
KR100835173B1 (ko) * 2006-09-20 2008-06-05 한국전자통신연구원 곱셈 누적 연산을 위한 디지털 신호처리 장치 및 방법
JP2008102715A (ja) * 2006-10-18 2008-05-01 Toshiba Corp 演算装置
US20080147881A1 (en) * 2006-12-19 2008-06-19 Krishnamurthy Rajaram B System and method for placing computation inside a network
US8082424B2 (en) * 2007-08-01 2011-12-20 International Business Machines Corporation Determining when a set of compute nodes participating in a barrier operation on a parallel computer are ready to exit the barrier operation
IT1393809B1 (it) * 2008-10-22 2012-05-11 St Wireless Sa Unità aritmetico-logica per processore di segnali digitali
FR2939922B1 (fr) * 2008-12-16 2011-03-04 Bull Sas Gestionnaire physique de barriere de synchronisation entre processus multiples
CN101950282B (zh) * 2010-08-30 2012-05-23 中国科学院计算技术研究所 一种多处理器***及其同步引擎
JP5664039B2 (ja) 2010-09-08 2015-02-04 富士通株式会社 リダクション演算装置、処理装置及びコンピュータシステム
JP5549574B2 (ja) 2010-12-17 2014-07-16 富士通株式会社 並列計算機システム、同期装置、並列計算機システムの制御方法
JP5644566B2 (ja) * 2011-02-09 2014-12-24 富士通株式会社 計算システム、構成管理装置および構成管理プログラム
JP5568048B2 (ja) * 2011-04-04 2014-08-06 株式会社日立製作所 並列計算機システム、およびプログラム
JP5951351B2 (ja) * 2011-05-20 2016-07-13 株式会社半導体エネルギー研究所 加算器及び全加算器
WO2013042249A1 (ja) * 2011-09-22 2013-03-28 富士通株式会社 高速フーリエ変換回路
US8966457B2 (en) * 2011-11-15 2015-02-24 Global Supercomputing Corporation Method and system for converting a single-threaded software program into an application-specific supercomputer
US20150067695A1 (en) * 2012-03-28 2015-03-05 Hitachi, Ltd. Information processing system and graph processing method
US9160607B1 (en) * 2012-11-09 2015-10-13 Cray Inc. Method and apparatus for deadlock avoidance
JP6020091B2 (ja) * 2012-11-27 2016-11-02 富士通株式会社 演算処理装置の制御プログラム、演算処理装置の制御方法および演算処理装置
JP5994601B2 (ja) * 2012-11-27 2016-09-21 富士通株式会社 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法
US9361202B2 (en) * 2013-07-18 2016-06-07 International Business Machines Corporation Filtering system noises in parallel computer systems during thread synchronization
US9218223B2 (en) * 2013-08-13 2015-12-22 Qualcomm Incorporated Barrier synchronization with dynamic width calculation
US9471377B2 (en) * 2013-11-13 2016-10-18 Reservoir Labs, Inc. Systems and methods for parallelizing and optimizing sparse tensor computations
JP6152786B2 (ja) * 2013-11-29 2017-06-28 富士通株式会社 通信制御装置、情報処理装置、並列計算機システム、制御プログラム、及び並列計算機システムの制御方法
JP6378515B2 (ja) * 2014-03-26 2018-08-22 株式会社メガチップス Vliwプロセッサ
US9753694B2 (en) * 2015-04-21 2017-09-05 Qualcomm Incorporated Division and root computation with fast result formatting
US20170083343A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Out of order commit
JP2017102790A (ja) * 2015-12-03 2017-06-08 富士通株式会社 情報処理装置、演算処理装置および情報処理装置の制御方法
WO2017166269A1 (en) * 2016-04-01 2017-10-05 Intel Corporation System and method to accelerate reduce operations in graphics processor
GB2548908B (en) * 2016-04-01 2019-01-30 Advanced Risc Mach Ltd Complex multiply instruction
US11086814B2 (en) * 2016-04-15 2021-08-10 Nec Corporation System and method for communication efficient sparse-reduce
EP3264260B1 (en) * 2016-06-30 2019-10-16 Nxp B.V. Lossy arithmetic
JP2018160180A (ja) * 2017-03-23 2018-10-11 富士通株式会社 情報処理システム、情報処理装置および情報処理システムの制御方法
US11353868B2 (en) * 2017-04-24 2022-06-07 Intel Corporation Barriers and synchronization for machine learning at autonomous machines
US10515046B2 (en) * 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10360263B2 (en) * 2017-07-25 2019-07-23 Sap Se Parallel edge scan for single-source earliest-arrival in temporal graphs
US10621022B2 (en) * 2017-10-03 2020-04-14 Nvidia Corp. System and methods for hardware-software cooperative pipeline error detection
GB2569271B (en) * 2017-10-20 2020-05-13 Graphcore Ltd Synchronization with a host processor
GB2569270B (en) * 2017-10-20 2020-02-19 Graphcore Ltd Parallel computing
US20190265976A1 (en) * 2018-02-23 2019-08-29 Yuly Goryavskiy Additional Channel for Exchanging Useful Information
US20190324757A1 (en) * 2018-04-19 2019-10-24 Intel Corporation Maintaining high temporal cache locality between independent threads having the same access pattern
US10684824B2 (en) * 2018-06-06 2020-06-16 Nvidia Corporation Stochastic rounding of numerical values
US10482209B1 (en) * 2018-08-06 2019-11-19 HLS Logix LLC Field programmable operation block array

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122848A (ja) 2008-11-19 2010-06-03 Fujitsu Ltd バリア同期装置、バリア同期処理システム及び方法、リダクション演算装置、リダクション演算処理システム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
深井 裕二,外3名,「GPUプログラミングの深度カメラ画像処理への適用」,情報処理学会デジタルプラクティス,一般社団法人情報処理学会,2013年07月15日,第4巻,第3号,pp.303-311

Also Published As

Publication number Publication date
US10848551B2 (en) 2020-11-24
US20200076880A1 (en) 2020-03-05
JP2020035058A (ja) 2020-03-05

Similar Documents

Publication Publication Date Title
JP5304194B2 (ja) バリア同期装置、バリア同期システム及びバリア同期装置の制御方法
WO2020119648A1 (zh) 一种基于代价优化的计算任务卸载算法
US10425358B2 (en) Network switch architecture supporting multiple simultaneous collective operations
JP5549575B2 (ja) 並列計算機システム、同期装置、並列計算機システムの制御方法
US8755287B2 (en) Network managing device and network managing method
US9553591B2 (en) Hybrid architecture for signal processing
KR101846485B1 (ko) 분배 공유 메모리 멀티프로세서에서의 분할 트래픽 라우팅
JP7159696B2 (ja) 情報処理装置,並列計算機システムおよび制御方法
US20130094507A1 (en) Parallel processing of network packets
CN107959642B (zh) 用于测量网络路径的方法、装置和***
JP6464739B2 (ja) 情報処理システムの制御プログラム,情報処理装置,及び情報処理システム
JP5644566B2 (ja) 計算システム、構成管理装置および構成管理プログラム
US20160259813A1 (en) System and method for optimizing selection of a replication data node in a distributed file system
JP5447046B2 (ja) 光ネットワーク設計装置、光ネットワーク設計方法、および光ネットワーク設計プログラム
JPWO2010109761A1 (ja) 並列処理システム、並列処理方法、ネットワークスイッチ装置、及び並列処理プログラム
KR20190120057A (ko) 로드 균형을 위한 확률 기반 적응형 라우팅 알고리즘
JP7238376B2 (ja) 情報処理システム及び情報処理システムの制御方法
CN113485798A (zh) 核函数生成方法、装置、设备以及存储介质
JP6302682B2 (ja) 複数データ形式を支援する加算器、及びその加算器を利用した複数データ形式の加減演算支援方法
JP6979076B2 (ja) 回路、システム、および組合せ結果を演算するように再設定可能な複数の再設定可能ユニットを備えたプロセッサにより実装される方法
JP2008242757A (ja) ネットワーク性能評価プログラム、ネットワーク性能評価装置およびネットワーク性能評価方法
JP6684732B2 (ja) 分散アプリケーションのベンチマークテストシステムおよびその方法
JP6540141B2 (ja) 割り当て装置、割り当て方法、割り当てプログラム、及び、通信ネットワーク装置
WO2017199301A1 (ja) 転送装置、調整装置およびパラメータ調整方法
JP6354194B2 (ja) マルチプレクサ回路、マルチプレクサ回路の設計プログラムおよびマルチプレクサ回路の設計装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220427

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220926

R150 Certificate of patent or registration of utility model

Ref document number: 7159696

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150