図1乃至図4は、オールリデュース通信について説明するための図である。図1においては、サーバn0が値「4」を持っており、サーバn1が値「8」を持っており、サーバn2が値「1」を持っており、サーバn3が値「5」を持っており、サーバn4が値「6」を持っており、サーバn5が値「3」を持っている。オールリデュースにおいて指定された演算が「加算」である場合、サーバn0乃至n5はそれぞれ値「27」を持つことになる。
図1の右側に示した状態を実現するためのオールリデュース通信は、例えば図2及び図3に示すように行われる。まず、図2(a)に示すように、サーバn0とサーバn3との間で値が共有されて加算により値「9」が算出され、サーバn1とサーバn4との間で値が共有されて加算により値「14」が算出され、サーバn2とサーバn5との間で値が共有されて加算により値「4」が算出される。
そして、図2(b)に示すように、サーバn0とサーバn1との間で値が共有されて加算により値「23」が算出され、サーバn3とサーバn4との間で値が共有されて加算により値「23」が算出される。
そして、図3(a)に示すように、サーバn1とサーバn2との間で値が共有されて加算により値「27」が算出され、サーバn4とサーバn5との間で値が共有されて加算により値「27」が算出される。
最後に、図3(b)に示すように、サーバn1がサーバn0に値「27」を送信し、サーバn4がサーバn3に値「27」を送信する。これにより、図3(b)に示すように、サーバn0乃至n5が値「27」を持つことができる。
ここで、対象はサーバn0乃至n5の全てでなくてもよく、サーバn0乃至n5のうち一部のサーバを対象としてもよい。一例として、サーバn0、n1、n3及びn4を対象とする場合のオールリデュース通信について説明する。まず、図4(a)に示すように、サーバn0とサーバn3との間で値が共有されて加算により値「9」が算出され、サーバn1とサーバn4との間で値が共有されて加算により値「14」が算出される。
そして、図4(b)に示すように、サーバn0とサーバn1との間で値が共有されて加算により値「23」が算出され、サーバn3とサーバn4との間で値が共有されて加算により値「23」が算出される。これにより、サーバn0、n1、n3及びn4が値「23」を持つことができる。
本実施の形態においては、このようなオールリデュース通信をラテン方陣ファットツリーシステムにおける全サーバにより実行する場合に経路競合が発生しないようにすることを考える。ここで、経路競合とは、1つの経路の同一方向に同時に複数のパケットが送信されることを意味し、経路競合の発生により通信時間が長くなる。例として、図5に、オールリデュース通信を一般的なツリー構造のトポロジにおいて実行した場合の経路競合を示す。図5において、丸の図形はサーバを表し、ハッチングされていない正方形の図形はLeafスイッチを表し、ハッチングされた正方形の図形はSpineスイッチを表す。図5において、経路R1において経路競合が発生し、経路R2においても経路競合が発生する。このケースにおいては、例えば図6に示すように、ツリー構造をファットツリー構造に変えることで経路競合を回避することが可能であるが、ファットツリー構造を採用すると総スイッチ数は図5の例よりも多くなる。
図7は、本実施の形態のラテン方陣ファットツリーシステム1000を示す図である。本実施の形態においては、13台のSpineスイッチと、13台のLeafスイッチとの接続形態がラテン方陣ファットツリーである。各Leafスイッチには4台のサーバが接続されているので、ラテン方陣ファットツリーシステム1000は、並列分散処理を実行する52台のサーバを有する。Spineスイッチ及びLeafスイッチは、例えばインフィニバンドスイッチである。サーバは、例えば、物理サーバである。以下では、Leafスイッチに接続されるサーバの数をdとする。本実施の形態においてはd=4である。
なお、図7の例においてはSpineスイッチの数及びLeafスイッチの数は13であるが、13以外であってもよい。他の例については、付録を参照されたい。
図7において、各Spineスイッチ及び各Leafスイッチには、図7に示したラテン方陣ファットツリーに対応する有限射影平面の点を表す文字列が付されている。図8は、図7に示したラテン方陣ファットツリーに対応する有限射影平面を示す図である。図8に示した有限射影平面の位数nは3であり、Spineスイッチ及びLeafスイッチのポート数は8である。点はLeafスイッチを表し、直線はSpineスイッチを表す。図7に示したように格子部分を定めた場合において、LeafスイッチP、LeafスイッチP(0)、LeafスイッチP(1)及びLeafスイッチP(2)は無限遠点に相当する。なお、有限射影平面については付録を参照されたい。
図9は、本実施の形態におけるラテン方陣ファットツリーシステム1000を別の形態で示す図である。図9において、正方形の図形はLeafスイッチを表し、直線はSpineスイッチを表す。LeafスイッチP、LeafスイッチP(2,0)、LeafスイッチP(2,1)及びLeafスイッチP(2,2)をつなぐ直線はSpineスイッチL(2)に相当する。LeafスイッチP、LeafスイッチP(1,0)、LeafスイッチP(1,1)及びLeafスイッチP(1,2)をつなぐ直線はSpineスイッチL(1)に相当する。LeafスイッチP、LeafスイッチP(0,0)、LeafスイッチP(0,1)及びLeafスイッチP(0,2)をつなぐ直線はSpineスイッチL(0)に相当する。LeafスイッチP、LeafスイッチP(0)、LeafスイッチP(1)及びLeafスイッチP(2)をつなぐ直線はSpineスイッチLに相当する。SpineスイッチL(0,0)、SpineスイッチL(0,1)、SpineスイッチL(0,2)、SpineスイッチL(1,0)、SpineスイッチL(1,1)、SpineスイッチL(1,2)、SpineスイッチL(2,0)、SpineスイッチL(2,1)及びSpineスイッチL(2,2)の記載は省略されている。説明をわかりやすくするため、以下では、図9に示した形態のラテン方陣ファットツリーについて通信の説明を行う。
本実施の形態のラテン方陣ファットツリーシステム1000においては、経路競合を回避するため、規則的且つ固定的なルーティングが行われるインフィニバンドのネットワークが利用される。図10を用いて、インフィニバンドのネットワークにおけるルーティングについて説明する。図10において、丸の図形はサーバを表し、正方形の図形はスイッチを表す。線分はインフィニバンドのリンクを表し、線分の傍にある文字列は宛先のサーバの識別情報を表す。太い実線の矢印は通信経路を表す。
図10の例においては、サーバN3が、宛先がサーバN1であるパケットを送信する。パケットのヘッダには、宛先の識別情報(例えばLID(Local IDentifier))が含まれる。各スイッチにおける各出力ポートには宛先のサーバの識別情報が対応付けられているので、各スイッチは、パケットに含まれる宛先の識別情報に対応する出力ポートにパケットを出力する。図10の例では、パケットはスイッチSW1、スイッチSW2及びスイッチSW4を経由してサーバN1に到達する。
このように、本実施の形態のネットワークは、イーサネット(登録商標)のように自動的に経路が決定されるネットワークではなく、規則的且つ固定的なルーティングが行われるネットワークである。
なお、上記の識別情報とは別に、各サーバには番号が割り振られているとする。具体的には、各Leafスイッチに接続される4台の各サーバには、0から3までのいずれかの番号が割り当てられ、各Leafスイッチには「0」が割り振られたサーバと「1」が割り振られたサーバと「2」が割り振られたサーバと「3」が割り振られたサーバとが接続される。
以下では、LeafスイッチPを代表スイッチと呼ぶ。代表スイッチ以外の各Leafスイッチに接続される4台のサーバのうち「0」が割り当てられたサーバを代表サーバと呼ぶ。
図11に示すように、ラテン方陣ファットツリーシステム1000は管理装置3に管理LAN(Local Area Network)等で接続され、ラテン方陣ファットツリーシステム1000における通信は管理装置3により管理される。管理装置3は、通信表生成部301と、通信表格納部303と、トポロジデータ格納部305とを有する。
通信表生成部301は、トポロジデータ格納部305に格納されている、ラテン方陣ファットツリーシステム1000のネットワークトポロジの情報に基づき、第1乃至第5の通信表を生成し、生成された第1乃至第5の通信表を通信表格納部303に格納する。通信表生成部301は、通信表格納部303に格納された第1乃至第5の通信表を、所定のタイミングで又はリクエストに応じて、ラテン方陣ファットツリーシステム1000における各サーバに送信する。
図12は、サーバの機能ブロック図である。サーバは、処理部101と、通信表格納部103とを有する。処理部101は、第1通信部1011と、第2通信部1013と、第3通信部1015と、第4通信部1017と、第5通信部1019とを有する。
通信表格納部103には、管理装置3から受信した第1乃至第5の通信表が格納される。第1通信部1011は、通信表格納部103に格納された第1の通信表に従って通信を行う。第2通信部1013は、通信表格納部103に格納された第2の通信表に従って通信を行う。第3通信部1015は、通信表格納部103に格納された第3の通信表に従って通信を行う。第4通信部1017は、通信表格納部103に格納された第4の通信表に従って通信を行う。第5通信部1019は、通信表格納部103に格納された第5の通信表に従って通信を行う。
次に、図13乃至図42を用いて、管理装置3が実行する処理について説明する。
管理装置3における通信表生成部301は、ラテン方陣ファットツリーシステム1000のネットワークトポロジの情報をトポロジデータ格納部305から読み出す(図13:ステップS1)。ネットワークトポロジの情報は、例えば、Spineスイッチ、Leafスイッチ及びサーバの接続関係の情報等を含む。
通信表生成部301は、ステップS1において読み出したネットワークトポロジの情報に基づき、第1の通信表を生成する処理である第1生成処理を実行する(ステップS3)。第1生成処理については後で説明する。
通信表生成部301は、ステップS1において読み出したネットワークトポロジの情報に基づき、第2の通信表を生成する処理である第2生成処理を実行する(ステップS5)。第2生成処理については後で説明する。
通信表生成部301は、ステップS1において読み出したネットワークトポロジの情報に基づき、第3の通信表を生成する処理である第3生成処理を実行する(ステップS7)。第3生成処理については後で説明する。
通信表生成部301は、ステップS1において読み出したネットワークトポロジの情報に基づき、第4の通信表を生成する処理である第4生成処理を実行する(ステップS9)。第4生成処理については後で説明する。
通信表生成部301は、ステップS1において読み出したネットワークトポロジの情報に基づき、第5の通信表を生成する処理である第5生成処理を実行する(ステップS11)。そして処理は終了する。第5生成処理については後で説明する。
そして、通信表生成部301は、通信表格納部303に格納された第1乃至第5の通信表を読み出し、読み出した第1乃至第5の通信表をラテン方陣ファットツリーシステム1000における各サーバに送信する(ステップS13)。そして処理は終了する。
以上のような処理を実行すれば、各サーバは第1乃至第5の通信表に従って適切な手順で通信を実行できるようになる。
図14乃至図18を用いて、第1生成処理について説明する。図14は、第1生成処理の処理フローを示す図である。
通信表生成部301は、代表スイッチ以外の各Leafスイッチでのリデュースの各フェーズで通信を実行するサーバの識別情報を含む第1の通信表を生成する(図14:ステップS21)。
なお、リデュース通信とは対象の全ノードが持つデータを用いて実行した演算の結果をいずれか1台のノードが持つための通信のことであり、リデュースとは、その演算のことである。第1の通信表にて実現されるリデュースでは、代表スイッチ以外の各Leafスイッチの代表サーバが結果を持つように通信が行われる。
図15乃至図17を用いて、第1の通信表にて実現されるリデュースについて説明する。図15乃至図17には、一例として、LeafスイッチP(2,2)と、LeafスイッチP(2,2)に接続される4台のサーバとが示されており、最も左に位置するサーバは代表サーバである。ここでは、代表サーバの識別情報はn221であり、値「2」を持つサーバの識別情報はn222であり、値「3」を持ち且つ代表サーバではないサーバの識別情報はn223であり、値「1」を持つサーバの識別情報はn224であるとする。はじめに、図15に示すように、サーバn222は値「2」を代表サーバ(すなわちサーバn221)に送信し、並行してサーバn224は値「1」をサーバn223に送信する。代表サーバ及びサーバn223は演算(ここでは加算)を実行する。
すると、図16に示すように、代表サーバは値「5」を持ち、サーバn223は値「4」を持つ。そして、サーバn223は値「4」を代表サーバに送信する。代表サーバは演算を実行する。
すると、図17に示すように、代表サーバは、元の4つの数の合計に相当する値「9」を持つ。以上のようにしてリデュースが実現される。フェーズ数は2であり且つサーバ数dは4であるので、O(log(d))フェーズでリデュースが実現されている。対数の底は2である。いずれのフェーズにおいても、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
図18は、第1の通信表の一例を示す図である。図18においては、Leafスイッチに接続されるサーバ間で実行される通信の通信情報がLeafスイッチ毎に格納されている。例えばフェーズ1においては、LeafスイッチP(2,2)において、サーバn222からサーバn221への送信と、サーバn224からサーバn223への送信とが並行して行われる。また、LeafスイッチP(2,1)において、サーバn212からサーバn211への送信と、サーバn214からサーバn213への送信とが並行して行われる。
図14の説明に戻り、通信表生成部301は、ステップS21において生成された第1の通信表を通信表格納部303に格納する(ステップS23)。そして処理は呼び出し元に戻る。
次に、図19乃至図23を用いて、第2生成処理について説明する。図19は、第2生成処理の処理フローを示す図である。
通信表生成部301は、代表スイッチに接続される各サーバと当該サーバに対応するグループに属するスイッチに接続される代表サーバとの間で行われるリデュースの各フェーズで通信を実行するサーバの識別情報を含む第2の通信表を生成する(図19:ステップS31)。第2の通信表で実現されるオールリデュースにおいては、代表スイッチに接続される各サーバがリデュースの結果を持つように通信が行われる。
なお、代表スイッチ以外の各Leafスイッチは、図8において同じ直線上に配置される(すなわち、同じSpineスイッチに接続される)他のLeafスイッチと同じグループに属し、各グループは、代表スイッチに接続されるサーバのうち1台のサーバに対応する。図8における直線には予め番号(0から3(=d−1)まで)が割り振られており、各直線には他の直線とは異なる番号が割り振られる。よって、各直線(すなわち、各グループ)に対して、代表スイッチに接続されるサーバのうち同じ番号を有するサーバを対応付けることができる。
図20乃至図22を用いて、第2の通信表にて実現されるリデュースについて説明する。図20は、代表スイッチ以外のLeafスイッチに接続される代表サーバが持つ値を示す図である。図20において、代表スイッチ以外の各Leafスイッチ内の数字が、当該Leafスイッチに接続される代表サーバが持つ値を表す。
図21は、第2の通信表にて実現されるリデュースにおけるデータの流れを示す図である。図21においては、LeafスイッチP(0)、LeafスイッチP(1)及びLeafスイッチP(2)が属するグループが、代表スイッチに接続されるサーバのうち値「1」を持つサーバに対応付けられている。LeafスイッチP(0,0)、LeafスイッチP(0,1)及びLeafスイッチP(0,2)が属するグループが、代表スイッチに接続されるサーバのうち値「4」を持つサーバに対応付けられている。LeafスイッチP(1,0)、LeafスイッチP(1,1)及びLeafスイッチP(1,2)が属するグループが、代表スイッチに接続されるサーバのうち値「2」を持つサーバに対応付けられている。LeafスイッチP(2,0)、LeafスイッチP(2,1)及びLeafスイッチP(2,2)が属するグループが、代表スイッチに接続されるサーバのうち値「3」を持つサーバに対応付けられている。
図21の例の場合、フェーズ数は2である。例えば、LeafスイッチP(0)、LeafスイッチP(1)及びLeafスイッチP(2)が属するグループに着目する。フェーズ1においては、LeafスイッチP(0)に接続される代表サーバから値「1」を持つサーバへの送信と、LeafスイッチP(2)に接続される代表サーバからLeafスイッチP(1)に接続される代表サーバへの送信とが並行して行われる。フェーズ2においては、LeafスイッチP(1)に接続される代表サーバから値「2」(=1+1)を持つサーバへの送信が行われる。これにより、リデュースが実現される。その他のグループも同様である。フェーズ数は2であり且つサーバ数dは4であるので、O(log(d))のフェーズでリデュースが実現されている。いずれのフェーズにおいても、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
図22は、第2の通信表に従って実行されるリデュースの結果を示す図である。図22において、代表スイッチに接続されるサーバのうち、LeafスイッチP(0)、LeafスイッチP(1)及びLeafスイッチP(2)が属するグループに対応するサーバは、値「13」(=1+1+3+8)を持つ。代表スイッチに接続されるサーバのうち、LeafスイッチP(0,0)、LeafスイッチP(0,1)及びLeafスイッチP(0,2)が属するグループに対応するサーバは、値「16」(=4+3+7+2)を持つ。代表スイッチに接続されるサーバのうち、LeafスイッチP(1,0)、LeafスイッチP(1,1)及びLeafスイッチP(1,2)が属するグループに対応するサーバは、値「12」(=2+5+4+1)を持つ。代表スイッチに接続されるサーバのうち、LeafスイッチP(2,0)、LeafスイッチP(2,1)及びLeafスイッチP(2,2)が属するグループに対応するサーバは、値「20」(=3+2+6+9)を持つ。
図23は、第2の通信表の一例を示す図である。図23においては、代表サーバが実行する通信の通信情報がグループ毎に格納されている。例えばフェーズ1においては、SpineスイッチL(2)に接続されるLeafスイッチが属するグループについて、サーバn201からサーバn4への送信と、サーバn221からサーバn211への送信とが並行して行われる。また、SpineスイッチL(1)に接続されるLeafスイッチが属するグループについて、サーバn101からサーバn3への送信と、サーバn121からサーバn111への送信とが並行して行われる。
図19の説明に戻り、通信表生成部301は、ステップS31において生成された第2の通信表を通信表格納部303に格納する(ステップS33)。そして処理は呼び出し元に戻る。
次に、図24乃至図33を用いて、第3生成処理について説明する。図24は、第3生成処理の処理フローを示す図である。
通信表生成部301は、代表スイッチに接続されるサーバ間で行われるオールリデュースの各フェーズで通信を実行するサーバの識別情報を含む第3の通信表を生成する(図24:ステップS41)。
図25乃至図29は、Leafスイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。図25乃至図29において、正方形の図形はLeafスイッチを表し、丸の図形はサーバを表し、Leafスイッチとサーバとを結ぶ線分はリンクを表す。サーバに付された数字はサーバが持つ値を表す。
まず、図25及び図26を用いて、Leafスイッチに接続されるサーバの数が偶数(ここでは、2の冪である4)である場合について説明する。
例えば、図25(a)に示すように、4台のサーバがそれぞれ「3」、「7」、「8」、「5」を持つとする。この場合、2台のサーバを含むペアの各々において値が共有され、値の演算(ここでは加算)が行われる。ここでは、1つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
すると、図25(b)に示すように、2台のサーバが値「10」を持ち、残りの2台のサーバが値「13」を持つ。そして、値「10」を持つサーバと値「13」を持つサーバとを含む各ペアにおいて値が共有され、値の演算(ここでは加算)が行われる。ここでは、1つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
これにより、最終的には図26に示すように各サーバが値「23」を持つ。
次に、図27乃至図29を用いて、Leafスイッチに接続されるサーバの数が奇数(ここでは5)である場合について説明する。
例えば、図27(a)に示すように、5台のサーバがそれぞれ「1」、「4」、「5」、「2」、「8」を持つとする。この場合、5台のうち2台のサーバにおいて値が共有され、値の演算(ここでは加算)が行われる。ここでは、1つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
すると、図27(b)に示すように、5台のサーバがそれぞれ「1」、「4」、「5」、「10」、「10」を持つ。そして、値「1」を持つサーバと値「4」を持つサーバとの間で値が共有され値の演算が行われ、値「5」を持つサーバと値「10」を持つサーバとの間で値が共有され値の演算が行われる。ここでは、1つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
すると、図28(a)に示すように、5台のサーバがそれぞれ「5」、「5」、「15」、「15」、「10」を持つ。そして、値「5」を持つサーバと値「15」を持つサーバとの間で値が共有され値の演算が行われ、値「5」を持つサーバと値「15」を持つサーバとの間で値が共有され値の演算が行われる。ここでは、1つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
すると、図28(b)に示すように、5台のサーバがそれぞれ「20」、「20」、「20」、「20」、「10」を持つ。そして、値「20」を持つサーバが値「10」を持つサーバに対して値「20」を通知する。ここでは、1つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
すると、図29に示すように、最終的に5台のサーバがそれぞれ値「20」を持つようになる。
なお、サーバ数が上で述べた例以外の数である場合においても、基本的には同様の方法でオールリデュースを行うことができる。
ここで、n台(nは自然数)のサーバの間でのオールリデュースを行う場合における通信表を生成する処理(以下、Allreduce(n)のように呼ぶ)について説明する。本実施の形態においては、再帰的な処理によって通信表が生成される。
(1)Leafスイッチに接続されるサーバの数nが1である場合、処理は終了する。
(2)Leafスイッチに接続されるサーバの数nが2である場合、2台のサーバの間での通信についての通信情報(具体的には、サーバのペアの情報)が通信表に書き込まれる。
(3)Leafスイッチに接続されるサーバの数nが奇数2m+1(mは自然数)である場合、n台のサーバのうち2台のサーバ(サーバSPおよびサーバSQ)が選択され、サーバSPとサーバSQとの間でオールリデュース通信についての通信情報が通信表に書き込まれる。そして、サーバSP及びサーバSQのうちいずれかのサーバと残りの(2m−1)台のサーバと(つまり、2m台のサーバ)について、Allreduce(2m)が呼び出される。そして、Allreduce(2m)の結果をサーバSPからサーバSQに伝えるための通信情報が通信表に書き込まれる。
(4)Leafスイッチに接続されるサーバの数が2m(mは2以上の自然数)である場合、Leafスイッチはm台のグループとm台のグループとに分けられ、それぞれのグループについてAllreduce(m)が呼び出されて同時並行で処理が進む。
以上のような処理を実行すれば、n台のサーバの間でのオールリデュースを行う場合における通信表が生成される。図25乃至図29の説明から明らかなように、このような方法で生成された通信表に従ってオールリデュース通信が行われれば経路競合は発生しない。
以上の説明を踏まえ、代表スイッチに接続されるサーバ間でのオールリデュースについて説明する。図30には、代表スイッチであるLeafスイッチPと、代表スイッチに接続される4台のサーバとが示されている。図30に示すように、フェーズ1においては、値「20」を持つサーバと値「12」を持つサーバとの間で値が共有され値の演算が行われ、値「16」を持つサーバと値「13」を持つサーバとの間で値が共有され値の演算が行われる。
図31に示すように、フェーズ2においては、値「32」を持つサーバと値「29」を持つサーバとの間で値が共有され値の演算が行われ、値「32」を持つサーバと値「29」を持つサーバとの間で値が共有され値の演算が行われる。
以上の処理によって、図32に示すように、各サーバが値「61」を持つようになる。フェーズ数は2であり且つサーバ数dは4であるので、O(log(d))フェーズでオールリデュースが実現されている。
図33は、第3の通信表の一例を示す図である。図33においては、代表スイッチに接続されるサーバ間で行われる通信の通信情報が格納されている。括弧内の識別情報は通信を実行するサーバのペアの識別情報を表す。例えばフェーズ1においては、サーバn1とサーバn2との間で値が共有され値の演算が行われ、サーバn3とサーバn4との間で値が共有され値の演算が行われる。また、フェーズ2においては、サーバn1とサーバn3との間で値が共有され値の演算が行われ、サーバn2とサーバn4との間で値が共有され値の演算が行われる。
図24の説明に戻り、通信表生成部301は、ステップS41において生成された第3の通信表を通信表格納部303に格納する(ステップS43)。そして処理は呼び出し元に戻る。
次に、図34乃至図37を用いて、第4生成処理について説明する。図34は、第4生成処理の処理フローを示す図である。
通信表生成部301は、代表スイッチに接続される各サーバから当該サーバに対応するグループに属するLeafスイッチに接続される代表サーバへの結果配布における各フェーズにおいて通信を実行するサーバの識別情報を含む第4の通信表を生成する(図34:ステップS51)。結果配布とは、代表スイッチに接続される各サーバが持つオールリデュースの結果を、その結果を持たないサーバへ配布する処理である。
図35及び図36を用いて、第4の通信表にて実現される結果配布について説明する。図35は、第4の通信表にて実現される結果配布におけるデータの流れを示す図である。図35においては、代表スイッチに接続されるサーバのうち右から1番目のサーバは、LeafスイッチP(0)、LeafスイッチP(1)及びLeafスイッチP(2)が属するグループに対応付けられている。代表スイッチに接続されるサーバのうち右から2番目のサーバは、LeafスイッチP(0,0)、LeafスイッチP(0,1)及びLeafスイッチP(0,2)が属するグループに対応付けられている。代表スイッチに接続されるサーバのうち右から3番目のサーバは、LeafスイッチP(1,0)、LeafスイッチP(1,1)及びLeafスイッチP(1,2)が属するグループに対応付けられている。代表スイッチに接続されるサーバのうち右から4番目のサーバは、LeafスイッチP(2,0)、LeafスイッチP(2,1)及びLeafスイッチP(2,2)が属するグループに対応付けられている。
図35の例の場合、フェーズ数は2である。例えば、代表スイッチに接続されるサーバのうち右から1番目のサーバに着目する。フェーズ1においては、代表スイッチに接続されるサーバのうち右から1番目のサーバがLeafスイッチP(1)に接続される代表サーバへ値「61」を送信する。フェーズ2においては、代表スイッチに接続されるサーバのうち右から1番目のサーバがLeafスイッチP(0)に接続される代表サーバへ値「61」を送信し、LeafスイッチP(1)に接続される代表サーバがLeafスイッチP(2)に接続される代表サーバに値「61」を送信する。
図36は、第4の通信表に従って実行される結果配布の結果を示す図である。図36において、各Leafスイッチ内の値は、そのLeafスイッチに接続される代表サーバが持つ値を示している。従って、ラテン方陣ファットツリーシステム1000における各代表サーバがオールリデュースの結果を持つ。但し、この時点では、代表スイッチ以外の各Leafスイッチに接続されるサーバのうち代表サーバ以外のサーバはオールリデュースの結果を持たない。
図37は、第4の通信表の一例を示す図である。図37においては、代表スイッチに接続されるサーバが実行する通信の通信情報がグループ毎に格納されている。例えばフェーズ1においては、SpineスイッチL(2)に接続されるLeafスイッチが属するグループの代表サーバであるサーバn211に対して、サーバn4が値を送信する。また、SpineスイッチL(1)に接続されるLeafスイッチが属するグループの代表サーバであるサーバn111に対して、サーバn3が値を送信する。
以上のようにして第4の通信表による結果配布が実現される。フェーズ数は2であり且つサーバ数dは4であるので、O(log(d))フェーズで第4の通信表による結果配布が実現されている。いずれのフェーズにおいても、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
図34の説明に戻り、通信表生成部301は、ステップS51において生成された第4の通信表を通信表格納部303に格納する(ステップS53)。そして処理は呼び出し元に戻る。
次に、図38乃至図42を用いて、第5生成処理について説明する。図38は、第5生成処理の処理フローを示す図である。
通信表生成部301は、各代表サーバから当該代表サーバと同じLeafスイッチに接続される他サーバへの結果配布における各フェーズで通信を実行するサーバの識別情報を含む第5の通信表を生成する(図38:ステップS61)。
図39乃至図41を用いて、第5の通信表にて実現される結果配布について説明する。図39乃至図41には、一例として、LeafスイッチP(2,2)とLeafスイッチP(2,2)に接続される4台のサーバとが示されており、最も左に位置するサーバは代表サーバである。ここでは、代表サーバの識別情報はn221であり、値「2」を持つサーバの識別情報はn222であり、値「4」を持つサーバの識別情報はn223であり、値「1」を持つサーバの識別情報はn224であるとする。はじめに、図39に示すように、代表サーバは値「61」をサーバn223に送信する。
すると、図40に示すように、代表サーバ及びサーバn223は値「61」を持ち、サーバn222は値「2」を持ち、サーバn224は値「1」を持つ。そして、図40に示すように、代表サーバは値「61」をサーバn222に送信し、サーバn223は値「61」をサーバn224に送信する。
すると、図41に示すように、各サーバはオールリデュースの結果である値「61」を持つ。以上のようにして第5の通信表による結果配布が実現される。フェーズ数は2であり且つサーバ数dは4であるので、O(log(d))フェーズで第5の通信表による結果配布が実現されている。いずれのフェーズにおいても、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
図42は、第5の通信表の一例を示す図である。図42においては、Leafスイッチに接続されるサーバ間で行われる通信の通信情報がLeafスイッチ毎に格納されている。例えばフェーズ1においては、LeafスイッチP(2,2)において、サーバn221からサーバn223への送信が行われる。また、フェーズ2においては、サーバn221からサーバn222への送信と、サーバn223からサーバn224への送信とが並行して行われる。
図38の説明に戻り、通信表生成部301は、ステップS61において生成された第5の通信表を通信表格納部303に格納する(ステップS63)。そして処理は呼び出し元に戻る。
次に、図43乃至図45を用いて、サーバが実行する処理について説明する。本処理は、第1乃至第5の通信表を管理装置3から受信した各サーバが実行する処理である。
図43は、サーバが実行する処理の処理フローを示す図である。
サーバにおける第1通信部1011は、フェーズ番号を表す変数に1を設定する(図43:ステップS71)。
第1通信部1011は、通信表格納部103に格納されている第1の通信表から、フェーズiの通信情報を特定する(ステップS73)。
第1通信部1011は、自サーバ(すなわち、本処理を実行しているサーバ)がフェーズiにおいて通信を実行するか判定する(ステップS75)。自サーバがフェーズiにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
自サーバがフェーズiにおいて通信を実行しない場合(ステップS75:Noルート)、処理はステップS79に移行する。一方、自サーバがフェーズiにおいて通信を実行する場合(ステップS75:Yesルート)、第1通信部1011は、ステップS73において特定された通信情報に従って通信を実行する(ステップS77)。
上で述べたように、第1の通信表に従って行われる通信は、同一のLeafスイッチに接続されるサーバ間でのリデュース通信であり、他のサーバから値を受信したサーバはリデュースに係る演算を実行する。
第1通信部1011は、i=imax1が成立するか判定する(ステップS79)。imax1は、第1の通信表に従って行われる通信のフェーズ番号の最大値である。i=imax1が成立しない場合(ステップS79:Noルート)、第1通信部1011は、iを1インクリメントする(ステップS81)。そして処理はステップS73に移行する。なお、フェーズの終了はバリア同期によって確認される。
一方、i=imax1が成立する場合(ステップS79:Yesルート)、第2通信部1013は、フェーズ番号を表す変数に1を設定する(ステップS83)。
第2通信部1013は、通信表格納部103に格納されている第2の通信表から、フェーズiの通信情報を特定する(ステップS85)。
第2通信部1013は、自サーバ(すなわち、本処理を実行しているサーバ)がフェーズiにおいて通信を実行するか判定する(ステップS87)。自サーバがフェーズiにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
自サーバがフェーズiにおいて通信を実行しない場合(ステップS87:Noルート)、処理はステップS91に移行する。一方、自サーバがフェーズiにおいて通信を実行する場合(ステップS87:Yesルート)、第2通信部1013は、ステップS85において特定された通信情報に従って通信を実行する(ステップS89)。
上で述べたように、第2の通信表に従って行われる通信は、代表スイッチに接続される各サーバと当該サーバに対応するグループに属するLeafスイッチに接続される代表サーバとの間のリデュース通信であり、他のサーバから値を受信したサーバはリデュースに係る演算を実行する。
第2通信部1013は、i=imax2が成立するか判定する(ステップS91)。imax2は、第2の通信表に従って行われる通信のフェーズ番号の最大値である。i=imax2が成立しない場合(ステップS91:Noルート)、第2通信部1013は、iを1インクリメントする(ステップS93)。そして処理はステップS85に移行する。なお、フェーズの終了はバリア同期によって確認される。
一方、i=imax2が成立する場合(ステップS91:Yesルート)、処理は端子Aを介して図44のステップS95に移行する。
図44の説明に移行し、第3通信部1015は、フェーズ番号を表す変数に1を設定する(図44:ステップS95)。
第3通信部1015は、通信表格納部103に格納されている第3の通信表から、フェーズiの通信情報を特定する(ステップS97)。
第3通信部1015は、自サーバ(すなわち、本処理を実行しているサーバ)がフェーズiにおいて通信を実行するか判定する(ステップS99)。自サーバがフェーズiにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
自サーバがフェーズiにおいて通信を実行しない場合(ステップS99:Noルート)、処理はステップS103に移行する。一方、自サーバがフェーズiにおいて通信を実行する場合(ステップS99:Yesルート)、第3通信部1015は、ステップS97において特定された通信情報に従って通信を実行する(ステップS101)。
上で述べたように、第3の通信表に従って行われる通信は、代表スイッチに接続されるサーバ間でのオールリデュース通信であり、各サーバはオールリデュースに係る演算を実行する。
第3通信部1015は、i=imax3が成立するか判定する(ステップS103)。imax3は、第3の通信表に従って行われる通信のフェーズ番号の最大値である。i=imax3が成立しない場合(ステップS103:Noルート)、第3通信部1015は、iを1インクリメントする(ステップS105)。そして処理はステップS97に移行する。なお、フェーズの終了はバリア同期によって確認される。
一方、i=imax3が成立する場合(ステップS103:Yesルート)、第4通信部1017は、フェーズ番号を表す変数に1を設定する(ステップS107)。
第4通信部1017は、通信表格納部103に格納されている第4の通信表から、フェーズiの通信情報を特定する(ステップS109)。
第4通信部1017は、自サーバ(すなわち、本処理を実行しているサーバ)がフェーズiにおいて通信を実行するか判定する(ステップS111)。自サーバがフェーズiにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
自サーバがフェーズiにおいて通信を実行しない場合(ステップS111:Noルート)、処理はステップS115に移行する。一方、自サーバがフェーズiにおいて通信を実行する場合(ステップS111:Yesルート)、第4通信部1017は、ステップS109において特定された通信情報に従って通信を実行する(ステップS113)。
上で述べたように、第4の通信表に従って行われる通信は、代表スイッチに接続される各サーバから当該サーバに対応するグループに属するLeafスイッチに接続される代表サーバへの結果配布である。
第4通信部1017は、i=imax4が成立するか判定する(ステップS115)。imax4は、第4の通信表に従って行われる通信のフェーズ番号の最大値である。i=imax4が成立しない場合(ステップS115:Noルート)、第4通信部1017は、iを1インクリメントする(ステップS117)。そして処理はステップS109に移行する。なお、フェーズの終了はバリア同期によって確認される。
一方、i=imax4が成立する場合(ステップS115:Yesルート)、処理は端子Bを介して図45のステップS119に移行する。
図45の説明に移行し、第5通信部1019は、フェーズ番号を表す変数に1を設定する(図45:ステップS119)。
第5通信部1019は、通信表格納部103に格納されている第5の通信表から、フェーズiの通信情報を特定する(ステップS121)。
第5通信部1019は、自サーバ(すなわち、本処理を実行しているサーバ)がフェーズiにおいて通信を実行するか判定する(ステップS123)。自サーバがフェーズiにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
自サーバがフェーズiにおいて通信を実行しない場合(ステップS123:Noルート)、処理はステップS127に移行する。一方、自サーバがフェーズiにおいて通信を実行する場合(ステップS123:Yesルート)、第5通信部1019は、ステップS121において特定された通信情報に従って通信を実行する(ステップS125)。
上で述べたように、第5の通信表に従って行われる通信は、各代表サーバから当該代表サーバと同じLeafスイッチに接続される他のサーバへの結果配布である。
第5通信部1019は、i=imax5が成立するか判定する(ステップS127)。imax5は、第5の通信表に従って行われる通信のフェーズ番号の最大値である。i=imax5が成立しない場合(ステップS127:Noルート)、第5通信部1019は、iを1インクリメントする(ステップS129)。そして処理はステップS121に移行する。なお、フェーズの終了はバリア同期によって確認される。
一方、i=imax5が成立する場合(ステップS127:Yesルート)、処理は終了する。
以上のような処理を実行すれば、ラテン方陣ファットツリーシステム1000の全サーバによるオールリデュースを実現することができるようになる。よって、より多くのサーバを必要とする並列分散処理をラテン方陣ファットツリーシステム1000において実行することができるようになる。
上で述べたように、本実施の形態においては、オールリデュース通信の各過程において経路競合が発生することはない。
また、本実施の形態の方法であれば、O(log N)(Nはラテン方陣ファットツリーシステム1000における全サーバの台数)程度の計算量でオールリデュースを実行することができるようになる。なお、本実施の形態においてはN=52である。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理装置3及びサーバの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、上で述べた例においては、オールリデュース及びリデュースの演算として加算が行われるが、加算以外の演算(例えば乗算)が行われてもよい。
また、第1生成処理および第2生成処理においてはリデュースについての通信表を生成しているが、オールリデュースについての通信表を生成してもよい。
[付録]
本付録においては、ラテン方陣ファットツリーおよび有限射影平面について説明する。
有限射影平面とは、普通の平面に無限遠点をいくつか加え且つ「平行な2直線」をなくした平面に相当する。図46に、位数(以下nとする)が2であり且つポート数が6(=2(n+1))である場合の有限射影平面の構造を示す。図46において、枠482で囲まれた3(=n+1)台のLeafスイッチは無限遠点に相当する。
有限射影平面においては、1個の点Pが設定され、n個の点P(c)(c=0,1,...,n−1)が設定され、n2個の点P(c,r)(c,r=0,1,...,n−1)が設定される。また、1本の直線L={P,P(0),...,P(n−1)}が設定され、n本の直線L={P,P(c,0),...,P(c,n−1)}(c=0,1,...,n−1)が設定され、n2本の直線L(c,r)={P(c)およびP(i,(r+ci) mod n)}(i,c,r=0,1,...,n−1)が設定される。
有限射影平面の特徴として、(n2+n+1)の点が存在し、直線の数は(n2+n+1)である。任意の2直線は1点で交わり、任意の2点を結ぶ直線がただ一つ存在する。但し、nは素数であるという制約がある。
有限射影平面の構造は、トポロジ構造に置き換えられる。例えば、図47(a)に示した有限射影平面の構造は、図47(b)に示したトポロジ構造に置き換えられる。図47(a)において、直線はSpineスイッチを表し、点はLeafスイッチを表す。図47(b)において、ハッチングされた矩形はSpineスイッチを表し、ハッチングされていない矩形はLeafスイッチを表す。
図48(a)に示したトポロジ構造は、Spineスイッチの数が7であり且つLeafスイッチの数が7であるラテン方陣ファットツリーのトポロジ構造であり、図48(b)に示した有限射影平面の構造に対応する。図48(a)において太線で囲まれた部分のトポロジ構造は、図47(b)のトポロジ構造と同じである。また、図48(b)において太線で囲まれた部分の構造は、図48(a)において太線で囲まれた部分のトポロジ構造に対応する。
図46に示した構造は、図49に示す構造に変換することができる。図49において、ハッチングされた格子部分に含まれる4(=n*n)台のLeafスイッチは、図46において枠481に囲まれた部分に含まれる4台のLeafスイッチに対応する。格子部分において平行な直線群は、追加の点において交わるように変換される。すなわち、傾きが等しい直線同士が交わるように変換される。
以上で付録を終了する。
なお、上で述べた管理装置3及びサーバは、コンピュータ装置であって、図50に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
また、上で述べたLeafスイッチ及びSpineスイッチは、図51に示すように、メモリ2601とCPU2603とHDD2605と表示装置2609に接続される表示制御部2607とリムーバブル・ディスク2611用のドライブ装置2613と入力装置2615とネットワークに接続するための通信制御部2617(図51では、2617a乃至2617c)とがバス2619で接続されている構成の場合もある。なお、場合によっては、表示制御部2607、表示装置2609、ドライブ装置2613、入力装置2615は含まれない場合もある。オペレーティング・システム(OS:Operating System)及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、HDD2605に格納されており、CPU2603により実行される際にはHDD2605からメモリ2601に読み出される。必要に応じてCPU2603は、表示制御部2607、通信制御部2617、ドライブ装置2613を制御して、必要な動作を行わせる。なお、通信制御部2617のいずれかを介して入力されたデータは、他の通信制御部2617を介して出力される。CPU2603は、通信制御部2617を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ2601に格納され、必要があればHDD2605に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2611に格納されて頒布され、ドライブ装置2613からHDD2605にインストールされる。インターネットなどのネットワーク及び通信制御部2617を経由して、HDD2605にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2603、メモリ2601などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る情報処理システムは、接続形態がラテン方陣ファットツリーである複数のスイッチ(実施の形態におけるLeafスイッチは上記スイッチの一例である)と、複数のスイッチのいずれかにそれぞれ接続される複数の情報処理装置(実施の形態におけるサーバは上記情報処理装置の一例である)とを有する。そして、(A)ラテン方陣ファットツリーに対応する有限射影平面における特定の1点に相当する第1スイッチ以外のスイッチに接続される情報処理装置の各々が、当該情報処理装置と同じスイッチに接続される他の情報処理装置との間で、当該同じスイッチに接続される情報処理装置のうち第1情報処理装置が結果を持つ第1リデュースを実行し、(B)第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置との間で、当該情報処理装置が結果を持つ第2リデュースを実行し、(C)第1スイッチに接続される情報処理装置が、第2リデュースの結果に基づきオールリデュースを実行し、(D)第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置に対して、オールリデュースの結果を送信し、(E)オールリデュースの結果を受信した第1情報処理装置の各々が、当該第1情報処理装置と同じスイッチに接続される他の情報処理装置に対して、オールリデュースの結果を送信する。
このようにすれば、ラテン方陣ファットツリーシステムにおける全情報処理装置が参加するオールリデュースを実行できるようになる。
また、特定の1点は、有限射影平面における無限遠点であってもよい。
また、有限射影平面において同一の直線上に有る複数の点に相当する複数のスイッチは、同じグループに属してもよい。
効率的に通信を行えるようになる。
また、第1スイッチ以外のスイッチにおける情報処理装置の各々が、(a1)第1リデュースの通信のフェーズのうち当該情報処理装置がデータを送信するフェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対してデータを送信してもよい。
このようにすれば、第1リデュースの通信において経路競合が発生することを防げるようになる。
また、第1スイッチに接続される情報処理装置の各々は、(b1)第2リデュースの各フェーズにおいて、1台の第1情報処理装置からデータを受信してもよい。
このようにすれば、第2リデュースの通信において経路競合が発生することを防げるようになる。
また、第1スイッチに接続される情報処理装置の各々は、(c1)オールリデュースの通信のフェーズのうち当該情報処理装置がデータを送信するフェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対してデータを送信してもよい。
このようにすれば、第1スイッチに接続される情報処理装置が実行するオールリデュースにおいて経路競合が発生することを防げるようになる。
また、第1のスイッチに接続される情報処理装置の各々は、(d1)当該情報処理装置に対応するグループに属するスイッチの各第1情報処理装置に対してオールリデュースの結果を送信する通信の各フェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対してオールリデュースの結果を送信してもよい。
第1のスイッチに接続される情報処理装置から第1情報処理装置へオールリデュースの結果を送信する通信において経路競合が発生することを防げるようになる。
また、オールリデュースの結果を受信した第1情報処理装置の各々は、(e1)当該第1情報処理装置と同じスイッチに接続される他の情報処理装置に対してオールリデュースの結果を送信する通信の各フェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対してオールリデュースの結果を送信してもよい。
第1情報処理装置から他の情報処理装置に対してオールリデュースの結果を送信する通信において経路競合が発生することを防げるようになる。
本実施の形態の第2の態様に係る情報処理方法は、接続形態がラテン方陣ファットツリーである複数のスイッチと、複数のスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムにおいて実行される。そして、本情報処理方法は、(F)ラテン方陣ファットツリーに対応する有限射影平面における特定の1点に相当する第1スイッチ以外のスイッチに接続される情報処理装置の各々が、当該情報処理装置と同じスイッチに接続される他の情報処理装置との間で、当該同じスイッチに接続される情報処理装置のうち第1情報処理装置が結果を持つ第1リデュースを実行し、(G)第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置との間で、当該情報処理装置が結果を持つ第2リデュースを実行し、(H)第1スイッチに接続される情報処理装置が、第2リデュースの結果に基づきオールリデュースを実行し、(I)第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置に対して、オールリデュースの結果を送信し、(J)オールリデュースの結果を受信した第1情報処理装置の各々が、当該第1情報処理装置と同じスイッチに接続される他の情報処理装置に対して、オールリデュースの結果を送信する処理を含む。
このようにすれば、ラテン方陣ファットツリーシステムにおける全情報処理装置が参加するオールリデュースを実行できるようになる。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
接続形態がラテン方陣ファットツリーである複数のスイッチと、
前記複数のスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、
を有し、
前記ラテン方陣ファットツリーに対応する有限射影平面における特定の1点に相当する第1スイッチ以外のスイッチに接続される情報処理装置の各々が、当該情報処理装置と同じスイッチに接続される他の情報処理装置との間で、当該同じスイッチに接続される情報処理装置のうち第1情報処理装置が結果を持つ第1リデュースを実行し、
前記第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置との間で、当該情報処理装置が結果を持つ第2リデュースを実行し、
前記第1スイッチに接続される情報処理装置が、前記第2リデュースの結果に基づきオールリデュースを実行し、
前記第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置に対して、前記オールリデュースの結果を送信し、
前記オールリデュースの結果を受信した第1情報処理装置の各々が、当該第1情報処理装置と同じスイッチに接続される他の情報処理装置に対して、前記オールリデュースの結果を送信する、
情報処理システム。
(付記2)
前記特定の1点は、前記有限射影平面における無限遠点である、
付記1記載の情報処理システム。
(付記3)
前記有限射影平面において同一の直線上に有る複数の点に相当する複数のスイッチは、同じグループに属する、
付記1又は2記載の情報処理システム。
(付記4)
前記第1スイッチ以外のスイッチにおける情報処理装置の各々が、前記第1リデュースの通信のフェーズのうち当該情報処理装置がデータを送信するフェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対して前記データを送信する、
付記1乃至3のいずれか1つ記載の情報処理システム。
(付記5)
前記第1スイッチに接続される情報処理装置の各々は、前記第2リデュースの各フェーズにおいて、1台の第1情報処理装置からデータを受信する、
付記1乃至3のいずれか1つ記載の情報処理システム。
(付記6)
前記第1スイッチに接続される情報処理装置の各々は、前記オールリデュースの通信のフェーズのうち当該情報処理装置がデータを送信するフェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対して前記データを送信する、
付記1乃至3のいずれか1つ記載の情報処理システム。
(付記7)
前記第1のスイッチに接続される情報処理装置の各々は、当該情報処理装置に対応するグループに属するスイッチの各第1情報処理装置に対して前記オールリデュースの結果を送信する通信の各フェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対して前記オールリデュースの結果を送信する、
付記1乃至3のいずれか1つ記載の情報処理システム。
(付記8)
前記オールリデュースの結果を受信した第1情報処理装置の各々は、当該第1情報処理装置と同じスイッチに接続される他の情報処理装置に対して前記オールリデュースの結果を送信する通信の各フェーズにおいて、他の情報処理装置からの他のデータを受信しない情報処理装置に対して前記オールリデュースの結果を送信する、
付記1乃至3のいずれか1つ記載の情報処理システム。
(付記9)
接続形態がラテン方陣ファットツリーである複数のスイッチと、前記複数のスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムにおいて実行される情報処理方法であって、
前記ラテン方陣ファットツリーに対応する有限射影平面における特定の1点に相当する第1スイッチ以外のスイッチに接続される情報処理装置の各々が、当該情報処理装置と同じスイッチに接続される他の情報処理装置との間で、当該同じスイッチに接続される情報処理装置のうち第1情報処理装置が結果を持つ第1リデュースを実行し、
前記第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置との間で、当該情報処理装置が結果を持つ第2リデュースを実行し、
前記第1スイッチに接続される情報処理装置が、前記第2リデュースの結果に基づきオールリデュースを実行し、
前記第1スイッチに接続される情報処理装置の各々が、当該情報処理装置に対応するグループに属する各スイッチの第1情報処理装置に対して、前記オールリデュースの結果を送信し、
前記オールリデュースの結果を受信した第1情報処理装置の各々が、当該第1情報処理装置と同じスイッチに接続される他の情報処理装置に対して、前記オールリデュースの結果を送信する、
情報処理方法。