(57)【要約】      （修正有）【課題】実行される各ジョブにおいて全対全通信が実行される場合に、ジョブ間で経路競合が発生しないラテン方陣ファットツリーシステムを提供する。【解決手段】ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点を含む格子部分における複数の列のうち、１又は複数の第１の列に対応する第１のリーフスイッチ群を、第１のジョブに割り当て、複数の列のうち、１又は複数の第１の列とは異なる１又は複数の第２の列に対応する第２のリーフスイッチ群を、第２のジョブに割り当てる。第１のジョブの全対全通信のスケジュール情報を、第１のリーフスイッチ群に接続されるサーバに送信し、第２のジョブの全対全通信のスケジュール情報を、第２のリーフスイッチ群に接続されるサーバに送信する。【選択図】図８
2019028853.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）２５０５に設けられる。
【００２０】
割当部３００は、管理データ格納部３０４に格納されているデータ及びトポロジデータ格納部３０５に格納されているデータに基づき、ジョブにリソース（具体的には、サーバおよびＬｅａｆスイッチなど）を割り当てる処理を実行する。通信表生成部３０１は、割当部３００による割り当ての結果およびトポロジデータ格納部３０５に格納されているデータに基づき通信表を生成し、生成された通信表を通信表格納部３０３に格納する。通信部３０２は、通信表格納部３０３に格納された通信表を、所定のタイミングで又はリクエストに応じて、ジョブに割り当てられたサーバ（以下、実行サーバと呼ぶ）に送信する。
【００２１】
図７は、サーバの機能ブロック図である。サーバは、通信部１０１と、通信表格納部１０３とを有する。通信部１０１は、例えば、図４２におけるメモリ２５０１にロードされたプログラムが図４２におけるＣＰＵ２５０３により実行されることで実現される。通信表格納部１０３は、例えば、図４２におけるメモリ２５０１又はＨＤＤ２５０５に設けられる。
【００２２】
通信表格納部１０３には、管理装置３から受信した通信表が格納される。通信部１０１は、通信表格納部１０３に格納された通信表に従って通信を行う。
【００２３】
次に、第１の実施の形態の管理装置３が実行する処理について説明する。図８は、第１の実施の形態の管理装置３が実行する処理の処理フローを示す図である。
【００２４】
管理装置３における割当部３００は、割当要求をユーザから受け付ける（図８：ステップＳ１）。割当要求はジョブに対するリソースの割り当ての要求であり、パラメータとして、例えばサーバの台数の情報ｓが含まれる。ｓを位数ｎで割ることによってｋ＊ｍが求められ、条件（ここでは、１≦ｋ≦ｎ、１≦ｍ≦ｎ、ｋ≧ｍ）を満たすようにｋ及びｍが特定される。パラメータｋは格子部分の列のうちジョブに割り当てられる列の数を表し、パラメータｍはＬｅａｆスイッチに接続されるサーバのうち全対全通信に参加するサーバの台数を表す。なお、パラメータとして、ｋ及びｍが割当要求に含まれていてもよい。
【００２５】
割当部３００は、管理データ格納部３０４に格納されている割当管理データを参照し、割り当てられていない列の数が列数ｋ以上であるか判定する（ステップＳ３）。
【００２６】
図９は、第１の実施の形態の管理データ格納部３０４に格納されている割当管理データの一例を示す図である。図９の例では、格子部分における各列について、当該列がジョブに割り当てられているか否かを示す情報が格納される。「ＦＡＬＳＥ」は列がジョブに割り当てられていないことを示し、「ＴＲＵＥ」は列がジョブに割り当てられていることを示す。このように、第１の実施の形態の割当管理データは配列の形式を有する。
【００２７】
割り当てられていない列の数が列数ｋ以上ではない場合（ステップＳ３：Ｎｏルート）、割当要求において指定されたジョブを実行できないので、処理は終了する。
【００２８】
一方、割り当てられていない列の数が列数ｋ以上である場合（ステップＳ３：Ｙｅｓルート）、割当部３００は、以下の処理を実行する。具体的には、割当部３００は、割り当てられていない列の中からジョブに割り当てる列を選択し、ジョブに割り当てる列に対応付けて「ＴＲＵＥ」を管理データ格納部３０４に登録する（ステップＳ５）。
【００２９】
図１０は、列の選択について説明するための図である。図１０においては格子部分における９つのＬｅａｆスイッチが示されており、３つの列のうち枠で囲まれた１列目と２列目とが選択されている。本実施の形態においては行数はｎ（すなわち全行が選択される）とする。この例においてはｋ＝２且つｍ＝２であるので、実行サーバの台数は１２である。なお、ｋ＝２である場合に選択される２つの列は必ずしも連続していなくてもよく、例えば図１１に示すように、１列目と３列目とが選択されてもよい。
【００３０】
例えば図１０に示すように列が選択された場合には、管理データ格納部３０４は図１２に示すように更新される。
【００３１】
また、図１３に示すように、格子部分が複数のジョブに対して割り当てられてもよい。図１３の例では、ジョブＪ１に対して、ＬｅａｆスイッチＰ（０，０）と、ＬｅａｆスイッチＰ（０，１）と、ＬｅａｆスイッチＰ（０，２）とが割り当てられる。ジョブＪ２に対して、ＬｅａｆスイッチＰ（１，０）と、ＬｅａｆスイッチＰ（１，１）と、ＬｅａｆスイッチＰ（１，２）と、ＬｅａｆスイッチＰ（２，０）と、ＬｅａｆスイッチＰ（２，１）と、ＬｅａｆスイッチＰ（２，２）とが割り当てられる。そして、ジョブＪ１において全対全通信が実行され、ジョブＪ２において全対全通信が実行される。
【００３２】
以上のように、列単位でジョブに割り当てが行われると、ジョブ間で経路競合が発生することはない。その理由は、ＬｅａｆスイッチからＳｐｉｎｅスイッチまでの通信については、パケットの送信元のＬｅａｆスイッチが異なるのでリンクが共有されないからである。また、ＳｐｉｎｅスイッチからＬｅａｆスイッチまでの通信については、宛先のＬｅａｆスイッチが異なるのでリンクが共有されないからである。
【００３３】
図８の説明に戻り、通信表生成部３０１は、割当部３００による割り当ての結果及びトポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報に基づき、通信表を生成する処理である生成処理を実行する（ステップＳ７）。通信表は、実行サーバが実行する全対全通信のスケジュールの情報を含む。
【００３４】
図１４は、生成処理の処理フローを示す図である。
【００３５】
通信表生成部３０１は、実行サーバが実行する全対全通信のスケジュールの情報を含む通信表を生成する（図１４：ステップＳ２１）。
【００３６】
ここで、本実施の形態の実行サーバが実行する全対全通信のスケジューリングについて説明する。例として、図１０に示すように列の割り当てが行われたとする。すなわち、全対全通信に参加するＬｅａｆスイッチは、ＬｅａｆスイッチＰ（０，０）、ＬｅａｆスイッチＰ（０，１）、ＬｅａｆスイッチＰ（０，２）、ＬｅａｆスイッチＰ（１，０）、ＬｅａｆスイッチＰ（１，１）及びＬｅａｆスイッチＰ（１，２）である。また、各Ｌｅａｆスイッチに接続されたサーバのうち２台のサーバが全対全通信に参加する。
【００３７】
図１５は、ジョブに対して割り当てられた列に対応するネットワークトポロジを示す図である。図１５においては、各Ｌｅａｆスイッチが４台のＳｐｉｎｅスイッチ及び２台の実行サーバに接続される。説明の都合上、各実行サーバに番号が割り振られている。ＬｅａｆスイッチＰ（０，０）に接続される実行サーバをサーバ「０」及びサーバ「１」とする。ＬｅａｆスイッチＰ（０，１）に接続される実行サーバをサーバ「２」及びサーバ「３」とする。ＬｅａｆスイッチＰ（０，２）に接続される実行サーバをサーバ「４」及びサーバ「５」とする。ＬｅａｆスイッチＰ（１，０）に接続される実行サーバをサーバ「６」及びサーバ「７」とする。ＬｅａｆスイッチＰ（１，１）に接続される実行サーバをサーバ「８」及びサーバ「９」とする。ＬｅａｆスイッチＰ（１，２）に接続される実行サーバをサーバ「１０」及びサーバ「１１」とする。
【００３８】
各Ｌｅａｆスイッチは４台のＳｐｉｎｅスイッチに接続されるが、４台のＳｐｉｎｅスイッチは有限射影平面においてそれぞれ異なる傾きの直線に対応する。具体的には、図１６に示すように、１台のＬｅａｆスイッチについて、傾き「∞」の直線と傾き「０」の直線と傾き「１」の直線と傾き「２」の直線とがあり、４台のＳｐｉｎｅスイッチはそれぞれいずれかの直線に対応する。なお、或るノードがそのノードに対してパケットを送信する場合の傾きを「＊」とする。傾きが同じである直線は格子部分内では交わらず、格子部分外の無限遠点において交わる。
【００３９】
例えばＬｅａｆスイッチＰ（０，０）の場合、図１７に示すように、ＳｐｉｎｅスイッチＬ（０）は傾き「∞」の直線に対応する。図１８に示すように、ＳｐｉｎｅスイッチＬ（０，０）は傾き「０」の直線に対応する。図１９に示すように、ＳｐｉｎｅスイッチＬ（１，０）は傾き「１」の直線に対応する。図２０に示すように、ＳｐｉｎｅスイッチＬ（２，０）は傾き「２」の直線に対応する。
【００４０】
図２１は、リンクと傾きとの対応関係を示す図である。図２１において、傾き「∞」のリンクを通るパケットはＳｐｉｎｅスイッチＬ（０）を経由してＬｅａｆスイッチＰ（０，１）又はＬｅａｆスイッチＰ（０，２）に到達する。傾き「０」のリンクを通るパケットはＳｐｉｎｅスイッチＬ（０，０）を経由してＬｅａｆスイッチＰ（１，０）に到達する。傾き「１」のリンクを通るパケットはＳｐｉｎｅスイッチＬ（１，０）を経由してＬｅａｆスイッチＰ（１，１）に到達する。傾き「２」のリンクを通るパケットはＳｐｉｎｅスイッチＬ（２，０）を経由してＬｅａｆスイッチＰ（１，２）に到達する。
【００４１】
従って、ＬｅａｆスイッチＰ（０，０）に接続される２台のサーバが、それぞれ異なるＳｐｉｎｅスイッチを使用してパケットを送信すれば、上で述べた、ラテン方陣ファットツリーの特徴から、送信されたパケットについては経路競合は発生しない。格子部分における他のＬｅａｆスイッチ（すなわち、ＬｅａｆスイッチＰ（０，０）以外のＬｅａｆスイッチ）のリンクについても同様である。この制約を、全対全通信において経路競合を回避するための第１の制約とする。
【００４２】
第１の制約を満たすように通信表を生成する方法として、例えば以下の方法が有る。まず、通信表の生成の前処理として各サーバの傾き情報を生成する。ここでは、ＬｅａｆスイッチＰ（０，０）に接続されるサーバ「０」及びサーバ「１」を例として説明を行う。傾き「∞」については他のノードが２台存在するので、図２２に示すように、フェーズ群０及びフェーズ群１について、サーバ「０」に傾き「∞」を割り当てる。そして、図２３に示すように、フェーズ群２、３、４について、サーバ「０」に傾き「０」、「１」、「２」を順に割り当てる。最後に、フェーズ群５について、サーバ「０」に傾き「＊」を割り当てる。なお、フェーズ群は、１又は複数のフェーズを含む。このように、傾き「∞」については（ｎ−１）行の書き込みが行われ、傾き０から傾き（ｎ−１）については（ｋ−１）行の書き込みが行われ、傾き「＊」については１行の書き込みが行われる。
【００４３】
以上のような処理により生成された列を列方向にシフトすることで、サーバ「１」についての傾き情報も生成することができる。例えば図２４に示すように２行分シフトすれば、各フェーズ群においてサーバ「０」及びサーバ「１」はそれぞれ異なるＳｐｉｎｅスイッチを使用するようになる。このような方法で傾き情報を生成すればサーバ間で傾きが重複しないことについては、以下のように説明することができる。具体的には、行数はｎｋである。最も左の列を基準とした時のシフト数は、順に０、ｎ−１、２（ｎ−１）、３（ｎ−１）、．．．、（ｍ−１）（ｎ−１）である。傾き「∞」については、行の数は（ｎ−１）であるので、（ｎ−１）行分のシフトから（ｎｋ−（ｎ−１））行分のシフトまでの間で重複が生じることはない。傾き「∞」及び「＊」以外の傾きについては、行の数は（ｋ−１）であるので、（ｋ−１）行分のシフトから（ｎｋ−（ｋ−１））行分のシフトまでの間で重複が生じることはない。よって、傾き「∞」について重複が生じなければ第１の制約が満たされる。傾き「＊」については重複が生じても問題はない。そして、（ｍ−１）（ｎ−１）＜ｎｋ−（ｎ−１）が成立する。
【００４４】
なお、第１の制約は、送信元サーバから宛先サーバに接続されるＬｅａｆスイッチまでの送信に関する制約であるが、宛先サーバに接続されるＬｅａｆスイッチから宛先サーバまでの送信にも制約がある。例えば図２５及び図２６に示すように、或るフェーズ群においてサーバ「７」及びサーバ「８」がＬｅａｆスイッチＰ（０，０）に接続されたサーバにパケットを送信するとする。この場合、サーバ「７」及びサーバ「８」はサーバ「０」及びサーバ「１」のそれぞれに対してパケットを送信するので、フェーズ群に２つのフェーズが無ければ経路競合を発生させることなく送信を実現することができない。この制約を、全対全通信において経路競合を回避するための第２の制約とする。
【００４５】
第１の制約および第２の制約から、ｎ＊ｋ＊ｍフェーズの全対全通信についての通信表を、例えば図２７に示すように生成することができる。図２７の例では、通信表には、フェーズ群の情報と、フェーズ群内のフェーズ番号と、フェーズの通し番号と、宛先サーバの番号とが格納される。各行においては０から１１までの番号が１回ずつ出現する。また、各列においては０から１１までの番号が１回ずつ出現する。従って、全対全通信が図２７に示した通信表により実現される。一例として、図２８に、フェーズ０における通信を示す。図２８に示すように、いずれの経路においても同一方向に同時に複数のパケットが送信されないので、経路競合は発生していない。
【００４６】
なお、上で説明した生成方法は一例であり、第１の制約および第２の制約が満たされるのであれば別の方法により通信表を生成してもよい。また、図２７に示した通信表の形式は一例であって、他の形式を有する通信表を生成してもよい。
【００４７】
図１４の説明に戻り、通信表生成部３０１は、ステップＳ２１において生成された通信表を通信表格納部３０３に格納する（ステップＳ２３）。そして処理は呼び出し元に戻る。
【００４８】
以上のような処理により生成した通信表は、経路競合が発生しない全対全通信を実現することができる。
【００４９】
図８の説明に戻り、通信部３０２は、実行サーバに対して、通信表格納部３０３に格納された通信表を送信する（ステップＳ９）。なお、ステップＳ９においては、割当要求において指定されたジョブの識別情報等も実行サーバに送信される。
【００５０】
通信表を受信した各実行サーバは、通信表に従って全対全通信を実行する。実行サーバが実行する処理については、後で説明する。
【００５１】
その後、実行サーバによる全対全通信が完了すると、割当部３００は、ステップＳ５においてジョブに割り当てられた列に対応付けて「ＦＡＬＳＥ」を管理データ格納部３０４に登録する（ステップＳ１１）。そして処理は終了する。ステップＳ１１の処理が行われると、管理データ格納部３０４には、例えば図９に示すような割当管理データが格納される。
【００５２】
次に、実行サーバが実行する処理について説明する。図２９は、実行サーバが実行する処理の処理フローを示す図である。
【００５３】
サーバにおける通信部１０１は、フェーズ番号を表す変数ｉに０を設定する（図２９：ステップＳ３１）。
【００５４】
通信部１０１は、通信表格納部１０３に格納されている通信表と自サーバの識別情報（例えば図２７に示した通信表を使用する場合、自サーバに割り振られた番号）とに基づき、通信部１０１がフェーズｉにおいて送信するパケットの宛先を特定する（ステップＳ３３）。なお、実行サーバは、通信表と共に送られてきた、ジョブの識別情報に基づき、実行すべきジョブを把握しているものとする。
【００５５】
通信部１０１は、ステップＳ３３において特定された宛先に対して、全対全通信に係るパケットを送信する（ステップＳ３５）。
【００５６】
通信部１０１は、ｉ＝ｉmaxが成立するか判定する（ステップＳ３７）。ｉmaxは、通信表に従って行われる全対全通信のフェーズの通し番号の最大値である。ｉ＝ｉmaxが成立しない場合（ステップＳ３７：Ｎｏルート）、通信部１０１は、ｉを１インクリメントする（ステップＳ３９）。そして処理はステップＳ３３に移行する。なお、フェーズの終了はバリア同期によって確認される。
【００５７】
一方、ｉ＝ｉmaxが成立する場合（ステップＳ３７：Ｙｅｓルート）、処理は終了する。
【００５８】
以上のように、格子部分における列の単位でジョブに対する割当を行えば、リンクが共有されないので、ジョブ間で経路競合が発生しないようにすることができるようになる。或るジョブの全対全通信のタイミングと別のジョブの全対全通信のタイミングとが揃っていなくても経路競合が発生することはなく、各ジョブを独立に実行することが可能である。
【００５９】
また、各ジョブにおいて実行される全対全通信においても、上で述べたような通信表を使用すれば経路競合が発生することがない。
【００６０】
従って、本実施の形態により、スループットを低下させることなくラテン方陣ファットツリーシステム１０００において複数のジョブを実行することができるようになる。
【００６１】
［実施の形態２］
第２の実施の形態においては、第１の実施の形態における割当管理データとは異なる割当管理データを使用して、格子部分における各列の割り当てが管理される。
【００６２】
図３０は、第２の実施の形態の管理装置３が実行する処理の処理フローを示す図である。
【００６３】
管理装置３における割当部３００は、割当要求をユーザから受け付ける（図３０：ステップＳ４１）。割当要求はジョブに対するリソースの割り当ての要求であり、パラメータとして、例えばサーバの台数の情報ｓが含まれる。ｓを位数ｎで割ることによってｋ＊ｍが求められ、条件（ここでは、１≦ｋ≦ｎ、１≦ｍ≦ｎ、ｋ≧ｍ）を満たすようにｋ及びｍが特定される。パラメータｋは格子部分の列のうちジョブに割り当てられる列の数を表し、パラメータｍはＬｅａｆスイッチに接続されるサーバのうち全対全通信に参加するサーバの台数を表す。なお、パラメータとして、ｋ及びｍが割当要求に含まれていてもよい。
【００６４】
割当部３００は、管理データ格納部３０４に格納されている割当管理データを参照し、（Ｔ＋ｋ−１）≦ｎが成立するか判定する（ステップＳ４３）。Ｔは、管理データ格納部３０４に格納されている割当管理データに含まれる値であり、次に割り当てられる列の番号を表す。（Ｔ＋ｋ−１）≦ｎは、割り当てられていない列が存在することを意味する。
【００６５】
図３１は、第２の実施の形態の管理データ格納部３０４に格納される割当管理データの一例を示す図である。図３１の例では、既にジョブに割り当てられている列のうち先頭の列を表す値Ｈと、次に割り当てられる列の番号を表すＴとが格納される。例えば図３２に示すように、格子部分のサイズが７＊７であり１行目から４行目までが既に割り当てられている場合、Ｈ＝１且つＴ＝５である。このように、第２の実施の形態の割当管理データはキューの形式で管理される。
【００６６】
（Ｔ＋ｋ−１）≦ｎが成立しない（すなわち、割り当てられていない列が存在しない）場合（ステップＳ４３：Ｎｏルート）、割当要求において指定されたジョブを実行することができないので、処理は終了する。
【００６７】
一方、（Ｔ＋ｋ−１）≦ｎが成立する場合（ステップＳ４３：Ｙｅｓルート）、割当部３００は、以下の処理を実行する。具体的には、割当部３００は、管理データ格納部３０４に格納されているＴをＴ＝Ｔ＋ｋとして更新する（ステップＳ４５）。例えばｋ＝２である場合、割り当ての状態は図３３に示すような状態になる。そして、管理データ格納部３０４には、図３４に示す割当管理データが格納される。
【００６８】
通信表生成部３０１は、割当部３００による割り当ての結果及びトポロジデータ格納部３０５に格納されている、ラテン方陣ファットツリーシステム１０００のネットワークトポロジの情報に基づき、通信表を生成する処理である生成処理を実行する（ステップＳ４７）。第２の実施の形態における生成処理は第１の実施の形態における生成処理と同じであるので、詳細な説明を省略する。
【００６９】
通信部３０２は、実行サーバに対して、通信表格納部３０３に格納された通信表を送信する（ステップＳ４９）。なお、ステップＳ４９においては、割当要求において指定されたジョブの識別情報等も実行サーバに送信される。
【００７０】
通信表を受信した各実行サーバは、通信表に従って全対全通信を実行する。実行サーバが実行する処理は、第１の実施の形態の説明のとおりである。
【００７１】
その後、実行サーバによる全対全通信が完了すると、割当部３００は、ステップＳ４５において行われた割り当てを解除するように割当管理データを更新する（ステップＳ５１）。そして処理は終了する。実行サーバによる全対全通信が完了した時点において、例えば図３５に示すように５番目の列から７番目の列と１番目の列から２番目の列とが割り当てられている場合、割り当て管理データは、例えば図３６に示す状態から図３７に示す状態に更新される。
【００７２】
以上のように、格子部分における列の単位でジョブに対する割当を行えば、リンクが共有されないので、ジョブ間で経路競合が発生しないようにすることができる。或るジョブの全対全通信のタイミングと別のジョブの全対全通信のタイミングとが揃っていなくても経路競合が発生することはなく、各ジョブを独立に実行することが可能である。
【００７３】
また、各ジョブにおいて実行される全対全通信においても、上で述べたような通信表を使用すれば経路競合が発生することがない。
【００７４】
従って、本実施の形態により、スループットを低下させることなくラテン方陣ファットツリーシステム１０００において複数のジョブを実行することができるようになる。
【００７５】
なお、本実施の形態の方法は各ジョブに対して連続する複数の列を割り当てることが好ましいケースに適している。
【００７６】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理装置３及びサーバの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７７】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７８】
［付録］
本付録においては、ラテン方陣ファットツリーおよび有限射影平面について説明する。
【００７９】
有限射影平面とは、普通の平面に無限遠点をいくつか加え且つ「平行な２直線」をなくした平面に相当する。図３８に、位数（以下ｎとする）が２であり且つポート数が６（＝２（ｎ＋１））である場合の有限射影平面の構造を示す。図３８において、枠３８２で囲まれた３（＝ｎ＋１）台のＬｅａｆスイッチは無限遠点に相当する。
【００８０】
有限射影平面においては、１個の点Ｐが設定され、ｎ個の点Ｐ（ｃ）（ｃ＝０，１，．．．，ｎ−１）が設定され、ｎ2個の点Ｐ（ｃ，ｒ）（ｃ，ｒ＝０，１，．．．，ｎ−１）が設定される。また、１本の直線Ｌ＝｛Ｐ，Ｐ（０），．．．，Ｐ（ｎ−１）｝が設定され、ｎ本の直線Ｌ＝｛Ｐ，Ｐ（ｃ，０），．．．，Ｐ（ｃ，ｎ−１）｝（ｃ＝０，１，．．．，ｎ−１）が設定され、ｎ2本の直線Ｌ（ｃ，ｒ）＝｛Ｐ（ｃ）およびＰ（ｉ，（ｒ＋ｃｉ） ｍｏｄ ｎ）｝（ｉ，ｃ，ｒ＝０，１，．．．，ｎ−１）が設定される。
【００８１】
有限射影平面の特徴は、（ｎ2＋ｎ＋１）の点が存在し、直線の数は（ｎ2＋ｎ＋１）であることである。任意の２直線は１点で交わり、任意の２点を結ぶ直線がただ一つ存在する。但し、ｎは素数であるという制約がある。
【００８２】
有限射影平面の構造は、トポロジ構造に置き換えられる。例えば、図３９（ａ）に示した有限射影平面の構造は、図３９（ｂ）に示したトポロジ構造に置き換えられる。図３９（ａ）において、直線はＳｐｉｎｅスイッチを表し、点はＬｅａｆスイッチを表す。図３９（ｂ）において、ハッチングされた矩形はＳｐｉｎｅスイッチを表し、ハッチングされていない矩形はＬｅａｆスイッチを表す。
【００８３】
図４０（ａ）に示したトポロジ構造は、Ｓｐｉｎｅスイッチの数が７であり且つＬｅａｆスイッチの数が７であるラテン方陣ファットツリーのトポロジ構造であり、図４０（ｂ）に示した有限射影平面の構造に対応する。図４０（ａ）において太線で囲まれた部分のトポロジ構造は、図３９（ｂ）のトポロジ構造と同じである。また、図４０（ｂ）において太線で囲まれた部分の構造は、図４０（ａ）において太線で囲まれた部分のトポロジ構造に対応する。
【００８４】
図３８に示した構造は、図４１に示す構造に変換することができる。図４１において、ハッチングされた格子部分に含まれる４（＝ｎ＊ｎ）台のＬｅａｆスイッチは、図３８において枠３８１に囲まれた部分に含まれる４台のＬｅａｆスイッチに対応する。格子部分において平行な直線群は、追加の点において交わるように変換される。すなわち、傾きが等しい直線同士が交わるように変換される。
【００８５】
以上で付録を終了する。
【００８６】
なお、上で述べた管理装置３及びサーバは、コンピュータ装置であって、図４２に示すように、メモリ２５０１とＣＰＵ２５０３とＨＤＤ２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８７】
また、上で述べたＬｅａｆスイッチ及びＳｐｉｎｅスイッチは、図４３に示すように、メモリ２６０１とＣＰＵ２６０３とＨＤＤ２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図４３では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８８】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８９】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）複数のスパインスイッチ（実施の形態におけるＳｐｉｎｅスイッチは上記スパインスイッチの一例である）と、（Ｂ）複数のスパインスイッチにラテン方陣ファットツリーの形態で接続される複数のリーフスイッチ（実施の形態におけるＬｅａｆスイッチは上記リーフスイッチの一例である）と、（Ｃ）複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置（実施の形態におけるサーバは上記情報処理装置の一例である）と、（Ｄ）複数の情報処理装置の通信を管理する管理装置（実施の形態における管理装置３は上記管理装置の一例である）とを有する。そして、管理装置が、（ｄ１）ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点を含む格子部分における複数の列のうち１又は複数の第１の列に対応する第１のリーフスイッチ群を、第１のジョブに割り当て、複数の列のうち１又は複数の第１の列とは異なる１又は複数の第２の列に対応する第２のリーフスイッチ群を、第２のジョブに割り当てる割当部（実施の形態における割当部３００は上記割当部の一例である）と、（ｄ２）第１のジョブの全対全通信のスケジュール情報を、第１のリーフスイッチ群に接続される情報処理装置に送信し、第２のジョブの全対全通信のスケジュール情報を、第２のリーフスイッチ群に接続される情報処理装置に送信する送信部（実施の形態における通信部３０２は上記送信部の一例である）とを有する。
【００９０】
ラテン方陣ファットツリーの構造の特徴により、第１ジョブの全対全通信と第２ジョブの全対全通信との間で経路競合が発生しないようにすることができる。
【００９１】
また、割当部は、（ｄ１１）格子部分における各列に対応するリーフスイッチ群がジョブに割り当てられているか否かを表す値を要素とする配列に基づき、割り当てられていないリーフスイッチ群から、第１のリーフスイッチ群と第２のリーフスイッチ群とを特定してもよい。
【００９２】
リーフスイッチ群に対するジョブの割り当てを柔軟に行えるようになる。
【００９３】
また、割当部は、（ｄ１２）格子部分における複数の列に対応する複数のリーフスイッチ群に対するジョブの割り当てを管理するためのキューに基づき、割り当てられていないリーフスイッチ群から、第１のリーフスイッチ群と第２のリーフスイッチ群とを特定してもよい。
【００９４】
上記のようなキューを利用することで、有限射影平面の格子部分における連続領域を各ジョブに割り当てることができるようになる。
【００９５】
また、第１のリーフスイッチ群に接続される情報処理装置の各々は、（Ｃ１）受信した第１のジョブの全対全通信のスケジュール情報に従って第１のジョブの全対全通信を実行し、第２のリーフスイッチ群に接続される情報処理装置の各々は、（Ｃ２）受信した第２のジョブの全対全通信のスケジュール情報に従って第２のジョブの全対全通信を実行してもよい。
【００９６】
複数の情報処理装置の通信を管理する管理装置により生成された通信情報を使用するので、パケット送信のタイミングの誤り等が発生することなく、全体として適切に全対全通信を実行できるようになる。
【００９７】
また、第１のリーフスイッチ群に接続される情報処理装置の各々は、（Ｃ１１）第１のジョブの全対全通信の各フェーズにおいて、同じリーフスイッチに接続される他の情報処理装置が使用するスパインスイッチと異なるスパインスイッチを使用してパケットを送信し、第２のリーフスイッチ群に接続される情報処理装置の各々は、（Ｃ２１）第２のジョブの全対全通信の各フェーズにおいて、同じリーフスイッチに接続される他の情報処理装置が使用するスパインスイッチと異なるスパインスイッチを使用してパケットを送信してもよい。
【００９８】
第１ジョブの全対全通信において経路競合が発生することを防げるようになり、且つ、第２ジョブの全対全通信において経路競合が発生することを防げるようになる。
【００９９】
本実施の形態の第２の態様に係る情報処理方法は、複数のスパインスイッチと、複数のスパインスイッチにラテン方陣ファットツリーの形態で接続される複数のリーフスイッチと、複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、複数の情報処理装置の通信を管理する管理装置とを有する情報処理システムにおいて実行される。そして、上記情報処理方法は、（Ｅ）管理装置が、ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点を含む格子部分における複数の列のうち１又は複数の第１の列に対応する第１のリーフスイッチ群を、第１のジョブに割り当て、（Ｆ）複数の列のうち１又は複数の第１の列とは異なる１又は複数の第２の列に対応する第２のリーフスイッチ群を、第２のジョブに割り当て、（Ｇ）第１のジョブの全対全通信のスケジュール情報を、第１のリーフスイッチ群に接続される情報処理装置に送信し、（Ｈ）第２のジョブの全対全通信のスケジュール情報を、第２のリーフスイッチ群に接続される情報処理装置に送信する処理を含む。
【０１００】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０１】
（付記１）
複数のスパインスイッチと、
前記複数のスパインスイッチにラテン方陣ファットツリーの形態で接続される複数のリーフスイッチと、
前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、
前記複数の情報処理装置の通信を管理する管理装置と、
を有し、
前記管理装置が、
前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点を含む格子部分における複数の列のうち１又は複数の第１の列に対応する第１のリーフスイッチ群を、第１のジョブに割り当て、前記複数の列のうち前記１又は複数の第１の列とは異なる１又は複数の第２の列に対応する第２のリーフスイッチ群を、第２のジョブに割り当てる割当部と、
前記第１のジョブの全対全通信のスケジュール情報を、前記第１のリーフスイッチ群に接続されるサーバに送信し、前記第２のジョブの全対全通信のスケジュール情報を、前記第２のリーフスイッチ群に接続されるサーバに送信する送信部と、
を有する情報処理システム。
【０１０２】
（付記２）
前記割当部は、
前記格子部分における各列に対応するリーフスイッチ群がジョブに割り当てられているか否かを表す値を要素とする配列に基づき、割り当てられていないリーフスイッチ群から、前記第１のリーフスイッチ群と前記第２のリーフスイッチ群とを特定する、
付記１記載の情報処理システム。
【０１０３】
（付記３）
前記割当部は、
前記格子部分における前記複数の列に対応する複数のリーフスイッチ群に対するジョブの割り当てを管理するためのキューに基づき、割り当てられていないリーフスイッチ群から、前記第１のリーフスイッチ群と前記第２のリーフスイッチ群とを特定する、
付記１記載の情報処理システム。
【０１０４】
（付記４）
前記第１のリーフスイッチ群に接続されるサーバの各々は、
受信した前記第１のジョブの全対全通信のスケジュール情報に従って前記第１のジョブの全対全通信を実行し、
前記第２のリーフスイッチ群に接続されるサーバの各々は、
受信した前記第２のジョブの全対全通信のスケジュール情報に従って前記第２のジョブの全対全通信を実行する、
付記１乃至３のいずれか１つ記載の情報処理システム。
【０１０５】
（付記５）
前記第１のリーフスイッチ群に接続されるサーバの各々は、
前記第１のジョブの全対全通信の各フェーズにおいて、同じリーフスイッチに接続される他のサーバが使用するスパインスイッチと異なるスパインスイッチを使用してパケットを送信し、
前記第２のリーフスイッチ群に接続されるサーバの各々は、
前記第２のジョブの全対全通信の各フェーズにおいて、同じリーフスイッチに接続される他のサーバが使用するスパインスイッチと異なるスパインスイッチを使用してパケットを送信する、
付記４記載の情報処理システム。
【０１０６】
（付記６）
複数のスパインスイッチと、前記複数のスパインスイッチにラテン方陣ファットツリーの形態で接続される複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、前記複数の情報処理装置の通信を管理する管理装置とを有する情報処理システムにおいて実行される情報処理方法であって、
前記管理装置が、
前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点を含む格子部分における複数の列のうち１又は複数の第１の列に対応する第１のリーフスイッチ群を、第１のジョブに割り当て、
前記複数の列のうち前記１又は複数の第１の列とは異なる１又は複数の第２の列に対応する第２のリーフスイッチ群を、第２のジョブに割り当て、
前記第１のジョブの全対全通信のスケジュール情報を、前記第１のリーフスイッチ群に接続されるサーバに送信し、
前記第２のジョブの全対全通信のスケジュール情報を、前記第２のリーフスイッチ群に接続されるサーバに送信する、
処理を実行する情報処理方法。
【０１０７】
（付記７）
複数のスパインスイッチと、前記複数のスパインスイッチにラテン方陣ファットツリーの形態で接続される複数のリーフスイッチと、前記複数のリーフスイッチのいずれかにそれぞれ接続される複数の情報処理装置と、前記複数の情報処理装置の通信を管理する管理装置とを有する情報処理システムにおける前記管理装置に実行させるプログラムであって、
前記管理装置に、
前記ラテン方陣ファットツリーに対応する有限射影平面の無限遠点以外の点を含む格子部分における複数の列のうち１又は複数の第１の列に対応する第１のリーフスイッチ群を、第１のジョブに割り当て、
前記複数の列のうち前記１又は複数の第１の列とは異なる１又は複数の第２の列に対応する第２のリーフスイッチ群を、第２のジョブに割り当て、
前記第１のジョブの全対全通信のスケジュール情報を、前記第１のリーフスイッチ群に接続されるサーバに送信し、
前記第２のジョブの全対全通信のスケジュール情報を、前記第２のリーフスイッチ群に接続されるサーバに送信する、
処理を実行させるプログラム。
【符号の説明】
【０１０８】
１０００  ラテン方陣ファットツリーシステム
３  管理装置    ３００  割当部
３０１  通信表生成部    ３０２  通信部
３０３  通信表格納部    ３０４  管理データ格納部
３０５  トポロジデータ格納部
１０１  通信部    １０３  通信表格納部
【図１】
2019028853.tif 000003
【図２】
2019028853.tif 000004
【図３】
2019028853.tif 000005
【図４】
2019028853.tif 000006
【図５】
2019028853.tif 000007
【図６】
2019028853.tif 000008
【図７】
2019028853.tif 000009
【図８】
2019028853.tif 000010
【図９】
2019028853.tif 000011
【図１０】
2019028853.tif 000012
【図１１】
2019028853.tif 000013
【図１２】
2019028853.tif 000014
【図１３】
2019028853.tif 000015
【図１４】
2019028853.tif 000016
【図１５】
2019028853.tif 000017
【図１６】
2019028853.tif 000018
【図１７】
2019028853.tif 000019
【図１８】
2019028853.tif 000020
【図１９】
2019028853.tif 000021
【図２０】
2019028853.tif 000022
【図２１】
2019028853.tif 000023
【図２２】
2019028853.tif 000024
【図２３】
2019028853.tif 000025
【図２４】
2019028853.tif 000026
【図２５】
2019028853.tif 000027
【図２６】
2019028853.tif 000028
【図２７】
2019028853.tif 000029
【図２８】
2019028853.tif 000030
【図２９】
2019028853.tif 000031
【図３０】
2019028853.tif 000032
【図３１】
2019028853.tif 000033
【図３２】
2019028853.tif 000034
【図３３】
2019028853.tif 000035
【図３４】
2019028853.tif 000036
【図３５】
2019028853.tif 000037
【図３６】
2019028853.tif 000038
【図３７】
2019028853.tif 000039
【図３８】
2019028853.tif 000040
【図３９】
2019028853.tif 000041
【図４０】
2019028853.tif 000042
【図４１】
2019028853.tif 000043
【図４２】
2019028853.tif 000044
【図４３】
2019028853.tif 000045