(57)【要約】      （修正有）【課題】ラテン方陣ファットツリーシステムにおける特定のＬｅａｆスイッチ群を使用して複数の集団通信を並行して実行する。【解決手段】本システムは、複数のスパインスイッチと、複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数のサーバとを有する。そして、複数のスパインスイッチと複数のリーフスイッチとの接続形態はラテン方陣ファットツリーである。そして、ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当する第１リーフスイッチに接続される各サーバが、第１スパインスイッチを経由する経路で、第１リーフスイッチに接続される他サーバと第１集団通信を行う第１通信部と、第１の集団通信の各フェーズにおいて、第２スパインスイッチを経由する経路で、第１リーフスイッチに接続される他サーバと第２集団通信を行う第２通信部とを有する。【選択図】図２１
2019008650.tif 000002
【特許請求の範囲】
【請求項１】
複数のスパインスイッチと、
複数のリーフスイッチと、
前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、
を有し、
前記複数のスパインスイッチと前記複数のリーフスイッチとの接続形態はラテン方陣ファットツリーであり、
前記複数のリーフスイッチのうち前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当する第１のリーフスイッチに接続される情報処理装置の各々が、
前記複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行う第１通信部と、
前記第１の集団通信の各フェーズにおいて、前記複数のスパインスイッチのうち前記第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う第２通信部と、
を有する情報処理システム。
【請求項２】
前記第１の集団通信は全対全通信であり、前記第２の集団通信はオールリデュース通信である、
請求項１記載の情報処理システム。
【請求項３】
前記第１の集団通信および前記第２の集団通信はオールリデュース通信であり、
前記第１の集団通信に係る演算と前記第２の集団通信に係る演算とが異なる、
請求項１記載の情報処理システム。
【請求項４】
前記有限射影平面の点のうち前記第１のリーフスイッチに相当する点は矩形領域に含まれ、前記矩形領域の行数および列数は前記第１のリーフスイッチの各々に接続される情報処理装置の数以上である、
請求項１乃至３のいずれか１つ記載の情報処理システム。
【請求項５】
管理装置
をさらに有し、
前記管理装置は、
前記第１のスパインスイッチを経由する経路で前記第１の集団通信を行うための第１の通信情報を生成し、
前記ラテン方陣ファットツリーにおける経路の中から前記第２のスパインスイッチを経由する経路を特定し、
前記第１の集団通信の各フェーズにおいて前記第２のスパインスイッチを経由する経路で前記第２の集団通信を行うための第２の通信情報を生成し、
生成された前記第１の通信情報と前記第２の通信情報とを、前記第１のリーフスイッチに接続される情報処理装置の各々に送信し、
前記第１通信部は、
受信した前記第１の通信情報に従って前記第１の集団通信を行い、
前記第２通信部は、
受信した前記第２の通信情報に従って前記第２の集団通信を行う、
請求項１乃至４のいずれか１つ記載の情報処理システム。
【請求項６】
複数のスパインスイッチと、複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムにおいて実行される情報処理方法であって、
前記複数のスパインスイッチと前記複数のリーフスイッチとの接続形態はラテン方陣ファットツリーであり、
前記複数のリーフスイッチのうち前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当する第１のリーフスイッチに接続される情報処理装置の各々が、
前記複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行い、
前記第１の集団通信の各フェーズにおいて、前記複数のスパインスイッチのうち前記第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う、
処理を含む情報処理方法。
【請求項７】
複数のスパインスイッチと、前記複数のスパインスイッチとラテン方陣ファットツリーの接続形態で接続される複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムにおける前記複数の情報処理装置のうちの第１情報処理装置であって、
前記複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、前記複数のリーフスイッチのうち前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当し且つ前記第１情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行う第１通信部と、
前記第１の集団通信の各フェーズにおいて、前記複数のスパインスイッチのうち前記第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う第２通信部と、
を有する第１情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集団通信の技術に関する。
【背景技術】
【０００２】
並列計算機におけるサーバ及びスイッチの接続形態（すなわちネットワークトポロジ）の最適化により並列計算機内での通信を効率化すれば、並列計算機が実行する並列分散処理のスループットを高めることができる。また、並列計算機におけるネットワークトポロジの最適化により少数のスイッチで多数のサーバを接続することができれば、並列計算機の構築コストを抑えることができる。
【０００３】
或る文献は、ラテン方陣ファットツリーと呼ばれるネットワークトポロジを開示する。ラテン方陣ファットツリーは、任意の異なる２つのＬｅａｆスイッチ間においてＳｐｉｎｅスイッチを経由する経路がただひとつ存在するという特徴を有する。ラテン方陣ファットツリーを使用すれば、一般的な２段ファットツリーと比べ、同じスイッチ数でより多くのサーバを接続することが可能である。
【０００４】
ラテン方陣ファットツリーを採用したシステム（以下、ラテン方陣ファットツリーシステムと呼ぶ）における各Ｌｅａｆスイッチは、複数のリンクで複数のサーバ及び複数のＳｐｉｎｅスイッチに接続される。従って、Ｌｅａｆスイッチを或る集団通信に使用している時に別の集団通信にも使用できる場合があるが、上記文献はこのような観点には着目していない。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】M. Valerio, L. E. Moser and P. M. Melliar-Smith, "Recursively Scalable Fat-Trees as Interconnection Networks", IEEE 13th Annual International Phoenix Conference on Computers and Communications, 1994
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１つの側面では、ラテン方陣ファットツリーシステムにおける特定のＬｅａｆスイッチ群を使用して複数の集団通信を並行して実行するための技術を提供することである。
【課題を解決するための手段】
【０００７】
一態様に係る情報処理システムは、複数のスパインスイッチと、複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する。そして、複数のスパインスイッチと複数のリーフスイッチとの接続形態はラテン方陣ファットツリーである。そして、複数のリーフスイッチのうちラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当する第１のリーフスイッチに接続される情報処理装置の各々が、複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行う第１通信部と、第１の集団通信の各フェーズにおいて、複数のスパインスイッチのうち第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う第２通信部とを有する。
【発明の効果】
【０００８】
１つの側面では、ラテン方陣ファットツリーシステムにおける特定のＬｅａｆスイッチ群を使用して複数の集団通信を並行して実行できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、オールリデュース通信について説明するための図である。
【図２】図２は、オールリデュース通信について説明するための図である。
【図３】図３は、オールリデュース通信について説明するための図である。
【図４】図４は、オールリデュース通信について説明するための図である。
【図５】図５は、オールリデュース通信を一般的なツリー構造のトポロジにおいて実行した場合の経路競合を示す図である。
【図６】図６は、ファットツリー構造のトポロジにおいて実行した場合の経路競合を示す図である。
【図７】図７は、本実施の形態のラテン方陣ファットツリーシステムの概要を示す図である。
【図８】図８は、有限射影平面を示す図である。
【図９】図９は、インフィニバンドのネットワークにおけるルーティングについて説明するための図である。
【図１０】図１０は、管理装置の機能ブロック図である。
【図１１】図１１は、サーバの機能ブロック図である。
【図１２】図１２は、管理装置が実行する処理の処理フローを示す図である。
【図１３】図１３は、矩形領域の設定について説明するための図である。
【図１４】図１４は、第１生成処理の処理フローを示す図である。
【図１５】図１５は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図１６】図１６は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図１７】図１７は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図１８】図１８は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図１９】図１９は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図２０】図２０は、第１の通信表の一例を示す図である。
【図２１】図２１は、第１の実施の形態の第２生成処理の処理フローを示す図である。
【図２２】図２２は、第２の通信表（Ａ）の一例を示す図である。
【図２３】図２３は、全対全通信と有限射影平面との関係を示す図である。
【図２４】図２４は、全対全通信で使用されるＳｐｉｎｅスイッチを示す図である。
【図２５】図２５は、全対全通信と有限射影平面との関係を示す図である。
【図２６】図２６は、全対全通信で使用されるＳｐｉｎｅスイッチを示す図である。
【図２７】図２７は、全対全通信と有限射影平面との関係を示す図である。
【図２８】図２８は、全対全通信で使用されるＳｐｉｎｅスイッチを示す図である。
【図２９】図２９は、オールリデュース通信を実行可能なフェーズ群と利用可能な傾きとについて説明するための図である。
【図３０】図３０は、矩形領域の他の例を示す図である。
【図３１】図３１は、オールリデュース通信を実行可能なフェーズ群と利用可能な傾きとについて説明するための図である。
【図３２】図３２は、第２の通信表（Ｂ）の一例を示す図である。
【図３３】図３３は、オールリデュースについて説明するための図である。
【図３４】図３４は、オールリデュースについて説明するための図である。
【図３５】図３５は、オールリデュース通信によって使用されるＳｐｉｎｅスイッチを示す図である。
【図３６】図３６は、オールリデュース通信によって使用されるＳｐｉｎｅスイッチを示す図である。
【図３７】図３７は、第３生成処理の処理フローを示す図である。
【図３８】図３８は、第３の通信表にて実現される結果配布について説明するための図である。
【図３９】図３９は、第３の通信表にて実現される結果配布について説明するための図である。
【図４０】図４０は、第３の通信表にて実現される結果配布について説明するための図である。
【図４１】図４１は、サーバが実行する処理の処理フローを示す図である。
【図４２】図４２は、サーバが実行する処理の処理フローを示す図である。
【図４３】図４３は、サーバが実行する処理の処理フローを示す図である。
【図４４】図４４は、第２の実施の形態の第２生成処理の処理フローを示す図である。
【図４５】図４５は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図４６】図４６は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図４７】図４７は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図４８】図４８は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図４９】図４９は、コンピュータの機能ブロック図である。
【図５０】図５０は、スイッチの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
全対全通信（all-to-all communication）は集団通信の一種である。全対全通信とは、並列計算機における各ノードが並列計算機における全ノードに対してデータを送信し且つ全ノードからデータを受信する通信である。
【００１１】
また、オールリデュース通信も集団通信の一種である。オールリデュース通信とは、対象の全ノードが持つデータを用いて実行した演算の結果を対象の全ノードが持つための通信のことであり、オールリデュースとは、その演算のことである。
【００１２】
図１乃至図４は、オールリデュース通信について説明するための図である。図１においては、サーバｎ０が値「４」を持っており、サーバｎ１が値「８」を持っており、サーバｎ２が値「１」を持っており、サーバｎ３が値「５」を持っており、サーバｎ４が値「６」を持っており、サーバｎ５が値「３」を持っている。オールリデュースにおいて指定された演算が「加算」である場合、サーバｎ０乃至ｎ５はそれぞれ値「２７」を持つことになる。
【００１３】
図１の右側に示した状態を実現するためのオールリデュース通信は、例えば図２及び図３に示すように行われる。まず、図２（ａ）に示すように、サーバｎ０とサーバｎ３との間で値が共有されて加算により値「９」が算出され、サーバｎ１とサーバｎ４との間で値が共有されて加算により値「１４」が算出され、サーバｎ２とサーバｎ５との間で値が共有されて加算により値「４」が算出される。
【００１４】
そして、図２（ｂ）に示すように、サーバｎ０とサーバｎ１との間で値が共有されて加算により値「２３」が算出され、サーバｎ３とサーバｎ４との間で値が共有されて加算により値「２３」が算出される。
【００１５】
そして、図３（ａ）に示すように、サーバｎ１とサーバｎ２との間で値が共有されて加算により値「２７」が算出され、サーバｎ４とサーバｎ５との間で値が共有されて加算により値「２７」が算出される。
【００１６】
最後に、図３（ｂ）に示すように、サーバｎ１がサーバｎ０に値「２７」を送信し、サーバｎ４がサーバｎ３に値「２７」を送信する。これにより、図３（ｂ）に示すように、サーバｎ０乃至ｎ５が値「２７」を持つことができる。
【００１７】
ここで、対象はサーバｎ０乃至ｎ５の全てでなくてもよく、サーバｎ０乃至ｎ５のうち一部のサーバを対象としてもよい。一例として、サーバｎ０、ｎ１、ｎ３及びｎ４を対象とする場合のオールリデュース通信について説明する。まず、図４（ａ）に示すように、サーバｎ０とサーバｎ３との間で値が共有されて加算により値「９」が算出され、サーバｎ１とサーバｎ４との間で値が共有されて加算により値「１４」が算出される。
【００１８】
そして、図４（ｂ）に示すように、サーバｎ０とサーバｎ１との間で値が共有されて加算により値「２３」が算出され、サーバｎ３とサーバｎ４との間で値が共有されて加算により値「２３」が算出される。これにより、サーバｎ０、ｎ１、ｎ３及びｎ４が値「２３」を持つことができる。
【００１９】
本実施の形態においては、ラテン方陣ファットツリーシステムにおける特定のＬｅａｆスイッチ群を使用して、全対全通信とオールリデュース通信とを、経路競合を発生させることなく並列で実行することを考える。ここで、経路競合とは、１つの経路の同一方向に同時に複数のパケットが送信されることを意味し、経路競合の発生により通信時間が長くなる。例として、図５に、オールリデュース通信を一般的なツリー構造のトポロジにおいて実行した場合の経路競合を示す。図５において、丸の図形はサーバを表し、ハッチングされていない正方形の図形はＬｅａｆスイッチを表し、ハッチングされた正方形の図形はＳｐｉｎｅスイッチを表す。図５において、経路Ｒ１において経路競合が発生し、経路Ｒ２においても経路競合が発生する。このケースにおいては、例えば図６に示すように、ツリー構造をファットツリー構造に変えることで経路競合を回避することが可能であるが、ファットツリー構造を採用すると総スイッチ数は図５の例よりも多くなる。
【００２０】
図７は、本実施の形態のラテン方陣ファットツリーシステム１０００を示す図である。本実施の形態においては、１３台のＳｐｉｎｅスイッチと、１３台のＬｅａｆスイッチとの接続形態がラテン方陣ファットツリーである。各Ｌｅａｆスイッチには４台のサーバが接続されているので、ラテン方陣ファットツリーシステム１０００は、並列分散処理を実行する５２台のサーバを有する。Ｓｐｉｎｅスイッチ及びＬｅａｆスイッチは、例えばインフィニバンドスイッチである。サーバは、例えば、物理サーバである。以下では、Ｌｅａｆスイッチに接続されるサーバの数をｄとする。本実施の形態においてはｄ＝４である。
【００２１】
なお、図７の例においてはＳｐｉｎｅスイッチの数及びＬｅａｆスイッチの数は１３であるが、１３以外であってもよい。他の例については、付録を参照されたい。
【００２２】
図７において、各Ｓｐｉｎｅスイッチ及び各Ｌｅａｆスイッチには、図７に示したラテン方陣ファットツリーに対応する有限射影平面の点を表す文字列が付されている。図８は、図７に示したラテン方陣ファットツリーに対応する有限射影平面を示す図である。図８に示した有限射影平面の位数は３であり、Ｓｐｉｎｅスイッチ及びＬｅａｆスイッチのポート数は８である。点はＬｅａｆスイッチを表し、直線はＳｐｉｎｅスイッチを表す。図７に示したように格子部分を定めた場合において、ＬｅａｆスイッチＰ、ＬｅａｆスイッチＰ（０）、ＬｅａｆスイッチＰ（１）及びＬｅａｆスイッチＰ（２）は無限遠点に相当する。なお、有限射影平面については付録を参照されたい。
【００２３】
本実施の形態のラテン方陣ファットツリーシステム１０００においては、経路競合を回避するため、規則的且つ固定的なルーティングが行われるインフィニバンドのネットワークが利用される。図９を用いて、インフィニバンドのネットワークにおけるルーティングについて説明する。図９において、丸の図形はサーバを表し、正方形の図形はスイッチを表す。線分はインフィニバンドのリンクを表し、線分の傍にある文字列は宛先のサーバの識別情報を表す。太い実線の矢印は通信経路を表す。
【００２４】
図９の例においては、サーバＮ３が、宛先がサーバＮ１であるパケットを送信する。パケットのヘッダには、宛先の識別情報（例えばＬＩＤ（Local IDentifier））が含まれる。各スイッチにおける各出力ポートには宛先のサーバの識別情報が対応付けられているので、各スイッチは、パケットに含まれる宛先の識別情報に対応する出力ポートにパケットを出力する。図９の例では、パケットはスイッチＳＷ１、スイッチＳＷ２及びスイッチＳＷ４を経由してサーバＮ１に到達する。
【００２５】
このように、本実施の形態のネットワークは、イーサネット（登録商標）のように自動的に経路が決定されるネットワークではなく、規則的且つ固定的なルーティングが行われるネットワークである。
【００２６】
なお、上記の識別情報とは別に、各サーバには番号が割り振られているとする。具体的には、各Ｌｅａｆスイッチに接続される４台の各サーバには、０から３までのいずれかの番号が割り振られ、各Ｌｅａｆスイッチには「０」が割り振られたサーバと「１」が割り振られたサーバと「２」が割り振られたサーバと「３」が割り振られたサーバとが接続される。
【００２７】
図１０に示すように、ラテン方陣ファットツリーシステム１０００は管理装置３に管理ＬＡＮ（Local Area Network）等で接続され、ラテン方陣ファットツリーシステム１０００における通信は管理装置３により管理される。管理装置３は、通信表生成部３０１と、通信表格納部３０３と、トポロジデータ格納部３０５とを有する。通信表生成部３０１は、第１生成部３０１１と、第２生成部３０１３と、第３生成部３０１５とを有する。通信表生成部３０１は、例えば、図４９におけるメモリ２５０１にロードされたプログラムがＣＰＵ（Central Processing Unit）２５０３に実行されることで実現される。通信表格納部３０３及びトポロジデータ格納部３０５は、例えば、図４９におけるメモリ２５０１又はＨＤＤ（Hard Disk Drive）２５０５に設けられる。
【００２８】
第１生成部３０１１は、トポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報と入力されたパラメータとに基づき、第１の通信表を生成し、生成された第１の通信表を通信表格納部３０３に格納する。第２生成部３０１３は、トポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報に基づき、第２の通信表（Ａ）及び第２の通信表（Ｂ）を生成し、生成された第２の通信表（Ａ）及び第２の通信表（Ｂ）を通信表格納部３０３に格納する。第３生成部３０１５は、トポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報に基づき、第３の通信表を生成し、生成された第３の通信表を通信表格納部３０３に格納する。通信表生成部３０１は、通信表格納部３０３に格納された第１の通信表、第２の通信表（Ａ）、第２の通信表（Ｂ）及び第３の通信表を、所定のタイミングで又はリクエストに応じて、集団通信を実行するサーバに送信する。
【００２９】
図１１は、サーバの機能ブロック図である。サーバは、処理部１０１と、通信表格納部１０３と、フェーズデータ格納部１０５とを有する。処理部１０１は、第１通信部１０１１と、第２通信部１０１３と、第３通信部１０１５と、第４通信部１０１７とを有する。処理部１０１は、例えば、図４９におけるメモリ２５０１にロードされたプログラムがＣＰＵ２５０３に実行されることで実現される。通信表格納部１０３及びフェーズデータ格納部１０５は、例えば、図４９におけるメモリ２５０１又はＨＤＤ２５０５に設けられる。
【００３０】
通信表格納部１０３には、管理装置３から受信した第１の通信表、第２の通信表（Ａ）、第２の通信表（Ｂ）及び第３の通信表が格納される。第１通信部１０１１は、通信表格納部１０３に格納された第１の通信表に従って通信を行う。第２通信部１０１３は、通信表格納部１０３に格納された第２の通信表（Ａ）に従って通信を行う。第３通信部１０１５は、通信表格納部１０３に格納された第２の通信表（Ｂ）に従って通信を行う。なお、第２通信部１０１３及び第３通信部１０１５は、フェーズデータ格納部１０５に格納されているデータに基づき集団通信のフェーズを制御する。第４通信部１０１７は、通信表格納部１０３に格納された第３の通信表に従って通信を行う。
【００３１】
次に、図１２乃至図４０を用いて、管理装置３が実行する処理について説明する。図１２は、管理装置３が実行する処理の処理フローを示す図である。
【００３２】
管理装置３における通信表生成部３０１は、ユーザからパラメータの入力を受け付ける（図１２：ステップＳ１）。入力されるパラメータは、ｎ、ｋ及びｍである。これらのパラメータについては後述する。
【００３３】
通信表生成部３０１は、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報をトポロジデータ格納部３０５から読み出す（ステップＳ３）。ネットワークトポロジの情報は、例えば、Ｓｐｉｎｅスイッチ、Ｌｅａｆスイッチ及びサーバの接続関係の情報等を含む。
【００３４】
通信表生成部３０１は、ステップＳ１において入力された情報とステップＳ３において読み出された情報とに基づき、有限射影平面の格子部分に矩形領域を設定する（ステップＳ５）。
【００３５】
図１３は、矩形領域について説明するための図である。図１３においては、ラテン方陣ファットツリーシステム１０００におけるＬｅａｆスイッチのうち無限遠点以外の点である格子部分に相当するＬｅａｆスイッチが示されている。パラメータｎは矩形領域の行数を表し、パラメータｋは矩形領域の列数を表し、パラメータｍは集団通信に参加するサーバの台数を表す。本実施の形態においては、矩形領域に含まれるＬｅａｆスイッチ（以下、実行スイッチと呼ぶ）以外のＬｅａｆスイッチに接続されるサーバは、集団通信には参加しない。以下の説明では、特に断りが無い限りｎ＝３、ｋ＝２、ｍ＝３であるとし、割り振られた番号が０又は１であるサーバが全対全通信を実行し、割り振られた番号が２であるサーバがオールリデュース通信を実行するものとする。
【００３６】
第１生成部３０１１は、ステップＳ５において設定された矩形領域とステップＳ３において読み出たネットワークトポロジの情報とに基づき、第１の通信表を生成する処理である第１生成処理を実行する（ステップＳ７）。第１生成処理については後で説明する。
【００３７】
第２生成部３０１３は、ステップＳ５において設定された矩形領域とステップＳ３において読み出されたネットワークトポロジの情報とに基づき、第２の通信表（Ａ）及び第２の通信表（Ｂ）を生成する処理である第２生成処理を実行する（ステップＳ９）。第２生成処理については後で説明する。
【００３８】
第３生成部３０１５は、ステップＳ５において設定された矩形領域とステップＳ３において読み出されたネットワークトポロジの情報とに基づき、第３の通信表を生成する処理である第３生成処理を実行する（ステップＳ１１）。第３生成処理については後で説明する。
【００３９】
通信表生成部３０１は、通信表格納部３０３に格納された第１の通信表、第２の通信表（Ａ）、第２の通信表（Ｂ）及び第３の通信表を読み出す。通信表生成部３０１は、第１の通信表、第２の通信表（Ａ）、第２の通信表（Ｂ）及び第３の通信表を、集団通信を実行するサーバ（すなわち、実行スイッチに接続されるサーバのうち、割り振られた番号が０であるサーバ、割り振られた番号が１であるサーバ、及び割り振られた番号が２であるサーバ）に送信する（ステップＳ１３）。そして処理は終了する。
【００４０】
以上のような処理を実行すれば、第１の通信表、第２の通信表（Ａ）、第２の通信表（Ｂ）及び第３の通信表を受信したサーバは、該サーバが実行すべき集団通信を適切な手順で実行できるようになる。
【００４１】
次に、図１４乃至図２０を用いて、第１生成処理について説明する。図１４は、第１生成処理の処理フローを示す図である。
【００４２】
第１生成部３０１１は、各実行スイッチでのオールリデュースの各フェーズにおいて通信を実行するサーバの識別情報を含む第１の通信表を生成する（図１４：ステップＳ２１）。
【００４３】
図１５乃至図１９は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。図１５乃至図１９において、正方形の図形は実行スイッチであるＬｅａｆスイッチを表し、丸の図形はサーバを表し、Ｌｅａｆスイッチとサーバとを結ぶ線分はリンクを表す。サーバに付された数字はサーバが持つ値を表す。
【００４４】
まず、図１５及び図１６を用いて、Ｌｅａｆスイッチに接続されるサーバの数が偶数（ここでは、２の冪である４）である場合について説明する。
【００４５】
例えば、図１５（ａ）に示すように、４台のサーバがそれぞれ「３」、「７」、「２」、「２」を持つとする。この場合、２台のサーバを含むペアの各々において値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００４６】
すると、図１５（ｂ）に示すように、２台のサーバが値「１０」を持ち、残りの２台のサーバが値「４」を持つ。そして、値「１０」を持つサーバと値「４」を持つサーバとを含む各ペアにおいて値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００４７】
これにより、最終的には図１６に示すように各サーバが値「１４」を持つ。
【００４８】
次に、図１７乃至図１９を用いて、Ｌｅａｆスイッチに接続されるサーバの数が奇数（ここでは５）である場合について説明する。
【００４９】
例えば、図１７（ａ）に示すように、５台のサーバがそれぞれ「１」、「４」、「５」、「２」、「８」を持つとする。この場合、５台のうち２台のサーバにおいて値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００５０】
すると、図１７（ｂ）に示すように、５台のサーバがそれぞれ「１」、「４」、「５」、「１０」、「１０」を持つ。そして、値「１」を持つサーバと値「４」を持つサーバとを含むペアと、値「５」を持つサーバと値「１０」を持つサーバとを含むペアとにおいて値が共有され値の演算が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００５１】
すると、図１８（ａ）に示すように、５台のサーバがそれぞれ「５」、「５」、「１５」、「１５」、「１０」を持つ。そして、値「５」を持つサーバと値「１５」を持つサーバとを含むペアの各々において値が共有され値の演算が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００５２】
すると、図１８（ｂ）に示すように、５台のサーバがそれぞれ「２０」、「２０」、「２０」、「２０」、「１０」を持つ。そして、値「２０」を持つサーバが値「１０」を持つサーバに対して値「２０」を通知する。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００５３】
すると、図１９に示すように、最終的に５台のサーバがそれぞれ値「２０」を持つようになる。
【００５４】
以上の説明は複数のサーバの間で行われるオールリデュースの一例についての説明であるが、サーバ数がこの例以外の数である場合においても、基本的には同様の方法でオールリデュースを行うことができる。
【００５５】
ここで、ｘ台（ｘは自然数）のサーバの間でのオールリデュースを行う場合における通信表を生成する処理（以下、Ａｌｌｒｅｄｕｃｅ（ｘ）のように呼ぶ）について説明する。本実施の形態においては、再帰的な処理によって通信表が生成される。
【００５６】
（１）Ｌｅａｆスイッチに接続されるサーバの数ｘが１である場合、処理は終了する。
【００５７】
（２）Ｌｅａｆスイッチに接続されるサーバの数ｘが２である場合、２台のサーバの間での通信についての通信情報（具体的には、サーバのペアの情報）が通信表に書き込まれる。
【００５８】
（３）Ｌｅａｆスイッチに接続されるサーバの数ｘが奇数２ｙ＋１（ｙは自然数）である場合、ｘ台のサーバのうち２台のサーバ（サーバＰおよびサーバＱ）が選択され、サーバＰとサーバＱとの間でオールリデュース通信についての通信情報が通信表に書き込まれる。そして、サーバＰ及びサーバＱのうちいずれかのサーバと残りの（２ｙ−１）台のサーバと（つまり、２ｙ台のサーバ）について、Ａｌｌｒｅｄｕｃｅ（２ｙ）が呼び出される。そして、Ａｌｌｒｅｄｕｃｅ（２ｙ）の結果をサーバＰからサーバＱに伝えるための通信情報が通信表に書き込まれる。
【００５９】
（４）Ｌｅａｆスイッチに接続されるサーバの数が２ｙ（ｙは２以上の自然数）である場合、サーバはｙ台のグループとｙ台のグループとに分けられ、同時並行でそれぞれのグループについてＡｌｌｒｅｄｕｃｅ（ｙ）が呼び出される。
【００６０】
以上のような処理を実行すれば、ｘ台のサーバの間でのオールリデュースを行う場合における通信表が生成される。図１５乃至図１９の説明から明らかなように、このような方法で生成された通信表に従ってオールリデュース通信が行われれば経路競合は発生しない。
【００６１】
図１４の説明に戻り、第１生成部３０１１は、ステップＳ２１において生成された第１の通信表を通信表格納部３０３に格納する（ステップＳ２３）。そして処理は呼び出し元に戻る。
【００６２】
図２０は、第１の通信表の一例を示す図である。図２０の例においては、フェーズ番号と、通信を実行するサーバのペアの情報とが第１の通信表に登録されている。Ｎ１等の文字列はサーバの識別情報（例えばＬＩＤ）を表す。通信１と通信２とは同時並行で実行される。例えばフェーズ１においては、サーバＮ１とサーバＮ２との間の通信と、サーバＮ３とサーバＮ４との間の通信とが同時並行で実行される。図２０に示した通信表によれば、フェーズ０乃至３における各サーバの通信相手は以下のとおりである。
【００６３】
サーバＮ１：−，Ｎ２，Ｎ３，−
サーバＮ２：−，Ｎ１，Ｎ４，−
サーバＮ３：−，Ｎ４，Ｎ１，−
サーバＮ４：Ｎ５，Ｎ３，Ｎ２，Ｎ５（送）
サーバＮ５：Ｎ４，−，−，Ｎ４（受）
【００６４】
ここで、「−」は通信が行われないことを表す。「（送）」は送信することを表し、「（受）」は受信することを表す。例えばサーバＮ５は、フェーズ０においてサーバＮ４と通信し、フェーズ１及び２においては通信を行わず、フェーズ３においてはサーバＮ４からデータを受信する。なお、図２０の例では１台の実行スイッチについての通信情報が示されているが、実際には各実行スイッチについての通信情報が第１の通信表に含まれる。
【００６５】
以上のような処理を実行すれば、矩形領域において、同じＬｅａｆスイッチに接続されるサーバは同じ結果を持つようになる。
【００６６】
次に、図２１乃至図３６を用いて、第２生成処理について説明する。図２１は、第２生成処理の処理フローを示す図である。上で述べたように、第１の実施の形態においては、割り振られた番号が「０」又は「１」であるサーバが全対全通信を実行し、割り振られた番号が「２」であるサーバがオールリデュース通信を実行するとする。
【００６７】
第２生成部３０１３は、全対全通信についての通信情報を含む第２の通信表（Ａ）を生成する（図２１：ステップＳ３１）。
【００６８】
図２２は、第２の通信表（Ａ）の一例を示す図である。第２の通信表（Ａ）には、全対全通信を実行するサーバについて、各フェーズ群の通信情報が格納されている。サーバの数が２であるので、各フェーズ群は２つのフェーズを含む。括弧内における第１の要素は有限射影平面における傾きを表し、括弧内における第２の要素は有限射影平面におけるホップ数を表す。「＊」はサーバがそのサーバ自身に対してデータを送信することを意味する。
【００６９】
第２の通信表（Ａ）の生成方法について簡単に説明する。まず、サーバ番号の列のうちいずれかの列を選択し、その列についてのサーバが全サーバと通信を行うように通信情報を書き込む。次に、選択されなかった列のうちいずれかの列について、サーバがが全サーバと通信を行うように通信情報を書き込む。但し、行方向において同一の傾きが存在しないように傾きが選択される（図２２に示すように、いずれの行においても同一の傾きが設定されたサーバは存在しない）。このような処理を繰り返すことによって第２の通信表（Ａ）が生成される。なお、この方法は生成方法の一例であり、この方法以外の方法によって第２の通信表（Ａ）を生成してもよい。
【００７０】
一例として、図２２に示した第２の通信表（Ａ）のフェーズ群０において行われる全対全通信について、図２３及び図２４を用いて説明する。
【００７１】
フェーズ群０においては、割り振られた番号が０であるサーバ（ここでは、サーバ「０」と呼ぶ）についての傾きが∞であり、ホップ数は１である。傾きが∞であることは縦方向の通信であることを意味する。従って、図２３に示すように、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，１）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，２）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」にデータを送信する。ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，１）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，２）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，０）に接続されるサーバ「０」にデータを送信する。また、フェーズ群０においては、割り振られた番号が１であるサーバ（ここでは、サーバ「１」と呼ぶ）についての傾きが２であり、ホップ数は１である。従って、図２３に示すように、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，２）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，０）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，１）に接続されるサーバ「１」にデータを送信する。ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，２）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，０）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，１）に接続されるサーバ「１」にデータを送信する。
【００７２】
図２４は、全対全通信で使用されるＳｐｉｎｅスイッチを示す図である。図２４に示すように、サーバ「０」が実行する全対全通信によって、ＳｐｉｎｅスイッチＬ（０）及びＳｐｉｎｅスイッチＬ（１）が使用される。サーバ「１」が実行する全対全通信によって、ＳｐｉｎｅスイッチＬ（１，０）、ＳｐｉｎｅスイッチＬ（１，１）、ＳｐｉｎｅスイッチＬ（１，２）、ＳｐｉｎｅスイッチＬ（２，０）、ＳｐｉｎｅスイッチＬ（２，１）及びＳｐｉｎｅスイッチＬ（２，２）が使用される。
【００７３】
フェーズ群０においては、１つのリンクの同一方向に同時に複数のパケットが送信されることがないので、経路競合は発生しない。なお、フェーズ群０において、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」は、ＬｅａｆスイッチＰ（０，１）に接続される２台のサーバにデータを送信する。従って、経路競合が発生しないようにするため、フェーズ群０には２つのフェーズが含まれる。フェーズ群０以外のフェーズも、同様に、２つのフェーズを含む。
【００７４】
また、他の例として、図２２に示した第２の通信表（Ａ）のフェーズ群３において行われる全対全通信について、図２５及び図２６を用いて説明する。
【００７５】
フェーズ群３においては、サーバ「０」についての傾きが１であり、ホップ数は１である。従って、図２５に示すように、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，１）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，２）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，０）に接続されるサーバ「０」にデータを送信する。ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，１）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，２）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」にデータを送信する。また、フェーズ群３においては、サーバ「１」についての傾きが∞であり、ホップ数は２である。従って、図２５に示すように、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，２）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，０）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，１）に接続されるサーバ「１」にデータを送信する。ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，２）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，０）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，１）に接続されるサーバ「１」にデータを送信する。
【００７６】
図２６は、全対全通信で使用されるＳｐｉｎｅスイッチを示す図である。図２６に示すように、サーバ「０」が実行する全対全通信によって、ＳｐｉｎｅスイッチＬ（１，０）、ＳｐｉｎｅスイッチＬ（１，１）、ＳｐｉｎｅスイッチＬ（１，２）、ＳｐｉｎｅスイッチＬ（２，０）、ＳｐｉｎｅスイッチＬ（２，１）及びＳｐｉｎｅスイッチＬ（２，２）が使用される。サーバ「１」が実行する全対全通信によって、ＳｐｉｎｅスイッチＬ（０）及びＳｐｉｎｅスイッチＬ（１）が使用される。
【００７７】
フェーズ群３においては、１つのリンクの同一方向に同時に複数のパケットが送信されることがないので、経路競合は発生しない。
【００７８】
また、他の例として、図２２に示した第２の通信表（Ａ）のフェーズ群４において行われる全対全通信について、図２７及び図２８を用いて説明する。
【００７９】
フェーズ群４においては、サーバ「０」についての傾きが２であり、ホップ数は１である。従って、図２７に示すように、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，２）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，０）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「０」はＬｅａｆスイッチＰ（１，１）に接続されるサーバ「０」にデータを送信する。ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，２）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」にデータを送信し、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「０」はＬｅａｆスイッチＰ（０，１）に接続されるサーバ「０」にデータを送信する。また、フェーズ群４においては、サーバ「１」についての傾きが０であり、ホップ数は１である。従って、図２７に示すように、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，０）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，１）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「１」はＬｅａｆスイッチＰ（１，２）に接続されるサーバ「１」にデータを送信する。ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，０）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，１）に接続されるサーバ「１」にデータを送信し、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「１」はＬｅａｆスイッチＰ（０，２）に接続されるサーバ「１」にデータを送信する。
【００８０】
図２８は、全対全通信で使用されるＳｐｉｎｅスイッチを示す図である。図２８に示すように、サーバ「０」が実行する全対全通信によって、ＳｐｉｎｅスイッチＬ（１，０）、ＳｐｉｎｅスイッチＬ（１，１）、ＳｐｉｎｅスイッチＬ（１，２）、ＳｐｉｎｅスイッチＬ（２，０）、ＳｐｉｎｅスイッチＬ（２，１）及びＳｐｉｎｅスイッチＬ（２，２）が使用される。サーバ「１」が実行する全対全通信によって、ＳｐｉｎｅスイッチＬ（０，０）、ＳｐｉｎｅスイッチＬ（０，１）及びＳｐｉｎｅスイッチＬ（０，２）が使用される。
【００８１】
フェーズ群４においては、１つのリンクの同一方向に同時に複数のパケットが送信されることがないので、経路競合は発生しない。
【００８２】
図２１の説明に戻り、第２生成部３０１３は、全対全通信の各フェーズ群のうちオールリデュース通信を実行可能なフェーズ群と、当該フェーズ群において利用可能な傾きとを特定する（ステップＳ３３）。
【００８３】
図２９は、オールリデュース通信を実行可能なフェーズ群と当該フェーズ群において利用可能な傾きとについて説明するための図である。ここでは、オールリデュース通信に傾き「０」及び「∞」を利用するとする。括弧外の数字は傾きを表し、括弧内の数字はホップ数を表す。図２９の例では、フェーズ群２のみにおいて、全対全通信に傾き「０」及び「∞」が利用されているので、フェーズ群２以外のフェーズ群においてはオールリデュース通信を実行することができる。フェーズ群０において、全対全通信に傾き「２」と傾き「∞」とが利用されるので、オールリデュース通信に傾き「０」を利用可能である。フェーズ群１において、全対全通信に傾き「∞」が利用されるので、オールリデュース通信に傾き「０」を利用可能である。フェーズ群３において、全対全通信に傾き「１」と傾き「∞」とが利用されるので、オールリデュース通信に傾き「０」を利用可能である。フェーズ群４において、全対全通信に傾き「０」と傾き「２」とが利用されるので、オールリデュース通信に傾き「∞」を利用可能である。フェーズ群５において、全対全通信に傾き「１」が利用されるので、オールリデュース通信に傾き「∞」を利用可能である。
【００８４】
また、例えば格子部分のサイズが５＊５であるようなラテン方陣ファットツリーシステムが有り、その格子部分に対して図３０に示すように矩形領域が設定されたとする。このような場合も、同様の方法によって、全対全通信の各フェーズ群のうちオールリデュース通信を実行可能なフェーズ群と、当該フェーズ群において利用可能な傾きとが特定される。具体的には、例えば図３１に示すような結果が得られる。
【００８５】
図２１の説明に戻り、第２生成部３０１３は、第１の傾き（例えば０）についてのオールリデュース通信と第２の傾き（例えば∞）についてのオールリデュース通信とについての通信情報を含む第２の通信表（Ｂ）を生成する（ステップＳ３５）。
【００８６】
図３２は、第２の通信表（Ｂ）の一例を示す図である。図３２の例では、各フェーズ群について、実行スイッチに接続されるサーバのうち割り振られた番号が２であるサーバ（ここでは、サーバ「２」と呼ぶ）により実行されるオールリデュースについての通信情報が格納される。第２の通信表（Ｂ）はオールリデュース通信についての通信表であるので、第１の通信表と同様の方法によって生成される。
【００８７】
矩形領域内の異なるＬｅａｆスイッチに接続されるサーバ間でのオールリデュースは、異なる２つの傾きについてのオールリデュース通信により実現される。図３２の例では、傾き「０」についてのオールリデュースと傾き「∞」についてのオールリデュースとによって、矩形領域内の異なるＬｅａｆスイッチに接続されるサーバ間でのオールリデュースが実現される。一般に、ｘ台のサーバが実行する全対全通信のフェーズ数はＯ（ｘ）であり、ｘ台のサーバが実行するオールリデュース通信のフェーズ数はＯ（ｌｏｇ（ｘ））（底は２）であるので、全体全通信の実行中にオールリデュース通信を完了することが可能である。
【００８８】
図３３は、傾き「０」についてのオールリデュースについて説明するための図である。傾き「０」についてのオールリデュースにより、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「２」と、ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「２」とが同じ結果を持つ。ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「２」と、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「２」とが同じ結果を持つ。ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「２」と、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「２」とが同じ結果を持つ。
【００８９】
図３４は、傾き「∞」についてのオールリデュースについて説明するための図である。傾き「∞」についてのオールリデュースにより、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「２」と、ＬｅａｆスイッチＰ（０，１）に接続されるサーバ「２」と、ＬｅａｆスイッチＰ（０，２）に接続されるサーバ「２」とが同じ結果を持つ。ＬｅａｆスイッチＰ（１，０）に接続されるサーバ「２」と、ＬｅａｆスイッチＰ（１，１）に接続されるサーバ「２」と、ＬｅａｆスイッチＰ（１，２）に接続されるサーバ「２」とが同じ結果を持つ。
【００９０】
従って、傾き「０」についてのオールリデュースと傾き「∞」についてのオールリデュースとを実行することで、矩形領域内において、各実行スイッチのサーバ「２」が同じ結果を持つ。
【００９１】
図３５は、図３２の第２の通信表（Ｂ）に示したフェーズ群０において実行されるオールリデュース通信によって使用されるＳｐｉｎｅスイッチを示す図である。図３５に示すように、フェーズ群０においては、サーバ「２」のオールリデュース通信によって、ＳｐｉｎｅスイッチＬ（０，０）と、ＳｐｉｎｅスイッチＬ（０，１）と、ＳｐｉｎｅスイッチＬ（０，２）とが使用される。図２４との比較から明らかなように、全対全通信によって使用されるＳｐｉｎｅスイッチとオールリデュース通信によって使用されるＳｐｉｎｅスイッチとが異なるので、経路競合は発生しない。
【００９２】
図３６は、図３２の第２の通信表（Ｂ）に示したフェーズ群４において実行されるオールリデュース通信によって使用されるＳｐｉｎｅスイッチを示す図である。図３６に示すように、フェーズ群０においては、サーバ「２」のオールリデュース通信によって、ＳｐｉｎｅスイッチＬ（０）と、ＳｐｉｎｅスイッチＬ（１）とが使用される。図２８との比較から明らかなように、全対全通信によって使用されるＳｐｉｎｅスイッチとオールリデュース通信によって使用されるＳｐｉｎｅスイッチとが異なるので、経路競合は発生しない。
【００９３】
図２１の説明に戻り、第２生成部３０１３は、第２の通信表（Ａ）及び第２の通信表（Ｂ）を通信表格納部３０３に格納する（ステップＳ３７）。そして処理は呼び出し元に戻る。
【００９４】
以上のように、第２生成処理においては、全対全通信とオールリデュース通信とを並行して実行するための第２の通信表（Ａ）及び第２の通信表（Ｂ）が生成される。
【００９５】
次に、図３７乃至図４０を用いて、第３生成処理について説明する。図３７は、第３生成処理の処理フローを示す図である。
【００９６】
第３生成部３０１５は、サーバ「２」から当該サーバ「２」と同じＬｅａｆスイッチに接続される他サーバへの結果配布における各フェーズで通信を実行するサーバの識別情報を含む第３の通信表を生成する（図３７：ステップＳ４１）。
【００９７】
図３８乃至図４０を用いて、第３の通信表にて実現される結果配布について説明する。図３８乃至図４０には、一例として、１台のＬｅａｆスイッチとそのＬｅａｆスイッチに接続される４台のサーバとが示されており、最も左に位置するサーバはサーバ「２」である。はじめに、図３８に示すように、サーバ「２」は右から２番目のサーバに値「７２」を送信する。
【００９８】
すると、図３９に示すように、サーバ「２」及び右から２番目のサーバは値「７２」を持ち、右から１番目のサーバ及び右から３番目のサーバは値「１４」を持つ。そして、図３９に示すように、サーバ「２」は値「７２」を右から３番目のサーバに送信し、右から２番目のサーバは値「７２」を右から１番目のサーバに送信する。
【００９９】
すると、図４０に示すように、各サーバはオールリデュースの結果である値「７２」を持つ。以上のようにして第３の通信表による結果配布が実現される。フェーズ数は２であり、いずれのフェーズにおいても、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
【０１００】
図３７の説明に戻り、第３生成部３０１５は、ステップＳ４１において生成された第３の通信表を通信表格納部３０３に格納する（ステップＳ４３）。そして処理は呼び出し元に戻る。なお、第３の通信表には、各実行スイッチにおける結果配布についての通信情報が、図２０に示した第１の通信表と同様の形式で格納されるので、ここでは詳細な説明を省略する。
【０１０１】
次に、図４１乃至図４３を用いて、サーバが実行する処理について説明する。本処理は、第１乃至第３の通信表を管理装置３から受信した各サーバが実行する処理である。
【０１０２】
図４１は、サーバが実行する処理の処理フローを示す図である。
【０１０３】
サーバにおける第１通信部１０１１は、フェーズ番号を表す変数ｉを０に設定する（図４１：ステップＳ５１）。変数ｉはフェーズデータ格納部１０５に格納される。
【０１０４】
第１通信部１０１１は、通信表格納部１０３に格納されている第１の通信表から、フェーズｉの通信情報を特定する（ステップＳ５３）。
【０１０５】
第１通信部１０１１は、自サーバ（すなわち、本処理を実行しているサーバ）がフェーズｉにおいて通信を実行するか判定する（ステップＳ５５）。自サーバがフェーズｉにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
【０１０６】
自サーバがフェーズｉにおいて通信を実行しない場合（ステップＳ５５：Ｎｏルート）、処理はステップＳ５９に移行する。一方、自サーバがフェーズｉにおいて通信を実行する場合（ステップＳ５５：Ｙｅｓルート）、第１通信部１０１１は、ステップＳ５３において特定された通信情報に従って通信を実行する（ステップＳ５７）。
【０１０７】
上で述べたように、第１の通信表に従って行われる通信は、同一のＬｅａｆスイッチに接続されるサーバ間でのオールリデュース通信であり、他のサーバから値を受信したサーバはオールリデュースに係る演算を実行する。
【０１０８】
第１通信部１０１１は、ｉ＝ｉmax1が成立するか判定する（ステップＳ５９）。ｉmax1は、第１の通信表に従って行われる通信のフェーズ番号の最大値である。ｉ＝ｉmax1が成立しない場合（ステップＳ５９：Ｎｏルート）、第１通信部１０１１は、ｉを１インクリメントする（ステップＳ６１）。そして処理はステップＳ５３に移行する。なお、フェーズの終了はバリア同期によって確認される。
【０１０９】
一方、ｉ＝ｉmax1が成立する場合（ステップＳ５９：Ｙｅｓルート）、処理は端子Ａを介して図４２のステップＳ６３に移行する。
【０１１０】
図４２の説明に移行し、処理部１０１は、フェーズ番号を表す変数ｉを０に設定する（図４２：ステップＳ６３）。
【０１１１】
処理部１０１は、通信表格納部１０３に格納されている第２の通信表（Ａ）から、フェーズｉの通信情報を特定し（ステップＳ６５）、通信表格納部１０３に格納されている第２の通信表（Ｂ）から、フェーズｉの通信情報を特定する（ステップＳ６６）。
【０１１２】
処理部１０１は、自サーバ（すなわち、本処理を実行しているサーバ）がフェーズｉにおいてオールリデュース通信を実行するか判定する（ステップＳ６７）。自サーバがフェーズｉにおいてオールリデュース通信を実行するか否かは、第２の通信表（Ｂ）から特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
【０１１３】
自サーバがフェーズｉにおいてオールリデュース通信を実行しない場合（ステップＳ６７：Ｎｏルート）、処理部１０１は、第２通信部１０１３を呼び出す。そして、第２通信部１０１３は、ステップＳ６５において特定された通信情報に従って全対全通信を実行する（ステップＳ６９）。そして処理はステップＳ７１に移行する。一方、自サーバがフェーズｉにおいてオールリデュース通信を実行する場合（ステップＳ６７：Ｙｅｓルート）、処理部１０１は、第２通信部１０１３及び第３通信部１０１５を呼び出す。そして、第２通信部１０１３はステップＳ６５において特定された通信情報に従って全対全通信を実行し、並行して、第３通信部１０１５はステップＳ６６において特定された通信情報に従ってオールリデュース通信を実行する（ステップＳ６８）。
【０１１４】
処理部１０１は、ｉ＝ｉmax2が成立するか判定する（ステップＳ７１）。ｉmax2は、第２の通信表（Ａ）及び第２の通信表（Ｂ）に従って行われる通信のフェーズ番号の最大値である。ｉ＝ｉmax2が成立しない場合（ステップＳ７１：Ｎｏルート）、処理部１０１は、第２通信部１０１３によるバリア同期および第３通信部１０１５によるバリア同期の終了後、ｉを１インクリメントする（ステップＳ７３）。そして処理はステップＳ６５に移行する。
【０１１５】
一方、ｉ＝ｉmax2が成立する場合（ステップＳ７１：Ｙｅｓルート）、処理は端子Ｂを介して図４３のステップＳ７５に移行する。
【０１１６】
図４３の説明に移行し、第４通信部１０１７は、フェーズ番号を表す変数ｉを０に設定する（図４３：ステップＳ７５）。
【０１１７】
第４通信部１０１７は、通信表格納部１０３に格納されている第３の通信表から、フェーズｉの通信情報を特定する（ステップＳ７７）。
【０１１８】
第４通信部１０１７は、自サーバ（すなわち、本処理を実行しているサーバ）がフェーズｉにおいて通信を実行するか判定する（ステップＳ７９）。自サーバがフェーズｉにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
【０１１９】
自サーバがフェーズｉにおいて通信を実行しない場合（ステップＳ７９：Ｎｏルート）、処理はステップＳ８３に移行する。一方、自サーバがフェーズｉにおいて通信を実行する場合（ステップＳ７９：Ｙｅｓルート）、第４通信部１０１７は、ステップＳ７７において特定された通信情報に従って通信を実行する（ステップＳ８１）。
【０１２０】
上で述べたように、第３の通信表に従って行われる通信は、オールリデュースの結果を持つサーバから当該サーバと同じＬｅａｆスイッチに接続される他のサーバへの結果配布である。
【０１２１】
第４通信部１０１７は、ｉ＝ｉmax3が成立するか判定する（ステップＳ８３）。ｉmax3は、第３の通信表に従って行われる通信のフェーズ番号の最大値である。ｉ＝ｉmax3が成立しない場合（ステップＳ８３：Ｎｏルート）、第４通信部１０１７は、ｉを１インクリメントする（ステップＳ８５）。そして処理はステップＳ７７に移行する。なお、フェーズの終了はバリア同期によって確認される。
【０１２２】
一方、ｉ＝ｉmax3が成立する場合（ステップＳ８３：Ｙｅｓルート）、処理は終了する。
【０１２３】
以上のように、上で述べた例においては、割り振られた番号が「０」又は「１」であるサーバは全対全通信を実行する一方で、割り振られた番号が「２」であるサーバはオールリデュース通信を実行することができる。よって、本実施の形態の方法によれば、ラテン方陣ファットツリーシステム１０００における特定のＬｅａｆスイッチ群を使用して複数の集団通信を並行して実行することができるようになる。
【０１２４】
また、上で述べたように、本実施の形態においては、オールリデュース通信の各過程において経路競合が発生することはない。
【０１２５】
［実施の形態２］
第１の実施の形態においては全対全通信とオールリデュース通信とが並行して実行されるが、或る演算のオールリデュース通信と別の演算のオールリデュース通信とが並行して実行されてもよい。
【０１２６】
図４４は、第２の実施の形態の第２生成処理の処理フローを示す図である。
【０１２７】
まず、第２生成部３０１３は、第１の傾き（例えば０）についてのオールリデュース通信と第２の傾き（例えば∞）についてのオールリデュース通信とについての通信情報を含む第２の通信表（Ａ）を生成する（図４４：ステップＳ９１）。
【０１２８】
第２生成部３０１３は、第１の傾きとは異なる第３の傾き（例えば１又は∞）についてのオールリデュース通信と第２の傾きとは異なる第４の傾き（例えば０又は１）についてのオールリデュース通信とについての通信情報を含む第２の通信表（Ｂ）を生成する（ステップＳ９３）。
【０１２９】
第２生成部３０１３は、第２の通信表（Ａ）及び第２の通信表（Ｂ）を通信表格納部３０３に格納する（ステップＳ９５）。そして処理は呼び出し元に戻る。
【０１３０】
以上のような処理を実行すれば、第１の傾きについてのオールリデュース通信と第３の傾きについてのオールリデュース通信とを並行して実行したとしても経路競合は発生せず、第２の傾きについてのオールリデュース通信と第４の傾きについてのオールリデュース通信とを並行して実行したとしても経路競合は発生しない。よって、第２の通信表（Ａ）により実現されるオールリデュース通信（例えば演算が加算であるオールリデュース通信）と、第２の通信表（Ｂ）により実現されるオールリデュース通信（例えば演算が乗算であるオールリデュース通信）とを、経路競合を発生させることなく並行して実行することができるようになる。
【０１３１】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理装置３及びサーバの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【０１３２】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１３３】
また、第１の実施の形態においては、オールリデュースの演算として加算が行われるが、加算以外の演算（例えば乗算）が行われてもよい。
【０１３４】
また、上で述べた例においては、傾き「０」と傾き「∞」との組合せによってオールリデュースが実現されるが、その他の異なる２つの傾きの組合せによってオールリデュースが実現されてもよい。
【０１３５】
［付録］
本付録においては、ラテン方陣ファットツリーおよび有限射影平面について説明する。
【０１３６】
有限射影平面とは、普通の平面に無限遠点をいくつか加え且つ「平行な２直線」をなくした平面に相当する。図４５に、位数（以下ｎとする）が２であり且つポート数が６（＝２（ｎ＋１））である場合の有限射影平面の構造を示す。図４５において、枠５１２で囲まれた３（＝ｎ＋１）台のＬｅａｆスイッチは無限遠点に相当する。
【０１３７】
有限射影平面においては、１個の点Ｐが設定され、ｎ個の点Ｐ（ｃ）（ｃ＝０，１，．．．，ｎ−１）が設定され、ｎ2個の点Ｐ（ｃ，ｒ）（ｃ，ｒ＝０，１，．．．，ｎ−１）が設定される。また、１本の直線Ｌ＝｛Ｐ，Ｐ（０），．．．，Ｐ（ｎ−１）｝が設定され、ｎ本の直線Ｌ＝｛Ｐ，Ｐ（ｃ，０），．．．，Ｐ（ｃ，ｎ−１）｝（ｃ＝０，１，．．．，ｎ−１）が設定され、ｎ2本の直線Ｌ（ｃ，ｒ）＝｛Ｐ（ｃ）およびＰ（ｉ，（ｒ＋ｃｉ） ｍｏｄ ｎ）｝（ｉ，ｃ，ｒ＝０，１，．．．，ｎ−１）が設定される。
【０１３８】
有限射影平面の特徴として、（ｎ2＋ｎ＋１）の点が存在し、直線の数は（ｎ2＋ｎ＋１）である。任意の２直線は１点で交わり、任意の２点を結ぶ直線がただ一つ存在する。但し、ｎは素数であるという制約がある。
【０１３９】
有限射影平面の構造は、トポロジ構造に置き換えられる。例えば、図４６（ａ）に示した有限射影平面の構造は、図４６（ｂ）に示したトポロジ構造に置き換えられる。図４６（ａ）において、直線はＳｐｉｎｅスイッチを表し、点はＬｅａｆスイッチを表す。図４６（ｂ）において、ハッチングされた矩形はＳｐｉｎｅスイッチを表し、ハッチングされていない矩形はＬｅａｆスイッチを表す。
【０１４０】
図４７（ａ）に示したトポロジ構造は、Ｓｐｉｎｅスイッチの数が７であり且つＬｅａｆスイッチの数が７であるラテン方陣ファットツリーのトポロジ構造であり、図４７（ｂ）に示した有限射影平面の構造に対応する。図４７（ａ）において太線で囲まれた部分のトポロジ構造は、図４６（ｂ）のトポロジ構造と同じである。また、図４７（ｂ）において太線で囲まれた部分の構造は、図４７（ａ）において太線で囲まれた部分のトポロジ構造に対応する。
【０１４１】
図４７（ｂ）に示した構造は、図４８に示す構造に変換することができる。図４８において、ハッチングされた格子部分に含まれる４（＝ｎ＊ｎ）台のＬｅａｆスイッチは、図４５において枠５１１に囲まれた部分に含まれる４台のＬｅａｆスイッチに対応する。格子部分において平行な直線群は、追加の点において交わるように変換される。すなわち、傾きが等しい直線同士が交わるように変換される。
【０１４２】
以上で付録を終了する。
【０１４３】
なお、上で述べた管理装置３及びサーバは、コンピュータ装置であって、図４９に示すように、メモリ２５０１とＣＰＵ２５０３とＨＤＤ２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１４４】
また、上で述べたＬｅａｆスイッチ及びＳｐｉｎｅスイッチは、図５０に示すように、メモリ２６０１とＣＰＵ２６０３とＨＤＤ２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図５０では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１４５】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１４６】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）複数のスパインスイッチと、（Ｂ）複数のリーフスイッチと、（Ｃ）複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する。そして、複数のスパインスイッチと複数のリーフスイッチとの接続形態はラテン方陣ファットツリーである。そして、複数のリーフスイッチのうちラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当する第１のリーフスイッチに接続される情報処理装置の各々が、（ｃ１）複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行う第１通信部と、（ｃ２）第１の集団通信の各フェーズにおいて、複数のスパインスイッチのうち第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う第２通信部とを有する。
【０１４７】
ラテン方陣ファットツリーシステムにおける特定のリーフスイッチを使用して第１の集団通信と第２の集団通信とを並行して実行できるようになる。また、第１の集団通信と第２の集団通信とで異なるスパインスイッチが使用されるので、経路競合の発生を抑制できるようになる。
【０１４８】
また、第１の集団通信は全対全通信であり、第２の集団通信はオールリデュース通信であってもよい。
【０１４９】
普通、全対全通信のフェーズ数はオールリデュース通信のフェーズ数より多い。よって、全対全通信の実行中にオールリデュース通信を実行することができる。
【０１５０】
また、第１の集団通信および第２の集団通信はオールリデュース通信であってもよく、第１の集団通信に係る演算と第２の集団通信に係る演算とが異なってもよい。
【０１５１】
参加する情報処理装置が同じであればフェーズ数は同じであるので、或るオールリデュース通信と別のオールリデュース通信とを並行して実行することができる。
【０１５２】
また、有限射影平面の点のうち第１のリーフスイッチに相当する点は矩形領域に含まれ、矩形領域の行数および列数は第１のリーフスイッチの各々に接続される情報処理装置の数以上であってもよい。
【０１５３】
スパインスイッチを効率的に使うことができ、また、矩形領域に対応するネットワークの許容範囲を超える通信が行われることを抑制できるので、経路競合の発生を抑制できるようになる。
【０１５４】
また、本情報処理システムは（Ｄ）管理装置をさらに有してもよい。そして、管理装置は、（ｄ１）第１のスパインスイッチを経由する経路で第１の集団通信を行うための第１の通信情報を生成し、（ｄ２）ラテン方陣ファットツリーにおける経路の中から第２のスパインスイッチを経由する経路を特定し、（ｄ３）第１の集団通信の各フェーズにおいて第２のスパインスイッチを経由する経路で第２の集団通信を行うための第２の通信情報を生成し、（ｄ４）生成された第１の通信情報と第２の通信情報とを、第１のリーフスイッチに接続される情報処理装置の各々に送信してもよい。そして、第１通信部は、（ｃ１１）受信した第１の通信情報に従って第１の集団通信を行ってもよく、第２通信部は、（ｃ２１）受信した第２の通信情報に従って第２の集団通信を行ってもよい。
【０１５５】
第１の集団通信及び第２の集団通信が全体として適切に行われるようになる。
【０１５６】
本実施の形態の第２の態様に係る第１情報処理装置は、複数のスパインスイッチと、複数のスパインスイッチとラテン方陣ファットツリーの接続形態で接続される複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムに含まれる。そして、第１情報処理装置は、（Ｅ）複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、複数のリーフスイッチのうちラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当し且つ第１情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行う第１通信部（実施の形態における第２通信部１０１３は上記第１通信部の一例である）と、（Ｆ）第１の集団通信の各フェーズにおいて、複数のスパインスイッチのうち第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う第２通信部（実施の形態における第３通信部１０１５は上記第２通信部の一例である）とを有する。
【０１５７】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１５８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５９】
（付記１）
複数のスパインスイッチと、
複数のリーフスイッチと、
前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、
を有し、
前記複数のスパインスイッチと前記複数のリーフスイッチとの接続形態はラテン方陣ファットツリーであり、
前記複数のリーフスイッチのうち前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当する第１のリーフスイッチに接続される情報処理装置の各々が、
前記複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行う第１通信部と、
前記第１の集団通信の各フェーズにおいて、前記複数のスパインスイッチのうち前記第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う第２通信部と、
を有する情報処理システム。
【０１６０】
（付記２）
前記第１の集団通信は全対全通信であり、前記第２の集団通信はオールリデュース通信である、
付記１記載の情報処理システム。
【０１６１】
（付記３）
前記第１の集団通信および前記第２の集団通信はオールリデュース通信であり、
前記第１の集団通信に係る演算と前記第２の集団通信に係る演算とが異なる、
付記１記載の情報処理システム。
【０１６２】
（付記４）
前記有限射影平面の点のうち前記第１のリーフスイッチに相当する点は矩形領域に含まれ、前記矩形領域の行数および列数は前記第１のリーフスイッチの各々に接続される情報処理装置の数以上である、
付記１乃至３のいずれか１つ記載の情報処理システム。
【０１６３】
（付記５）
管理装置
をさらに有し、
前記管理装置は、
前記第１のスパインスイッチを経由する経路で前記第１の集団通信を行うための第１の通信情報を生成し、
前記ラテン方陣ファットツリーにおける経路の中から前記第２のスパインスイッチを経由する経路を特定し、
前記第１の集団通信の各フェーズにおいて前記第２のスパインスイッチを経由する経路で前記第２の集団通信を行うための第２の通信情報を生成し、
生成された前記第１の通信情報と前記第２の通信情報とを、前記第１のリーフスイッチに接続される情報処理装置の各々に送信し、
前記第１通信部は、
受信した前記第１の通信情報に従って前記第１の集団通信を行い、
前記第２通信部は、
受信した前記第２の通信情報に従って前記第２の集団通信を行う、
付記１乃至４のいずれか１つ記載の情報処理システム。
【０１６４】
（付記６）
複数のスパインスイッチと、複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムにおいて実行される情報処理方法であって、
前記複数のスパインスイッチと前記複数のリーフスイッチとの接続形態はラテン方陣ファットツリーであり、
前記複数のリーフスイッチのうち前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当する第１のリーフスイッチに接続される情報処理装置の各々が、
前記複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行い、
前記第１の集団通信の各フェーズにおいて、前記複数のスパインスイッチのうち前記第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う、
処理を含む情報処理方法。
【０１６５】
（付記７）
複数のスパインスイッチと、前記複数のスパインスイッチとラテン方陣ファットツリーの接続形態で接続される複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムにおける前記複数の情報処理装置のうちの第１情報処理装置であって、
前記複数のスパインスイッチのうち第１のスパインスイッチを経由する経路で、前記複数のリーフスイッチのうち前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点の少なくとも一部の点に相当し且つ前記第１情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と第１の集団通信を行う第１通信部と、
前記第１の集団通信の各フェーズにおいて、前記複数のスパインスイッチのうち前記第１のスパインスイッチとは異なる第２のスパインスイッチを経由する経路で、前記第１のリーフスイッチに接続される他の情報処理装置と第２の集団通信を行う第２通信部と、
を有する第１情報処理装置。
【符号の説明】
【０１６６】
１０００  ラテン方陣ファットツリーシステム
３  管理装置    ３０１  通信表生成部
３０１１  第１生成部    ３０１３  第２生成部
３０１５  第３生成部    ３０３  通信表格納部
３０５  トポロジデータ格納部    １０１  処理部
１０１１  第１通信部    １０１３  第２通信部
１０１５  第３通信部    １０１７  第４通信部
１０３  通信表格納部    １０５  フェーズデータ格納部
【図１】
2019008650.tif 000003
【図２】
2019008650.tif 000004
【図３】
2019008650.tif 000005
【図４】
2019008650.tif 000006
【図５】
2019008650.tif 000007
【図６】
2019008650.tif 000008
【図７】
2019008650.tif 000009
【図８】
2019008650.tif 000010
【図９】
2019008650.tif 000011
【図１０】
2019008650.tif 000012
【図１１】
2019008650.tif 000013
【図１２】
2019008650.tif 000014
【図１３】
2019008650.tif 000015
【図１４】
2019008650.tif 000016
【図１５】
2019008650.tif 000017
【図１６】
2019008650.tif 000018
【図１７】
2019008650.tif 000019
【図１８】
2019008650.tif 000020
【図１９】
2019008650.tif 000021
【図２０】
2019008650.tif 000022
【図２１】
2019008650.tif 000023
【図２２】
2019008650.tif 000024
【図２３】
2019008650.tif 000025
【図２４】
2019008650.tif 000026
【図２５】
2019008650.tif 000027
【図２６】
2019008650.tif 000028
【図２７】
2019008650.tif 000029
【図２８】
2019008650.tif 000030
【図２９】
2019008650.tif 000031
【図３０】
2019008650.tif 000032
【図３１】
2019008650.tif 000033
【図３２】
2019008650.tif 000034
【図３３】
2019008650.tif 000035
【図３４】
2019008650.tif 000036
【図３５】
2019008650.tif 000037
【図３６】
2019008650.tif 000038
【図３７】
2019008650.tif 000039
【図３８】
2019008650.tif 000040
【図３９】
2019008650.tif 000041
【図４０】
2019008650.tif 000042
【図４１】
2019008650.tif 000043
【図４２】
2019008650.tif 000044
【図４３】
2019008650.tif 000045
【図４４】
2019008650.tif 000046
【図４５】
2019008650.tif 000047
【図４６】
2019008650.tif 000048
【図４７】
2019008650.tif 000049
【図４８】
2019008650.tif 000050
【図４９】
2019008650.tif 000051
【図５０】
2019008650.tif 000052