(57)【要約】      （修正有）【課題】ラテン方陣ファットツリーシステムにおけるサーバのうち一部のサーバによりオールリデュースを実行する。【解決手段】本情報処理システムは、接続形態がラテン方陣ファットツリーである複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、管理装置とを有する。そして、管理装置は、ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定する特定部と、特定されたリーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する送信部とを有する。【選択図】図２８
2019008649.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
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１つの側面では、ラテン方陣ファットツリーシステムにおけるサーバのうち一部のサーバによりオールリデュースを実行するための技術を提供することである。
【課題を解決するための手段】
【０００７】
一態様に係る情報処理システムは、接続形態がラテン方陣ファットツリーである複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、管理装置とを有する。そして、管理装置は、ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定する特定部と、特定されたリーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する送信部とを有する。
【発明の効果】
【０００８】
１つの側面では、ラテン方陣ファットツリーシステムにおけるサーバのうち一部のサーバによりオールリデュースを実行できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、オールリデュース通信について説明するための図である。
【図２】図２は、オールリデュース通信について説明するための図である。
【図３】図３は、オールリデュース通信について説明するための図である。
【図４】図４は、オールリデュース通信について説明するための図である。
【図５】図５は、オールリデュース通信を一般的なツリー構造のトポロジにおいて実行した場合の経路競合を示す図である。
【図６】図６は、ファットツリー構造のトポロジにおいて実行した場合の経路競合を示す図である。
【図７】図７は、本実施の形態のラテン方陣ファットツリーシステムの概要を示す図である。
【図８】図８は、有限射影平面を示す図である。
【図９】図９は、インフィニバンドのネットワークにおけるルーティングについて説明するための図である。
【図１０】図１０は、管理装置の機能ブロック図である。
【図１１】図１１は、サーバの機能ブロック図である。
【図１２】図１２は、管理装置が実行する処理の処理フローを示す図である。
【図１３】図１３は、第１の実施の形態の選択処理の処理フローを示す図である。
【図１４】図１４は、矩形領域について説明するための図である。
【図１５】図１５は、矩形領域について説明するための図である。
【図１６】図１６は、矩形領域について説明するための図である。
【図１７】図１７は、矩形領域について説明するための図である。
【図１８】図１８は、矩形領域について説明するための図である。
【図１９】図１９は、矩形領域について説明するための図である。
【図２０】図２０は、第１の実施の形態の第１生成処理の処理フローを示す図である。
【図２１】図２１は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図２２】図２２は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図２３】図２３は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図２４】図２４は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図２５】図２５は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。
【図２６】図２６は、第１の通信表の一例を示す図である。
【図２７】図２７は、第２生成処理の処理フローを示す図である。
【図２８】図２８は、第２の通信表にて実現されるオールリデュースについて説明するための図である。
【図２９】図２９は、第２の通信表にて実現されるオールリデュースについて説明するための図である。
【図３０】図３０は、第３生成処理の処理フローを示す図である。
【図３１】図３１は、第３の通信表にて実現されるオールリデュースについて説明するための図である。
【図３２】図３２は、第３の通信表にて実現されるオールリデュースについて説明するための図である。
【図３３】図３３は、第３の通信表にて実現されるオールリデュースについて説明するための図である。
【図３４】図３４は、第３の通信表にて実現されるオールリデュースについて説明するための図である。
【図３５】図３５は、第４生成処理の処理フローを示す図である。
【図３６】図３６は、第４の通信表にて実現される結果配布について説明するための図である。
【図３７】図３７は、第４の通信表にて実現される結果配布について説明するための図である。
【図３８】図３８は、第４の通信表にて実現される結果配布について説明するための図である。
【図３９】図３９は、サーバが実行する処理の処理フローを示す図である。
【図４０】図４０は、サーバが実行する処理の処理フローを示す図である。
【図４１】図４１は、第２の実施の形態の選択処理の処理フローを示す図である。
【図４２】図４２は、矩形領域の拡張について説明するための図である。
【図４３】図４３は、矩形領域の拡張について説明するための図である。
【図４４】図４４は、第３の実施の形態の選択処理の処理フローを示す図である。
【図４５】図４５は、第４の実施の形態の選択処理の処理フローを示す図である。
【図４６】図４６は、第５の実施の形態の選択処理の処理フローを示す図である。
【図４７】図４７は、第６の実施の形態の第１生成処理の処理フローを示す図である。
【図４８】図４８は、第６の実施の形態における第１の通信表にて実現されるリデュースについて説明するための図である。
【図４９】図４９は、第６の実施の形態における第１の通信表にて実現されるリデュースについて説明するための図である。
【図５０】図５０は、第６の実施の形態における第１の通信表にて実現されるリデュースについて説明するための図である。
【図５１】図５１は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図５２】図５２は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図５３】図５３は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図５４】図５４は、ラテン方陣ファットツリーおよび有限射影平面について説明するための図である。
【図５５】図５５は、コンピュータの機能ブロック図である。
【図５６】図５６は、スイッチの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１乃至図４は、オールリデュース通信について説明するための図である。図１においては、サーバｎ０が値「４」を持っており、サーバｎ１が値「８」を持っており、サーバｎ２が値「１」を持っており、サーバｎ３が値「５」を持っており、サーバｎ４が値「６」を持っており、サーバｎ５が値「３」を持っている。オールリデュースにおいて指定された演算が「加算」である場合、サーバｎ０乃至ｎ５はそれぞれ値「２７」を持つことになる。
【００１１】
図１の右側に示した状態を実現するためのオールリデュース通信は、例えば図２及び図３に示すように行われる。まず、図２（ａ）に示すように、サーバｎ０とサーバｎ３との間で値が共有されて加算により値「９」が算出され、サーバｎ１とサーバｎ４との間で値が共有されて加算により値「１４」が算出され、サーバｎ２とサーバｎ５との間で値が共有されて加算により値「４」が算出される。
【００１２】
そして、図２（ｂ）に示すように、サーバｎ０とサーバｎ１との間で値が共有されて加算により値「２３」が算出され、サーバｎ３とサーバｎ４との間で値が共有されて加算により値「２３」が算出される。
【００１３】
そして、図３（ａ）に示すように、サーバｎ１とサーバｎ２との間で値が共有されて加算により値「２７」が算出され、サーバｎ４とサーバｎ５との間で値が共有されて加算により値「２７」が算出される。
【００１４】
最後に、図３（ｂ）に示すように、サーバｎ１がサーバｎ０に値「２７」を送信し、サーバｎ４がサーバｎ３に値「２７」を送信する。これにより、図３（ｂ）に示すように、サーバｎ０乃至ｎ５が値「２７」を持つことができる。
【００１５】
ここで、対象はサーバｎ０乃至ｎ５の全てでなくてもよく、サーバｎ０乃至ｎ５のうち一部のサーバを対象としてもよい。一例として、サーバｎ０、ｎ１、ｎ３及びｎ４を対象とする場合のオールリデュース通信について説明する。まず、図４（ａ）に示すように、サーバｎ０とサーバｎ３との間で値が共有されて加算により値「９」が算出され、サーバｎ１とサーバｎ４との間で値が共有されて加算により値「１４」が算出される。
【００１６】
そして、図４（ｂ）に示すように、サーバｎ０とサーバｎ１との間で値が共有されて加算により値「２３」が算出され、サーバｎ３とサーバｎ４との間で値が共有されて加算により値「２３」が算出される。これにより、サーバｎ０、ｎ１、ｎ３及びｎ４が値「２３」を持つことができる。
【００１７】
本実施の形態においては、このようなオールリデュース通信をラテン方陣ファットツリーシステムにおける一部のサーバにより実行する場合に経路競合が発生しないようにすることを考える。ここで、経路競合とは、１つの経路の同一方向に同時に複数のパケットが送信されることを意味し、経路競合の発生により通信時間が長くなる。例として、図５に、オールリデュース通信を一般的なツリー構造のトポロジにおいて実行した場合の経路競合を示す。図５において、丸の図形はサーバを表し、ハッチングされていない正方形の図形はＬｅａｆスイッチを表し、ハッチングされた正方形の図形はＳｐｉｎｅスイッチを表す。図５において、経路Ｒ１において経路競合が発生し、経路Ｒ２においても経路競合が発生する。このケースにおいては、例えば図６に示すように、ツリー構造をファットツリー構造に変えることで経路競合を回避することが可能であるが、ファットツリー構造を採用すると総スイッチ数は図５の例よりも多くなる。
【００１８】
図７は、本実施の形態のラテン方陣ファットツリーシステム１０００を示す図である。本実施の形態においては、１３台のＳｐｉｎｅスイッチと、１３台のＬｅａｆスイッチとの接続形態がラテン方陣ファットツリーである。各Ｌｅａｆスイッチには４台のサーバが接続されているので、ラテン方陣ファットツリーシステム１０００は、並列分散処理を実行する５２台のサーバを有する。Ｓｐｉｎｅスイッチ及びＬｅａｆスイッチは、例えばインフィニバンドスイッチである。サーバは、例えば、物理サーバである。以下では、Ｌｅａｆスイッチに接続されるサーバの数をｄとする。本実施の形態においてはｄ＝４である。
【００１９】
なお、図７の例においてはＳｐｉｎｅスイッチの数及びＬｅａｆスイッチの数は１３であるが、１３以外であってもよい。他の例については、付録を参照されたい。
【００２０】
図７において、各Ｓｐｉｎｅスイッチ及び各Ｌｅａｆスイッチには、図７に示したラテン方陣ファットツリーに対応する有限射影平面の点を表す文字列が付されている。図８は、図７に示したラテン方陣ファットツリーに対応する有限射影平面を示す図である。図８に示した有限射影平面の位数は３であり、Ｓｐｉｎｅスイッチ及びＬｅａｆスイッチのポート数は８である。点はＬｅａｆスイッチを表し、直線はＳｐｉｎｅスイッチを表す。図７に示したように格子部分を定めた場合において、ＬｅａｆスイッチＰ、ＬｅａｆスイッチＰ（０）、ＬｅａｆスイッチＰ（１）及びＬｅａｆスイッチＰ（２）は無限遠点に相当する。なお、有限射影平面については付録を参照されたい。
【００２１】
本実施の形態のラテン方陣ファットツリーシステム１０００においては、経路競合を回避するため、規則的且つ固定的なルーティングが行われるインフィニバンドのネットワークが利用される。図９を用いて、インフィニバンドのネットワークにおけるルーティングについて説明する。図９において、丸の図形はサーバを表し、正方形の図形はスイッチを表す。線分はインフィニバンドのリンクを表し、線分の傍にある文字列は宛先のサーバの識別情報を表す。太い実線の矢印は通信経路を表す。
【００２２】
図９の例においては、サーバＮ３が、宛先がサーバＮ１であるパケットを送信する。パケットのヘッダには、宛先の識別情報（例えばＬＩＤ（Local IDentifier））が含まれる。各スイッチにおける各出力ポートには宛先のサーバの識別情報が対応付けられているので、各スイッチは、パケットに含まれる宛先の識別情報に対応する出力ポートにパケットを出力する。図９の例では、パケットはスイッチＳＷ１、スイッチＳＷ２及びスイッチＳＷ４を経由してサーバＮ１に到達する。
【００２３】
このように、本実施の形態のネットワークは、イーサネット（登録商標）のように自動的に経路が決定されるネットワークではなく、規則的且つ固定的なルーティングが行われるネットワークである。
【００２４】
なお、上記の識別情報とは別に、各サーバには番号が割り振られているとする。具体的には、各Ｌｅａｆスイッチに接続される４台の各サーバには、０から３までのいずれかの番号が割り当てられ、各Ｌｅａｆスイッチには「０」が割り振られたサーバと「１」が割り振られたサーバと「２」が割り振られたサーバと「３」が割り振られたサーバとが接続される。
【００２５】
図１０に示すように、ラテン方陣ファットツリーシステム１０００は管理装置３に管理ＬＡＮ（Local Area Network）等で接続され、ラテン方陣ファットツリーシステム１０００における通信は管理装置３により管理される。管理装置３は、設定部３００と、通信表生成部３０１と、通信表格納部３０３と、トポロジデータ格納部３０５と、ジョブデータ格納部３０７とを有する。通信表生成部３０１は、第１生成部３０１１と、第２生成部３０１３と、第３生成部３０１５と、第４生成部３０１７とを有する。設定部３００及び通信表生成部３０１は、例えば、図５５におけるメモリ２５０１にロードされたプログラムがＣＰＵ（Central Processing Unit）２５０３に実行されることで実現される。通信表格納部３０３、トポロジデータ格納部３０５及びジョブデータ格納部３０７は、例えば、図５５におけるメモリ２５０１又はＨＤＤ（Hard Disk Drive）２５０５に設けられる。
【００２６】
設定部３００は、トポロジデータ格納部３０５に格納されているデータに基づき、ラテン方陣ファットツリーシステム１０００におけるサーバのうちオールリデュースを実行する一部のサーバ（以下、実行サーバと呼ぶ）を選択する処理を実行し、処理結果をジョブデータ格納部３０７に格納する。第１生成部３０１１は、トポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報及びジョブデータ格納部３０７に格納されているデータに基づき、第１の通信表を生成し、生成された第１の通信表を通信表格納部３０３に格納する。第２生成部３０１３は、トポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報及びジョブデータ格納部３０７に格納されているデータに基づき、第２の通信表を生成し、生成された第２の通信表を通信表格納部３０３に格納する。第３生成部３０１５は、トポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報及びジョブデータ格納部３０７に格納されているデータに基づき、第３の通信表を生成し、生成された第３の通信表を通信表格納部３０３に格納する。第４生成部３０１７は、トポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報及びジョブデータ格納部３０７に格納されているデータに基づき、第４の通信表を生成し、生成された第４の通信表を通信表格納部３０３に格納する。通信表生成部３０１は、通信表格納部３０３に格納された第１乃至第４の通信表を、所定のタイミングで又はリクエストに応じて、設定部３００により選定されたサーバに送信する。
【００２７】
図１１は、サーバの機能ブロック図である。サーバは、処理部１０１と、通信表格納部１０３とを有する。処理部１０１は、第１通信部１０１１と、第２通信部１０１３と、第３通信部１０１５と、第４通信部１０１７とを有する。処理部１０１は、例えば、図５５におけるメモリ２５０１にロードされたプログラムがＣＰＵ２５０３に実行されることで実現される。通信表格納部１０３は、例えば、図５５におけるメモリ２５０１又はＨＤＤ２５０５に設けられる。
【００２８】
通信表格納部１０３には、管理装置３から受信した第１乃至第４の通信表が格納される。第１通信部１０１１は、通信表格納部１０３に格納された第１の通信表に従って通信を行う。第２通信部１０１３は、通信表格納部１０３に格納された第２の通信表に従って通信を行う。第３通信部１０１５は、通信表格納部１０３に格納された第３の通信表に従って通信を行う。第４通信部１０１７は、通信表格納部１０３に格納された第４の通信表に従って通信を行う。
【００２９】
次に、図１２乃至図３８を用いて、管理装置３が実行する処理について説明する。図１２は、管理装置３が実行する処理の処理フローを示す図である。
【００３０】
管理装置３における設定部３００は、オールリデュースを実行するサーバ（すなわち実行サーバ）の数の情報の入力を受け付ける（図１２：ステップＳ１）。実行サーバの数の情報は、例えば管理者によって入力される。
【００３１】
設定部３００は、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報をトポロジデータ格納部３０５から読み出す（ステップＳ３）。ネットワークトポロジの情報は、例えば、Ｓｐｉｎｅスイッチ、Ｌｅａｆスイッチ及びサーバの接続関係の情報等を含む。
【００３２】
設定部３００は、ステップＳ１において入力された情報とステップＳ３において読み出した情報とに基づき、選択処理を実行する（ステップＳ５）。選択処理については後で説明する。
【００３３】
第１生成部３０１１は、ステップＳ３において読み出したネットワークトポロジの情報とジョブデータ格納部３０７に格納されているデータとに基づき、第１の通信表を生成する処理である第１生成処理を実行する（ステップＳ７）。第１生成処理については後で説明する。
【００３４】
第２生成部３０１３は、ステップＳ３において読み出したネットワークトポロジの情報とジョブデータ格納部３０７に格納されているデータとに基づき、第２の通信表を生成する処理である第２生成処理を実行する（ステップＳ９）。第２生成処理については後で説明する。
【００３５】
第３生成部３０１５は、ステップＳ３において読み出したネットワークトポロジの情報とジョブデータ格納部３０７に格納されているデータとに基づき、第３の通信表を生成する処理である第３生成処理を実行する（ステップＳ１１）。第３生成処理については後で説明する。
【００３６】
第４生成部３０１７は、ステップＳ３において読み出したネットワークトポロジの情報とジョブデータ格納部３０７に格納されているデータとに基づき、第４の通信表を生成する処理である第４生成処理を実行する（ステップＳ１３）。第４生成処理については後で説明する。
【００３７】
そして、通信表生成部３０１は、通信表格納部３０３に格納された第１乃至第４の通信表を読み出し、読み出した第１乃至第４の通信表を実行サーバに送信する（ステップＳ１５）。そして処理は終了する。
【００３８】
以上のような処理を実行すれば、第１乃至第４の通信表を受信したサーバは適切な手順でオールリデュース通信を実行できるようになる。
【００３９】
次に、図１３乃至図１９を用いて、第１の実施の形態の選択処理について説明する。図１３は選択処理の処理フローを示す図である。
【００４０】
設定部３００は、変数ａと変数ｂとの組合せのうち未処理の組合せを１つ特定する（図１３：ステップＳ２１）。変数ａは１≦ａ≦ｄを満たし、格子部分に含まれる矩形の縦の長さ（すなわち行の数）を表す。変数ｂは１≦ｂ≦ｄを満たし、格子部分に含まれる矩形の横の長さ（すなわち列の数）を表す。
【００４１】
設定部３００は、変数ｃをｃ＝［ｎ／ａｂ］として設定する（ステップＳ２３）。変数ｃは１台のＬｅａｆスイッチに接続される実行サーバの数を定めるための変数である。ｎは、ステップＳ１において入力された情報が示す実行サーバ数である。「［］」はガウス記号であり、［ｎ／ａｂ］は（ｎ／ａｂ）の整数部分である。以下では、実行サーバに接続されるＬｅａｆスイッチのことを実行スイッチと呼ぶ。
【００４２】
設定部３００は、格子部分において、縦の長さがａであり且つ横の長さがｂである矩形領域における各Ｌｅａｆスイッチについてｃ台又は（ｃ＋１）台の実行サーバを選択することで、計ｎ台の実行サーバを選択する（ステップＳ２５）。
【００４３】
図１４は、矩形領域の一例を示す図である。図１４の例においては、ＬｅａｆスイッチＰ（０，０）とＬｅａｆスイッチＰ（０，１）とＬｅａｆスイッチＰ（１，０）とＬｅａｆスイッチＰ（１，１）とＬｅａｆスイッチＰ（２，０）とＬｅａｆスイッチＰ（２，１）とを含む矩形領域が示されている。この場合、ａ＝２且つｂ＝３である。第１の実施の形態においては、矩形領域における各Ｌｅａｆスイッチからｃ台又は（ｃ＋１）台のサーバが実行サーバとして選択される。
【００４４】
設定部３００は、変数ａ、変数ｂ及び各実行スイッチに接続される実行サーバの台数（以下、ｃiとする）に基づき、評価関数ｆの値を算出する（ステップＳ２７）。評価関数ｆは、例えば、通信コストと、Ｌｅａｆスイッチに接続されるサーバの使用状況（例えば、使用可または使用不可）と、Ｌｅａｆスイッチの物理位置とに基づき設定され、評価関数ｆの値が大きいほど変数ａ、変数ｂ及び変数ｃiの組合せがオールリデュースの実行に好ましい。
【００４５】
設定部３００は、変数ａと変数ｂとの組合せのうち未処理の組合せが有るか判定する（ステップＳ２９）。未処理の組合せが有る場合（ステップＳ２９：Ｙｅｓルート）、処理はステップＳ２１に戻る。
【００４６】
一方、未処理の組合せが無い場合（ステップＳ２９：Ｎｏルート）、設定部３００は、以下の処理を実行する。具体的には、設定部３００は、ステップＳ２７において算出された評価関数の値が最大となる場合における変数ａ、変数ｂ及び変数ｃiを特定する（ステップＳ３１）。
【００４７】
設定部３００は、特定された変数ａ及び変数ｂに基づき、格子部分において矩形領域を設定する。そして、設定部３００は、特定された変数ｃiに基づき、矩形領域における各Ｌｅａｆスイッチについて実行サーバを特定し、実行サーバの識別情報をジョブデータ格納部３０７に格納する（ステップＳ３３）。そして処理は呼び出し元に戻る。
【００４８】
以上のような処理を実行すれば、通信コスト等の観点から適切なサーバにオールリデュースを実行させることができるようになる。
【００４９】
なお、矩形領域は図１４に示したような例には限られない。例えば、矩形領域は図１５に示すような矩形領域であってもよい。すなわち、行数が格子部分の行数未満であり且つ列数が格子部分の列数未満であるような矩形領域であってもよい。
【００５０】
また、矩形領域は例えば図１６に示すような矩形領域であってもよい。すなわち、矩形領域が２以上の矩形領域に分割されていてもよい。なお、図１６の例においては、ＬｅａｆスイッチＰ（０，０）とＬｅａｆスイッチＰ（０，２）とは同じＳｐｉｎｅスイッチに接続され、ＬｅａｆスイッチＰ（１，０）とＬｅａｆスイッチＰ（１，２）とは同じＳｐｉｎｅスイッチに接続され、ＬｅａｆスイッチＰ（２，０）とＬｅａｆスイッチＰ（２，２）とは同じＳｐｉｎｅスイッチに接続されるため、図１６の例の通信コストは図１４の例の通信コストと同じである。
【００５１】
また、矩形領域は例えば図１７に示すような矩形領域であってもよい。すなわち、行数が１であってもよく、また、列数が１であってもよい。行数が１である場合には、第２の通信表により実現されるオールリデュース（すなわち、列方向におけるオールリデュース）を省略することができる。また、列数が１である場合には、第３の通信表により実現されるオールリデュース（すなわち、行方向におけるオールリデュース）を省略することができる。
【００５２】
格子部分のサイズが３＊３ではない場合の矩形領域についても同様に設定することができる。例えば図１８に示すように格子部分のサイズが５＊５である場合、図１８の破線に示すように矩形領域を設定してもよい。
【００５３】
図１４乃至図１８に示したように、格子部分から選択されたａ行のいずれかに含まれ且つ格子部分から選択されたｂ列のいずれかに含まれるＬｅａｆスイッチを、矩形領域内のＬｅａｆスイッチであるとして扱うことが可能である。これに対して、例えば図１９に示すように矩形領域を設定した場合には、ＬｅａｆスイッチＰ（２，１）が、ＬｅａｆスイッチＰ（０，０）及びＬｅａｆスイッチＰ（１，０）が接続されるＳｐｉｎｅスイッチＬ（０，０）に接続されておらず通信を効率的に行うことができない。従って、図１９に示すような矩形領域は許容されない。
【００５４】
次に、図２０乃至図２６を用いて、第１生成処理について説明する。図２０は、第１の実施の形態の第１生成処理の処理フローを示す図である。
【００５５】
第１生成部３０１１は、各実行スイッチでのオールリデュースの各フェーズにおいて通信を実行するサーバの識別情報を含む第１の通信表を生成する（図２０：ステップＳ４１）。
【００５６】
図２１乃至図２５は、実行スイッチに接続されるサーバ間でのオールリデュースについて説明するための図である。図２１乃至図２５において、正方形の図形は実行スイッチであるＬｅａｆスイッチを表し、丸の図形はサーバを表し、Ｌｅａｆスイッチとサーバとを結ぶ線分はリンクを表す。サーバに付された数字はサーバが持つ値を表す。
【００５７】
まず、図２１及び図２２を用いて、Ｌｅａｆスイッチに接続されるサーバの数が偶数（ここでは、２の冪である４）である場合について説明する。
【００５８】
例えば、図２１（ａ）に示すように、４台のサーバがそれぞれ「３」、「７」、「２」、「２」を持つとする。この場合、２台のサーバを含むペアの各々において値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００５９】
すると、図２１（ｂ）に示すように、２台のサーバが値「１０」を持ち、残りの２台のサーバが値「４」を持つ。そして、値「１０」を持つサーバと値「４」を持つサーバとを含むペアの各々において値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００６０】
これにより、最終的には図２２に示すように各サーバが値「１４」を持つ。
【００６１】
次に、図２３乃至図２５を用いて、Ｌｅａｆスイッチに接続されるサーバの数が奇数（ここでは５）である場合について説明する。
【００６２】
例えば、図２３（ａ）に示すように、５台のサーバがそれぞれ「１」、「４」、「５」、「２」、「８」を持つとする。この場合、５台のうち２台のサーバにおいて値が共有され、値の演算（ここでは加算）が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００６３】
すると、図２３（ｂ）に示すように、５台のサーバがそれぞれ「１」、「４」、「５」、「１０」、「１０」を持つ。そして、値「１」を持つサーバと値「４」を持つサーバとを含むペアと、値「５」を持つサーバと値「１０」を持つサーバとを含むペアとにおいて値が共有され値の演算が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００６４】
すると、図２４（ａ）に示すように、５台のサーバがそれぞれ「５」、「５」、「１５」、「１５」、「１０」を持つ。そして、値「５」を持つサーバと値「１５」を持つサーバとを含むペアの各々において値が共有され値の演算が行われる。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００６５】
すると、図２４（ｂ）に示すように、５台のサーバがそれぞれ「２０」、「２０」、「２０」、「２０」、「１０」を持つ。そして、値「２０」を持つサーバが値「１０」を持つサーバに対して値「２０」を通知する。ここでは、１つの経路の同一方向に同時に複数のパケットが送信されることはないので、経路競合は発生しない。
【００６６】
すると、図２５に示すように、最終的に５台のサーバがそれぞれ値「２０」を持つようになる。
【００６７】
以上の説明は複数のサーバの間で行われるオールリデュースの一例についての説明であるが、サーバ数がこの例以外の数である場合においても、基本的には同様の方法でオールリデュースを行うことができる。
【００６８】
ここで、ｎ台（ｎは自然数）のサーバの間でのオールリデュースを行う場合における通信表を生成する処理（以下、Ａｌｌｒｅｄｕｃｅ（ｎ）のように呼ぶ）について説明する。本実施の形態においては、再帰的な処理によって通信表が生成される。
【００６９】
（１）Ｌｅａｆスイッチに接続されるサーバの数ｎが１である場合、処理は終了する。
【００７０】
（２）Ｌｅａｆスイッチに接続されるサーバの数ｎが２である場合、２台のサーバの間での通信についての通信情報（具体的には、サーバのペアの情報）が通信表に書き込まれる。
【００７１】
（３）Ｌｅａｆスイッチに接続されるサーバの数ｎが奇数２ｍ＋１（ｍは自然数）である場合、ｎ台のサーバのうち２台のサーバ（サーバＰおよびサーバＱ）が選択され、サーバＰとサーバＱとの間でオールリデュース通信についての通信情報が通信表に書き込まれる。そして、サーバＰ及びサーバＱのうちいずれかのサーバと残りの（２ｍ−１）台のサーバと（つまり、２ｍ台のサーバ）について、Ａｌｌｒｅｄｕｃｅ（２ｍ）が呼び出される。そして、Ａｌｌｒｅｄｕｃｅ（２ｍ）の結果をサーバＰからサーバＱに伝えるための通信情報が通信表に書き込まれる。
【００７２】
（４）Ｌｅａｆスイッチに接続されるサーバの数が２ｍ（ｍは２以上の自然数）である場合、サーバはｍ台のグループとｍ台のグループとに分けられ、同時並行でそれぞれのグループについてＡｌｌｒｅｄｕｃｅ（ｍ）が呼び出される。
【００７３】
以上のような処理を実行すれば、ｎ台のサーバの間でのオールリデュースを行う場合における通信表が生成される。図２１乃至図２５の説明から明らかなように、このような方法で生成された通信表に従ってオールリデュース通信が行われれば経路競合は発生しない。
【００７４】
図２０の説明に戻り、第１生成部３０１１は、ステップＳ４１において生成された第１の通信表を通信表格納部３０３に格納する（ステップＳ４３）。そして処理は呼び出し元に戻る。
【００７５】
図２６は、第１の通信表の一例を示す図である。図２６の例においては、フェーズ番号と、通信を実行するサーバのペアの情報とが第１の通信表に登録されている。Ｎ１等の文字列はサーバの識別情報（例えばＬＩＤ）を表す。通信１と通信２とは同時並行で実行される。例えばフェーズ２においては、サーバＮ１とサーバＮ２との間の通信と、サーバＮ３とサーバＮ４との間の通信とが同時並行で実行される。図２６に示した通信表によれば、フェーズ１乃至４における各サーバの通信相手は以下のとおりである。
【００７６】
サーバＮ１：−，Ｎ２，Ｎ３，−
サーバＮ２：−，Ｎ１，Ｎ４，−
サーバＮ３：−，Ｎ４，Ｎ１，−
サーバＮ４：Ｎ５，Ｎ３，Ｎ２，Ｎ５（送）
サーバＮ５：Ｎ４，−，−，Ｎ４（受）
【００７７】
ここで、「−」は通信が行われないことを表す。「（送）」は送信することを表し、「（受）」は受信することを表す。例えばサーバＮ５は、フェーズ１においてサーバＮ４と通信し、フェーズ２及び３においては通信を行わず、フェーズ４においてはサーバＮ４からデータを受信する。なお、図２６の例では１台の実行スイッチについての通信情報が示されているが、実際には各実行スイッチについての通信情報が第１の通信表に含まれる。
【００７８】
次に、図２７乃至図２９を用いて、第２生成処理について説明する。図２７は、第２生成処理の処理フローを示す図である。
【００７９】
第２生成部３０１３は、同一の列に属する実行スイッチに接続される代表サーバの間で行われるオールリデュースの各フェーズにおいて通信を実行するサーバの識別情報を含む第２の通信表を生成する（図２７：ステップＳ５１）。ここで、代表サーバとは、同じ実行スイッチに接続される実行サーバのうち他の実行スイッチに接続される実行サーバとの通信を実行するサーバである。代表スイッチは、例えば、実行サーバに割り振られた番号に基づき或いは同じ実行スイッチに接続された実行サーバの中からランダムに選択される。
【００８０】
図２８及び図２９を用いて、第２の通信表にて実現されるオールリデュースについて説明する。図２８には、一例として、実行スイッチであるＬｅａｆスイッチＰ（０，１）、ＬｅａｆスイッチＰ（１，１）、ＬｅａｆスイッチＰ（２，１）、ＬｅａｆスイッチＰ（０，０）、ＬｅａｆスイッチＰ（１，０）及びＬｅａｆスイッチＰ（２，０）が示されている。ＬｅａｆスイッチＰ（０，１）に接続される代表サーバが値「１１」を持つ。ＬｅａｆスイッチＰ（１，１）に接続される代表サーバが値「１３」を持つ。ＬｅａｆスイッチＰ（２，１）に接続される代表サーバが値「１０」を持つ。ＬｅａｆスイッチＰ（０，０）に接続される代表サーバが値「１４」を持つ。ＬｅａｆスイッチＰ（１，０）に接続される代表サーバが値「１０」を持つ。ＬｅａｆスイッチＰ（２，０）に接続される代表サーバが値「１４」を持つ。
【００８１】
この場合、ＬｅａｆスイッチＰ（０，１）に接続される代表サーバとＬｅａｆスイッチＰ（０，０）に接続される代表サーバとの間で値が共有され値の演算が実行される。ＬｅａｆスイッチＰ（１，１）に接続される代表サーバとＬｅａｆスイッチＰ（１，０）に接続される代表サーバとの間で値が共有され値の演算が実行される。ＬｅａｆスイッチＰ（２，１）に接続される代表サーバとＬｅａｆスイッチＰ（２，０）に接続される代表サーバとの間で値が共有され値の演算が実行される。なお、各列についての通信は並行して行われる。
【００８２】
結果として、図２９に示すように、ＬｅａｆスイッチＰ（０，１）に接続される代表サーバが値「２５」を持つ。ＬｅａｆスイッチＰ（１，１）に接続される代表サーバが値「２３」を持つ。ＬｅａｆスイッチＰ（２，１）に接続される代表サーバが値「２４」を持つ。ＬｅａｆスイッチＰ（０，０）に接続される代表サーバが値「２５」を持つ。ＬｅａｆスイッチＰ（１，０）に接続される代表サーバが値「２３」を持つ。ＬｅａｆスイッチＰ（２，０）に接続される代表サーバが値「２４」を持つ。
【００８３】
以上のような通信の各フェーズにおいては、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
【００８４】
図２７の説明に戻り、第２生成部３０１３は、ステップＳ５１において生成された第２の通信表を通信表格納部３０３に格納する（ステップＳ５３）。そして処理は呼び出し元に戻る。なお、第２の通信表はオールリデュースについての通信表であるので、第１の通信表と同様の方法で生成されるため同様の形式を有する。但し、第２の通信表にて実現されるオールリデュースは同じ列に属する実行スイッチに接続される代表サーバの間で行われるオールリデュースであるので、オールリデュースが行われる各列についての通信情報が格納される。
【００８５】
次に、図３０乃至図３４を用いて、第３生成処理について説明する。図３０は、第３生成処理の処理フローを示す図である。
【００８６】
第３生成部３０１５は、同一の行に属する実行スイッチに接続される代表サーバの間で行われるオールリデュースの各フェーズにおいて通信を実行するサーバの識別情報を含む第３の通信表を生成する（図３０：ステップＳ６１）。上で述べたように、代表サーバとは、同じ実行スイッチに接続される実行サーバのうち他の実行スイッチに接続される実行サーバとの通信を実行するサーバである。
【００８７】
図３１乃至図３４を用いて、第３の通信表にて実現されるオールリデュースについて説明する。図３１には、一例として、実行スイッチであるＬｅａｆスイッチＰ（０，１）、ＬｅａｆスイッチＰ（１，１）、ＬｅａｆスイッチＰ（２，１）、ＬｅａｆスイッチＰ（０，０）、ＬｅａｆスイッチＰ（１，０）及びＬｅａｆスイッチＰ（２，０）が示されている。ＬｅａｆスイッチＰ（０，１）に接続される代表サーバが値「２５」を持つ。ＬｅａｆスイッチＰ（１，１）に接続される代表サーバが値「２３」を持つ。ＬｅａｆスイッチＰ（２，１）に接続される代表サーバが値「２４」を持つ。ＬｅａｆスイッチＰ（０，０）に接続される代表サーバが値「２５」を持つ。ＬｅａｆスイッチＰ（１，０）に接続される代表サーバが値「２３」を持つ。ＬｅａｆスイッチＰ（２，０）に接続される代表サーバが値「２４」を持つ。
【００８８】
まず、例えば図３１に示すように、ＬｅａｆスイッチＰ（０，１）に接続される代表サーバとＬｅａｆスイッチＰ（１，１）に接続される代表サーバとの間で値が共有され値の演算が実行される。ＬｅａｆスイッチＰ（０，０）に接続される代表サーバとＬｅａｆスイッチＰ（１，０）に接続される代表サーバとの間で値が共有され値の演算が実行される。なお、各行についての通信は並行して行われる。
【００８９】
次に、例えば図３２に示すように、ＬｅａｆスイッチＰ（１，１）に接続される代表サーバとＬｅａｆスイッチＰ（２，１）に接続される代表サーバとの間で値が共有され値の演算が実行される。ＬｅａｆスイッチＰ（１，０）に接続される代表サーバとＬｅａｆスイッチＰ（２，０）に接続される代表サーバとの間で値が共有され値の演算が実行される。なお、各行についての通信は並行して行われる。
【００９０】
次に、例えば図３３に示すように、ＬｅａｆスイッチＰ（１，１）に接続される代表サーバからＬｅａｆスイッチＰ（０，１）に接続される代表サーバに結果が送信される。ＬｅａｆスイッチＰ（１，０）に接続される代表サーバからＬｅａｆスイッチＰ（０，０）に接続される代表サーバに結果が送信される。なお、各行についての通信は並行して行われる。
【００９１】
結果として、図３４に示すように、各代表サーバが値「７２」を持つ。以上のような通信の各フェーズにおいては、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
【００９２】
図３０の説明に戻り、第３生成部３０１５は、ステップＳ６１において生成された第３の通信表を通信表格納部３０３に格納する（ステップＳ６３）。そして処理は呼び出し元に戻る。なお、第３の通信表はオールリデュースについての通信表であり、第１の通信表と同様の方法で生成されるため同様の形式を有する。但し、第３の通信表にて実現されるオールリデュースは同じ行に属する実行スイッチに接続される代表サーバの間で行われるオールリデュースであるので、オールリデュースが行われる各行についての通信情報が格納される。
【００９３】
次に、図３５乃至図３８を用いて、第４生成処理について説明する。図３５は、第４生成処理の処理フローを示す図である。
【００９４】
第４生成部３０１７は、各代表サーバから当該代表サーバと同じＬｅａｆスイッチに接続される他サーバへの結果配布における各フェーズで通信を実行するサーバの識別情報を含む第４の通信表を生成する（図３５：ステップＳ６５）。
【００９５】
図３６乃至図３８を用いて、第４の通信表にて実現される結果配布について説明する。図３６乃至図３８には、一例として、１台のＬｅａｆスイッチとそのＬｅａｆスイッチに接続される４台のサーバとが示されており、最も左に位置するサーバは代表サーバである。はじめに、図３６に示すように、代表サーバは右から２番目のサーバに値「７２」を送信する。
【００９６】
すると、図３７に示すように、代表サーバ及び右から２番目のサーバは値「７２」を持ち、右から１番目のサーバ及び右から３番目のサーバは値「１４」を持つ。そして、図３７に示すように、代表サーバは値「７２」を右から３番目のサーバに送信し、右から２番目のサーバは値「７２」を右から１番目のサーバに送信する。
【００９７】
すると、図３８に示すように、各サーバはオールリデュースの結果である値「７２」を持つ。以上のようにして第４の通信表による結果配布が実現される。フェーズ数は２であり、いずれのフェーズにおいても、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
【００９８】
図３５の説明に戻り、第４生成部３０１７は、ステップＳ６５において生成された第４の通信表を通信表格納部３０３に格納する（ステップＳ６７）。そして処理は呼び出し元に戻る。なお、第４の通信表には、各実行スイッチにおける結果配布についての通信情報が、図２６に示した第１の通信表と同様の形式で格納されるので、ここでは詳細な説明を省略する。
【００９９】
次に、図３９及び図４０を用いて、サーバが実行する処理について説明する。本処理は、第１乃至第４の通信表を管理装置３から受信した各サーバが実行する処理である。
【０１００】
図３９は、サーバが実行する処理の処理フローを示す図である。
【０１０１】
サーバにおける第１通信部１０１１は、フェーズ番号を表す変数ｉに１を設定する（図３９：ステップＳ７１）。
【０１０２】
第１通信部１０１１は、通信表格納部１０３に格納されている第１の通信表から、フェーズｉの通信情報を特定する（ステップＳ７３）。
【０１０３】
第１通信部１０１１は、自サーバ（すなわち、本処理を実行しているサーバ）がフェーズｉにおいて通信を実行するか判定する（ステップＳ７５）。自サーバがフェーズｉにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
【０１０４】
自サーバがフェーズｉにおいて通信を実行しない場合（ステップＳ７５：Ｎｏルート）、処理はステップＳ７９に移行する。一方、自サーバがフェーズｉにおいて通信を実行する場合（ステップＳ７５：Ｙｅｓルート）、第１通信部１０１１は、ステップＳ７３において特定された通信情報に従って通信を実行する（ステップＳ７７）。
【０１０５】
上で述べたように、第１の通信表に従って行われる通信は、同一のＬｅａｆスイッチに接続されるサーバ間でのオールリデュース通信であり、他のサーバから値を受信したサーバはオールリデュースに係る演算を実行する。
【０１０６】
第１通信部１０１１は、ｉ＝ｉmax1が成立するか判定する（ステップＳ７９）。ｉmax1は、第１の通信表に従って行われる通信のフェーズ番号の最大値である。ｉ＝ｉmax1が成立しない場合（ステップＳ７９：Ｎｏルート）、第１通信部１０１１は、ｉを１インクリメントする（ステップＳ８１）。そして処理はステップＳ７３に移行する。なお、フェーズの終了はバリア同期によって確認される。
【０１０７】
一方、ｉ＝ｉmax1が成立する場合（ステップＳ７９：Ｙｅｓルート）、第２通信部１０１３は、フェーズ番号を表す変数ｉに１を設定する（ステップＳ８３）。
【０１０８】
第２通信部１０１３は、通信表格納部１０３に格納されている第２の通信表から、フェーズｉの通信情報を特定する（ステップＳ８５）。
【０１０９】
第２通信部１０１３は、自サーバ（すなわち、本処理を実行しているサーバ）がフェーズｉにおいて通信を実行するか判定する（ステップＳ８７）。自サーバがフェーズｉにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
【０１１０】
自サーバがフェーズｉにおいて通信を実行しない場合（ステップＳ８７：Ｎｏルート）、処理はステップＳ９１に移行する。一方、自サーバがフェーズｉにおいて通信を実行する場合（ステップＳ８７：Ｙｅｓルート）、第２通信部１０１３は、ステップＳ８５において特定された通信情報に従って通信を実行する（ステップＳ８９）。
【０１１１】
上で述べたように、第２の通信表に従って行われる通信は、同じ列に属する実行スイッチに接続される代表サーバの間で行われるオールリデュース通信であり、他のサーバから値を受信したサーバはオールリデュースに係る演算を実行する。
【０１１２】
第２通信部１０１３は、ｉ＝ｉmax2が成立するか判定する（ステップＳ９１）。ｉmax2は、第２の通信表に従って行われる通信のフェーズ番号の最大値である。ｉ＝ｉmax2が成立しない場合（ステップＳ９１：Ｎｏルート）、第２通信部１０１３は、ｉを１インクリメントする（ステップＳ９３）。そして処理はステップＳ８５に移行する。なお、フェーズの終了はバリア同期によって確認される。
【０１１３】
一方、ｉ＝ｉmax2が成立する場合（ステップＳ９１：Ｙｅｓルート）、処理は端子Ａを介して図４０のステップＳ９５に移行する。
【０１１４】
図４０の説明に移行し、第３通信部１０１５は、フェーズ番号を表す変数ｉに１を設定する（図４０：ステップＳ９５）。
【０１１５】
第３通信部１０１５は、通信表格納部１０３に格納されている第３の通信表から、フェーズｉの通信情報を特定する（ステップＳ９７）。
【０１１６】
第３通信部１０１５は、自サーバ（すなわち、本処理を実行しているサーバ）がフェーズｉにおいて通信を実行するか判定する（ステップＳ９９）。自サーバがフェーズｉにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
【０１１７】
自サーバがフェーズｉにおいて通信を実行しない場合（ステップＳ９９：Ｎｏルート）、処理はステップＳ１０３に移行する。一方、自サーバがフェーズｉにおいて通信を実行する場合（ステップＳ９９：Ｙｅｓルート）、第３通信部１０１５は、ステップＳ９７において特定された通信情報に従って通信を実行する（ステップＳ１０１）。
【０１１８】
上で述べたように、第３の通信表に従って行われる通信は、同じ行に属する実行スイッチに接続される代表サーバの間で行われるオールリデュース通信であり、他のサーバから値を受信したサーバはオールリデュースに係る演算を実行する。
【０１１９】
第３通信部１０１５は、ｉ＝ｉmax3が成立するか判定する（ステップＳ１０３）。ｉmax3は、第３の通信表に従って行われる通信のフェーズ番号の最大値である。ｉ＝ｉmax3が成立しない場合（ステップＳ１０３：Ｎｏルート）、第３通信部１０１５は、ｉを１インクリメントする（ステップＳ１０５）。そして処理はステップＳ９７に移行する。なお、フェーズの終了はバリア同期によって確認される。
【０１２０】
一方、ｉ＝ｉmax3が成立する場合（ステップＳ１０３：Ｙｅｓルート）、第４通信部１０１７は、フェーズ番号を表す変数ｉに１を設定する（ステップＳ１０７）。
【０１２１】
第４通信部１０１７は、通信表格納部１０３に格納されている第４の通信表から、フェーズｉの通信情報を特定する（ステップＳ１０９）。
【０１２２】
第４通信部１０１７は、自サーバ（すなわち、本処理を実行しているサーバ）がフェーズｉにおいて通信を実行するか判定する（ステップＳ１１１）。自サーバがフェーズｉにおいて通信を実行するか否かは、特定された通信情報に自サーバの識別情報が含まれているか否かにより判定される。
【０１２３】
自サーバがフェーズｉにおいて通信を実行しない場合（ステップＳ１１１：Ｎｏルート）、処理はステップＳ１１５に移行する。一方、自サーバがフェーズｉにおいて通信を実行する場合（ステップＳ１１１：Ｙｅｓルート）、第４通信部１０１７は、ステップＳ１０９において特定された通信情報に従って通信を実行する（ステップＳ１１３）。
【０１２４】
上で述べたように、第４の通信表に従って行われる通信は、オールリデュースの結果を持つ代表サーバから当該サーバと同じＬｅａｆスイッチに接続される他のサーバへの結果配布である。
【０１２５】
第４通信部１０１７は、ｉ＝ｉmax4が成立するか判定する（ステップＳ１１５）。ｉmax4は、第４の通信表に従って行われる通信のフェーズ番号の最大値である。ｉ＝ｉmax4が成立しない場合（ステップＳ１１５：Ｎｏルート）、第４通信部１０１７は、ｉを１インクリメントする（ステップＳ１１７）。そして処理はステップＳ１０９に移行する。なお、フェーズの終了はバリア同期によって確認される。
【０１２６】
一方、ｉ＝ｉmax4が成立する場合（ステップＳ１１５：Ｙｅｓルート）、処理は終了する。
【０１２７】
以上のような処理を実行すれば、ラテン方陣ファットツリーシステム１０００における一部のサーバによりオールリデュースを実現することができるようになる。よって、オールリデュースを実行するサーバ以外のサーバに対して他の集団通信等を実行させることが可能になる。
【０１２８】
また、上で述べたように、本実施の形態においては、オールリデュース通信の各過程において経路競合が発生することはない。
【０１２９】
［実施の形態２］
第２の実施の形態においては、第１の実施の形態の選択処理とは異なる選択処理が実行される。図４１乃至図４３を用いて、第２の実施の形態の選択処理について説明する。
【０１３０】
図４１は、第２の実施の形態の選択処理の処理フローを示す図である。ｋは１≦ｋ≦ｄを満たす自然数であり、予め設定されるものとする。
【０１３１】
まず、設定部３００は、変数ｌをｌ＝１として設定する（図４１：ステップＳ１５１）。
【０１３２】
設定部３００は、有限射影平面の格子部分において（ａ，ｂ）＝（ｋ，ｌ）である矩形領域を設定する（ステップＳ１５３）。
【０１３３】
設定部３００は、ステップＳ１５３において設定された矩形領域に含まれるＬｅａｆスイッチに接続された未使用サーバの数を計数する（ステップＳ１５５）。なお、管理装置３は、ラテン方陣ファットツリーシステム１０００における各サーバが使用中であるか否かを管理しているものとする。
【０１３４】
設定部３００は、ステップＳ１５５において計数された未使用サーバの数がｎ以上であるか判定する（ステップＳ１５７）。ｎは、ステップＳ１において入力された情報が示す実行サーバ数である。
【０１３５】
ステップＳ１５５において計数された未使用サーバの数がｎ以上ではない場合（ステップＳ１５７：Ｎｏルート）、設定部３００は、以下の処理を実行する。具体的には、設定部３００は、ｌを１インクリメントすることで矩形領域を横方向に拡張する（ステップＳ１５９）。そして処理はステップＳ１５５に戻る。
【０１３６】
図４２及び図４３は、矩形領域の拡張について説明するための図である。例えば図４２に示すように、初期状態においてｋ＝２であり且つｌ＝１である。矩形領域に含まれるＬｅａｆスイッチＰ（０，０）に接続される未使用サーバの数は１であり、矩形領域に含まれるＬｅａｆスイッチＰ（０，１）に接続される未使用サーバの数は２である。ｎ＝６である場合、未使用サーバの数は６より小さいので、図４３に示すように矩形領域が横方向に拡張される。拡張後の矩形領域におけるＬｅａｆスイッチＰ（１，０）に接続される未使用サーバの数は２であり、拡張後の矩形領域におけるＬｅａｆスイッチＰ（１，１）に接続される未使用サーバの数は１である。この場合、拡張後の矩形領域内の未使用サーバの数は６であるので、矩形領域の拡張は停止する。
【０１３７】
一方、ステップＳ１５５において計数された未使用サーバの数がｎ以上である場合（ステップＳ１５７：Ｙｅｓルート）、設定部３００は、以下の処理を実行する。具体的には、設定部３００は、有限射影平面の格子部分において、（ａ，ｂ）＝（ｋ，ｌ）である矩形領域からｎ台の実行サーバを選択し、選択されたｎ台の実行サーバの識別情報をジョブデータ格納部３０７に格納する（ステップＳ１６１）。そして処理は呼び出し元に戻る。
【０１３８】
以上のような処理を実行すれば、使用されていないサーバを活用するという観点で実行サーバを選択することができるようになる。なお、上で述べた例では横方向に矩形領域が拡張されるが、矩形領域は縦方向に拡張されてもよい。
【０１３９】
［実施の形態３］
第３の実施の形態においては、第１及び第２の実施の形態の選択処理とは異なる選択処理が実行される。図４４を用いて、第３の実施の形態の選択処理について説明する。
【０１４０】
図４４は、第３の実施の形態の選択処理の処理フローを示す図である。
【０１４１】
設定部３００は、ｋをｋ＝［ｎ1/2］＋１として算出する（図４４：ステップＳ１７１）。ｎは、ステップＳ１において入力された情報が示す実行サーバ数である。
【０１４２】
設定部３００は、有限射影平面の格子部分において（ａ，ｂ）＝（ｋ，ｋ）である矩形領域を設定する（ステップＳ１７３）。
【０１４３】
設定部３００は、矩形領域における各Ｌｅａｆスイッチから１台の実行サーバを選択することでｎ台以上の実行サーバを選択し、選択された実行サーバの識別情報をジョブデータ格納部３０７に格納する（ステップＳ１７５）。そして処理は呼び出し元に戻る。
【０１４４】
以上のような処理を実行すれば、実行スイッチに接続される実行サーバの数は１台又は０台であるので、各実行スイッチでのオールリデュース及び結果配布を省略することができるようになる。これにより、オールリデュースを完了するまでの時間を短縮できるようになる。第３の実施の形態は、特にスイッチ間の通信コストがサーバ間のスイッチコストより少ない（例えば、スイッチ間の接続帯域がサーバ間の接続帯域より広い）場合に有効である。
【０１４５】
なお、ｎ台以上のサーバが実行サーバとして選択されるため、余剰のサーバによるオーバーヘッドが発生するが、オーバーヘッドは高々１／ｋ程度である。余剰のサーバのデータ量は０として扱われる。
【０１４６】
［実施の形態４］
第４の実施の形態においては、第１乃至第３の実施の形態の選択処理とは異なる選択処理が実行される。図４５を用いて、第４の実施の形態の選択処理について説明する。
【０１４７】
図４５は、第４の実施の形態の選択処理の処理フローを示す図である。
【０１４８】
設定部３００は、ｋをｋ＝［ｎ1/3］として設定する（図４５：ステップＳ１８１）。ｎは、ステップＳ１において入力された情報が示す実行サーバ数である。
【０１４９】
設定部３００は、ｎ＜ｋ2（ｋ＋１）が成立するか判定する（ステップＳ１８３）。
【０１５０】
ｎ＜ｋ2（ｋ＋１）が成立する場合（ステップＳ１８３：Ｙｅｓルート）、設定部３００は、有限射影平面の格子部分において、（ａ，ｂ）＝（ｋ，ｋ）である矩形領域を設定する（ステップＳ１８５）。そして処理はステップＳ１９３に移行する。
【０１５１】
ｎ＜ｋ2（ｋ＋１）が成立しない場合（ステップＳ１８３：Ｎｏルート）、設定部３００は、ｎ＜ｋ（ｋ＋１）2が成立するか判定する（ステップＳ１８７）。
【０１５２】
ｎ＜ｋ（ｋ＋１）2が成立する場合（ステップＳ１８７：Ｙｅｓルート）、設定部３００は、有限射影平面の格子部分において、（ａ，ｂ）＝（ｋ，ｋ＋１）である矩形領域を設定する（ステップＳ１８９）。そして処理はステップＳ１９３に移行する。
【０１５３】
ｎ＜ｋ（ｋ＋１）2が成立しない場合（ステップＳ１８７：Ｎｏルート）、設定部３００は、有限射影平面の格子部分において、（ａ，ｂ）＝（ｋ＋１，ｋ＋１）である矩形領域を設定する（ステップＳ１９１）。
【０１５４】
設定部３００は、設定された矩形領域における各Ｌｅａｆスイッチについてｋ台又は（ｋ＋１）台の実行サーバを選択することで計ｎ台の実行サーバを選択する（ステップＳ１９３）。
【０１５５】
設定部３００は、ステップＳ１９３において選択されたｎ台の実行サーバの識別情報をジョブデータ格納部３０７に格納する（ステップＳ１９５）。そして処理は呼び出し元に戻る。
【０１５６】
以上のような処理を実行すれば、変数ａ、変数ｂ及び変数ｃの差は高々１になるので、変数の大きさに偏りがあることを原因とするオーバーヘッドを最小限にすることができるようになる。
【０１５７】
［実施の形態５］
第５の実施の形態においては、第１乃至第４の実施の形態の選択処理とは異なる選択処理が実行される。図４６を用いて、第５の実施の形態の選択処理について説明する。
【０１５８】
図４６は、第５の実施の形態の選択処理の処理フローを示す図である。
【０１５９】
設定部３００は、有限射影平面の格子部分において、（ａ，ｂ）＝（２s，２t）である矩形領域を設定する（図４６：ステップＳ１３１）。ｓおよびｔは自然数である。
【０１６０】
設定部３００は、ステップＳ１３１において設定された各Ｌｅａｆスイッチについて［ｎ／２s+t］台又は（［ｎ／２s+t］＋α）台の実行サーバを選択することで計ｎ台の実行サーバを選択する（ステップＳ１３３）。αは自然数である。ｎは、ステップＳ１において入力された情報が示す実行サーバ数である。
【０１６１】
設定部３００は、ステップＳ１３３において選択されたｎ台の実行サーバの識別情報をジョブデータ格納部３０７に格納する（ステップＳ１３５）。そして処理は呼び出し元に戻る。
【０１６２】
変数ａ、変数ｂ及び変数ｃiが２の冪である場合には、オールリデュースのフェーズ数を少なくすることができる。第５の実施の形態においては、少なくとも変数ａ及び変数ｂは２の冪であるので、オールリデュース通信の時間を短縮することができるようになる。
【０１６３】
例えば、指定された実行サーバ数が７２９であるとする。この場合、ａ＝ｂ＝ｃi＝９とすると、通信のフェーズ数は５＊４＝２０である。一方、ａ＝２4＝１６、ｂ＝２5＝３２、ｃ＝１又は２とすると、通信のフェーズ数は１１（＝１＋４＋５＋１）である。
【０１６４】
［実施の形態６］
第１乃至第５の実施の形態においては、第１生成処理においてオールリデュースについての第１の通信表が生成されるが、第６の実施の形態においては、第１生成処理においてリデュースについての第１の通信表が生成される。リデュースの結果を持つサーバを代表サーバとすれば、その後の通信は第１乃至第５の実施の形態と同様である。
【０１６５】
図４７は、第６の実施の形態の第１生成処理の処理フローを示す図である。
【０１６６】
第１生成部３０１１は、各実行スイッチでのリデュースの各フェーズにおいて通信を実行するサーバの識別情報を含む第１の通信表を生成する（図４７：ステップＳ１４１）。
【０１６７】
図４８乃至図５０を用いて、第６の実施の形態における第１の通信表にて実現されるリデュースについて説明する。図４８乃至図５０には、一例として、１台のＬｅａｆスイッチと、そのＬｅａｆスイッチに接続される４台のサーバとが示されており、最も左に位置するサーバ（以下、代表サーバと呼ぶ）がリデュースの結果を持つように通信が行われるとする。
【０１６８】
はじめに、図４８に示すように、左から２番目のサーバは値「７」を代表サーバに送信し、並行して左から４番目のサーバは値「２」を左から３番目のサーバに送信する。代表サーバ及び左から３番円のサーバは演算（ここでは加算）を実行する。
【０１６９】
すると、図４９に示すように、代表サーバは値「１０」を持ち、左から３番目のサーバは値「４」を持つ。そして、左から３番目のサーバは値「４」を代表サーバに送信する。代表サーバは演算を実行する。
【０１７０】
すると、図５０に示すように、代表サーバは、元の４つの数の合計に相当する値「１４」を持つ。以上のようにしてリデュースが実現される。フェーズ数は２であり且つサーバ数ｄは４であるので、Ｏ（ｌｏｇ（ｄ））フェーズでリデュースが実現されている。対数の底は２である。いずれのフェーズにおいても、複数のパケットが同じ方向に同時に送信されるリンクは存在しないので、経路競合は発生していない。
【０１７１】
図４７の説明に戻り、第１生成部３０１１は、ステップＳ１４１において生成された第１の通信表を通信表格納部３０３に格納する（ステップＳ１４３）。そして処理は呼び出し元に戻る。なお、第６の実施の形態において生成される第１の通信表は、第１の実施の形態において生成される第１の通信表と同様の形式であるので、ここでは詳細な説明を省略する。
【０１７２】
以上のような処理を実行すれば、第１の通信表にて実現される通信のフェーズ数を、オールリデュースの場合と比べて減らすことができるようになる。
【０１７３】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理装置３及びサーバの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【０１７４】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１７５】
また、上で述べた例においては、オールリデュース及びリデュースの演算として加算が行われるが、加算以外の演算（例えば乗算）が行われてもよい。
【０１７６】
［付録］
本付録においては、ラテン方陣ファットツリーおよび有限射影平面について説明する。
【０１７７】
有限射影平面とは、普通の平面に無限遠点をいくつか加え且つ「平行な２直線」をなくした平面に相当する。図５１に、位数（以下ｎとする）が２であり且つポート数が６（＝２（ｎ＋１））である場合の有限射影平面の構造を示す。図５１において、枠５１２で囲まれた３（＝ｎ＋１）台のＬｅａｆスイッチは無限遠点に相当する。
【０１７８】
有限射影平面においては、１個の点Ｐが設定され、ｎ個の点Ｐ（ｃ）（ｃ＝０，１，．．．，ｎ−１）が設定され、ｎ2個の点Ｐ（ｃ，ｒ）（ｃ，ｒ＝０，１，．．．，ｎ−１）が設定される。また、１本の直線Ｌ＝｛Ｐ，Ｐ（０），．．．，Ｐ（ｎ−１）｝が設定され、ｎ本の直線Ｌ＝｛Ｐ，Ｐ（ｃ，０），．．．，Ｐ（ｃ，ｎ−１）｝（ｃ＝０，１，．．．，ｎ−１）が設定され、ｎ2本の直線Ｌ（ｃ，ｒ）＝｛Ｐ（ｃ）およびＰ（ｉ，（ｒ＋ｃｉ） ｍｏｄ ｎ）｝（ｉ，ｃ，ｒ＝０，１，．．．，ｎ−１）が設定される。
【０１７９】
有限射影平面の特徴として、（ｎ2＋ｎ＋１）の点が存在し、直線の数は（ｎ2＋ｎ＋１）である。任意の２直線は１点で交わり、任意の２点を結ぶ直線がただ一つ存在する。但し、ｎは素数であるという制約がある。
【０１８０】
有限射影平面の構造は、トポロジ構造に置き換えられる。例えば、図５２（ａ）に示した有限射影平面の構造は、図５２（ｂ）に示したトポロジ構造に置き換えられる。図５２（ａ）において、直線はＳｐｉｎｅスイッチを表し、点はＬｅａｆスイッチを表す。図５２（ｂ）において、ハッチングされた矩形はＳｐｉｎｅスイッチを表し、ハッチングされていない矩形はＬｅａｆスイッチを表す。
【０１８１】
図５３（ａ）に示したトポロジ構造は、Ｓｐｉｎｅスイッチの数が７であり且つＬｅａｆスイッチの数が７であるラテン方陣ファットツリーのトポロジ構造であり、図５３（ｂ）に示した有限射影平面の構造に対応する。図５３（ａ）において太線で囲まれた部分のトポロジ構造は、図５２（ｂ）のトポロジ構造と同じである。また、図５３（ｂ）において太線で囲まれた部分の構造は、図５３（ａ）において太線で囲まれた部分のトポロジ構造に対応する。
【０１８２】
図５３（ｂ）に示した構造は、図５４に示す構造に変換することができる。図５４において、ハッチングされた格子部分に含まれる４（＝ｎ＊ｎ）台のＬｅａｆスイッチは、図５１において枠５１１に囲まれた部分に含まれる４台のＬｅａｆスイッチに対応する。格子部分において平行な直線群は、追加の点において交わるように変換される。すなわち、傾きが等しい直線同士が交わるように変換される。
【０１８３】
以上で付録を終了する。
【０１８４】
なお、上で述べた管理装置３及びサーバは、コンピュータ装置であって、図５５に示すように、メモリ２５０１とＣＰＵ２５０３とＨＤＤ２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１８５】
また、上で述べたＬｅａｆスイッチ及びＳｐｉｎｅスイッチは、図５６に示すように、メモリ２６０１とＣＰＵ２６０３とＨＤＤ２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図５６では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１８６】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１８７】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）接続形態がラテン方陣ファットツリーである複数のリーフスイッチ（実施の形態におけるＬｅａｆスイッチは上記複数のリーフスイッチの一例である）と、（Ｂ）複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置（実施の形態におけるサーバは上記複数の情報処理装置の一例である）と、（Ｃ）管理装置とを有する。そして、管理装置は、（ｃ１）ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定する特定部（実施の形態における設定部３００は上記特定部の一例である）と、（ｃ２）特定されたリーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する送信部（実施の形態における通信表生成部３０１は上記送信部の一例である）とを有する。
【０１８８】
ラテン方陣ファットツリーシステムにおけるサーバのうち一部のサーバによりオールリデュースを実行できるようになる。また、同じスパインスイッチに接続されたリーフスイッチがオールリデュースに利用されるので、オールリデュースにおいて効率的な通信が可能である。
【０１８９】
また、特定部は、（ｃ１１）格子部分に含まれる矩形領域のうち所定の最適化関数の値が最大である矩形領域から１又は複数の行と１又は複数の列とを抽出してもよい。
【０１９０】
総合的に適切な行および列を自動で選択できるようになる。
【０１９１】
また、所定の最適化関数は、少なくとも通信コストと複数の情報処理装置の使用状況と複数のリーフスイッチの物理位置とに基づく関数であってもよい。
【０１９２】
少なくとも通信コスト、複数の情報処理装置の使用状況および複数のリーフスイッチの物理位置等を考慮しつつ適切な行および列を選択できるようになる。
【０１９３】
また、特定部は、（ｃ１２）格子部分に含まれる矩形領域内のリーフスイッチに接続され且つ使用されていない第１情報処理装置の数が所定数を超えるまで矩形領域を拡張し、第１情報処理装置の数が所定数を超えた場合に矩形領域から１又は複数の行と１又は複数の列とを抽出してもよい。
【０１９４】
情報処理装置の使用状況に応じた適切な抽出が可能になる。
【０１９５】
また、特定部は、（ｃ１３）所定数の平方根の整数部分に１を加えた数を行数とし且つ当該数を列数とする矩形領域から１又は複数の行と１又は複数の列とを抽出してもよい。
【０１９６】
リーフスイッチに接続される情報処理装置の数が複数である場合、その情報処理装置の間で通信が行われる。上で述べたようにすれば、矩形領域内のリーフスイッチに接続されるリーフスイッチの数は０又は１になるので、リーフスイッチに接続される情報処理装置の間での通信を省くことによりオールリデュースの完了までの時間を短縮できるようになる。
【０１９７】
また、特定部は、（ｃ１４）所定数の立方根の整数部分に相当する第１の数を算出し、所定数が、第１の数の自乗と第１の数に１を加えた数との積より小さい場合、第１の数を行数とし且つ第１の数を列数とする矩形領域から１又は複数の行と１又は複数の列とを抽出し、所定数が、第１の数の自乗と第１の数に１を加えた数との積以上であり、且つ、第１の数と第１の数に１を加えた数の自乗との積より小さい場合、第１の数を行数とし且つ第１の数に１を加えた数を列数とする矩形領域から１又は複数の行と１又は複数の列とを抽出し、所定数が、第１の数と第１の数に１を加えた数の自乗との積以上である場合、第１の数に１を加えた数を行数とし且つ第１の数に１を加えた数を列数とする矩形領域から１又は複数の行と１又は複数の列とを抽出してもよい。
【０１９８】
行数および列数の偏りによって発生するオーバーヘッドを減らすことができるようになる。
【０１９９】
また、特定部は、（ｃ１５）２の冪を行数とし且つ２の冪を列数とする矩形領域から１又は複数の行と１又は複数の列とを抽出してもよい。
【０２００】
情報処理装置の２の冪でない場合、２の冪である場合と比べるとより多くのフェーズ数がオールリデュースに必要になる。すなわち、通信のオーバーヘッドが発生する。従って、上で述べたような処理を実行すれば、通信のオーバーヘッドを削減することができるようになる。
【０２０１】
また、特定部は、（ｃ１６）特定されたリーフスイッチの各々から抽出される情報処理装置の数が均一になるように、所定数の情報処理装置を抽出してもよい。
【０２０２】
情報処理装置の数の偏りによって発生するオーバーヘッドを減らすことができるようになる。
【０２０３】
また、実行指示を受信した情報処理装置は、（ｂ１）通信の各フェーズにおいて、１台の他の情報処理装置に対してデータを送信し且つ他の情報処理装置からのデータを受信する情報処理装置に対してはデータを送信しないようにオールリデュースを実行してもよい。
【０２０４】
経路競合が発生することを抑止できるようになる。
【０２０５】
本実施の形態の第２の態様に係る管理装置は、（Ｄ）接続形態がラテン方陣ファットツリーである複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムについてのラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定する特定部（実施の形態における設定部３００は上記特定部の一例である）と、（Ｅ）特定されたリーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する送信部（実施の形態における通信表生成部３０１は上記送信部の一例である）とを有する。
【０２０６】
本実施の形態の第３の態様に係る情報処理方法は、（Ｆ）接続形態がラテン方陣ファットツリーである複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムについてのラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定し、（Ｇ）特定されたリーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する処理を含む。
【０２０７】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０２０８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２０９】
（付記１）
接続形態がラテン方陣ファットツリーである複数のリーフスイッチと、
前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、
管理装置と、
を有し、
前記管理装置は、
前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定する特定部と、
特定された前記リーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する送信部と、
を有する情報処理システム。
【０２１０】
（付記２）
前記特定部は、
前記格子部分に含まれる矩形領域のうち所定の最適化関数の値が最大である矩形領域から前記１又は複数の行と前記１又は複数の列とを抽出する、
付記１記載の情報処理システム。
【０２１１】
（付記３）
前記所定の最適化関数は、少なくとも通信コストと前記複数の情報処理装置の使用状況と前記複数のリーフスイッチの物理位置とに基づく関数である、
付記２記載の情報処理システム。
【０２１２】
（付記４）
前記特定部は、
前記格子部分に含まれる矩形領域内のリーフスイッチに接続され且つ使用されていない第１情報処理装置の数が前記所定数を超えるまで前記矩形領域を拡張し、前記第１情報処理装置の数が前記所定数を超えた場合に前記矩形領域から前記１又は複数の行と前記１又は複数の列とを抽出する、
付記１記載の情報処理システム。
【０２１３】
（付記５）
前記特定部は、
前記所定数の平方根の整数部分に１を加えた数を行数とし且つ当該数を列数とする矩形領域から前記１又は複数の行と前記１又は複数の列とを抽出する、
付記１記載の情報処理システム。
【０２１４】
（付記６）
前記特定部は、
前記所定数の立方根の整数部分に相当する第１の数を算出し、
前記所定数が、前記第１の数の自乗と前記第１の数に１を加えた数との積より小さい場合、前記第１の数を行数とし且つ前記第１の数を列数とする矩形領域から前記１又は複数の行と前記１又は複数の列とを抽出し、
前記所定数が、前記第１の数の自乗と前記第１の数に１を加えた数との積以上であり、且つ、前記第１の数と前記第１の数に１を加えた数の自乗との積より小さい場合、前記第１の数を行数とし且つ前記第１の数に１を加えた数を列数とする矩形領域から前記１又は複数の行と前記１又は複数の列とを抽出し、
前記所定数が、前記第１の数と前記第１の数に１を加えた数の自乗との積以上である場合、前記第１の数に１を加えた数を行数とし且つ前記第１の数に１を加えた数を列数とする矩形領域から前記１又は複数の行と前記１又は複数の列とを抽出する、
付記１記載の情報処理システム。
【０２１５】
（付記７）
前記特定部は、
２の冪を行数とし且つ２の冪を列数とする矩形領域から前記１又は複数の行と前記１又は複数の列とを抽出する、
付記１記載の情報処理システム。
【０２１６】
（付記８）
前記特定部は、
特定された前記リーフスイッチの各々から抽出される情報処理装置の数が均一になるように、前記所定数の情報処理装置を抽出する、
付記１乃至７のいずれか１つ記載の情報処理システム。
【０２１７】
（付記９）
前記実行指示を受信した情報処理装置は、
通信の各フェーズにおいて、１台の他の情報処理装置に対してデータを送信し且つ他の情報処理装置からのデータを受信する情報処理装置に対してはデータを送信しないように前記オールリデュースを実行する、
付記１乃至８のいずれか１つ記載の情報処理システム。
【０２１８】
（付記１０）
接続形態がラテン方陣ファットツリーである複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムについての前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定する特定部と、
特定された前記リーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する送信部と、
を有する管理装置。
【０２１９】
（付記１１）
コンピュータに、
接続形態がラテン方陣ファットツリーである複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置とを有する情報処理システムについての前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の部分である格子部分から１又は複数の行と１又は複数の列とを抽出し、抽出された１又は複数の行に含まれ且つ抽出された１又は複数の列に含まれる点に相当するリーフスイッチを特定し、
特定された前記リーフスイッチに接続された情報処理装置のうち所定数の情報処理装置に対して、オールリデュースの実行指示を送信する、
処理をコンピュータに実行させるプログラム。
【符号の説明】
【０２２０】
１０００  ラテン方陣ファットツリーシステム
３  管理装置    ３００  設定部
３０１  通信表生成部    ３０１１  第１生成部
３０１３  第２生成部    ３０１５  第３生成部
３０１７  第４生成部
３０３  通信表格納部    ３０５  トポロジデータ格納部
３０７  ジョブデータ格納部
１０１  処理部    １０１１  第１通信部
１０１３  第２通信部    １０１５  第３通信部
１０１７  第４通信部    １０３  通信表格納部
【図１】
2019008649.tif 000003
【図２】
2019008649.tif 000004
【図３】
2019008649.tif 000005
【図４】
2019008649.tif 000006
【図５】
2019008649.tif 000007
【図６】
2019008649.tif 000008
【図７】
2019008649.tif 000009
【図８】
2019008649.tif 000010
【図９】
2019008649.tif 000011
【図１０】
2019008649.tif 000012
【図１１】
2019008649.tif 000013
【図１２】
2019008649.tif 000014
【図１３】
2019008649.tif 000015
【図１４】
2019008649.tif 000016
【図１５】
2019008649.tif 000017
【図１６】
2019008649.tif 000018
【図１７】
2019008649.tif 000019
【図１８】
2019008649.tif 000020
【図１９】
2019008649.tif 000021
【図２０】
2019008649.tif 000022
【図２１】
2019008649.tif 000023
【図２２】
2019008649.tif 000024
【図２３】
2019008649.tif 000025
【図２４】
2019008649.tif 000026
【図２５】
2019008649.tif 000027
【図２６】
2019008649.tif 000028
【図２７】
2019008649.tif 000029
【図２８】
2019008649.tif 000030
【図２９】
2019008649.tif 000031
【図３０】
2019008649.tif 000032
【図３１】
2019008649.tif 000033
【図３２】
2019008649.tif 000034
【図３３】
2019008649.tif 000035
【図３４】
2019008649.tif 000036
【図３５】
2019008649.tif 000037
【図３６】
2019008649.tif 000038
【図３７】
2019008649.tif 000039
【図３８】
2019008649.tif 000040
【図３９】
2019008649.tif 000041
【図４０】
2019008649.tif 000042
【図４１】
2019008649.tif 000043
【図４２】
2019008649.tif 000044
【図４３】
2019008649.tif 000045
【図４４】
2019008649.tif 000046
【図４５】
2019008649.tif 000047
【図４６】
2019008649.tif 000048
【図４７】
2019008649.tif 000049
【図４８】
2019008649.tif 000050
【図４９】
2019008649.tif 000051
【図５０】
2019008649.tif 000052
【図５１】
2019008649.tif 000053
【図５２】
2019008649.tif 000054
【図５３】
2019008649.tif 000055
【図５４】
2019008649.tif 000056
【図５５】
2019008649.tif 000057
【図５６】
2019008649.tif 000058