(57)【要約】      （修正有）【課題】オールリデュース通信を行う場合に経路競合を回避する多層フルメッシュシステムを提供する。【解決手段】第１の情報処理装置は、第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行う第１通信部と、第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、第１のリーフスイッチに接続されるスパインスイッチに接続され且つ第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、第１のオールリデュース通信の結果を用いて行う第２通信部と、第２通信部による処理の結果を、第１のリーフスイッチに接続される他の情報処理装置に送信する第３通信部とを有する。【選択図】図７
2018185650.tif 000002
【特許請求の範囲】
【請求項１】
複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける前記複数の情報処理装置のうちの第１の情報処理装置であって、
前記第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行う第１通信部と、
前記第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、前記第１のリーフスイッチに接続されるスパインスイッチに接続され且つ前記第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、前記第１のオールリデュース通信の結果を用いて行う第２通信部と、
前記第２通信部による処理の結果を、前記第１のリーフスイッチに接続される他の情報処理装置に送信する第３通信部と、
を有する第１の情報処理装置。
【請求項２】
前記第２通信部は、
前記第２のリーフスイッチに接続される１の情報処理装置との前記第２のオールリデュース通信を、前記第１のオールリデュース通信の結果を用いて行い、
前記第３のリーフスイッチに接続される１の情報処理装置との前記第３のオールリデュース通信を、前記第２のオールリデュース通信の結果を用いて行う、
請求項１記載の第１の情報処理装置。
【請求項３】
前記第２通信部は、
前記第３のリーフスイッチに接続される１の情報処理装置との前記第３のオールリデュース通信を、前記第１のオールリデュース通信の結果を用いて行い、
前記第２のリーフスイッチに接続される１の情報処理装置との前記第２のオールリデュース通信を、前記第３のオールリデュース通信の結果を用いて行う、
請求項１記載の第１の情報処理装置。
【請求項４】
前記複数の情報処理装置の各々が通信に使用する通信表を生成し、生成した前記通信表を、前記複数の情報処理装置のうち前記第１の情報処理装置以外の情報処理装置に送信する生成部
をさらに有する請求項１乃至３のいずれか１つ記載の第１の情報処理装置。
【請求項５】
複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける前記複数の情報処理装置のうちの第１の情報処理装置により実行される情報処理方法であって、
前記第１の情報処理装置が、
前記第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行い、
前記第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、前記第１のリーフスイッチに接続されるスパインスイッチに接続され且つ前記第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、前記第１のオールリデュース通信の結果を用いて行い、
前記第２のオールリデュース通信および前記第３のオールリデュース通信の結果を、前記第１のリーフスイッチに接続される他の情報処理装置に送信する、
処理を実行する情報処理方法。
【請求項６】
複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける前記複数の情報処理装置のうちの第１の情報処理装置に実行させるプログラムであって、
前記第１の情報処理装置に、
前記第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行い、
前記第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、前記第１のリーフスイッチに接続されるスパインスイッチに接続され且つ前記第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、前記第１のオールリデュース通信の結果を用いて行い、
前記第２のオールリデュース通信および前記第３のオールリデュース通信の結果を、前記第１のリーフスイッチに接続される他の情報処理装置に送信する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集団通信の技術に関する。
【背景技術】
【０００２】
並列計算機が実行する並列分散処理のスループットを高めるためには、ノード及びスイッチの接続形態（すなわちネットワークトポロジ）を最適化して並列計算機内での通信を効率的に行うことが重要である。また、より少ないスイッチでより多くのノードを接続するようにネットワークトポロジを最適化すれば、並列計算機の構築コストを抑えることができる。
【０００３】
或る文献は、同一のスイッチ数であってもファットツリートポロジと比べてより多くのノードを接続可能なトポロジである多層フルメッシュトポロジが採用されたシステム（以下、多層フルメッシュシステムと呼ぶ）を開示する。
【０００４】
但し、多層フルメッシュシステムにおいては通信の効率化のため経路が少ないので、経路競合が発生しやすい。上記の文献には、全対全（all-to-all）通信の実行時の経路競合を回避する方法が開示されているが、オールリデュース通信の実行時の経路競合を回避する方法は検討されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−２３２８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１つの側面では、多層フルメッシュシステムにおいてオールリデュース通信を行う場合に経路競合が発生することを回避するための技術を提供することである。
【課題を解決するための手段】
【０００７】
一態様に係る第１の情報処理装置は、複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける複数の情報処理装置のうちの第１の情報処理装置である。そして、第１の情報処理装置は、第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行う第１通信部と、第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、第１のリーフスイッチに接続されるスパインスイッチに接続され且つ第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、第１のオールリデュース通信の結果を用いて行う第２通信部と、第２通信部による処理の結果を、第１のリーフスイッチに接続される他の情報処理装置に送信する第３通信部とを有する。
【発明の効果】
【０００８】
１つの側面では、多層フルメッシュシステムにおいてオールリデュース通信を行う場合に経路競合が発生することを回避できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、オールリデュース通信について説明するための図である。
【図２】図２は、オールリデュース通信について説明するための図である。
【図３】図３は、オールリデュース通信について説明するための図である。
【図４】図４は、オールリデュース通信について説明するための図である。
【図５】図５は、オールリデュース通信を一般的なツリー構造のトポロジにおいて実行した場合の経路競合を示す図である。
【図６】図６は、ファットツリー構造のトポロジにおいて実行した場合の経路競合を示す図である。
【図７】図７は、本実施の形態の多層フルメッシュシステムを示す図である。
【図８】図８は、インフィニバンドのネットワークにおけるルーティングについて説明するための図である。
【図９】図９は、多層フルメッシュシステムに接続される管理装置の機能ブロック図である。
【図１０】図１０は、第１の実施の形態のノードの機能ブロック図である。
【図１１】図１１は、第１の実施の形態の多層フルメッシュシステムが全体として実行する処理の処理フローを示す図である。
【図１２】図１２は、各Ｌｅａｆスイッチの配下のノード間で行われるオールリデュース通信を説明するための図である。
【図１３】図１３は、各Ｌｅａｆスイッチの配下のノード間で行われるオールリデュース通信を説明するための図である。
【図１４】図１４は、各Ｌｅａｆスイッチの配下のノード間で行われるオールリデュース通信を説明するための図である。
【図１５】図１５は、各Ｌｅａｆスイッチの配下のノード間で行われるオールリデュース通信を説明するための図である。
【図１６】図１６は、各Ｌｅａｆスイッチの配下のノード間で行われるオールリデュース通信を説明するための図である。
【図１７】図１７は、各層においてＩＤが所定番号であるノードの間で行われるオールリデュース通信を説明するための図である。
【図１８】図１８は、各層においてＩＤが所定番号であるノードの間で行われるオールリデュース通信を説明するための図である。
【図１９】図１９は、各層においてＩＤが所定番号であるノードの間で行われるオールリデュース通信を説明するための図である。
【図２０】図２０は、各カラムにおいてＩＤが所定番号であるノードの間で行われるオールリデュース通信を説明するための図である。
【図２１】図２１は、各Ｌｅａｆスイッチの配下においてＩＤが所定番号であるノードから他ノードに結果を送信する場合の通信を示す図である。
【図２２】図２２は、管理装置が通信表を生成する処理の処理フローを示す図である。
【図２３】図２３は、通信表の一例を示す図である。
【図２４】図２４は、各ノードがパケットを送信する場合に実行する処理の処理フローを示す図である。
【図２５】図２５は、多層フルメッシュシステムにおける一部のノードが参加するケースを説明するための図である。
【図２６】図２６は、第３の実施の形態の多層フルメッシュシステムが全体として実行する処理の処理フローを示す図である。
【図２７】図２７は、第４の実施の形態のノードの機能ブロック図である。
【図２８】図２８は、コンピュータの機能ブロック図である。
【図２９】図２９は、中継装置の機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
はじめに、オールリデュース通信について説明する。
【００１１】
図１乃至図４は、オールリデュース通信について説明するための図である。オールリデュース通信とは、対象の全ノードが持つデータを用いて実行した演算の結果を対象の全ノードが持つための通信のことであり、オールリデュースとは、その演算のことである。例えば図１においては、ノードｎ０が値「４」を持っており、ノードｎ１が値「８」を持っており、ノードｎ２が値「１」を持っており、ノードｎ３が値「５」を持っており、ノードｎ４が値「６」を持っており、ノードｎ５が値「３」を持っている。オールリデュースにおいて指定された演算が「加算」である場合、ノードｎ０乃至ｎ５はそれぞれ値「２７」を持つことになる。
【００１２】
図１の右側に示した状態を実現するためのオールリデュース通信は、例えば図２及び図３に示すように行われる。まず、図２（ａ）に示すように、ノードｎ０とノードｎ３との間で値が共有されて加算により値「９」が算出され、ノードｎ１とノードｎ４との間で値が共有されて加算により値「１４」が算出され、ノードｎ２とノードｎ５との間で値が共有されて加算により値「４」が算出される。
【００１３】
そして、図２（ｂ）に示すように、ノードｎ０とノードｎ１との間で値が共有されて加算により値「２３」が算出され、ノードｎ３とノードｎ４との間で値が共有されて加算により値「２３」が算出される。
【００１４】
そして、図３（ａ）に示すように、ノードｎ１とノードｎ２との間で値が共有されて加算により値「２７」が算出され、ノードｎ４とノードｎ５との間で値が共有されて加算により値「２７」が算出される。
【００１５】
最後に、図３（ｂ）に示すように、ノードｎ１がノードｎ０に値「２７」を送信し、ノードｎ４がノードｎ３に値「２７」を送信する。これにより、図３（ｂ）に示すように、ノードｎ０乃至ｎ５が値「２７」を持つことができる。
【００１６】
ここで、対象はノードｎ０乃至ｎ５の全てでなくてもよく、ノードｎ０乃至ｎ５のうち一部のノードを対象としてもよい。一例として、ノードｎ０、ｎ１、ｎ３及びｎ４を対象とする場合のオールリデュース通信について説明する。まず、図４（ａ）に示すように、ノードｎ０とノードｎ３との間で値が共有されて加算により値「９」が算出され、ノードｎ１とノードｎ４との間で値が共有されて加算により値「１４」が算出される。
【００１７】
そして、図４（ｂ）に示すように、ノードｎ０とノードｎ１との間で値が共有されて加算により値「２３」が算出され、ノードｎ３とノードｎ４との間で値が共有されて加算により値「２３」が算出される。これにより、ノードｎ０、ｎ１、ｎ３及びｎ４が値「２３」を持つことができる。
【００１８】
以下では、このようなオールリデュース通信を多層フルメッシュシステムにおいて実行する場合に経路競合が発生しないようにすることを考える。ここで、経路競合とは、１つの経路の同一方向に同時に複数のパケットが送信されることを意味する。例として、図５に、オールリデュース通信を一般的なツリー構造のトポロジにおいて実行した場合の経路競合を示す。図５において、丸の図形はノードを表し、ハッチングされていない正方形の図形はＬｅａｆスイッチを表し、ハッチングされた正方形の図形はＳｐｉｎｅスイッチを表す。図５において、経路Ｒ１において経路競合が発生し、経路Ｒ２においても経路競合が発生する。このケースにおいては、例えば図６に示すように、ツリー構造をファットツリー構造に変えることで経路競合を回避することが可能であるが、総スイッチ数は図５の例よりも多くなる。
【００１９】
図７は、本実施の形態の多層フルメッシュシステム１０００を示す図である。図７の例では、Ｌｅａｆスイッチ及びＳｐｉｎｅスイッチのポート数は６であり、層の数は３であり、３６台のノードが多層フルメッシュシステム１０００に含まれる。但し、Ｌｅａｆスイッチ及びＳｐｉｎｅスイッチのポート数、層の数及びノード数は、図７に示した例には限られない。
【００２０】
ＳｐｉｎｅスイッチＡは、Ｌｅａｆスイッチａ１、Ｌｅａｆスイッチｂ１、Ｌｅａｆスイッチａ２、Ｌｅａｆスイッチｂ２、Ｌｅａｆスイッチａ３及びＬｅａｆスイッチｂ３に接続される。
【００２１】
ＳｐｉｎｅスイッチＢは、Ｌｅａｆスイッチａ１、Ｌｅａｆスイッチｃ１、Ｌｅａｆスイッチａ２、Ｌｅａｆスイッチｃ２、Ｌｅａｆスイッチａ３及びＬｅａｆスイッチｃ３に接続される。
【００２２】
ＳｐｉｎｅスイッチＣは、Ｌｅａｆスイッチａ１、Ｌｅａｆスイッチｄ１、Ｌｅａｆスイッチａ２、Ｌｅａｆスイッチｄ２、Ｌｅａｆスイッチａ３及びＬｅａｆスイッチｄ３に接続される。
【００２３】
ＳｐｉｎｅスイッチＤは、Ｌｅａｆスイッチｂ１、Ｌｅａｆスイッチｃ１、Ｌｅａｆスイッチｂ２、Ｌｅａｆスイッチｃ２、Ｌｅａｆスイッチｂ３及びＬｅａｆスイッチｃ３に接続される。
【００２４】
ＳｐｉｎｅスイッチＥは、Ｌｅａｆスイッチｂ１、Ｌｅａｆスイッチｄ１、Ｌｅａｆスイッチｂ２、Ｌｅａｆスイッチｄ２、Ｌｅａｆスイッチｂ３及びＬｅａｆスイッチｄ３に接続される。
【００２５】
ＳｐｉｎｅスイッチＦは、Ｌｅａｆスイッチｃ１、Ｌｅａｆスイッチｄ１、Ｌｅａｆスイッチｃ２、Ｌｅａｆスイッチｄ２、Ｌｅａｆスイッチｃ３及びＬｅａｆスイッチｄ３に接続される。
【００２６】
各Ｌｅａｆスイッチには３台のノードが接続される。
【００２７】
各ノードは、例えばＭＰＩ（Message Passing Interface）等の通信ライブラリを使用して通信を行う情報処理装置である。
【００２８】
本実施の形態においては、経路競合を回避するため、規則的且つ固定的なルーティングが行われるインフィニバンドのネットワークが利用される。図８を用いて、インフィニバンドのネットワークにおけるルーティングについて説明する。図８において、丸の図形はノードを表し、正方形の図形はネットワークスイッチを表す。線分はインフィニバンドのリンクを表し、線分の傍にある数値は宛先のノードの識別情報を表す。太い実線の矢印は通信経路を表す。
【００２９】
図８においては、ノードＮ３が、宛先がノードＮ１であるパケットを送信する。パケットのヘッダには、宛先の識別情報（例えばＬＩＤ（Local IDentifier））が含まれる。各ネットワークスイッチにおける各出力ポートには宛先のノードの識別情報が対応付けられているので、各ネットワークスイッチは、パケットに含まれる宛先の識別情報に対応する出力ポートにパケットを出力する。図８の例では、パケットはネットワークスイッチＳＷ１、ネットワークスイッチＳＷ２及びネットワークスイッチＳＷ４を経由してノードＮ１に到達する。
【００３０】
すなわち、本実施の形態のネットワークは、イーサネット（登録商標）のように自動的に経路が決定されるネットワークではなく、規則的且つ固定的なルーティングが行われるネットワークである。
【００３１】
図９は、多層フルメッシュシステム１０００に接続される管理装置３の機能ブロック図である。管理装置３は、生成部３０１と、通信表格納部３０３とを含む。
【００３２】
生成部３０１は、例えば、図２８におけるメモリ２５０１に格納されたプログラムがＣＰＵ（Central Processing Unit）２５０３により実行されることで実現される。通信表格納部３０３は、図２８におけるメモリ２５０１又はＨＤＤ（Hard Disk Drive）２５０５に設けられる。
【００３３】
生成部３０１は、多層フルメッシュシステム１０００のトポロジの情報に基づき通信表を生成する。生成部３０１は、生成した通信表を通信表格納部３０３に格納する。生成部３０１は、通信表格納部３０３に格納された通信表を、所定のタイミングで又はリクエストに応じて、各ノードに送信する。
【００３４】
図１０は、ノードの機能ブロック図である。ノードは、処理部１０１と、通信表格納部１０３とを有する。処理部１０１は、第１通信部１０１１と、第２通信部１０１３と、第３通信部１０１５とを有する。
【００３５】
処理部１０１は、例えば、図２８におけるメモリ２５０１に格納されたプログラムがＣＰＵ２５０３により実行されることで実現される。通信表格納部１０３は、図２８におけるメモリ２５０１又はＨＤＤ２５０５に設けられる。
【００３６】
通信表格納部１０３には、管理装置３から受信した通信表が格納される。処理部１０１における第１通信部１０１１、第２通信部１０１３及び第３通信部１０１５は、通信表格納部１０３に格納されている通信表に従ってパケットの送信及び受信を行う。
【００３７】
次に、図１１乃至図２４を用いて、本実施の形態の多層フルメッシュシステム１０００において実行される処理を説明する。
【００３８】
図１１は、第１の実施の形態の多層フルメッシュシステム１０００が全体として実行する処理の処理フローを示す図である。
【００３９】
多層フルメッシュシステム１０００は、各Ｌｅａｆスイッチの配下において、オールリデュースを実行する（図１１：ステップＳ１）。ステップＳ１においてはオールリデュース通信が行われる。ステップＳ１のオールリデュース通信は、通信表格納部１０３に格納されている通信表に従って、第１通信部１０１１によって行われる。
【００４０】
図１２乃至図１６は、各Ｌｅａｆスイッチの配下のノード間で行われるオールリデュース通信を説明するための図である。図１２乃至図１６において、正方形の図形はＬｅａｆスイッチを表し、丸の図形はノードを表し、Ｌｅａｆスイッチとノードとを結ぶ線分はリンクを表す。ノードに付された数字はノードが持つ値を表す。
【００４１】
まず、図１２及び図１３を用いて、Ｌｅａｆスイッチ配下のノードの数が偶数（ここでは、２の冪である４）である場合について説明する。
【００４２】
例えば、図１２（ａ）に示すように、４台のノードがそれぞれ「３」、「７」、「８」、「５」を持つとする。この場合、２台のノードを含むペアの各々において値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００４３】
すると、図１２（ｂ）に示すように、２台のノードが値「１０」を持ち、残りの２台のノードが値「１３」を持つ。そして、値「１０」を持つノードと値「１３」を持つノードとを含むペアの各々において値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００４４】
これにより、最終的には図１３に示すように各ノードが値「２３」を持つ。
【００４５】
次に、図１４乃至図１６を用いて、Ｌｅａｆスイッチ配下のノードの数が奇数（ここでは５）である場合について説明する。
【００４６】
例えば、図１４（ａ）に示すように、５台のノードがそれぞれ「１」、「４」、「５」、「２」、「８」を持つとする。この場合、５台のうち２台のノードにおいて値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００４７】
すると、図１４（ｂ）に示すように、５台のノードがそれぞれ「１」、「４」、「５」、「１０」、「１０」を持つ。そして、値「１」を持つノードと値「４」を持つノードとの間で値が共有され値の演算が行われ、値「５」を持つノードと値「１０」を持つノードとの間で値が共有され値の演算が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００４８】
すると、図１５（ａ）に示すように、５台のノードがそれぞれ「５」、「５」、「１５」、「１５」、「１０」を持つ。そして、値「５」を持つノードと値「１５」を持つノードとの間で値が共有され値の演算が行われ、値「５」を持つノードと値「１５」を持つノードとの間で値が共有され値の演算が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００４９】
すると、図１５（ｂ）に示すように、５台のノードがそれぞれ「２０」、「２０」、「２０」、「２０」、「１０」を持つ。そして、値「２０」を持つノードが値「１０」を持つノードに対して値「２０」を通知する。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００５０】
すると、図１６に示すように、最終的に５台のノードがそれぞれ値「２０」を持つようになる。
【００５１】
以上の説明はステップＳ１において行われるオールリデュースの一例についての説明であるが、ノード数がこの例以外の場合においても、基本的には同様の方法でオールリデュースを行うことができる。
【００５２】
図１１の説明に戻り、多層フルメッシュシステム１０００は、各層においてＩＤが所定番号（例えば０）であるノードによるオールリデュースを実行する（ステップＳ３）。ステップＳ３においては、オールリデュース通信が行われる。ステップＳ３のオールリデュース通信は、通信表格納部１０３に格納されている通信表に従って、第２通信部１０１３によって行われる。
【００５３】
図１７乃至図１９は、各層においてＩＤが所定番号であるノードの間で行われるオールリデュース通信を説明するための図である。
【００５４】
本実施の形態においては、各Ｌｅａｆスイッチの配下にあるノードにはＩＤが割り振られている。例えば、Ｌｅａｆスイッチａ１の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチａ２の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチａ３の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｂ１の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｂ２の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｂ３の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｃ１の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｃ２の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｃ３の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｄ１の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｄ２の配下のノードにはＩＤとして０、１、２が割り振られ、Ｌｅａｆスイッチｄ３の配下のノードにはＩＤとして０、１、２が割り振られる。
【００５５】
図１７に示すように、或る層においてＩＤが所定番号であるノードはハッチングされたノードであるとする。この場合のオールリデュースは、ステップＳ１において説明したオールリデュースと同様に行われる。例えば図１８に示すように、Ｌｅａｆスイッチａ１の配下のノードとＬｅａｆスイッチｃ１の配下のノードとの間でオールリデュースが行われ、Ｌｅａｆスイッチｂ１の配下のノードとＬｅａｆスイッチｄ１の配下のノードとの間でオールリデュースが行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。そして、図１９に示すように、Ｌｅａｆスイッチａ１の配下のノードとＬｅａｆスイッチｄ１の配下のノードとの間でオールリデュースが行われ、Ｌｅａｆスイッチｂ１の配下のノードとＬｅａｆスイッチｃ１の配下のノードとの間でオールリデュースが行われる。これにより、或る層においてＩＤが所定番号であるノードの各々は、同じ値を持つようになる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００５６】
図１１の説明に戻り、多層フルメッシュシステム１０００は、各カラムにおいて、ＩＤが所定番号であるノードによるオールリデュースを実行する（ステップＳ５）。ステップＳ５においては、オールリデュース通信が行われる。ステップＳ５の送信は、通信表格納部１０３に格納されている通信表に従って、第２通信部１０１３によって行われる。
【００５７】
図２０は、各カラムにおいてＩＤが所定番号であるノードの間で行われるオールリデュース通信を説明するための図である。
【００５８】
本実施の形態において、カラムは、層内の位置が同じであるＬｅａｆスイッチおよびそのＬｅａｆスイッチの配下にあるノードを含む。例えば図２０において、Ｌｅａｆスイッチａ１、Ｌｅａｆスイッチａ２及びＬｅａｆスイッチａ３と、Ｌｅａｆスイッチａ１の配下のノード、Ｌｅａｆスイッチａ２の配下のノード及びＬｅａｆスイッチａ３の配下のノードとは、同じカラムに属する。同様に、Ｌｅａｆスイッチｂ１、Ｌｅａｆスイッチｂ２及びＬｅａｆスイッチｂ３と、Ｌｅａｆスイッチｂ１の配下のノード、Ｌｅａｆスイッチｂ２の配下のノード及びＬｅａｆスイッチｂ３の配下のノードとは、同じカラムに属する。同様に、Ｌｅａｆスイッチｃ１、Ｌｅａｆスイッチｃ２及びＬｅａｆスイッチｃ３と、Ｌｅａｆスイッチｃ１の配下のノード、Ｌｅａｆスイッチｃ２の配下のノード及びＬｅａｆスイッチｃ３の配下のノードとは、同じカラムに属する。同様に、Ｌｅａｆスイッチｄ１、Ｌｅａｆスイッチｄ２及びＬｅａｆスイッチｄ３と、Ｌｅａｆスイッチｄ１の配下のノード、Ｌｅａｆスイッチｄ２の配下のノード及びＬｅａｆスイッチｄ３の配下のノードとは、同じカラムに属する。
【００５９】
言い換えると、同じＳｐｉｎｅスイッチに接続されるＬｅａｆスイッチとそのＬｅａｆスイッチの配下のノードとは同じカラムに属する。例えば、Ｌｅａｆスイッチａ１、Ｌｅａｆスイッチａ２及びＬｅａｆスイッチａ３はＳｐｉｎｅスイッチＡ、ＳｐｉｎｅスイッチＢ及びＳｐｉｎｅスイッチＣに接続されているので、Ｌｅａｆスイッチａ１、Ｌｅａｆスイッチａ２及びＬｅａｆスイッチａ３は同じカラムに属する。また、Ｌｅａｆスイッチａ１の配下のノード、Ｌｅａｆスイッチａ２の配下のノード及びＬｅａｆスイッチａ３の配下のノードは、同じカラムに属する。同様に、Ｌｅａｆスイッチｂ１、Ｌｅａｆスイッチｂ２及びＬｅａｆスイッチｂ３はＳｐｉｎｅスイッチＡ、ＳｐｉｎｅスイッチＤ及びＳｐｉｎｅスイッチＥに接続されているので、Ｌｅａｆスイッチｂ１、Ｌｅａｆスイッチｂ２及びＬｅａｆスイッチｂ３は同じカラムに属する。また、Ｌｅａｆスイッチｂ１の配下のノード、Ｌｅａｆスイッチｂ２の配下のノード及びＬｅａｆスイッチｂ３の配下のノードは、同じカラムに属する。同様に、Ｌｅａｆスイッチｃ１、Ｌｅａｆスイッチｃ２及びＬｅａｆスイッチｃ３はＳｐｉｎｅスイッチＢ、ＳｐｉｎｅスイッチＤ及びＳｐｉｎｅスイッチＦに接続されているので、Ｌｅａｆスイッチｃ１、Ｌｅａｆスイッチｃ２及びＬｅａｆスイッチｃ３は同じカラムに属する。また、Ｌｅａｆスイッチｃ１の配下のノード、Ｌｅａｆスイッチｃ２の配下のノード及びＬｅａｆスイッチｃ３の配下のノードは、同じカラムに属する。同様に、Ｌｅａｆスイッチｄ１、Ｌｅａｆスイッチｄ２及びＬｅａｆスイッチｄ３はＳｐｉｎｅスイッチＣ、ＳｐｉｎｅスイッチＥ及びＳｐｉｎｅスイッチＦに接続されているので、Ｌｅａｆスイッチｄ１、Ｌｅａｆスイッチｄ２及びＬｅａｆスイッチｄ３は同じカラムに属する。また、Ｌｅａｆスイッチｄ１の配下のノード、Ｌｅａｆスイッチｄ２の配下のノード及びＬｅａｆスイッチｄ３の配下のノードは、同じカラムに属する。
【００６０】
ステップＳ５におけるオールリデュースは、ステップＳ１において説明したオールリデュースと同様に行われる。図２０の例においては、各カラムにおけるノード数が３であるとして、各カラムにおいてオールリデュースが行われる。すなわち、同じタイプのハッチングが行われたノードの間でオールリデュースが行われる。ステップＳ１において説明したオールリデュースと同様のオールリデュースが行われるので、経路競合は発生しない。
【００６１】
図１１の説明に戻り、多層フルメッシュシステム１０００は、各Ｌｅａｆスイッチの配下において、ＩＤが所定番号であるノード（すなわち、ステップＳ５においてオールリデュースを実行したノード）から他ノードにステップＳ５の結果をブロードキャストで送信する（ステップＳ７）。ステップＳ７のオールリデュース通信は、通信表格納部１０３に格納されている通信表に従って、第３通信部１０１５によって行われる。そして処理は終了する。
【００６２】
図２１は、各Ｌｅａｆスイッチの配下においてＩＤが所定番号であるノードから他ノードに結果を送信する場合の通信を示す図である。このように、各Ｌｅａｆスイッチの配下において、ステップＳ５の結果を持つノードが他のノードに対して結果を送信する。これにより、多層フルメッシュシステム１０００内の各ノードがオールリデュースの結果を持つことができるようになる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００６３】
次に、図２２及び図２３を用いて、管理装置３が通信表を生成する処理について説明する。本処理は、例えば、多層フルメッシュシステム１０００の構築が完了した場合に実行される。
【００６４】
図２２は、管理装置３が通信表を生成する処理の処理フローを示す図である。
【００６５】
管理装置３の生成部３０１は、多層フルメッシュシステム１０００のトポロジの情報（例えばノード数の情報）をＨＤＤ２５０５から読み出す。そして、生成部３０１は、各Ｌｅａｆスイッチの配下のノードについて、オールリデュースの通信データを生成する（図２２：ステップＳ１１）。そして、生成部３０１は、生成した通信データを、通信表格納部３０３に格納されている通信表に書き込む。なお、ステップＳ１１において生成される通信データは、各Ｌｅａｆスイッチについてのオールリデュースを同時並行で行うための通信データである。
【００６６】
ここで、ｎ台（ｎは自然数）のノードの間でのオールリデュースを行う場合における通信表の生成手順（Ａｌｌｒｅｄｕｃｅ（ｎ））について説明する。本実施の形態においては、再帰的な処理によって通信表が生成される。
【００６７】
Ｌｅａｆスイッチ配下のノードの数ｎが１である場合、処理は終了する。
【００６８】
Ｌｅａｆスイッチ配下のノードの数ｎが２である場合、２台のノードの間での通信についての通信データが通信表に書き込まれる。
【００６９】
Ｌｅａｆスイッチ配下のノードの数ｎが奇数２ｍ＋１（ｍは自然数）である場合、ｎ台のノードのうち２台のノード（ノードＰおよびノードＱ）が選択され、ノードＰとノードＱとの間でオールリデュース通信についての通信データが通信表に書き込まれる。そして、ノードＰ及びノードＱのうちいずれかのノードと残りの（２ｍ−１）台のノードと（つまり、２ｍ台のノード）について、Ａｌｌｒｅｄｕｃｅ（２ｍ）が呼び出される。そして、Ａｌｌｒｅｄｕｃｅ（２ｍ）の結果をノードＰからノードＱに伝えるための通信データが通信表に書き込まれる。
【００７０】
Ｌｅａｆスイッチ配下のノードの数が２ｍ（ｍは２以上の自然数）である場合、Ｌｅａｆスイッチはｍ台のグループとｍ台のグループとに分けられ、同時並行でそれぞれのグループについてＡｌｌｒｅｄｕｃｅ（ｍ）が呼び出される。
【００７１】
図２２の説明に戻り、生成部３０１は、各層のいずれかのＬｅａｆスイッチを中心とする放射構造を特定する。そして、生成部３０１は、特定した放射構造の各々について、オールリデュースの通信データを生成する（ステップＳ１３）。そして、生成部３０１は、生成した通信データを、通信表格納部３０３に格納されている通信表に書き込む。なお、ステップＳ１３において生成される通信データは、各層におけるオールリデュースを同時並行で行うための通信データである。
【００７２】
ステップＳ１３における放射構造とは、例えば、図１８においてＬｅａｆスイッチａ１を中心とする２本の太い実線及び２本の太い破線で表される放射構造および図１９においてＬｅａｆスイッチａ１を中心とする２本の太い実線及び２本の太い破線で表される放射構造である。従って、図１８及び図１９の例であれば、ハッチングされた４台のノードの間でのオールリデュース通信の通信データがＡｌｌｒｅｄｕｃｅ（４）により生成される。
【００７３】
生成部３０１は、各Ｓｐｉｎｅスイッチを中心とする放射構造を特定する。そして、生成部３０１は、特定した放射構造について、オールリデュースの通信データを生成する（ステップＳ１５）。そして、生成部３０１は、生成した通信データを、通信表格納部３０３に格納されている通信表に書き込む。なお、ステップＳ１５において生成される通信データは、各カラムにおけるオールリデュースを同時並行で行うための通信データである。
【００７４】
ステップＳ１５における放射構造とは、例えば、図２０において同じハッチングがされた３台のノードを結ぶリンクで表される放射構造である。従って、図２０の例であれば、同じハッチングがされた３台のノードの間でのオールリデュース通信の通信データがＡｌｌｒｅｄｕｃｅ（３）により生成される。
【００７５】
生成部３０１は、各Ｌｅａｆスイッチの配下のノードについて、ブロードキャストの通信データを生成する（ステップＳ１７）。そして、生成部３０１は、生成した通信データを、通信表格納部３０３に格納されている通信表に書き込み、各ノードに対して通信表を送信する。そして処理は終了する。
【００７６】
図２３は、通信表の一例を示す図である。図２３の例においては、フェーズ番号と、実行される通信の内容とが通信表に登録されている。通信の内容における番号はノードのＩＤを表す。通信１と通信２とは同時並行で実行される。例えばフェーズ２においては、ノード１とノード２との間のオールリデュース通信と、ノード３とノード４との間のオールリデュース通信とが同時並行で実行される。図２３に示した通信表によれば、各ノードはフェーズ１乃至フェーズ４において以下のように動作する。
【００７７】
ノード１：−，２，３，−
ノード２：−，１，４，−
ノード３：−，４，１，−
ノード４：５，３，２，５（送）
ノード５：４，−，−，４（受）
【００７８】
ここで、「−」は通信が行われないことを表す。番号は通信相手のＩＤを表す。「（送）」は送信することを表し、「（受）」は受信することを表す。
【００７９】
次に、図２４を用いて、各ノードがパケットを送信する場合に実行する処理について説明する。なお、管理装置３から受信した通信表は通信表格納部１０３に格納されているものとする。
【００８０】
ノードにおける処理部１０１は、パケットの送信元のノード（つまり自ノード）のＩＤをＨＤＤ２５０５から取得する（図２４：ステップＳ２１）。
【００８１】
処理部１０１は、フェーズ番号を表す変数であるｉを１に設定する（ステップＳ２３）。
【００８２】
処理部１０１は、フェーズｉの通信データを、通信表格納部１０３に格納された通信表から読み出す（ステップＳ２５）。
【００８３】
処理部１０１は、ステップＳ２５において読み出された通信データに、ステップＳ２１において取得されたノードのＩＤが含まれるか判定する（ステップＳ２７）。
【００８４】
ステップＳ２５において読み出された通信データに、ステップＳ２１において取得されたノードのＩＤが含まれない場合（ステップＳ２７：Ｎｏルート）、フェーズｉにおいてノードは通信を行わないので、処理はステップＳ３１に移行する。
【００８５】
一方、ステップＳ２５において読み出された通信データに、ステップＳ２１において取得されたノードのＩＤが含まれる場合（ステップＳ２７：Ｙｅｓルート）、処理部１０１は、ステップＳ２５において読み出された通信データに従って通信を実行する（ステップＳ２９）。ステップＳ２９においては、通信の内容に応じて、第１通信部１０１１、第２通信部１０１３又は第３通信部１０１５が動作する。
【００８６】
処理部１０１は、ｉ＝ｉmaxであるか判断する（ステップＳ３１）。ｉmaxはフェーズ番号の最大値である。
【００８７】
ｉ＝ｉmaxではない場合（ステップＳ３１：Ｎｏルート）、処理部１０１は、ｉを１インクリメントし（ステップＳ３３）、ステップＳ２５の処理に戻る。なお、フェーズの終了はバリア同期によって確認される。一方、ｉ＝ｉmaxである場合（ステップＳ３１：Ｙｅｓルート）、処理は終了する。
【００８８】
以上のように、各Ｌｅａｆスイッチの配下の代表ノードがオールリデュースを実行すれば、多層フルメッシュシステム１０００においてオールリデュース通信を行う場合に経路競合が発生することを回避することができるようになる。また、本実施の形態の方法であれば、Ｏ（ｌｏｇ ｎ）（ｎはノード台数）程度の計算量でオールリデュースを実行することができるようになる。
【００８９】
［実施の形態２］
第１の実施の形態においては多層フルメッシュシステム１０００における全ノードが参加するオールリデュースが行われるが、第２の実施の形態においては多層フルメッシュシステム１０００における一部のノードが参加するオールリデュースが行われる。例えば図２５の例では、多層フルメッシュシステム１０００の３つの層のうち２つの層が使用される。また、使用される各層においては、１２台のノードのうち６台がオールリデュースに参加し、４台のＬｅａｆスイッチのうち３台のＬｅａｆスイッチがオールリデュースに参加し、６台のＳｐｉｎｅスイッチのうち４台のＳｐｉｎｅスイッチがオールリデュースに参加する。
【００９０】
このようにすれば、ジョブの計算サイズに応じて適切な規模のリソースを使用することができるようになる。
【００９１】
なお、多層フルメッシュシステム１０００の一部のノードが参加するオールリデュースは第１の実施の形態のオールリデュースと基本的に同じ方法によって行われるので、詳細な説明を省略する。
【００９２】
［実施の形態３］
第１の実施の形態においては、各層においてＩＤが所定番号であるノードによるオールリデュースが実行された後、各カラムにおいてＩＤが所定番号であるノードによるオールリデュースが実行される。一方、第３の実施の形態においては、各カラムにおいてＩＤが所定番号であるノードによるオールリデュースが実行された後、各層においてＩＤが所定番号であるノードによるオールリデュースが実行される。
【００９３】
図２６は、第３の実施の形態の多層フルメッシュシステム１０００が全体として実行する処理の処理フローを示す図である。
【００９４】
多層フルメッシュシステム１０００は、各Ｌｅａｆスイッチの配下において、オールリデュースを実行する（図２６：ステップＳ４１）。ステップＳ４１においてはオールリデュース通信が行われる。ステップＳ４１のオールリデュース通信は、第１通信部１０１１によって行われる。
【００９５】
多層フルメッシュシステム１０００は、各カラムにおいて、ＩＤが所定番号（例えば０）であるノードによるオールリデュースを実行する（ステップＳ４３）。ステップＳ４３においては、オールリデュース通信が行われる。ステップＳ４３のオールリデュース通信は、第２通信部１０１３によって行われる。
【００９６】
多層フルメッシュシステム１０００は、各層において、ＩＤが所定番号であるノードによるオールリデュースを実行する（ステップＳ４５）。ステップＳ４５においては、オールリデュース通信が行われる。ステップＳ４５のオールリデュース通信は、第２通信部１０１３によって行われる。
【００９７】
多層フルメッシュシステム１０００は、各Ｌｅａｆスイッチの配下において、ＩＤが所定番号であるノード（すなわち、ステップＳ４５においてオールリデュースを実行したノード）から他ノードにステップＳ４５の結果をブロードキャストで送信する（ステップＳ４７）。ステップＳ４７の送信は、第３通信部１０１５によって行われる。そして処理は終了する。
【００９８】
以上のような処理を実行する場合においても、多層フルメッシュシステム１０００においてオールリデュース通信を行う場合に経路競合が発生することを回避することができるようになる。
【００９９】
［実施の形態４］
第１の実施の形態においては、管理装置３が通信表を生成するが、第４の実施の形態においては、多層フルメッシュシステム１０００内のノードが通信表を生成して他のノードに配布する。
【０１００】
図２７は、第４の実施の形態のノードの機能ブロック図である。ノードは、処理部１０１と、通信表格納部１０３と、生成部１０５とを有する。処理部１０１は、第１通信部１０１１と、第２通信部１０１３と、第３通信部１０１５とを有する。
【０１０１】
処理部１０１及び生成部１０５は、例えば、図２８におけるメモリ２５０１に格納されたプログラムがＣＰＵ２５０３により実行されることで実現される。通信表格納部１０３は、図２８におけるメモリ２５０１又はＨＤＤ２５０５に設けられる。
【０１０２】
生成部１０５は、多層フルメッシュシステム１０００のトポロジの情報に基づき通信表を生成し、生成した通信表を通信表格納部１０３に格納する。また、生成部１０５は、生成した通信表を、所定のタイミングで又はリクエストに応じて、多層フルメッシュシステム１０００内の他ノードに送信する。処理部１０１における第１通信部１０１１、第２通信部１０１３及び第３通信部１０１５は、通信表格納部１０３に格納されている通信表に従ってパケットの送信及び受信を行う。
【０１０３】
以上のような構成を採用すれば、通信表の生成の為に管理装置３を別途設けなくて済むようになる。
【０１０４】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したノード及び管理装置３の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【０１０５】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１０６】
また、管理装置３は、各ノードに対して通信表全体を送るのではなく、各ノードに関係する通信データのみを送ってもよい。
【０１０７】
また、多層フルメッシュシステム１０００は、上で示した例に限定されるわけではない。
【０１０８】
なお、上で述べたノード及び管理装置３は、コンピュータ装置であって、図２８に示すように、メモリ２５０１とＣＰＵ２５０３とＨＤＤ２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１０９】
また、上で述べたＬｅａｆスイッチ及びＳｐｉｎｅスイッチは、図２９に示すように、メモリ２６０１とＣＰＵ２６０３とＨＤＤ２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図２９では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１１０】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１１１】
本実施の形態の第１の態様に係る第１の情報処理装置は、複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける複数の情報処理装置のうちの第１の情報処理装置である。そして、第１の情報処理装置は、（Ａ）第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行う第１通信部（実施の形態における第１通信部１０１１は、上記第１通信部の一例である）と、（Ｂ）第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、第１のリーフスイッチに接続されるスパインスイッチに接続され且つ第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、第１のオールリデュース通信の結果を用いて行う第２通信部（実施の形態における第２通信部１０１３は、上記第２通信部の一例である）と、（Ｃ）第２通信部による処理の結果を、第１のリーフスイッチに接続される他の情報処理装置に送信する第３通信部（実施の形態における第３通信部１０１５は、上記第３通信部の一例である）とを有する。
【０１１２】
多層フルメッシュシステムにおいてオールリデュース通信を行う場合に経路競合が発生することを回避できるようになる。
【０１１３】
また、第２通信部は、（ｂ１）第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信を、第１のオールリデュース通信の結果を用いて行い、（ｂ２）第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信を、第２のオールリデュース通信の結果を用いて行ってもよい。
【０１１４】
オールリデュースが適切に実行されるようになる。
【０１１５】
また、第２通信部は、（ｂ３）第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信を、第１のオールリデュース通信の結果を用いて行い、（ｂ４）第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信を、第３のオールリデュース通信の結果を用いて行ってもよい。
【０１１６】
オールリデュースが適切に実行されるようになる。
【０１１７】
また、第１の情報処理装置は、（Ｄ）複数の情報処理装置の各々が通信に使用する通信表を生成し、生成した通信表を、複数の情報処理装置のうち第１の情報処理装置以外の情報処理装置に送信する生成部（実施の形態における生成部１０５は、上記生成部の一例である）をさらに有してもよい。
【０１１８】
複数の情報処理装置の各々が、全体として経路競合が発生しないようにオールリデュース通信を行えるようになる。
【０１１９】
本実施の形態の第２の態様に係る情報処理方法は、複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける複数の情報処理装置のうちの第１の情報処理装置により実行される情報処理方法である。そして、第１の情報処理装置が、（Ｅ）第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行い、（Ｆ）第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、第１のリーフスイッチに接続されるスパインスイッチに接続され且つ第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、第１のオールリデュース通信の結果を用いて行い、（Ｇ）第２のオールリデュース通信および第３のオールリデュース通信の結果を、第１のリーフスイッチに接続される他の情報処理装置に送信する処理を含む。
【０１２０】
なお、上記方法による処理をコンピュータ又はプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１２１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２２】
（付記１）
複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける前記複数の情報処理装置のうちの第１の情報処理装置であって、
前記第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行う第１通信部と、
前記第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、前記第１のリーフスイッチに接続されるスパインスイッチに接続され且つ前記第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、前記第１のオールリデュース通信の結果を用いて行う第２通信部と、
前記第２通信部による処理の結果を、前記第１のリーフスイッチに接続される他の情報処理装置に送信する第３通信部と、
を有する第１の情報処理装置。
【０１２３】
（付記２）
前記第２通信部は、
前記第２のリーフスイッチに接続される１の情報処理装置との前記第２のオールリデュース通信を、前記第１のオールリデュース通信の結果を用いて行い、
前記第３のリーフスイッチに接続される１の情報処理装置との前記第３のオールリデュース通信を、前記第２のオールリデュース通信の結果を用いて行う、
付記１記載の第１の情報処理装置。
【０１２４】
（付記３）
前記第２通信部は、
前記第３のリーフスイッチに接続される１の情報処理装置との前記第３のオールリデュース通信を、前記第１のオールリデュース通信の結果を用いて行い、
前記第２のリーフスイッチに接続される１の情報処理装置との前記第２のオールリデュース通信を、前記第３のオールリデュース通信の結果を用いて行う、
付記１記載の第１の情報処理装置。
【０１２５】
（付記４）
前記複数の情報処理装置の各々が通信に使用する通信表を生成し、生成した前記通信表を、前記複数の情報処理装置のうち前記第１の情報処理装置以外の情報処理装置に送信する生成部
をさらに有する付記１乃至３のいずれか１つ記載の第１の情報処理装置。
【０１２６】
（付記５）
複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける前記複数の情報処理装置のうちの第１の情報処理装置により実行される情報処理方法であって、
前記第１の情報処理装置が、
前記第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行い、
前記第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、前記第１のリーフスイッチに接続されるスパインスイッチに接続され且つ前記第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、前記第１のオールリデュース通信の結果を用いて行い、
前記第２のオールリデュース通信および前記第３のオールリデュース通信の結果を、前記第１のリーフスイッチに接続される他の情報処理装置に送信する、
処理を実行する情報処理方法。
【０１２７】
（付記６）
複数のスパインスイッチと複数のリーフスイッチと複数の情報処理装置とを有する多層フルメッシュシステムにおける前記複数の情報処理装置のうちの第１の情報処理装置に実行させるプログラムであって、
前記第１の情報処理装置に、
前記第１の情報処理装置に接続される第１のリーフスイッチに接続される他の情報処理装置と、第１のオールリデュース通信を行い、
前記第１のリーフスイッチと同じ層に含まれる第２のリーフスイッチに接続される１の情報処理装置との第２のオールリデュース通信と、前記第１のリーフスイッチに接続されるスパインスイッチに接続され且つ前記第１のリーフスイッチが含まれる層とは異なる層に含まれる第３のリーフスイッチに接続される１の情報処理装置との第３のオールリデュース通信とを、前記第１のオールリデュース通信の結果を用いて行い、
前記第２のオールリデュース通信および前記第３のオールリデュース通信の結果を、前記第１のリーフスイッチに接続される他の情報処理装置に送信する、
処理を実行させるプログラム。
【符号の説明】
【０１２８】
１０１  処理部    １０３  通信表格納部
１０５  生成部    １０１１  第１通信部
１０１３  第２通信部    １０１５  第３通信部
３  管理装置    ３０１  生成部
３０３  通信表格納部    １０００  多層フルメッシュシステム
【図１】
2018185650.tif 000003
【図２】
2018185650.tif 000004
【図３】
2018185650.tif 000005
【図４】
2018185650.tif 000006
【図５】
2018185650.tif 000007
【図６】
2018185650.tif 000008
【図７】
2018185650.tif 000009
【図８】
2018185650.tif 000010
【図９】
2018185650.tif 000011
【図１０】
2018185650.tif 000012
【図１１】
2018185650.tif 000013
【図１２】
2018185650.tif 000014
【図１３】
2018185650.tif 000015
【図１４】
2018185650.tif 000016
【図１５】
2018185650.tif 000017
【図１６】
2018185650.tif 000018
【図１７】
2018185650.tif 000019
【図１８】
2018185650.tif 000020
【図１９】
2018185650.tif 000021
【図２０】
2018185650.tif 000022
【図２１】
2018185650.tif 000023
【図２２】
2018185650.tif 000024
【図２３】
2018185650.tif 000025
【図２４】
2018185650.tif 000026
【図２５】
2018185650.tif 000027
【図２６】
2018185650.tif 000028
【図２７】
2018185650.tif 000029
【図２８】
2018185650.tif 000030
【図２９】
2018185650.tif 000031