WO2011059090A1 - ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。 - Google Patents

ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。 Download PDF

Info

Publication number
WO2011059090A1
WO2011059090A1 PCT/JP2010/070314 JP2010070314W WO2011059090A1 WO 2011059090 A1 WO2011059090 A1 WO 2011059090A1 JP 2010070314 W JP2010070314 W JP 2010070314W WO 2011059090 A1 WO2011059090 A1 WO 2011059090A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
group
nodes
processing
partial group
Prior art date
Application number
PCT/JP2010/070314
Other languages
English (en)
French (fr)
Inventor
淳 土井
康 根岸
Original Assignee
インターナショナル・ビジネス・マシーンズ・コーポレーション
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 インターナショナル・ビジネス・マシーンズ・コーポレーション filed Critical インターナショナル・ビジネス・マシーンズ・コーポレーション
Priority to JP2011540576A priority Critical patent/JP5153945B2/ja
Priority to DE112010003810.4T priority patent/DE112010003810B4/de
Priority to GB1206822.7A priority patent/GB2487684B/en
Priority to US13/510,196 priority patent/US9251118B2/en
Priority to CN201080050810.8A priority patent/CN102597959B/zh
Publication of WO2011059090A1 publication Critical patent/WO2011059090A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention optimizes a plurality of calculation processes including all-to-all communication (A2A: all-to-all communication) between a plurality of nodes (processors) constituting an n-dimensional (torus or mesh) network.
  • A2A all-to-all communication
  • all-to-all communication in which all nodes transmit different data to all other nodes is known.
  • All-to-all communication is frequently used in many calculations such as matrix transposition (matrix) transpose (abbreviated as “T”) and fast Fourier transform (Fast Fourier Transform, abbreviated as “FFT”). It is known to be a form of communication.
  • Patent Document 1 shows that transposition of an array in FFT calculation and processing as a two-dimensional (2D) FFT in a one-dimensional (1D) FFT is a general technical level.
  • the first dimension is processed across multiple processors, and the second dimension is processed across multiple processors.
  • Patent Document 2 describes a device for improving efficiency by overlapping phases in processing inside all-to-all communication in an n-dimensional torus.
  • the present invention converts all-to-all communications into a plurality of partial all-to-all communications and pipelines them in all-to-all communications units. Is different. Further, the subject of the schedule is different, and the superposition of processing other than all-to-all communication and processing within all-to-all communication as in the present invention is not included in Patent Document 2.
  • the calculation processing phase (A2A-P required for all-to-all communication only between a plurality of nodes included in Nt is divided into a plurality of Nt threads (thread 1, thread 2, thread 3, thread 4,... Thread). Nt), each phase is overlapped and processed in parallel.
  • Optimal scheduling of a plurality of computation processes including all-to-all communication (A2A) between a plurality of nodes (processors) constituting an n-dimensional (torus or mesh) network. Can improve calculation performance.
  • A2A all-to-all communication
  • FIG. 1 is a schematic diagram for explaining that a one-dimensional (1D) FFT (length N) is calculated in a parallel computer.
  • np is the number of processors (nodes) (number of processor).
  • FIG. 1 shows a parallelized one-dimensional (1D) FFT algorithm. It is known that in the calculation process in the parallel one-dimensional (1D) FFT, three transpositions (transpose “T”) are required in the process of obtaining the output from the input. This is shown as a general technical level in Patent Document 1, for example.
  • transposition in which rows and columns are interchanged. It is shown that a pattern portion corresponding to ij is replaced with a pattern portion corresponding to ji, where i is a row number and j is a column number.
  • A2A all-to-all communication
  • the second stage is also inside the block. It is necessary to transpose (internal transpose “IT”).
  • FIG. 2 is a schematic diagram showing the configuration of a node (processor).
  • one node is expressed as a cubic image.
  • six bidirectional communication paths (which may be twelve unidirectional communication paths) communicating with other spatially adjacent nodes (processors) from the six faces of the cube. It is easy to image and it is easy to image the configuration of the three-dimensional network.
  • FIG. 2 shows the internal configuration of the node (processor).
  • the parallel computer there are a plurality of threads, and there is a so-called multithread.
  • multithread As similar ones, there are things called by various expressions such as a multi-core, a multi-processor, etc., and they are not necessarily uniquely distinguished and used.
  • the present invention can be applied in parallel (pipelining) within the node (processor) and the contents to be processed can be overlapped, the present invention can be applied. As an object, there is no significance to distinguish these.
  • thread 1 thread 2
  • thread 3 thread 4
  • thread 4 thread 4
  • a thread is typically hardware, but can be implemented as software devised to share hardware, or as a combination of hardware and software.
  • node processing circuit
  • information on which communication processing is currently in the state of exclusive use of the thread and information on which communication processing is executed by the thread next. (For example, something like a table) is stored.
  • the memory is typically embodied as hardware, but a virtual area can also be formed in combination with software.
  • controller in the node (processor), which controls access permission for messages sent and received through the communication path.
  • the controller can be embodied as hardware, software, or a combination of hardware and software.
  • the scheduling method of the present invention can operate autonomously for each single node (processor), or operates in cooperation with a plurality of adjacent nodes (processors) constituting a partial group. It is also possible.
  • the scheduling method can also be provided as a program (or program product) having a plurality of codes that allow each node (processor) to operate. Moreover, it can also provide as a parallel computer system which enables the scheduling of this invention as a group of a some node (processor).
  • Fig. 3 shows a 4D torus network as a schematic diagram for explaining the network dimensions and the longest axis. As already explained, if it is a three-dimensional network, it will be easy to imagine intuitively as six bidirectional communication paths communicating through the six faces of the cubic of FIG.
  • the number of axes per partial group is determined by counting the number of nodes (processors) such as L, M, and N along the familiar coordinate system of x-axis, y-axis, and z-axis. , 2 on the x-axis, 2 on the y-axis, and 2 on the z-axis.
  • the lengths of all the axes are equally expressed as 2 ⁇ 2 ⁇ 2, and these three axes are axes having the same length.
  • a 4D network will be explained.
  • two additional bidirectional communication paths are added from one node (processor) as two-way communication paths connecting three partial groups arranged side by side (in a form that can be seen in a three-dimensional space).
  • eight bidirectional communication paths can be imagined.
  • the number of nodes (processors) is counted with the axis along the newly added bidirectional communication path as the t-axis, it is 3 and expressed as 2 ⁇ 2 ⁇ 2 ⁇ 3. Therefore, the longest axis in this example is That is 3 as the axis corresponding to the fourth dimension.
  • the “longest axis” has an important meaning. Further, for n-dimensional networks, those skilled in the art will be able to easily extend and apply the present invention.
  • FIG. 4 is a diagram illustrating how the performance of the parallel one-dimensional (1D) FFT differs depending on the configuration of the number of axes of nodes (processors) constituting the torus.
  • the “shape by dimension” is the “shape by three dimensions” in this figure, and may be a cube or non-cubic.
  • GFLOPS is a unit of gigaflops. Originally, the number of nodes (processors) that can be used as 512 ⁇ 1024 has doubled, so the performance is expected to double, but the peak performance is still maintained. I'm stuck.
  • the proportion of all-to-all communication in the entire communication has increased from 54% to 70%, and the length of the longest axis is 16, which is twice as long as 8.
  • the bandwidth of to-all communication is less than half.
  • FIG. 5 is a diagram illustrating a method of scheduling a plurality of calculation processes including all-to-all communication (A2A) between a plurality of nodes (processors) by applying the present invention.
  • A2A all-to-all communication
  • FIG. 1B processing is divided into phase 1 and phase 2 as shown.
  • FIG. 2B assuming that there are four threads, pipeline processing using a plurality of threads is scheduled.
  • the longest axis is 8
  • the 8 A plurality of nodes (processors) are selected as the first partial group including the longest axis.
  • A2A-L L is an acronym for Longest
  • L is a communication phase for processing all-to-all communication between only the plurality of eight nodes (processors) included in the first partial group I will call it.
  • a communication phase for processing all-to-all communication between only a plurality of nodes (processors) will be referred to as A2A-P (P is an acronym for Plane).
  • the longest axis is not one, it becomes the first partial group having a shape based on the number of longest axes as the number of dimensions, but this is not shown here.
  • the shape of the second partial group is not a plane or a multidimensional solid, but may be an axis or an empty set (0 dimension), but is not shown here.
  • nodes that are commonly included in both the nodes (processors) included in the first partial group and the nodes (processors) included in the second partial group. In this case, there is only one node (processor), but through this, the result of the calculation process of the first partial group and the result of the calculation process of the second partial group are linked.
  • phase 1 and phase 2 the scheduling of pipeline processing in phase 1 and phase 2 will be divided into thread 1, thread 2, thread 3, and thread 4, so that a plurality of computation processes can be processed in parallel (pipelining). You can see that they are (overlapping).
  • A2A-L and A2A-P overlap, and this makes it possible to effectively use the time required for A2A-L.
  • FFT calculation processing and T (transposition, in this case, internal transpose) calculation processing can be inserted and used effectively.
  • FIG. 6 is a diagram showing how the performance of the parallel one-dimensional (1D) FFT differs depending on the configuration of the number of axes of nodes (processors) constituting the torus as an effect when the present invention is applied. is there. A part of the table is the same as that in FIG.
  • the processing speed is higher when the present invention is used than when the present invention is not used.
  • the node (processor) axis is configured as a non-cubic torus, the advantage is particularly noticeable.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)

Abstract

n次元の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-all communication)を含む複数の計算処理を、最適にスケジューリングすること。 ネットワークを構成している複数のノード(プロセッサ)を、第1の部分グループに含まれる複数のノード間のみについての全対全通信に要する通信(計算処理)フェーズ(A2A-L)と、第2の部分グループに含まれる複数のノード間のみについての全対全通信に要する通信(計算処理)フェーズ(A2A-Pとに分け、複数のスレッド(スレッド1、スレッド2、スレッド3、スレッド4)にわたって、それぞれのフェーズをオーバーラップさせて並列処理する。FFT(Fast Fourier Transform)(高速フーリエ変換)やT(transpose)((内部:internal)転置)という複数の計算処理についてもあわせて、並列処理することができる。

Description

ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。
 本発明は、n次元の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-all communication)を含む複数の計算処理を、最適にスケジューリングすることに関する。
 トーラスまたはメッシュなどのネットワークで接続された並列計算機においては、複数のノード(プロセッサ)間の通信の性能が計算処理の速度に大きく影響する。代表的な通信のパターンとして、全てのノードが他の全てのノードにノードごとに異なるデータを送信する全対全通信(all-to-all communication、略して「A2A」)が知られており、最も多くの通信転送量を必要とする。全対全通信は、行列または配列(マトリックス)の転置(transpose、略して「T」)や高速フーリエ変換(Fast Fourier Transform、略して「FFT」)などの多くの計算において、頻繁に利用される通信の形態であることが知られている。
 特許文献1は、FFTの計算において、配列を転置することや、1次元(1D)FFTの計算において2次元(2D)FFTとして処理することが、一般的技術水準であることを示している。第1次元を複数のプロセッサにまたがって処理し、第2次元を複数のプロセッサにまたがって処理する。
 特許文献2は、n次元トーラスにおける全対全通信内部の処理において、フェーズを重ね合わせて効率化を図る工夫について記載している。ここで、特許文献2と本発明との対比説明をしておく。本発明は、全対全通信を複数の部分的な全対全通信に変換し全対全通信単位でパイプライン化するもので、全対全通信内部の実装方式を含まず、発明の適用対象が異なる。また、スケジュールの対象が異なり、本発明のような全対全通信以外の処理と全対全通信内の処理の重ね合わせは、特許文献2には含まれない。
特許第3675537号 特許第2601591号
 n次元の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-all communication)を含む複数の計算処理を、さらに効率化することが望まれる。
 ネットワークを構成している複数のノード(プロセッサ)を、第1の部分グループに含まれる複数のノード間のみについての全対全通信に要する計算処理フェーズ(A2A-L)と、第2の部分グループに含まれる複数のノード間のみについての全対全通信に要する計算処理フェーズ(A2A-Pとに分け、Nt個の複数のスレッド(スレッド1、スレッド2、スレッド3、スレッド4、...スレッドNt)にわたって、それぞれのフェーズをオーバーラップさせて並列処理する。
 n次元の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-all communication)を含む複数の計算処理を、最適にスケジューリングすることができ、計算性能を向上させることができる。
1次元(1D)FFT(長さN)を並列計算機において計算処理することを説明する模式図である。 ノード(プロセッサ)の構成を示す模式図である。 ネットワークの次元と最長の軸を説明するための模式図として4次元トーラスネットワークを図示したものである。 トーラスを構成するノード(プロセッサ)の軸の数の構成によって、並列化1次元(1D)FFTの性能がどのように違うかを示す図である。 本発明を適用して、複数のノード(プロセッサ)間において 全対全通信(A2A:all-to-all communication)を含む複数の計算処理をスケジューリングする方法を示す図である。 本発明を適用した場合の効果として、トーラスを構成するノード(プロセッサ)の軸の数の構成によって、並列化1次元(1D)FFTの性能がどのように違うかを示す図である。
 図1は、1次元(1D)FFT(長さN)を並列計算機において計算処理することを説明する模式図である。
 図1の(A)は、1次元(1D)FFT(長さN)を並列計算機で計算処理するために、2次元(2D)FFT(N1,N2)(N=N1×N2)という形に変形して、N1とN2の長さの2つのFFTに分けて並列処理することを示す。言い換えると、N1とN2との2次元(2D)として、並列処理の方向を変えて処理することを示す。ここで、npは、プロセッサ(ノード)の数(number of processor)である。
 図1の(B)は、並列化1次元(1D)FFTアルゴリズムを示す。並列化された1次元(1D)FFTにおける計算処理においては、入力から出力を得る過程において3回の転置(transpose「T」)が必要となることが知られている。このことは、例えば特許文献1においても、一般的技術水準として示されている。
 図1の(C)は、転置(transpose「T」)が、行と列とが入れ替るような処理であることを示す。iを行番号としjを列番号とした場合に、ijに相当する模様の箇所が、jiに相当する模様の箇所へと置き換わることが図示されている。第1段階としては、全体全通信(A2A:all-to-all communication)を用いて模様の箇所を単位としてブロック化されて処理されているため、第2段階として、そのブロックの内部においても内部転置(internal transpose 「IT」)をする必要がある。
 図2は、ノード(プロセッサ)の構成を示す模式図である。図2の(A)では、1つのノードを、立方体(cubic)のイメージとして表現している。このような表現に従うと、空間的に隣接する他のノード(プロセッサ)との間において、立方体の6つの面から通信する6本の双方向通信路(12本の片方向通信路でもよい)をイメージし易く、3次元ネットワークの構成がイメージし易い。
 図2の(B)では、ノード(プロセッサ)の内部構成を示す。並列計算機の特徴として、スレッドが複数存在しており、マルチスレッドと呼ばれるものがある。類似するものとして、マルチコア、マルチプロセッサ、など、様々な表現で呼ばれるものがあって、それらが必ずしも一義的に区別されて用いられてはいない。もっとも、本発明の適用は、ノード(プロセッサ)内において、並列に処理(パイプライン化)でき、処理すべき内容をオーバーラップさせることができるということにあるため、本発明を適用することができる対象としては、これらをあえて区別する意義はない。
 1つのノード(プロセッサ)内におけるスレッドの数については、様々な製品が存在していることが知られている。ここでは、4つのスレッドとして、スレッド1、スレッド2、スレッド3、スレッド4が示される。スレッドは、典型的にはハードウエアであるが、ハードウエアを共有するように工夫されたソフトウエアとして、または、ハードウエアとソフトウエアとの組合せとして具現化することができる。
 さらに、ノード(プロセッサ)内にはメモリがあって、現時点において、どの通信処理がスレッドを専有している状態にあるのかについての情報、次にはどの通信処理をスレッドに実行させるかについての情報(例えば、テーブルのようなもの)等を記憶している。メモリは、典型的にはハードウエアとして具現化されるが、ソフトウエアとの組合せにおいて仮想的な領域を形成することもできる。
 また、ノード(プロセッサ)内にはコントローラがあって、通信路を通じて送受信されるメッセージのアクセス許可の制御を行なっている。コントローラは、ハードウエアとして、ソフトウエアとして、または、ハードウエアとソフトウエアとの組合せとして、具現化することができる。
 本発明のスケジューリング方法は、単数のノード(プロセッサ)毎に自律的に動作することも可能であるし、部分グループを構成する隣接する複数のノード(プロセッサ)との間で協働して動作することも可能である。スケジューリング方法は、各ノード(プロセッサ)が動作できるような複数のコードを有するプログラム(またはプログラム製品)として提供することもできる。また、複数のノード(プロセッサ)のグループとして、本発明のスケジューリングを可能とする、並列計算機システムとして提供することもできる。
 図3は、ネットワークの次元と最長の軸を説明するための模式図として4次元トーラスネットワークを図示したものである。既に説明したように、3次元ネットワークであれば、図2の立方体(cubic)の6面を通じて通信する6本の双方向通信路として、直感的にもイメージし易いであろう。
 ここでは、隣接する8つの立方体が1つの部分グループ(サブグループ)を形成していて、その部分グループが横に3つ並んでいる。1つの部分グループあたりの軸の数は、x軸、y軸、z軸という馴染みのある座標系に沿って、L個、M個、N個、というようにノード(プロセッサ)の数を数えて、x軸に2、y軸に2、z軸に2、と数える。ここでは、全ての軸の長さが等しく2×2×2と表現され、これら3軸は同じ長さの軸である。
 さらに、4次元ネットワークを説明する。ここでは、横に3つ並んだ部分グループ間を結ぶ双方向通信路として、1つのノード(プロセッサ)からさらに2本の双方向通信路が追加されて(3次元空間でも見える態様で)示されており、1つのノード(プロセッサ)については、8本の双方向通信路をイメージすることができる。新たに追加された双方向通信路に沿う軸をt軸としてノード(プロセッサ)の数を数えると3になり2×2×2×3と表現されるため、この例における最長の軸は、この4次元目にあたる軸である3ということになる。本発明において、「最長の軸」は重要な意義を有する。さらに、n次元ネットワークについては、当業者であれば、本発明を容易に拡張して適用することが可能であろう。
 図4は、トーラスを構成するノード(プロセッサ)の軸の数の構成によって、並列化1次元(1D)FFTの性能がどのように違うかを示す図である。
 まず、点線内において、3次元ネットワークの立方体(cubic)イメージとして、2×2×2(=8)の立方体(cubic)トーラスと、2×2×4(=16)の非立方体(non-cubic)トーラスとを図示している。ノード(プロセッサ)の数の制限があると、例えば、3×3×3(=27)の立方体(cubic)に構成できるとは限らないので、非立方体(non-cubic)の構成を利用する状況は多い。
 2×1×1の構成における、メッシュとトーラスとの区別は、点線内に図示したように立体の各軸の両端のノード(プロセッサ)を結ぶ双方向通信路が存在しているかどうかの差である。グループを形成している状態では表現上煩雑になるため、これら双方向通信路は図示しないこととする。
 性能比較のために、並列化1次元(1D)FFTの性能を、8×8×8(=512)のトーラスと、8×8×16(=1024)の非立方体(non-cubic)トーラスとで比較している。「次元による形状」というのが、この図では「3次元に依る形状」なのであって、立方体(cubic)であったり、非立方体(non-cubic)であったりする。
 Blue Gene /P(Blue Gene および Blue Gene /Pは、IBM Corporation の商標)においてその性能を測定した。GFLOPSは、ギガフロップスの単位である。本来であれば512→1024と利用できるノード(プロセッサ)の数が2倍になっているのであるから、性能も2倍になることが期待されるが、ピーク性能は維持されたままになってしまっている。
 また、全体の通信におけるall-to-all 通信が占める割合は54%から70%へと増大してしまっており、最長の軸の長さが16と、8の2倍になるため、 all-to-all 通信のバンド幅は半分以下になってしまっている。
 図5は、本発明を適用して、複数のノード(プロセッサ)間において 全対全通信(A2A:all-to-all communication)を含む複数の計算処理をスケジューリングする方法を示す図である。図1の(B)の並列化1D(1次元)FFTアルゴリズムに従って、図示のように、フェーズ1と、フェーズ2とに分けて処理を行なう。その際、図2の(B)のノード(プロセッサ)の内部構成に従って、4つのスレッドがあることを想定して、複数のスレッドを用いたパイプライン処理をスケジューリングする。
 3次元ネットワークを複数のノード(プロセッサ)4×4×8(=128)で構成している非立方体(non-cubic)トーラスについて、最長の軸は8であるが、軸状内にある8つの複数のノード(プロセッサ)が最長の軸を含む第1の部分グループとして選択される。この第1の部分グループに含まれる8つの複数のノード(プロセッサ)間のみについての全対全通信を処理するための通信フェーズを、A2A-L(Lは、Longest の頭文字をとったもの)と呼ぶことにする。
 3次元ネットワークを複数のノード(プロセッサ)4×4×8(=128)で構成している非立方体(non-cubic)トーラスについて、最長の軸以外の全ての軸(4×4)を含む第2の部分グループ内のノード(プロセッサ)は平面(すなわち、軸の数である2として2次元であることに依る形状)になるが、この第2の部分グループに含まれる16(4×4)の複数のノード(プロセッサ)間のみについての全対全通信を処理するための通信フェーズを、A2A-P(Pは、Plane の頭文字をとったもの)と呼ぶことにする。
 最長となる軸が1つでない場合は最長となる軸の数を次元数とすることに依る形状の第1の部分グループになるが、ここでは図示しない。同様に、複数の最長となる軸がある場合、第2の部分グループの形状は平面や多次元の立体ではなく、軸あるいは空集合(0次元)となることもあるが、ここでは図示しない。
 ここで、第1の部分グループに含まれるノード(プロセッサ)と、第2の部分グループに含まれるノード(プロセッサ)との両方に共通して含まれるノード(プロセッサ)があることに注意されたい。この場合には1つのノード(プロセッサ)のみであるが、ここを通じて、第1の部分グループの計算処理の結果と、第2の部分グループの計算処理の結果とが、つながりを持つことになる。
 次に、フェーズ1とフェーズ2とのパイプライン処理のスケジューリングであるが、スレッド1、スレッド2、スレッド3、スレッド4にわけて、複数の計算処理を並列に処理(パイプライン化)できるように(オーバーラップさせ)していることが見てとれる。
 また、1つのスレッドのみが1度にA2A-Lを実行できるようにスケジューリングされていることが特徴的である。点線で示すように、A2A-Lの処理の完了を待って次の処理へ進むようにスケジューリングされている。典型的には、点線で示す部分に継ぎ目無く、シーケンシャルに(またはシームレスに)実行されるようにスケジューリングされる。
 A2A-LとA2A-Pとがオーバーラップされていることも特徴的であり、このことによってA2A-Lに要してしまう時間をうまく有効利用することができる。例えば、FFTの計算処理や、T(転置、ここでは内部転置(internal transpose))の計算処理をはめ込んで有効利用することができる。
 図6は、本発明を適用した場合の効果として、トーラスを構成するノード(プロセッサ)の軸の数の構成によって、並列化1次元(1D)FFTの性能がどのように違うかを示す図である。表の一部は、図4におけるものと共通している。
 本発明を用いた場合には、本発明を用いない場合に比べて、処理速度が上がっていることがわかる。特に、ノード(プロセッサ)の軸が、非立方体(non-cubic)トーラスとして構成された場合において、特にその優位さが目立っている。

Claims (10)

  1.  n(n>2)次元の軸上にその次元に依る形状の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法であって、
    最長の軸を含むグループ(最長の軸が1つであれば軸状、それ以外の場合は最長の軸の数を次元数とすることに依る形状)内の複数のノードを、第1の部分グループとして選択するステップと、
    この第1の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第1の通信フェーズ(A2A-L)を提供するステップと、
    最長の軸以外の残りの全ての軸を含むグループ内の複数のノードを、第2の部分グループとして選択するステップと、
    この第2の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第2の通信フェーズ(A2A-P)を提供するステップと、
    第1の通信フェーズ(A2A-L)と第2の通信フェーズ(A2A-P)とがノード内で並列に処理(パイプライン化)できるように(オーバーラップさせ)、かつ、第1の部分グループにおける全ての全対全通信が完了するのを待って次の処理に進むことができるように、複数の計算処理をスケジューリングするステップとを有する、
    前記方法。
  2. 3次元の軸上に立方体(cubic)または非立方体(non-cubic)形状の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法であって、
    最長の軸を含むグループ(最長の軸が1つであれば軸状,それ以外の場合は平面(Plane)状)内の複数のノードを、第1の部分グループとして選択するステップと、
    この第1の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第1の通信フェーズ(A2A-L)を提供するステップと、
    最長の軸以外の残りの全ての軸を含むグループ内の複数のノードを、第2の部分グループとして選択するステップと、
    この第2の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第2の通信フェーズ(A2A-P)を提供するステップと、
    第1の通信フェーズ(A2A-L)と第2の通信フェーズ(A2A-P)とがノード内で並列に処理(パイプライン化)できるように(オーバーラップさせ)、かつ、第1の部分グループにおける全ての全対全通信が完了するのを待って次の処理に進むことができるように、複数の計算処理をスケジューリングするステップとを有する、
    前記方法。
  3. 全ての軸の長さが等しい場合は、全てのノードを含むグループを第一のグループとして選択し、第1の部分グループにおける全対全通信が、シーケンシャルに実行されるようにスケジューリングするステップとを有する、
    請求項1または2に記載の方法。
  4. さらに、第1の通信フェーズ(A2A-L)と、FFTの計算処理または行列転置の計算処理とが並列に処理(パイプライン化)できるように(オーバーラップさせ)、スケジューリングするステップとを有する、
    請求項1または2に記載の方法。
  5. n(n>2)次元の軸上にその次元に依る形状の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、単数または複数のノード(プロセッサ)に対して、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングして実行させるプログラムであって、
    最長の軸を含むグループ(最長の軸が1つであれば軸状,それ以外の場合は最長の軸の数を次元数とすることに依る形状)内の複数のノードを、第1の部分グループとして選択することを実行させるコードと、
    この第1の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第1の通信フェーズ(A2A-L)を提供することを実行させるコードと、
    最長の軸以外の残りの全ての軸を含むグループ内の複数のノードを、第2の部分グループとして選択することを実行させるコードと、
    この第2の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第2の通信フェーズ(A2A-P)を提供することを実行させるコードと、
    第1の通信フェーズ(A2A-L)と第2の通信フェーズ(A2A-P)とがノード内で並列に処理(パイプライン化)できるように(オーバーラップさせ)、かつ、第1の部分グループにおける全ての全対全通信が完了するのを待って次の処理に進むことができるように、複数の計算処理をスケジューリングすることを実行させるコードとを有する
    前記プログラム。
  6. 3次元の軸上に立方体(cubic)または非立方体(non-cubic)形状の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、単数または複数のノード(プロセッサ)に対して、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングして実行させるプログラムであって、
    最長の軸を含むグループ(最長の軸が1つであれば軸状、それ以外の場合は平面(Plane)状)内の複数のノードを、第1の部分グループとして選択することを実行させるコードと、
    この第1の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第1の通信フェーズ(A2A-L)を提供することを実行させるコードと、
    最長の軸以外の残りの全ての軸を含むグループ内の複数のノードを、第2の部分グループとして選択することを実行させるコードと、
    この第2の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第2の通信フェーズ(A2A-P)を提供することを実行させるコードと、
    第1の通信フェーズ(A2A-L)と第2の通信フェーズ(A2A-P)とがノード内で並列に処理(パイプライン化)できるように(オーバーラップさせ)、かつ、第1の部分グループにおける全ての全対全通信が完了するのを待って次の処理に進むことができるように、複数の計算処理をスケジューリングすることを実行させるコードとを有する、
    前記プログラム。
  7. 全ての軸の長さが等しい場合は、全てのノードを含むグループを第一のグループとして選択し、第1の部分グループにおける全対全通信が、シーケンシャルに実行されるようにスケジューリングすることを実行させるコードを有する、
    請求項5または6に記載のプログラム。
  8. さらに、第1の通信フェーズ(A2A-L)と、FFTの計算処理または行列転置の計算処理とが並列に処理(パイプライン化)できるように(オーバーラップさせ)、スケジューリングすることを実行させるコードを有する、
    請求項5または6に記載のプログラム。
  9. n(n>2)次元の軸上にその次元に依る形状の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理を並列に処理する並列計算機システムであって、
    最長の軸を含むグループ(最長の軸が1つであれば軸状,それ以外の場合は最長の軸の数を次元数とすることに依る形状)内の複数のノードを、第1の部分グループとして選択し、
    この第1の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第1の通信フェーズ(A2A-L)を提供し、
    最長の軸以外の残りの全ての軸を含むグループ内の複数のノードを、第2の部分グループとして選択し、
    この第2の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第2の通信フェーズ(A2A-P)を提供し、
    第1の通信フェーズ(A2A-L)と第2の通信フェーズ(A2A-P)とがノード内で並列に処理(パイプライン化)できるように(オーバーラップさせ)、かつ、第1の部分グループにおける全ての全対全通信が完了するのを待って次の処理に進むことができるように、複数の計算処理をスケジューリングして並列に処理する、
    前記並列計算機システム。
  10. 3次元の軸上に立方体(cubic)または非立方体(non-cubic)形状の(トーラスまたはメッシュ)ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理を並列に処理する並列計算機システムであって、
    最長の軸を含むグループ(最長の軸が1つであれば軸状,それ以外の場合は平面(Plane)状)内の複数のノードを、第1の部分グループとして選択し、
    この第1の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第1の通信フェーズ(A2A-L)を提供し、
    最長の軸以外の残りの全ての軸を含むグループ内の複数のノードを、第2の部分グループとして選択し、
    この第2の部分グループに含まれる複数のノード間のみについての全対全通信を処理するための、第2の通信フェーズ(A2A-P)を提供し、
    第1の通信フェーズ(A2A-L)と第2の通信フェーズ(A2A-P)とがノード内で並列に処理(パイプライン化)できるように(オーバーラップさせ)、かつ、第1の部分グループにおける全ての全対全通信が完了するのを待って次の処理に進むことができるように、複数の計算処理をスケジューリングして並列に処理する、
    前記並列計算機システム。
PCT/JP2010/070314 2009-11-16 2010-11-15 ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。 WO2011059090A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011540576A JP5153945B2 (ja) 2009-11-16 2010-11-15 ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all−to−allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。
DE112010003810.4T DE112010003810B4 (de) 2009-11-16 2010-11-15 Verfahren, Programm und paralleles Computersystem für die Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen
GB1206822.7A GB2487684B (en) 2009-11-16 2010-11-15 Method for scheduling plurality of computing processes including all-to-all (a2a) communication across plurality of nodes (processors) constituting network, p
US13/510,196 US9251118B2 (en) 2009-11-16 2010-11-15 Scheduling computation processes including all-to-all communications (A2A) for pipelined parallel processing among plurality of processor nodes constituting network of n-dimensional space
CN201080050810.8A CN102597959B (zh) 2009-11-16 2010-11-15 对包含多对多通信的多个计算处理进行调度的方法和系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-261113 2009-11-16
JP2009261113 2009-11-16

Publications (1)

Publication Number Publication Date
WO2011059090A1 true WO2011059090A1 (ja) 2011-05-19

Family

ID=43991743

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/070314 WO2011059090A1 (ja) 2009-11-16 2010-11-15 ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。

Country Status (6)

Country Link
US (1) US9251118B2 (ja)
JP (2) JP5153945B2 (ja)
CN (1) CN102597959B (ja)
DE (1) DE112010003810B4 (ja)
GB (1) GB2487684B (ja)
WO (1) WO2011059090A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014007668A1 (en) * 2012-07-02 2014-01-09 Intel Corporation Asynchronous distributed computing based system
JP2019008649A (ja) * 2017-06-27 2019-01-17 富士通株式会社 情報処理システム、管理装置及びプログラム
JP2019086976A (ja) * 2017-11-06 2019-06-06 富士通株式会社 情報処理システム、演算処理装置及び情報処理システムの制御方法
US10516596B2 (en) 2017-08-01 2019-12-24 Fujitsu Limited Information processing apparatus, method and non-transitory computer-readable storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6191401B2 (ja) * 2013-11-01 2017-09-06 富士通株式会社 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム
JP6666548B2 (ja) 2016-03-14 2020-03-18 富士通株式会社 並列計算機、fft演算プログラムおよびfft演算方法
JP6844198B2 (ja) 2016-10-25 2021-03-17 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
JP7167687B2 (ja) * 2018-12-18 2022-11-09 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03116357A (ja) * 1989-09-29 1991-05-17 Fujitsu Ltd 並列処理方式
JPH04235654A (ja) * 1991-01-10 1992-08-24 Fujitsu Ltd ネットワーク制御方式
JPH07200508A (ja) * 1993-12-28 1995-08-04 Toshiba Corp ノード間結合方式
JP2601591B2 (ja) * 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0235654A (ja) * 1989-03-31 1990-02-06 Canon Electron Inc デイスク駆動装置
JP3116357B2 (ja) 1990-02-21 2000-12-11 井関農機株式会社 農作業機
US5689719A (en) * 1991-06-28 1997-11-18 Sanyo Electric O., Ltd. Parallel computer system including processing elements
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JP3675537B2 (ja) 1995-11-29 2005-07-27 富士通株式会社 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法
JPH11259441A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd 並列計算機における全対全通信方法
DE69938621D1 (de) * 1999-05-03 2008-06-12 St Microelectronics Sa Befehlausgabe in einem Rechner
US6711607B1 (en) * 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
CA2437036A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer
US7185138B1 (en) * 2004-05-14 2007-02-27 Peter Galicki Multi-dimensional data routing fabric
JP4291281B2 (ja) * 2005-02-03 2009-07-08 富士通株式会社 情報処理システム、計算ノード、情報処理システムの制御方法
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US20080092146A1 (en) * 2006-10-10 2008-04-17 Paul Chow Computing machine
WO2008114440A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited 一意情報集団通信プログラム、コンピュータ、一意情報集団通信方法、および記録媒体
US7761687B2 (en) * 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
US8291427B2 (en) * 2008-06-09 2012-10-16 International Business Machines Corporation Scheduling applications for execution on a plurality of compute nodes of a parallel computer to manage temperature of the nodes during execution

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03116357A (ja) * 1989-09-29 1991-05-17 Fujitsu Ltd 並列処理方式
JPH04235654A (ja) * 1991-01-10 1992-08-24 Fujitsu Ltd ネットワーク制御方式
JP2601591B2 (ja) * 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
JPH07200508A (ja) * 1993-12-28 1995-08-04 Toshiba Corp ノード間結合方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKESHI HORIE: "All-to-All Personalized Communication on a Wraparound Mesh", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 34, no. 4, 15 April 1993 (1993-04-15), pages 628 - 637 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014007668A1 (en) * 2012-07-02 2014-01-09 Intel Corporation Asynchronous distributed computing based system
JP2019008649A (ja) * 2017-06-27 2019-01-17 富士通株式会社 情報処理システム、管理装置及びプログラム
US10516596B2 (en) 2017-08-01 2019-12-24 Fujitsu Limited Information processing apparatus, method and non-transitory computer-readable storage medium
JP2019086976A (ja) * 2017-11-06 2019-06-06 富士通株式会社 情報処理システム、演算処理装置及び情報処理システムの制御方法

Also Published As

Publication number Publication date
DE112010003810T5 (de) 2012-11-22
DE112010003810B4 (de) 2019-02-21
GB2487684A (en) 2012-08-01
JPWO2011059090A1 (ja) 2013-04-04
CN102597959A (zh) 2012-07-18
US9251118B2 (en) 2016-02-02
JP5153945B2 (ja) 2013-02-27
GB2487684B (en) 2016-09-14
US20120233621A1 (en) 2012-09-13
CN102597959B (zh) 2015-04-15
JP2013037723A (ja) 2013-02-21
JP5425993B2 (ja) 2014-02-26
GB201206822D0 (en) 2012-05-30

Similar Documents

Publication Publication Date Title
JP5425993B2 (ja) ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all−to−allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。
US9146777B2 (en) Parallel processing with solidarity cells by proactively retrieving from a task pool a matching task for the solidarity cell to process
Solomonik et al. Cyclops tensor framework: Reducing communication and eliminating load imbalance in massively parallel contractions
Attia et al. Cygraph: A reconfigurable architecture for parallel breadth-first search
JP2019537793A (ja) ニューラルネットワーク計算タイル
US10430375B2 (en) Parallel computing system and communication control program
CN111381880B (zh) 一种处理器、介质和处理器的操作方法
Ho et al. Optimizing tridiagonal solvers for alternating direction methods on Boolean cube multiprocessors
CN111144545B (zh) 用于实现卷积运算的处理元件、装置和方法
JP2017045151A (ja) 演算処理装置及び演算処理装置の制御方法
Lakshmivarahan et al. Parallel sorting algorithms
CN112527514A (zh) 基于逻辑扩展的多核心安全芯片处理器及其处理方法
Soto et al. Dual entangled polynomial code: Three-dimensional coding for distributed matrix multiplication
WO2016024508A1 (ja) マルチプロセッサ装置
Kobus et al. Gossip: Efficient communication primitives for multi-gpu systems
CN110008436B (zh) 基于数据流架构的快速傅里叶变换方法、系统和存储介质
US8792786B2 (en) Photonically-enabled in-flight data reorganization
US8090762B2 (en) Efficient super cluster implementation for solving connected problems in a distributed environment
Yan et al. QTMS: A quadratic time complexity topology-aware process mapping method for large-scale parallel applications on shared HPC system
GB2593756A (en) Control of data transfer between processing nodes
US11392667B2 (en) Systems and methods for an intelligent mapping of neural network weights and input data to an array of processing cores of an integrated circuit
Berlińska et al. Scheduling multilayer divisible computations
WO2022001454A1 (zh) 集成计算装置、集成电路芯片、板卡和计算方法
Yamazaki et al. Tridiagonalization of a symmetric dense matrix on a GPU cluster
RU2681365C1 (ru) Вычислительный модуль для многостадийной многопоточной обработки цифровых данных и способ обработки с использованием данного модуля

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080050810.8

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10830046

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 1206822

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20101115

WWE Wipo information: entry into national phase

Ref document number: 1206822.7

Country of ref document: GB

WWE Wipo information: entry into national phase

Ref document number: 1120100038104

Country of ref document: DE

Ref document number: 112010003810

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 2011540576

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13510196

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 10830046

Country of ref document: EP

Kind code of ref document: A1