[go: up one dir, main page]

JP6623939B2 - 情報処理装置、通信手順決定方法、および通信プログラム - Google Patents

情報処理装置、通信手順決定方法、および通信プログラム Download PDF

Info

Publication number
JP6623939B2
JP6623939B2 JP2016113071A JP2016113071A JP6623939B2 JP 6623939 B2 JP6623939 B2 JP 6623939B2 JP 2016113071 A JP2016113071 A JP 2016113071A JP 2016113071 A JP2016113071 A JP 2016113071A JP 6623939 B2 JP6623939 B2 JP 6623939B2
Authority
JP
Japan
Prior art keywords
topology structure
topology
communication
ports
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016113071A
Other languages
English (en)
Other versions
JP2017220764A (ja
Inventor
清水 俊宏
俊宏 清水
耕太 中島
耕太 中島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016113071A priority Critical patent/JP6623939B2/ja
Priority to US15/608,341 priority patent/US10554535B2/en
Publication of JP2017220764A publication Critical patent/JP2017220764A/ja
Application granted granted Critical
Publication of JP6623939B2 publication Critical patent/JP6623939B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/026Details of "hello" or keep-alive messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • H04L45/3065Route determination based on the nature of the carried application for real time traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/27Arrangements for networking
    • H04B10/271Combination of different networks, e.g. star and ring configuration in the same network or two ring networks interconnected
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/40Transceivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

本発明は、情報処理装置、通信手順決定方法、および通信プログラムに関する。
従来、ネットワーク内のサーバ、スイッチ等の機器がどのように接続されているかを示すトポロジー構造がある。また、複数の送信元のそれぞれが、トポロジー構造を経由して複数の宛先のいずれとも通信することができる場合、そのトポロジー構造を、全対全通信(All−to−All通信)が可能なトポロジー構造と呼ぶことがある。さらに、経路競合なく全対全通信が行えるトポロジー構造がある。
関連する先行技術として、例えば、複数のノードとスイッチとを接続する第1のネットワークと、複数のノードを部分的に接続する第2のネットワークとを有するものがある。また、プログラム・タスクは、N>1の階層レベルlnを有し、n=1からNである、階層型ネットワーク・トポロジを用いる相互接続ネットワークによって接続されるものがある。
特開2009−020797号公報 特開2014−164756号公報
しかしながら、従来技術によれば、複数のトポロジー構造を組み合わせてネットワークを形成した際に、そのネットワークで経路競合なく全対全通信を行うことが難しい。例えば、1つのトポロジー構造を1つのスイッチと同一なものとみなすことにより、ネットワーク内の構成要素を減らして、経路競合なく全対全通信を行う通信手順を検討しやすくすることが考えられる。しかし、同数のポートを有する1つのスイッチと1つのトポロジー構造とを比較すると、入力ポートと出力ポートとの組み合わせによっては、スイッチでは競合なく全対全通信が可能であるのに対し、トポロジー構造では経路競合が発生することがある。従って、経路競合なく全対全通信を行う通信方法を検討する上では、1つのトポロジー構造を、1つのスイッチと同一なものとみなすことはできない。
1つの側面では、本発明は、複数のトポロジー構造を組み合わせて形成したネットワークにおいて、経路競合なく全対全通信が行える通信手順を決定することができる情報処理装置、通信手順決定方法、および通信プログラムを提供することを目的とする。
本発明の一側面によれば、出力ポートおよび複数の送信元のそれぞれが接続された入力ポートを第1の数分有する第2の数分の第1の種別の各トポロジー構造と入力ポートおよび複数の宛先のそれぞれが接続された出力ポートを第2の数分有する第1の数分の第2の種別の各トポロジー構造とがそれぞれ接続されたネットワーク内の各トポロジー構造の接続関係を示す接続情報と、第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す第1の数分の転送パターンと、第2の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される第2の数分の転送パターンとを記憶する記憶部を参照して、第1の数分の転送パターンのそれぞれと第2の数分の転送パターンのそれぞれとの組み合わせに対応して、接続情報が示すネットワークにおいて当該組み合わせの転送パターンが指定される際に複数の送信元のそれぞれから宛先までの経路を特定し、当該組み合わせに対応して特定した経路に基づいて、ネットワークにおいて複数の送信元のそれぞれから複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンと、ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する情報処理装置、通信手順決定方法、および通信プログラムが提案される。
本発明の一態様によれば、複数のトポロジー構造を組み合わせて形成したネットワークにおいて、経路競合なく全対全通信が行える通信手順を決定することができるという効果を奏する。
図1は、本実施の形態にかかる情報処理装置101の動作例を示す説明図である。 図2は、ラテン方陣Fat−Treeの一例を示す説明図である。 図3は、All−to−All通信を行うためのスイッチの記憶内容の一例を示す説明図である。 図4は、情報処理装置101のハードウェア構成例を示す説明図である。 図5は、情報処理装置101の機能構成例を示す説明図である。 図6は、転送パターン表111の記憶内容の一例を示す説明図である。 図7は、実施例1における接続情報110Cの作成例を示す説明図である。 図8は、トポロジー構造Cの転送パターン表111Cの作成例を示す説明図である。 図9は、トポロジー構造C内の各トポロジー構造における出力ポート表112の作成例を示す説明図である。 図10は、実施例2における接続情報110Cの作成例を示す説明図である。 図11は、トポロジー構造の接続情報作成処理手順の一例を示す説明図である。 図12は、転送パターン表および出力ポート表作成処理手順の一例を示す説明図である。 図13は、実施例3における接続情報110Cの作成例を示す説明図である。
以下に図面を参照して、開示の情報処理装置、通信手順決定方法、および通信プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかる情報処理装置101の動作例を示す説明図である。情報処理装置101は、複数のトポロジー構造を組み合わせて形成したネットワークにおいて、経路競合なく全対全通信が行える通信手順を決定するコンピュータである。例えば、情報処理装置101は、ネットワークを管理する管理サーバである。
トポロジー構造は、サーバ、スイッチ等の機器がどのように接続されているかを示す。また、複数の送信元のそれぞれが、トポロジー構造を経由して複数の宛先のいずれとも通信することができる場合、そのトポロジー構造を、全対全通信が可能なトポロジー構造と呼ぶことがある。以下、全対全通信を、「All−to−All通信」と呼称する。さらに、経路競合なくAll−to−All通信が行えるトポロジー構造がある。例えば、Fat−Tree、多層full−mesh、ラテン方陣Fat−Treeは、経路競合なくAll−to−All通信が行えるトポロジー構造である。ラテン方陣Fat−Treeの一例については、図2を用いて説明する。また、ラテン方陣Fat−Treeについては、下記参考文献1に記載されている。
(参考文献1:M.Valerio、他2名、「Using Fat−Trees to Maximize the Numb er of Processors in a Massively Parallel Computer」、IEEE Computer Society、1993)
また、2段Fat−Treeや、ラテン方陣Fat−Treeにおいては、入力サーバから出力サーバへの経路競合がないAll−to−All通信が可能である。これを、経路競合なく片方向のAll−to−All通信が可能と称する。また、逆の経路をたどることにより、出力サーバから入力サーバへのAll−to−All通信が可能であるが、入力サーバ同士、または出力サーバ同士におけるAll−to−All通信については、可能でなくてもよい。また、本実施の形態にかかるトポロジー構造は、入力ポートと出力ポートとの数が同一であるとする。
例えば、HPC(High Performance Computing)において、高速フーリエ変換(FFT:Fast Fourier Transform)の並列分散処理を行う際に、低コストでより効率的にデータのやりとりを行うために、経路競合なくAll−to−All通信が行えるトポロジー構造が利用される。
ここで、スイッチポート数を増やさず、かつ、経路競合なくAll−to−All通信を保ちつつ、より多くのサーバを接続したい場合、複数のトポロジー構造を組み合わせてネットワークを形成することが考えられる。しかしながら、複数のトポロジー構造を組み合わせてネットワークを形成した際に、そのネットワークで経路競合なくAll−to−All通信を行うことが難しい。例えば、1つのトポロジー構造を1つのスイッチと同一なものとみなすことにより、ネットワーク内の構成要素を減らして、経路競合なく全対全通信を行う通信手順を検討しやすくすることが考えられる。しかし、同数のポートを有する1つのスイッチと1つのトポロジー構造とを比較すると、入力ポートと出力ポートとの組み合わせによっては、スイッチでは競合なくAll−to−All通信が可能であるのに、トポロジー構造では経路競合が発生することがある。従って、経路競合なくAll−to−All通信を行う通信方法を検討する上では、1つのトポロジー構造を、1つのスイッチと同一なものとみなすことはできない。
入力ポートと出力ポートとの組み合わせによっては、スイッチでは競合なくAll−to−All通信が可能であるのに対し、トポロジー構造では経路競合が発生する例について説明する。例えば、あるトポロジー構造が、スイッチ1〜4を有し、スイッチ1〜4は、それぞれ、4つのポートを有するものとする。そして、スイッチ1が、スイッチ3、4と接続し、スイッチ2が、スイッチ3、4と接続するものとする。スイッチ1、2同士、スイッチ3、4同士は接続されていないものとする。この場合、スイッチ1〜4のそれぞれは、接続されていない空きポートが2つあるため、あるトポロジー構造は、8つのポートを有する仮想的なスイッチと見立てることができる。
ここで、8つのポートを有するスイッチでは、入力ポートと出力ポートとのいかなる組み合わせであっても、経路競合が発生することはない。しかしながら、前述のトポロジー構造では、スイッチ1の2つの空きポートの一方からスイッチ3の2つの空きポートの一方に通信すると同時に、スイッチ1の2つの空きポートの他方からスイッチ3の2つの空きポートの他方に通信すると、経路競合が発生する。
そこで、本実施の形態では、経路競合なくAll−to−All通信を組み合わせて、新たなトポロジー構造の接続方法を提供する。そして、本実施の形態では、新たなトポロジー構造内の各トポロジー構造の転送パターンの組み合わせごとに特定した複数の送信元のそれぞれから宛先までの経路から、新たなトポロジー構造の転送パターンと各トポロジー構造の出力ポートを決定する。図1では、新たなトポロジー構造の転送パターンと各トポロジー構造の出力ポートを決定することについて説明する。
図1を用いて、情報処理装置101の動作例について説明する。ネットワーク102は、第1の種別のトポロジー構造Aと、第2の種別のトポロジー構造Bとを組み合わせて形成されたネットワークである。ここで、ネットワーク102も、トポロジー構造とみなすことができる。以下の説明では、ネットワーク102を、「トポロジー構造C」として説明する。また、情報処理装置101は、トポロジー構造C内の一つのサーバであってもよいし、トポロジー構造Cの外部にあるサーバでもよい。トポロジー構造Cは、第2の数分のトポロジー構造Aと、第1の数分のトポロジー構造Bとがそれぞれ接続された、2段構造のトポロジー構造である。第1の数と第2の数とは、同一の数でもよいし、異なる数でもよい。また、トポロジー構造A、Bは、経路競合なくAll−to−All通信が行えるトポロジー構造である。また、トポロジー構造A、Bは、同一の種別でもよいし、異なる種別でもよい。
ここで、トポロジー構造Aは、入力ポートおよび出力ポートを第1の数分有する。そして、トポロジー構造Cは、トポロジー構造Aを第2の数分有する。さらに、第2の数分のトポロジー構造Aの各入力ポートには、入力サーバsが接続される。従って、入力サーバsの数は、第1の数に第2の数を乗じた分存在する。
一方、トポロジー構造Bは、入力ポートおよび出力ポートを第2の数分有する。そして、トポロジー構造Cは、トポロジー構造Bを第1の数分有する。さらに、第1の数分のトポロジー構造Bの各出力ポートには、出力サーバtが接続される。従って、出力サーバtの数は、第1の数に第2の数を乗じた分存在する。そして、入力サーバsと出力サーバtとの数は同一となる。
図1の例では、第1の数が2であり、第2の数が3となる場合の例を示す。図1に示すトポロジー構造Cには、トポロジー構造A(*,1)、A(*,2)、A(*,3)と、トポロジー構造B(1,*)、B(2,*)とを含む。以下、トポロジー構造や、トポロジー構造に関するものに付与する符号のうち、括弧内の文字列の部分を、括弧内符号と呼称する。例えば、トポロジー構造A(*,1)の括弧内符号は、「*,1」となる。そして、トポロジー構造A(*,1)〜A(*,3)の各出力ポートoutA(1,1)〜outA(2,3)には、トポロジー構造B(1,*)、B(2,*)の各入力ポートinB(1,1)〜inB(2,3)が接続される。具体的には、outA(1,1)〜outA(2,3)と、同一の括弧内符号を有するinBとが接続される。
また、トポロジー構造A(*,1)〜A(*,3)の各入力ポートinA(1,1)〜inA(2,3)には、複数の送信元として入力サーバs(1,1)〜s(2,3)がそれぞれ接続される。同様に、トポロジー構造B(1,*)、B(2,*)の各出力ポートinB(1,1)〜inB(2,3)には、複数の宛先として出力サーバt(1,1)〜t(2,3)がそれぞれ接続される。
情報処理装置101は、トポロジー構造C内の各トポロジー構造の接続関係を示す接続情報110Cと、トポロジー構造Aの転送パターン表111Aと、トポロジー構造Bの転送パターン表111Bとを記憶する。接続情報110Cは、具体的には、各トポロジー構造の接続関係として、トポロジー構造Aの出力ポートoutAが、どのトポロジー構造Bのどの入力ポートinBに接続しているか、入力サーバs、出力サーバtがどのポートに接続されているかを示す。また、接続情報110Cは、トポロジー構造Cの管理者によって作成されたものでもよいし、後述するように、情報処理装置101が作成したものでもよい。または、トポロジー構造C内のサーバが、トポロジー構造C内の構造を検索するコマンドを実行することにより、接続情報110Cが作成されてもよい。
また、転送パターン表111Aは、トポロジー構造Aにおいて経路競合なくAll−to−All通信を行う入力ポートと出力ポートとの組み合わせを示す第1の数分の転送パターンを有する。同様に、転送パターン表111Bは、トポロジー構造Bにおいて経路競合なくAll−to−All通信を行う入力ポートと出力ポートとの組み合わせを示す第2の数分の転送パターンを有する。例えば、転送パターン表111Aは、第1の数となる2つの転送パターンP1、P2を有する。例えば、転送パターンP1は、送信元が入力ポート1である場合に出力ポート1に転送し、送信元が入力ポート2である場合に出力ポート2に転送するパターンである。
情報処理装置101は、トポロジー構造Cで経路競合なくAll−to−All通信を行う通信手順として、トポロジー構造Cの転送パターンと、トポロジー構造C内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する。まず、情報処理装置101は、転送パターン表111Aの第1の数分の転送パターンのそれぞれと、転送パターン表111Bの第2の数分の転送パターンのそれぞれとの組み合わせを作成する。図1の場合では、情報処理装置101は、(P1,Q1)、(P1,Q2)、…、(P2,Q3)という2・3=6つの組み合わせを作成する。
そして、情報処理装置101は、作成した組み合わせに対応して、トポロジー構造Cにおいて、その組み合わせの転送パターンが指定される際に、複数の送信元のそれぞれから宛先までの経路を特定する。図1では、組み合わせとして、(P1,Q2)に対応する経路を特定する例を示す。
ここで、ある組み合わせが入力サーバsによって指定された場合、トポロジー構造Aの全てが同一の転送パターンを実施し、トポロジー構造Bの全てが同一の転送パターンを実施する。例えば、(P1,Q2)であれば、トポロジー構造A(*,1)〜A(*,3)は、転送パターンP1を実施し、トポロジー構造B(1,*)、B(2,*)は、転送パターンP2を実施する。
経路の特定方法について説明する。情報処理装置101は、複数の送信元のそれぞれについて、転送パターンP1、P2が実施される際の経路を特定する。図1では、(1)で示すように、送信元が入力サーバs(1,1)の場合の経路121を特定する例を示す。まず、情報処理装置101は、接続情報110Cを参照して、入力サーバs(1,1)が入力ポートinA(1,1)に接続することを確認する。
そして、転送パターン表111を参照する際、情報処理装置101は、トポロジー構造に付与された括弧内符号のうちの「*」がある位置の成分に着目する。例えば、トポロジー構造A(*,1)の場合、第1成分に「*」があるため、情報処理装置101は、inA、outAの第1成分に着目することになる。すなわち、情報処理装置101は、inA(1,1)を第1成分の「1」に着目し、inA(2,1)を第1成分の「2」に着目し、outA(1,1)を第1成分の「1」に着目し、outA(2,1)を第1成分の「2」に着目することになる。従って、情報処理装置101は、inA(1,1)からの送信が、転送パターン表111Aにおける送信元「1」に相当するものと特定して、転送パターンP1における転送先「1」を特定する。そして、情報処理装置101は、inA(1,1)からの送信が、転送先「1」に相当するoutA(1,1)に転送されると特定する。
次に、情報処理装置101は、接続情報110Cを参照して、outA(1,1)と接続する入力ポートが、トポロジー構造B(1,*)のinB(1,1)であると特定する。そして、情報処理装置101は、転送パターン表111Bを参照して、トポロジー構造B(1,*)のinB(1,1)からの送信が、outB(1,2)に転送されることを特定する。ここで、トポロジー構造A(*,1)で行った説明と同様の手法により、情報処理装置101は、転送パターン表111Bを参照する際には、inB、outBの第2成分に着目することになる。そして、情報処理装置101は、入力サーバs(1,1)からの送信が、最終的に、outB(1,2)に接続する出力サーバt(1,2)に転送されることを特定する。以上により、情報処理装置101は、入力サーバs(1,1)からoutA(1,1)、outB(1,2)を経由して出力サーバt(1,2)までの経路121を特定する。情報処理装置101は、他の入力サーバ、他の転送パターンについても同様の手法を行って、経路を特定する。
そして、情報処理装置101は、転送パターンの組み合わせに対応して特定した経路に基づいて、トポロジー構造Cにおける転送パターンと、トポロジー構造C内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する。トポロジー構造Cにおける転送パターンは、複数の送信元のそれぞれから複数の宛先のそれぞれまで経路競合なくAll−to−All通信を行う転送パターンである。図1では、トポロジー構造Cにおける各転送パターンを、転送パターン表111Cとして示す。転送パターン表111Cは、送信元と転送パターンとの組み合わせに対応する宛先が登録される。
また、図1では、トポロジー構造A(*,1)における送信元と宛先との組み合わせに対応する出力ポートを、出力ポート表112A(*,1)として示す。情報処理装置101は、他のトポロジー構造として、トポロジー構造A(*,2)、A(*,3)、B(1,*)、B(2,*)についても、対応する出力ポート表112を作成するが、図1では、説明の簡略化のため省略する。
例えば、情報処理装置101は、図1の(2)で示すように、経路121に基づいて、(P1,Q2)パターンにおける送信元と宛先の組み合わせとして、s(1,1)とt(1,2)の組み合わせを決定する。s(1,1)とt(1,2)の組み合わせは、転送パターン表111Cの一要素となる。従って、情報処理装置101は、転送パターン表111Cの対応する箇所に、「t(1,2)」を登録する。
また、情報処理装置101は、経路121に基づいて、経路121上にあるトポロジー構造の出力ポートが、outA(1,1)、outB(1,2)であると特定する。従って、情報処理装置101は、トポロジー構造A(*,1)において、図1の(2)で示すように、s(1,1)とt(1,2)との組み合わせに対応する出力ポートがoutA(1,1)であると決定する。従って、情報処理装置101は、出力ポート表112Aの対応する箇所に、「outA(1,1)」を登録する。
特定した経路の全てに対して転送パターン表111、出力ポート表112の登録を終えた段階で、情報処理装置101は、転送パターン表111、出力ポート表112の作成を終了する。
以上により、入力サーバsが、転送パターン表111に従って通信を行い、トポロジー構造C内の各トポロジー構造が、出力ポート表112に従って動作することにより、トポロジー構造Cで、経路競合なくAll−to−All通信を行うことができる。
ここで図1では、トポロジー構造Cが構築された後の状態について説明したが、情報処理装置101は、接続情報110Cを作成してもよい。そして、トポロジー構造Cの管理者が、作成された接続情報110Cを閲覧して、トポロジー構造Cを構築することができる。具体的には、トポロジー構造Cの管理者は、作成された接続情報110Cから、トポロジー構造Aの出力ポートを、トポロジー構造Bのどの入力ポートに結線すればよいかがわかる。接続情報110Cの作成例については、図7、図10、図13で説明する。なお、図1で説明した経路競合なくAll−to−All通信を行う通信手順を決定する装置と、接続情報110Cを作成する装置とは、別であってもよい。この場合、接続情報110Cを作成する装置は、例えば、PC(Personal Computer)でもよい。次に、ラテン方陣Fat−Treeの一例を、図2を用いて説明する。
図2は、ラテン方陣Fat−Treeの一例を示す説明図である。図2では、競合なくAll−to−All通信が行えるトポロジー構造の一例として、ラテン方陣Fat−Treeにおける接続例を示す。図2で示す丸はサーバを示し、四角は、スイッチを示す。そして、丸の内部に「s」を付与したサーバは、入力サーバを示す。また、丸の内部に「t」を付与したサーバは、出力サーバを示す。一方、スイッチには、他のスイッチとサーバとを接続するLeafスイッチと、スイッチ同士を接続するSpineスイッチとがある。入力サーバsおよび出力サーバtは、LeafスイッチおよびSpineスイッチを経由して通信を行う。経由したスイッチ数を「ホップ数」と定義する。
図2に示すラテン方陣Fat−Treeでは、入力サーバsおよび出力サーバtは、3ホップで通信可能であり、2段Fat−Treeよりも多くのサーバを接続することができる。
なお、図2に示すラテン方陣Fat−TreeのLeafスイッチは、7つあるSpineスイッチのうちのいずれか3つのSpineスイッチと接続する。もし、Leafスイッチが全てのSpineスイッチに接続する場合、そのトポロジー構造は、Fat−Treeとなる。
図3は、All−to−All通信を行うためのスイッチの記憶内容の一例を示す説明図である。図3では、入力サーバs0〜s8と、出力サーバt0〜t8とが、Leafスイッチ1〜6、Spineスイッチ1〜3のいずれか3つを経由して接続する例を示す。そして、図3では、Leafスイッチ1が有する記憶内容の一例を示す。
各スイッチは、送信元サーバおよび宛先サーバの組み合わせに対応した出力ポートを特定する情報を記憶する。Leafスイッチ1は、ポートp0〜p5を有する。図3の例では、Leafスイッチ1が有する情報として、出力ポート表301を示す。出力ポート表301は、競合なくAll−to−All通信を行うために設定されたものである。出力ポート表301の縦のフィールドは、送信元サーバを示し、横のフィールドは宛先サーバを示す。また、出力ポート表301内の「−」で示した箇所は、該当のスイッチを経由しないので、どのポート番号に指定してもよいことを示す。
図3では、入力サーバs0が出力サーバt3と通信し、入力サーバs1が出力サーバt4と通信し、入力サーバs2が出力サーバt5と通信する例を示す。Leafスイッチ1は、入力サーバs0から出力サーバt3への通信を受信した場合、出力ポート表301を参照して、送信元サーバが入力サーバs0であり宛先サーバが出力サーバt3であることから、ポートp0を特定する。そして、Leafスイッチ1は、特定したポートp0を用いて入力サーバs0の通信を中継する。
また、Leafスイッチ1は、入力サーバs1から出力サーバt4への通信を受信した場合、出力ポート表301を参照して、送信元サーバが入力サーバs1であり宛先サーバが出力サーバt4であることから、ポートp1を特定する。また、Leafスイッチ1は、入力サーバs2から出力サーバt5への通信を受信した場合、出力ポート表301を参照して、送信元サーバが入力サーバs2であり宛先サーバが出力サーバt5であることから、ポートp2を特定する。Leafスイッチのポートp0〜p2のそれぞれに接続するSpineスイッチ1〜3も、Leafスイッチ1と同様に、自身が有する出力ポート表を参照して、送信元サーバおよび宛先サーバの組み合わせに対応した出力ポートを特定する。
以上により、入力サーバs0から出力サーバt3への通信経路は、図3に示す太い実線となる。同様に、入力サーバs1から出力サーバt4への通信経路は、図3に示す太い点線となり、入力サーバs2から出力サーバt5への通信経路は、図3に示す太い破線となる。このように、図3に示すように、各通信経路は、競合していないことがわかる。
(情報処理装置101のハードウェア構成例)
図4は、情報処理装置101のハードウェア構成例を示す説明図である。図4において、情報処理装置101は、CPU(Central Processing Unit)401と、ROM(Read−Only Memory)402と、RAM(Random Access Memory)403と、を含む。また、情報処理装置101は、ディスクドライブ404およびディスク405と、通信インターフェース406と、を含む。また、CPU401〜ディスクドライブ404、通信インターフェース406はバス407によってそれぞれ接続される。
CPU401は、情報処理装置101の全体の制御を司る演算処理装置である。ROM402は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM403は、CPU401のワークエリアとして使用される揮発性メモリである。
ディスクドライブ404は、CPU401の制御に従ってディスク405に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ404には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク405は、ディスクドライブ404の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ404が磁気ディスクドライブである場合、ディスク405には、磁気ディスクを採用することができる。また、ディスクドライブ404が光ディスクドライブである場合、ディスク405には、光ディスクを採用することができる。また、ディスクドライブ404がソリッドステートドライブである場合、ディスク405には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
通信インターフェース406は、トポロジー構造Cと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース406は、通信回線を通じてトポロジー構造Cを介して他の装置に接続される。通信インターフェース406には、例えば、モデムやLAN(Local Area Network)アダプタなどを採用することができる。
また、情報処理装置101の管理者が、情報処理装置101を直接操作する場合、情報処理装置101は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
また、情報処理装置101が接続情報110Cを作成する場合には、ユーザからの操作を受け付けるため、情報処理装置101は、キーボード、マウス、ディスプレイを有する。さらに、作成した接続情報110Cを出力するため、情報処理装置101は、プリンタを有してもよい。
(情報処理装置101の機能構成例)
図5は、情報処理装置101の機能構成例を示す説明図である。情報処理装置101は、制御部500と、記憶部510とを有する。制御部500は、複製部501と、設定部502と、作成部503と、特定部504と、決定部505と、送信部506とを含む。制御部500は、記憶装置に記憶されたプログラムをCPU401が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図4に示したROM402、RAM403、ディスク405などである。また、各部の処理結果は、RAM403、CPU401のレジスタ、CPU401のキャッシュメモリ等に格納される。
図5では、新たなトポロジー構造Cの接続情報110Cを作成する説明と、トポロジー構造Cにおいて、経路競合なくAll−to−All通信が行える通信手順を決定する説明とを行う。
さらに、本実施の形態では、実施例1として、2段のトポロジー構造から形成されるトポロジー構造Cに関する説明と、実施例2として、n段のトポロジー構造から形成されるトポロジー構造Cに関する説明とを行う。また、実施例3として、双方向の経路競合のないAll−to−All通信を提供できるトポロジー構造Cに関する説明を行う。実施例1については、図7〜図9でより詳細に説明する。また、実施例2については、図10でより詳細に説明する。また、実施例3については、図13でより詳細に説明する。
また、情報処理装置101は、記憶部510にアクセス可能である。記憶部510は、RAM403、ディスク405といった記憶装置に格納される。記憶部510は、実施例1として、2段のトポロジー構造から形成されるトポロジー構造Cの接続情報110Cを作成する際には、トポロジー構造Aを示す構造データ511Aと、トポロジー構造Bを示す構造データ511Bとがあればよい。ここで、構造データ511A、Bには、少なくとも、構造データ511A、Bの入力ポートおよび出力ポートの数があればよい。また、実施例2、3でも同様に、記憶部510は、nを2以上のいずれかの整数として、トポロジー構造A1を示す構造データ511A1、トポロジー構造A2を示す構造データ511A2、…、トポロジー構造Anを示す構造データ511Anとがあればよい。
まず、トポロジー構造Cの接続情報110Cを作成する説明を行う。実施例1について、複製部501は、接続情報110Cの作成要求を受け付けた際に、構造データ511Aを第2の数分複製し、第2の構造データ511Bを第1の数分複製する。
ここで、複製した構造データ511Aと構造データ511Bとを接続した接続情報110Cを作成するが、接続する方法として、第1の方法と第2の方法とがある。
第1の方法として、作成部503は、複製した第2の数分の各構造データ511Aの第1の数の出力ポートのそれぞれが、複製した第1の数分の各構造データ511Bの第2の数の入力ポートのいずれか一つと接続された接続関係を示す接続情報110Cを作成する。
また、第2の方法として、設定部502は、複製した第2の数分の各構造データ511Aの第1の数の出力ポートの各出力ポートの識別情報(ID:IDentifier)を、各構造データ511A内で各出力ポートを識別する値と第2の数に基づいた値との順に結合した情報に設定する。さらに、設定部502は、複製した第1の数分の構造データ511Bの各構造データBの第2の数の入力ポートの各入力ポートinBのIDを、第2の数に基づいた値と各第2の構造データ内で各入力ポートを識別する値との順に結合した情報に設定する。
例えば、設定部502の処理について、図1を用いて説明する。まず、複製部501が、第2の数として、3つの構造データA(*,1)、A(*,2)、A(*,3)を複製する。そして、設定部502は、例えば、構造データA(*,1)の各出力ポートのIDを、構造データA(*,1)内で各出力ポートを識別する値と、第2の数に基づく1〜3のいずれか一つの値とを結合した情報に設定する。構造データA(*,1)内で各出力ポートを識別する値は、1、2のいずれかとなる。また、第2の数に基づく1〜3のいずれか一つの値は、構造データA(*,1)の第2成分と同一の値となる「1」とする。結果として、設定部502は、構造データA(*,1)の各出力ポートoutAのIDを、それぞれ、outA(1,1)、outA(1,2)に設定する。
そして、作成部503は、同一のIDを有する出力ポートと入力ポートとが接続された接続関係を示す接続情報110Cを作成する。具体的には、接続情報110Cは、第2の数分の各構造データ511Aの第1の数の出力ポートの各出力ポートと、第1の数分の各構造データ511Bの第2の数の入力ポートのうち当該各出力ポートと同一のIDを有する入力ポートとが接続されることを示す。
次に、実施例2について説明する。複製部501は、nを2以上のいずれかの自然数とし、n種類のトポロジー構造を有するトポロジー構造C内の各トポロジー構造の接続関係を示す接続情報110Cの作成要求を受け付ける。この際、複製部501は、iを1からnまでのいずれかの自然数として、第iの種別のトポロジー構造を示す第iの構造データを、第1の数から第nの数までを乗じた値から第iの数で除した数分複製する。
設定部502は、まず、複製した第iの構造データの各入力ポートと各出力ポートとに対応する、IDとなる数列を生成する。その数列は、第1の数から第nの数までの数群のうち第iの数を除く数に基づいた(n−1)桁の数列のi番目に、第iの構造データ内で各入力ポートまたは各出力ポートを識別する値を挿入した数列である。そして、設定部502は、複製した第iの構造データの各入力ポートと各出力ポートとのIDを、生成した数列に設定する。
ここで、設定部502の処理について説明する。設定部502は、第1の数から第nの数までの数群のうち第iの数を除く数に基づいて、複製した第iの構造データのそれぞれを識別する数列を生成する。例えば、設定部502は、(1から第1の数までのいずれかの自然数,…,1から第(i−1)の数までのいずれかの自然数,1から第(i+1)の数までのいずれかの自然数,…,1から第nの数までのいずれかの自然数)というn−1桁の数列を生成する。この数列が取り得る値の個数は、ちょうど第iの構造データを複製した数に一致するため、生成した数列を複製した第iの構造データのそれぞれに設定することにより、複製した第iの構造データのそれぞれを識別することができる。そして、設定部502は、生成した数列のi番目に、第iの構造データ内で各入力ポートまたは各出力ポートを識別する値として、1から第1の数までのいずれかの数を挿入した数列を生成し、各入力ポートまたは各出力ポートに設定する。以上により、複製した第1の構造データから第nの構造データの各入力ポートは、全て異なるIDが設定されることになる。出力ポートについても同様である。
作成部503は、同一のIDを有する出力ポートと入力ポートとが接続された接続関係を示す接続情報110Cを作成する。具体的には、接続情報110Cは、第jの構造データの各第jの構造データの第jの数の各出力ポートが、第(j+1)の構造データの第(j+1)の数の入力ポートのうち当該各出力ポートと同一のIDを有する入力ポートと接続されることを示す。ここで、jは、1から(n−1)までのいずれかの自然数とする。
次に、実施例3について説明する。実施例3では、複製部501〜作成部503が行う処理については実施例2と変わらないが、トポロジー構造Cの各トポロジー構造が、以下に示す3つの条件の全てを満たすものとなる。1つ目の条件は、トポロジー構造Cの段数を3以上のいずれかの奇数とすることである。2つ目の条件は、iを1から((n−1)/2)までのいずれかの自然数とし、トポロジー構造Cに含まれる第iの種別のトポロジー構造が、第(n−i+1)種別のトポロジー構造を逆さにしたトポロジー構造であることである。ここで、逆さにしたトポロジー構造とは、あるトポロジー構造と、他のトポロジー構造を、ある直線を介して並べた際に、ある直線を軸として線対称となる関係にあるトポロジー構造である。例えば、n=5である場合、第1の種別のトポロジー構造と第5の種別のトポロジー構造とが逆さの関係にあり、かつ、第2の種別のトポロジー構造と第4の種別のトポロジー構造とが逆さの関係にある。3つ目の条件は、第((n+1)/2)種別のトポロジー構造が、スイッチ同士を接続する複数のスイッチを有し、かつ、複数のスイッチのそれぞれを結ぶ線を軸として線対称となる構造となることである。この複数のスイッチは、図2で示したSpineスイッチである。
次に、トポロジー構造Cにおいて、経路競合なくAll−to−All通信が行える通信手順を決定する説明を行う。経路競合なくAll−to−All通信を行う際には、記憶部510は、接続情報110Cと、転送パターン表111A、Bがあればよい。
実施例1〜3について、特定部504は、第1の数分の転送パターンのそれぞれと第2の数分の転送パターンのそれぞれとの組み合わせを生成する。そして、特定部504は、生成した組み合わせに対応して、接続情報110Cが示すトポロジー構造Cにおいて当該組み合わせの転送パターンが指定される際に複数の送信元のそれぞれから宛先までの経路を特定する。実施例1、2では、特定部504は、1つの組み合わせに対して、送信元の数分の経路を特定する。
さらに、実施例3では、第((n+1)/2)種別のトポロジー構造に含まれる複数のスイッチで複数の送信元のそれぞれからの通信が折り返される場合における複数の送信元のそれぞれから宛先までの経路を特定する。従って、実施例3では、1つの組み合わせに対して、送信元の数の2倍の分の経路を特定する。
決定部505は、組み合わせに対応して特定した経路に基づいて、トポロジー構造Cにおいて複数の送信元のそれぞれから複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンを決定する。また、決定部505は、組み合わせに対応して特定した経路に基づいて、トポロジー構造C内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する。
送信部506は、トポロジー構造Cにおいて複数の送信元のそれぞれから複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンを、複数の送信元のそれぞれに送信する。また、送信部506は、トポロジー構造C内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートを示す情報を、各トポロジー構造に含まれるスイッチ群に送信する。
図6は、転送パターン表111の記憶内容の一例を示す説明図である。図6では、一例として、入力ポートおよび出力ポートをそれぞれ2つ有するトポロジー構造Aの転送パターン表111Aを示す。また、図6では、トポロジー構造Aの2つの入力ポートを、それぞれinA(1)、inA(2)とし、トポロジー構造Aの2つの出力ポートを、それぞれoutA(1)、outA(2)とする。
転送パターン表111Aは、転送パターンP1、P2を有する。転送パターンP1は、inA(1)から受信したデータを、outA(1)を用いて転送し、inA(2)から受信したデータを、outA(2)を用いて転送するパターンである。また、転送パターンP2は、inA(2)から受信したデータを、outA(1)を用いて転送し、inA(1)から受信したデータを、outA(2)を用いて転送するパターンである。図6では、転送パターンP1に従ったデータ転送の流れを、実線の矢印で示し、転送パターンP2に従ったデータ転送の流れを、破線の矢印で示す。
(実施例1)
実施例1では、送信元サーバ、宛先サーバがともにa台のトポロジー構造Aと、送信元サーバ、宛先サーバがともにb台のトポロジー構造Bとが与えられており、それぞれ競合のない転送パターンPi(1≦i≦a)、Qj(1≦j≦b)が与えられているとする。この場合に、情報処理装置101は、新たなトポロジー構造Cであって、次の3つの条件を満たすものを作成する。1つ目の条件は、トポロジー構造Cで用いる各スイッチが、トポロジー構造A、Bと同じであることである。2つ目の条件は、トポロジー構造Cにおける送信元サーバから宛先サーバまでのホップ数が、トポロジー構造A、Bのホップ数を合計した値となることである。3つ目の条件は、トポロジー構造Cでは、経路競合なく片方向のAll−to−All通信が可能であることである。
図7は、実施例1における接続情報110Cの作成例を示す説明図である。まず、情報処理装置101は、構造データ511Aを、b個複製する。そして、情報処理装置101は、複製した構造データ511AのIDを、それぞれA(*,1)、A(*,2)、…、A(*,b)に設定する。また、情報処理装置101は、A(*,j)(1≦j≦b)のa個の入力ポート、出力ポートを、それぞれ、inA(1,j)、outA(1,j)、inA(2,j)、outA(2,j)、…、inA(a,j)、outA(a,j)と設定する。
同様に、情報処理装置101は、構造データ511Bを、a個複製する。そして、情報処理装置101は、複製した構造データ511BのIDを、それぞれB(1,*)、B(2,*)、…、B(a,*)に設定する。また、情報処理装置101は、B(i,*)(1≦j≦b)のb個の入力ポート、出力ポートを、それぞれ、inB(i,1)、outB(i,1)、inB(i,2)、outB(i,2)…、inB(i,b)、outB(i,b)と設定する。
そして、情報処理装置101は、同一の括弧内符号となるoutA(i,j)、inB(i,j)を同一のリンクとして接続する。または、情報処理装置101は、A(*,j)の「*,j」と一致する括弧内符号を有する構造データ511Bを、A(*,j)と接続する構造データ511Bとして特定してもよい。ここで、「*」は、どの数値でも一致とみなす記号であるとする。実施例1の場合、A(*,1)、A(*,2)、…、A(*,b)それぞれが、B(1,*)、B(2,*)、…、B(a,*)それぞれに接続することになる。
次に、情報処理装置101は、A(*,j)(1≦j≦b)の上位リンクに、入力サーバs(i,j)を接続する。また、情報処理装置101は、B(i,*)(1≦i≦a)の下位リンクに、出力サーバt(i,j)を接続する。
図7の例では、a=2、b=3となる場合のトポロジー構造Cを示す。図7で示すように、A(*,1)、A(*,2)、A(*,3)それぞれが、B(1,*)、B(2,*)それぞれに接続する。情報処理装置101は、トポロジー構造A、Bそれぞれの接続関係を示す接続情報110Cを出力する。トポロジー構造Cの管理者は、出力された結線表に従って、トポロジー構造Cの構築を行う。
次に、構築されたトポロジー構造Cにおいて経路競合なくAll−to−All通信を行うために作成する表の作成例について、図8、図9を用いて説明する。図8では、トポロジー構造Cの転送パターン表を作成する例を説明し、図9では、トポロジー構造Cに含まれる各スイッチの出力ポート表を作成する例を説明する。
図8は、トポロジー構造Cの転送パターン表111Cの作成例を示す説明図である。情報処理装置101は、トポロジー構造Cの接続情報110Cと、トポロジー構造Aの転送パターン表111Aと、トポロジー構造Bの転送パターン表111Bとを用いて、トポロジー構造Cの転送パターン表を作成する。ここで、転送パターン表111Aは、a個の転送パターンを有し、転送パターン表111Bは、b個の転送パターンを有する。以下、転送パターン表111Aが有するa個の転送パターンを、P1、P2、…、Paとする。同様に、転送パターン表111Bが有するb個の転送パターンを、Q1、Q2、…、Qbとする。
情報処理装置101は、全部でa×bの転送パターンがあるため、接続情報110Cに従って、(Pi,Qj)(i=1,2,…,a、j=1,2,…,b)パターンを実施し、各パターンに対応する入力サーバsの宛先となる出力サーバtを特定する。ここで、(Pi,Qi)パターンとは、トポロジー構造C内の全てのA(*,j)(j=1,2,…,b)では、転送パターンPiを実施し、全てのB(i,*)(i=1,2,…,a)では、転送パターンQjを実施するパターンである。そして、情報処理装置101は、特定した出力サーバtから、転送パターンと送信元との組み合わせに対応した出力サーバtを示す、トポロジー構造Cの転送パターン表111Cを作成する。以下、図8を用いて、(Pi,Qj)パターンの一例を示し、転送パターン表111Cの作成例を示す。
図8で示すトポロジー構造Cが有する全ての転送パターンは、a=2、b=3であるから、6つの転送パターンが生成される。図8では、6つの転送パターンのうち、(P1,Q2)パターンについて説明する。まず、送信元が入力サーバs(1,1)の例を示す。情報処理装置101は、転送パターンP1の場合、転送パターン表111Aを参照して、トポロジー構造A(*,1)のinA(1,1)からの送信が、outA(1,1)に転送されることを特定する。
ここで、図1で説明したように、転送パターン表111を参照する際、情報処理装置101は、トポロジー構造に付与された括弧内符号のうちの「*」がある位置の成分に着目する。従って、情報処理装置101は、inA(1,1)からの送信が、転送パターン表111Aにおける送信元「1」に相当するものと特定して、転送パターンP1における転送先「1」を特定する。そして、情報処理装置101は、inA(1,1)からの送信が、転送先「1」に相当するoutA(1,1)に転送されると特定する。
次に、情報処理装置101は、接続情報110Cを参照して、outA(1,1)と接続する入力ポートが、トポロジー構造B(1,*)のinB(1,1)であると特定する。そして、情報処理装置101は、転送パターン表111Bを参照して、トポロジー構造B(1,*)のinB(1,1)からの送信が、outB(1,2)に転送されることを特定する。ここで、トポロジー構造A(*,1)で行った説明と同様の手法により、情報処理装置101は、転送パターン表111Bを参照する際には、inB、outBの第2成分に着目することになる。そして、情報処理装置101は、入力サーバs(1,1)からの送信が、最終的に、outB(1,2)に接続する出力サーバt(1,2)に転送されることを特定する。
以上の処理により、情報処理装置101は、(P1,Q2)パターンにおける、s(1,1)からt(1,2)までの経路801を特定する。
経路801が特定できたため、情報処理装置101は、経路801に基づいて、(P1,Q2)パターンにおけるs(1,1)とt(1,2)の組み合わせを決定する。s(1,1)とt(1,2)の組み合わせは、転送パターン表111Cの一要素となる。従って、情報処理装置101は、転送パターン表111Cの対応する箇所に、「t(1,2)」を登録する。同様に、図8では、情報処理装置101は、送信元が入力サーバs(2,2)であれば宛先は出力サーバt(2,3)となることを特定する。従って、情報処理装置101は、(P1,Q2)パターンにおける、s(2,2)からt(2,3)までの経路802を特定する。経路802が特定できたため、情報処理装置101は、転送パターン表111Cの対応する箇所に、「t(2,3)」を登録する。情報処理装置101は、他の送信元、他の転送パターンについても同様な手順を行い、転送パターン表111Cの各宛先を全て登録する。
転送パターン表111Cの各宛先を全て登録した際に、情報処理装置101は、6つの入力サーバsに、転送パターン表111Cを送信する。
図9は、トポロジー構造C内の各トポロジー構造における出力ポート表112の作成例を示す説明図である。情報処理装置101は、転送パターン表111Cの各宛先を設定する処理と併せて、各スイッチの出力ポート表を作成する処理を実行する。図9では、トポロジー構造A(*,1)の出力ポート表112A(*,1)と、トポロジー構造B(1,*)の出力ポート表112B(1,*)との作成例について示す。
図9の例では、情報処理装置101が、経路801を特定した後の状態である。この場合、情報処理装置101は、経路801上にあるトポロジー構造の出力ポートを特定する。例えば、情報処理装置101は、トポロジー構造A(*,1)について、経路801上にあるトポロジー構造の出力ポートが、outA(1,1)であることを特定する。従って、情報処理装置101は、出力ポート表112A(*,1)に、「outA(1,1)」を、送信元s(1,1)と宛先t(1,2)との組み合わせに対応付けて登録する。同様に、情報処理装置101は、トポロジー構造B(1,*)について、経路801上にあるトポロジー構造の出力ポートが、outB(1,2)であることを特定する。従って、情報処理装置101は、出力ポート表112B(1,*)に、「outB(1,2)」を、送信元s(1,1)と宛先t(1,2)との組み合わせに対応付けて登録する。
同様に、情報処理装置101は、トポロジー構造C内の各トポロジー構造について、送信元と宛先との組み合わせに対応する出力ポートが特定できた際に、各トポロジー構造の出力ポート表112Bにおける対応する箇所に、特定した出力ポートを設定する。そして、各トポロジー構造の各出力ポートの全てを設定した際に、情報処理装置101は、各トポロジー構造に対応する出力ポート表112を、各トポロジー構造に送信する。
6つの入力サーバsに転送パターン表111Cを送信し、各トポロジー構造に対応する出力ポート表112を各トポロジー構造に送信することにより、6つの入力サーバsは、経路競合のないAll−to−All通信を行うことができる。
次に、実施例1で説明したトポロジー構造Cが、経路競合なくAll−to−All通信が行えることの証明について説明する。ここで、送信元サーバs(x,y)から宛先サーバt(z,w)へ送信される回数を数える。まず、送信元サーバs(x,y)から送信されるトポロジー構造は、トポロジー構造C内のトポロジー構造A(*,y)に限られる。同様に、宛先サーバt(z,w)へ送信されるトポロジー構造は、トポロジー構造C内のトポロジー構造B(z,*)に限られる。そして、トポロジー構造A(*,y)と、トポロジー構造B(z,*)とは、outA(z,y)=inB(z,y)という、ただ一つのリンクにより結ばれる。よって、送信元サーバs(x,y)から宛先サーバt(z,w)へ送信される回数は、1回に限られる。
(実施例2)
実施例1では、トポロジー構造A、Bという2段から形成されるトポロジー構造Cの例を説明したが、実施例2では、3段以上のトポロジー構造から形成されるトポロジー構造の例について説明する。
図10は、実施例2における接続情報110Cの作成例を示す説明図である。実施例2では、送信元サーバ、宛先サーバがともにa1台のトポロジー構造A1、送信元サーバ、宛先サーバがともにa2台のトポロジー構造A2、…、送信元サーバ、宛先サーバがともにan台のトポロジー構造Anが与えられているとする。また、nは、2以上の整数である。nが2の場合には、実施例1と同様のトポロジー構造が得られることになる。
まず、情報処理装置101は、n段のトポロジー構造から形成される新たなトポロジー構造Cの入力サーバ、出力サーバの台数Pを、a1・a2・…・anとする。そして、情報処理装置101は、トポロジー構造Aiを示す構造データ511Ai(i=1,2,…,n)を、P/Ai個複製する。
そして、情報処理装置101は、複製した構造データ511AiのIDを、Ai(j1,j2,…,j(i−1),*,j(i+1),…,jn)に設定する。「j1,j2,…,j(i−1),*,j(i+1),…,jn」という数列は、i番目の成分が「*」であり、他の成分が、jk(k=1,2,…,n)は、1≦jk≦akを満たす。jの取り得る個数を計算すると、P/Aiに一致することになる。
また、情報処理装置101は、A(j1,j2,…,j(i−1),*,j(i+1),…,jn)の入力ポートを、inAi(j1,j2,…,j(i−1),k,j(i+1),…,jn)(k=1,2,…,ai)と設定する。同様に、情報処理装置101は、A(j1,j2,…,j(i−1),*,j(i+1),…,jn)の出力ポートを、outAi(j1,j2,…,j(i−1),k,j(i+1),…,jn)(k=1,2,…,ai)と設定する。
次に、情報処理装置101は、同一の括弧内符号となるoutAiと、inA(i+1)とを同一のリンクとして接続する。または、情報処理装置101は、Aiの括弧内符号と一致する括弧内符号を有する構造データ511A(i+1)を、Aiと接続する構造データ511として特定してもよい。
ここで、図10を用いて、入力ポートと出力ポートとの接続処理の具体例について示す。図10では、n=3であり、a1=a2=a3=2であるとする。従って、P=2・2・2=8となる。次に、情報処理装置101は、構造データ511A1〜A3について、それぞれ4つ複製する。情報処理装置101は、複製した4つのA1のIDを、A1(*,1,1)、A1(*,1,2)、A1(*,2,1)、A1(*,2,2)と設定する。同様に、情報処理装置101は、複製した4つのA2のIDを、A2(1,*,1)、A2(1,*,2)、A2(2,*,1)、A2(2,*,2)と設定する。また、情報処理装置101は、複製した4つのA3のIDを、A3(1,1,*)、A3(1,2,*)、A3(2,1,*)、A2(2,2,*)と設定する。また、情報処理装置101は、A1(*,1,1)の入力ポート、出力ポートを、それぞれ、inA1(1,1,1)、inA1(2,1,1)、outA1(1,1,1)、outA1(2,1,1)、と設定する。情報処理装置101は、他の入力ポート、出力ポートについても同様の命令ルールによりIDを設定する。
そして、情報処理装置101は、同一の括弧内符号となるoutAiと、inA(i+1)とを同一のリンクとして接続する。例えば、outA1(1,1、1)と、inA2(1,1,1)とを同一のリンクとして接続する。または、情報処理装置101は、Aiの括弧内符号と一致する括弧内符号を有する構造データ511A(i+1)を、Aiと接続する構造データ511として特定してもよい。例えば、A1(*,1,1)と同一の括弧内符号を有するA2は、A2(1,*,1)と、A2(2,*,1)とになる。このように、3段以上のトポロジー構造では、隣接する段同士で接続しないトポロジー構造も含まれる。
他の構造データ511同士も接続することにより、情報処理装置101は、図10で示すトポロジー構造Cを得る。トポロジー構造Cが得られた後、構築されたトポロジー構造Cにおいて経路競合なくAll−to−All通信を行うために、情報処理装置101は、転送パターン表と、出力ポート表とを作成する。この2つの表の作成方法は、実施例1と同様の処理であるから、説明を省略する。
また、実施例2において、入力サーバs(j1,j2,…,jn)が出力サーバt(k1,k2,…,kn)に送信する際に、各トポロジー構造で、「j1,j2,…,jn」が1成分ずつ修正される。従って、全ての入力サーバsが、全ての出力サーバtに送信することが可能である。
次に、実施例1、2におけるトポロジー構造Cの接続情報作成処理と、転送パターン表および出力ポート表とのそれぞれのフローチャートを、図11、図12を用いて説明する。
図11は、トポロジー構造の接続情報作成処理手順の一例を示す説明図である。情報処理装置101は、情報処理装置101のユーザによる操作によって、新たなトポロジー構造の構造データの作成要求を受け付ける(ステップS1101)。作成要求には、新たなトポロジー構造が、何段のトポロジー構造で構築されるのかという指示と、各段におけるトポロジー構造を指定する情報とが含まれる。ここでは、2以上の自然数であるn段のトポロジー構造で構築され、各段のトポロジー構造が、トポロジー構造A1、A2、…、Anであるとする。
そして、情報処理装置101は、作成要求に従って、記憶部510から、構造データA1(a1台)、A2(a2台)、…、An(an台)を取得する(ステップS1102)。次に、情報処理装置101は、a1・a2・…・anを算出して得られた値をPに代入する(ステップS1103)。そして、情報処理装置101は、構造データAi(i=1,2,…n)を、P/ai分複製する(ステップS1104)。次に、情報処理装置101は、複製した構造データのIDを設定する(ステップS1105)。
そして、情報処理装置101は、複製した構造データの入力ポートinAiと出力ポートoutAiとのIDを生成する(ステップS1106)。次に、情報処理装置101は、生成したIDを、複製した構造データの入力ポートinAiと出力ポートoutAiに設定する(ステップS1107)。そして、情報処理装置101は、設定した入力ポートinAiと出力ポートoutAiのIDに基づいて、同一の括弧内符号を有するoutAi(i=1,2,…,n)と、inA(i+1)とを接続する(ステップS1108)。
次に、情報処理装置101は、P台分の入力サーバsと出力サーバtとのIDを設定する(ステップS1109)。そして、情報処理装置101は、InA1と入力サーバsとを接続する(ステップS1110)。また、情報処理装置101は、OutAnと出力サーバとを接続する(ステップS1111)。そして、情報処理装置101は、複製したトポロジー構造A1、A2、…、Anと、入力サーバsと、出力サーバtと、各トポロジー構造およびサーバの接続関係を含む接続情報110Cを作成する(ステップS1112)。ステップS1112の処理終了後、情報処理装置101は、トポロジー構造の接続情報作成処理を終了する。
図12は、転送パターン表および出力ポート表作成処理手順の一例を示す説明図である。情報処理装置101は、記憶部510から、トポロジー構造A1、A2、…、Anの転送パターン表111を取得する(ステップS1201)。ここで、トポロジー構造A1の転送パターン表111は、P1個の転送パターンを含み、トポロジー構造A2の転送パターン表111は、P2個の転送パターンを含み、…、トポロジー構造Anの転送パターン表111には、Pn個の転送パターンがあるとする。
次に、情報処理装置101は、取得した転送パターン表から、P1,P2,…,Pn個の転送パターンを作成する(ステップS1202)。そして、情報処理装置101は、作成した転送パターンのうちのいずれか一つの転送パターンを選択する(ステップS1203)。次に、情報処理装置101は、選択した転送パターンに従って、各入力サーバsの宛先となる出力サーバtまでの経路を特定する(ステップS1204)。そして、情報処理装置101は、新たなトポロジー構造の転送パターン表に、特定した経路における出力サーバtを、選択した転送パターンと入力サーバsとの組み合わせに対応付けて登録する(ステップS1205)。
また、情報処理装置101は、特定した経路上にあるトポロジー構造A1、A2、…、Anの出力ポートを特定する(ステップS1206)。そして、情報処理装置101は、新たなトポロジー構造内のトポロジー構造A1、A2、…、Anの出力ポート表に、特定した出力ポートを、入力サーバと出力サーバとの組み合わせに対応付けて登録する(ステップS1207)。
次に、情報処理装置101は、作成した転送パターンの全てを選択したか否かを判断する(ステップS1208)。作成した転送パターンのうち選択していない転送パターンがある場合(ステップS1208:No)、情報処理装置101は、ステップS1203の処理に移行する。一方、作成した転送パターンの全てを選択した場合(ステップS1208:Yes)、情報処理装置101は、新たなトポロジー構造の転送パターン表を、入力サーバsに送信する(ステップS1209)。また、情報処理装置101は、新たなトポロジー構造内のトポロジー構造A1、A2、…、Anの出力ポート表を、対応するトポロジー構造A1、A2、…、Anに送信する(ステップS1210)。ステップS1210の処理終了後、情報処理装置101は、転送パターン表および出力ポート表作成処理を終了する。
(実施例3)
実施例1、2では、片方向における経路競合のないAll−to−All通信を提供できるトポロジー構造について説明したが、実施例3では、双方向における経路競合のないAll−to−All通信を提供できるトポロジー構造について説明する。ここで、双方向における経路競合のAll−to−All通信は、片方向の経路競合のないAll−to−All通信が行えることに加えて、入力サーバ群から入力サーバ群への通信および出力サーバ群から出力サーバ群への経路競合のない通信が行えることである。
図13は、実施例3における接続情報110Cの作成例を示す説明図である。あるトポロジー構造において、あるトポロジー構造の中段のSpineスイッチを境に線対称となる場合、あるトポロジー構造を、「線対称トポロジー構造」と称する。例えば、Fat−Treeやラテン方陣Fat−Treeは、線対称トポロジー構造となる。線対称トポロジー構造で、片方向において経路競合なくAll−to−All通信が可能であるならば、Spineスイッチで折り返すようにすることにより、双方向において経路競合なくAll−to−All通信を行うトポロジー構造を作成することができる。
図13では、双方向において経路競合なくAll−to−All通信を行うトポロジー構造Cの一例を示す。トポロジー構造Cは、トポロジー構造A群、B群、A’群を有する。ここで、トポロジー構造A’は、Aを逆さにしたトポロジー構造である。また、トポロジー構造Bは、線対称トポロジー構造である。例えば、トポロジー構造Bは、図13で示したように、ラテン方陣Fat−Treeである。ラテン方陣Fat−Treeは、図13で示すように、Spineスイッチ同士を繋げた点線1301を軸として線対称となる。
新たなトポロジー構造Cの接続情報Cが得られた後、構築されたトポロジー構造Cにおいて経路競合なくAll−to−All通信を行うために、情報処理装置101は、転送パターン表と、出力ポート表とを作成する。この2つの表の作成方法は、実施例1とほぼ同様の処理であるから、説明を省略する。異なる処理として、ステップS1204の処理で、情報処理装置101は、各入力サーバsの宛先となる出力サーバtまでの経路1302を特定するとともに、図13で示した点線で複数の送信元のそれぞれからの通信が折り返される場合の経路1303を特定する。ここで、通信が折り返される箇所は、点線1301上のSpineスイッチとなる。また、ステップS1205、S1207では、転送パターン表111、出力ポート表112に登録することになるが、情報処理装置101は、通信を折り返さない場合と、通信を折り返す場合とのそれぞれの転送パターン表、出力ポート表を用意すればよい。
以上説明したように、情報処理装置101は、トポロジー構造C内の各トポロジー構造の転送パターンの組み合わせごとに特定した複数の送信元のそれぞれから宛先までの経路から、トポロジー構造Cの転送パターンと各トポロジー構造の出力ポートを決定する。これにより、複数の送信元のそれぞれは、トポロジー構造Cにおいて、経路競合なくAll−to−All通信を行うことができる。
また、情報処理装置101は、第2の数分複製した各構造データ511Aの各出力ポートのそれぞれが、第1の数分複製した各構造データ511Bの第2の数の入力ポートのいずれか一つと接続された接続関係を示す接続情報110Cを作成してもよい。また、情報処理装置101は、複製した各構造データ511Aの出力ポートと複製した各構造データ511Bの入力ポートとにIDを設定し、同一のID同士が接続された接続関係を示す接続情報110Cを作成してもよい。これにより、情報処理装置101は、サーバに対するスイッチの数を増やさずに経路競合なくAll−to−All通信が行える2段のトポロジー構造Cの接続方法となる接続情報110Cを、トポロジー構造Cの管理者に示すことができる。そして、トポロジー構造Cの管理者は、示された接続情報110に従うことにより、経路競合なくAll−to−All通信を行うことができるトポロジー構造Cを構築することができる。
ここで、サーバに対するスイッチの数を増やしていない証明として、図7で示すように、トポロジー構造Cには、トポロジー構造A、Bに元々含まれるスイッチ以外のスイッチを新たに必要としていない。また、情報処理装置101は、異なるトポロジー構造をベースとして、経路競合なくAll−to−All通信を行うことができるトポロジー構造を拡張することができる。
また、情報処理装置101は、複製した構造データAi(i=1,2,…,n)の各出力ポートと各入力ポートとにIDを設定し、隣の段同士において同一のID同士が接続された接続関係を示す接続情報110を作成してもよい。これにより、情報処理装置101は、経路競合なくAll−to−All通信が行えるn段のトポロジー構造Cの接続方法を、トポロジー構造Cの管理者に示すことができる。
また、情報処理装置101は、nを3以上の奇数とし、第iの種別のトポロジー構造が、第(n−i+1)種別のトポロジー構造を逆さにしたトポロジー構造であり、第((n+1)/2)種別のトポロジー構造が、線対称となる接続情報110を作成してもよい。これにより、情報処理装置101は、双方向の経路競合なくAll−to−All通信が行えるトポロジー構造の接続方法を、トポロジー構造Cの管理者に示すことができる。
また、情報処理装置101は、トポロジー構造C内の各トポロジー構造の転送パターンの組み合わせごとに特定した複数の送信元のそれぞれから宛先までの経路と、第((n+1)/2)種別のトポロジー構造内のSpineスイッチで折り返した経路とを特定する。これにより、複数の送信元のそれぞれは、トポロジー構造Cにおいて、経路競合なく双方向のAll−to−All通信を行うことができる。
また、情報処理装置101は、転送パターン表111を入力サーバsに送信するとともに、出力ポート表112をトポロジー構造Cの各トポロジー構造のスイッチに送信してもよい。これにより、転送パターン表111や出力ポート表112を手動で設定しなくとも、複数の送信元のそれぞれは、トポロジー構造Cにおいて、経路競合なくAll−to−All通信を行うことができる。また、トポロジー構造Cの管理者は、転送パターン表111や出力ポート表112を閲覧して、複数の送信先のそれぞれと、トポロジー構造Cの各トポロジー構造のスイッチとの設定を手動で割り当ててもよい。
なお、本実施の形態で説明した通信手順決定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)出力ポートおよび複数の送信元のそれぞれが接続された入力ポートを第1の数分有する第2の数分の第1の種別の各トポロジー構造と入力ポートおよび複数の宛先のそれぞれが接続された出力ポートを前記第2の数分有する前記第1の数分の第2の種別の各トポロジー構造とがそれぞれ接続されたネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンと、前記第2の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第2の数分の転送パターンとを記憶する記憶部と、
前記第1の数分の転送パターンのそれぞれと前記第2の数分の転送パターンのそれぞれとの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に前記複数の送信元のそれぞれから宛先までの経路を特定し、当該組み合わせに対応して特定した前記経路に基づいて、前記ネットワークにおいて前記複数の送信元のそれぞれから前記複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンと、前記ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する制御部と、
を有することを特徴とする情報処理装置。
(付記2)前記記憶部は、
前記第1の種別のトポロジー構造を示す第1の構造データと、前記第2の種別のトポロジー構造を示す第2の構造データとを記憶し、
前記制御部は、
前記第1の種別のトポロジー構造と前記第2の種別のトポロジー構造とを有するネットワーク内の各トポロジー構造の接続関係を示す接続情報の作成要求を受け付けた際に、前記第1の構造データを前記第2の数分複製し、前記第2の構造データを前記第1の数分複製し、
複製した前記第2の数分の第1の構造データの各第1の構造データの前記第1の数の出力ポートのそれぞれと、複製した前記第1の数分の第2の構造データの各第2の構造データの前記第2の数の入力ポートのいずれか一つとが接続された接続関係を示す前記接続情報を作成する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記制御部は、
複製した前記第2の数分の第1の構造データの各第1の構造データの前記第1の数の出力ポートの各出力ポートの識別情報を、前記各第1の構造データ内で前記各出力ポートを識別する値と前記第2の数に基づいた値との順に結合した情報に設定し、
複製した前記第1の数分の第2の構造データの各第2の構造データの前記第2の数の入力ポートの各入力ポートの識別情報を、前記第1の数に基づいた値と前記各第2の構造データ内で前記各入力ポートを識別する値との順に結合した情報に設定し、
複製した前記第2の数分の第1の構造データの各第1の構造データの前記第1の数の出力ポートの各出力ポートと、複製した前記第1の数分の第2の構造データの前記第2の数の入力ポートのうち当該各出力ポートと同一の識別情報を有する入力ポートとが接続された接続関係を示す前記接続情報を作成する、
ことを特徴とする付記2に記載の情報処理装置。
(付記4)前記記憶部は、
nを2以上のいずれかの自然数とし、前記第1の種別のトポロジー構造を示す第1の構造データから第nの種別のトポロジー構造を示す第nの構造データまでを記憶し、
前記制御部は、
iを1からnまでのいずれかの自然数とし、入力ポートおよび出力ポートを前記第1の数分有する前記第1の種別のトポロジー構造から入力ポートおよび出力ポートを第nの数分有する第nの種別のトポロジー構造までのn種類のトポロジー構造を有するネットワーク内の各トポロジー構造の接続関係を示す接続情報の作成要求を受け付けた際に、第iの種別のトポロジー構造を示す第iの構造データを、前記第1の数から前記第nの数までを乗じた値から第iの数で除した数分複製し、
複製した前記第iの構造データの各入力ポートと各出力ポートとに対応して、前記第1の数から前記第nの数までの数群のうち前記第iの数を除く数に基づいた(n−1)桁の数列のi番目に、前記第iの構造データ内で前記各入力ポートまたは前記各出力ポートを識別する値を挿入した数列を生成し、
複製した前記第iの構造データの各入力ポートと各出力ポートとの識別情報を、生成した前記数列に設定し、
jを1から(n−1)までのいずれかの自然数とし、複製した第jの構造データの各第jの構造データの第jの数の出力ポートの各出力ポートと、複製した第(j+1)の構造データの第(j+1)の数の入力ポートのうち当該各出力ポートと同一の識別情報を有する入力ポートとが接続された接続関係を示す前記接続情報を作成する、
ことを特徴とする付記3に記載の情報処理装置。
(付記5)前記nを3以上のいずれかの奇数とし、iを1から((n−1)/2)までのいずれかの自然数とし、前記ネットワークに含まれる第iの種別のトポロジー構造が、第(n−i+1)種別のトポロジー構造を逆さにしたトポロジー構造であり、第((n+1)/2)種別のトポロジー構造が、スイッチ同士を接続する複数のスイッチを有し、かつ、前記複数のスイッチのそれぞれを結ぶ線を軸として線対称となる構造であることを特徴とする付記4に記載の情報処理装置。
(付記6)前記記憶部は、
前記ネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンから前記第nの種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第nの数分の転送パターンまでを記憶し、
前記制御部は、
前記第1の数分の転送パターンのそれぞれから前記第nの数分の転送パターンのそれぞれまでの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に、前記複数の送信元のそれぞれから宛先までの経路を特定し、さらに、前記第((n+1)/2)種別のトポロジー構造に含まれる前記複数のスイッチで前記複数の送信元のそれぞれからの通信が折り返される場合における前記複数の送信元のそれぞれから宛先までの経路を特定する、
ことを特徴とする付記5に記載の情報処理装置。
(付記7)前記制御部は、
前記ネットワークにおいて前記複数の送信元のそれぞれから前記複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンを、前記複数の送信元のそれぞれに送信し、
前記ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートを示す情報を、前記各トポロジー構造に含まれるスイッチ群に送信する、
ことを特徴とする付記1〜6のいずれか一つに記載の情報処理装置。
(付記8)コンピュータが、
出力ポートおよび複数の送信元のそれぞれが接続された入力ポートを第1の数分有する第2の数分の第1の種別の各トポロジー構造と入力ポートおよび複数の宛先のそれぞれが接続された出力ポートを前記第2の数分有する前記第1の数分の第2の種別の各トポロジー構造とがそれぞれ接続されたネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンと、前記第2の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第2の数分の転送パターンとを記憶する記憶部を参照して、前記第1の数分の転送パターンのそれぞれと前記第2の数分の転送パターンのそれぞれとの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に前記複数の送信元のそれぞれから宛先までの経路を特定し、
当該組み合わせに対応して特定した前記経路に基づいて、前記ネットワークにおいて前記複数の送信元のそれぞれから前記複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンと、前記ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する、
処理を実行することを特徴とする通信手順決定方法。
(付記9)コンピュータに、
出力ポートおよび複数の送信元のそれぞれが接続された入力ポートを第1の数分有する第2の数分の第1の種別の各トポロジー構造と入力ポートおよび複数の宛先のそれぞれが接続された出力ポートを前記第2の数分有する前記第1の数分の第2の種別の各トポロジー構造とがそれぞれ接続されたネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンと、前記第2の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第2の数分の転送パターンとを記憶する記憶部を参照して、前記第1の数分の転送パターンのそれぞれと前記第2の数分の転送パターンのそれぞれとの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に前記複数の送信元のそれぞれから宛先までの経路を特定し、
当該組み合わせに対応して特定した前記経路に基づいて、前記ネットワークにおいて前記複数の送信元のそれぞれから前記複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンと、前記ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する、
処理を実行させることを特徴とする通信プログラム。
A、B、C トポロジー構造
101 情報処理装置
102 ネットワーク
110 接続情報
111 転送パターン表
112 出力ポート表
500 制御部
501 複製部
502 設定部
503 作成部
504 特定部
505 決定部
506 送信部
510 記憶部
511 構造データ

Claims (8)

  1. 出力ポートおよび複数の送信元のそれぞれが接続された入力ポートを第1の数分有する第2の数分の第1の種別の各トポロジー構造と入力ポートおよび複数の宛先のそれぞれが接続された出力ポートを前記第2の数分有する前記第1の数分の第2の種別の各トポロジー構造とがそれぞれ接続されたネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンと、前記第2の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第2の数分の転送パターンとを記憶する記憶部と、
    前記第1の数分の転送パターンのそれぞれと前記第2の数分の転送パターンのそれぞれとの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に前記複数の送信元のそれぞれから宛先までの経路を特定し、当該組み合わせに対応して特定した前記経路に基づいて、前記ネットワークにおいて前記複数の送信元のそれぞれから前記複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンと、前記ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する制御部と、
    を有することを特徴とする情報処理装置。
  2. 前記記憶部は、
    前記第1の種別のトポロジー構造を示す第1の構造データと、前記第2の種別のトポロジー構造を示す第2の構造データとを記憶し、
    前記制御部は、
    前記第1の種別のトポロジー構造と前記第2の種別のトポロジー構造とを有するネットワーク内の各トポロジー構造の接続関係を示す接続情報の作成要求を受け付けた際に、前記第1の構造データを前記第2の数分複製し、前記第2の構造データを前記第1の数分複製し、
    複製した前記第2の数分の第1の構造データの各第1の構造データの前記第1の数の出力ポートのそれぞれと、複製した前記第1の数分の第2の構造データの各第2の構造データの前記第2の数の入力ポートのいずれか一つとが接続された接続関係を示す前記接続情報を作成する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御部は、
    複製した前記第2の数分の第1の構造データの各第1の構造データの前記第1の数の出力ポートの各出力ポートの識別情報を、前記各第1の構造データ内で前記各出力ポートを識別する値と前記第2の数に基づいた値との順に結合した情報に設定し、
    複製した前記第1の数分の第2の構造データの各第2の構造データの前記第2の数の入力ポートの各入力ポートの識別情報を、前記第1の数に基づいた値と前記各第2の構造データ内で前記各入力ポートを識別する値との順に結合した情報に設定し、
    複製した前記第2の数分の第1の構造データの各第1の構造データの前記第1の数の出力ポートの各出力ポートと、複製した前記第1の数分の第2の構造データの前記第2の数の入力ポートのうち当該各出力ポートと同一の識別情報を有する入力ポートとが接続された接続関係を示す前記接続情報を作成する、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記記憶部は、
    nを2以上のいずれかの自然数とし、前記第1の種別のトポロジー構造を示す第1の構造データから第nの種別のトポロジー構造を示す第nの構造データまでを記憶し、
    前記制御部は、
    iを1からnまでのいずれかの自然数とし、入力ポートおよび出力ポートを前記第1の数分有する前記第1の種別のトポロジー構造から入力ポートおよび出力ポートを第nの数分有する第nの種別のトポロジー構造までのn種類のトポロジー構造を有するネットワーク内の各トポロジー構造の接続関係を示す接続情報の作成要求を受け付けた際に、第iの種別のトポロジー構造を示す第iの構造データを、前記第1の数から前記第nの数までを乗じた値から第iの数で除した数分複製し、
    複製した前記第iの構造データの各入力ポートと各出力ポートとに対応して、前記第1の数から前記第nの数までの数群のうち前記第iの数を除く数に基づいた(n−1)桁の数列のi番目に、前記第iの構造データ内で前記各入力ポートまたは前記各出力ポートを識別する値を挿入した数列を生成し、
    複製した前記第iの構造データの各入力ポートと各出力ポートとの識別情報を、生成した前記数列に設定し、
    jを1から(n−1)までのいずれかの自然数とし、複製した第jの構造データの各第jの構造データの第jの数の出力ポートの各出力ポートと、複製した第(j+1)の構造データの第(j+1)の数の入力ポートのうち当該各出力ポートと同一の識別情報を有する入力ポートとが接続された接続関係を示す前記接続情報を作成する、
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記nを3以上のいずれかの奇数とし、iを1から((n−1)/2)までのいずれかの自然数とし、前記ネットワークに含まれる第iの種別のトポロジー構造が、第(n−i+1)種別のトポロジー構造を逆さにしたトポロジー構造であり、第((n+1)/2)種別のトポロジー構造が、スイッチ同士を接続する複数のスイッチを有し、かつ、前記複数のスイッチのそれぞれを結ぶ線を軸として線対称となる構造であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記記憶部は、
    前記ネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンから前記第nの種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第nの数分の転送パターンまでを記憶し、
    前記制御部は、
    前記第1の数分の転送パターンのそれぞれから前記第nの数分の転送パターンのそれぞれまでの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に、前記複数の送信元のそれぞれから宛先までの経路を特定し、さらに、前記第((n+1)/2)種別のトポロジー構造に含まれる前記複数のスイッチで前記複数の送信元のそれぞれからの通信が折り返される場合における前記複数の送信元のそれぞれから宛先までの経路を特定する、
    ことを特徴とする請求項5に記載の情報処理装置。
  7. コンピュータが、
    出力ポートおよび複数の送信元のそれぞれが接続された入力ポートを第1の数分有する第2の数分の第1の種別の各トポロジー構造と入力ポートおよび複数の宛先のそれぞれが接続された出力ポートを前記第2の数分有する前記第1の数分の第2の種別の各トポロジー構造とがそれぞれ接続されたネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンと、前記第2の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第2の数分の転送パターンとを記憶する記憶部を参照して、前記第1の数分の転送パターンのそれぞれと前記第2の数分の転送パターンのそれぞれとの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に前記複数の送信元のそれぞれから宛先までの経路を特定し、
    当該組み合わせに対応して特定した前記経路に基づいて、前記ネットワークにおいて前記複数の送信元のそれぞれから前記複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンと、前記ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する、
    処理を実行することを特徴とする通信手順決定方法。
  8. コンピュータに、
    出力ポートおよび複数の送信元のそれぞれが接続された入力ポートを第1の数分有する第2の数分の第1の種別の各トポロジー構造と入力ポートおよび複数の宛先のそれぞれが接続された出力ポートを前記第2の数分有する前記第1の数分の第2の種別の各トポロジー構造とがそれぞれ接続されたネットワーク内の各トポロジー構造の接続関係を示す接続情報と、前記第1の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせを示す前記第1の数分の転送パターンと、前記第2の種別のトポロジー構造において経路競合なく全対全通信を行う入力ポートと出力ポートとの組み合わせが示される前記第2の数分の転送パターンとを記憶する記憶部を参照して、前記第1の数分の転送パターンのそれぞれと前記第2の数分の転送パターンのそれぞれとの組み合わせに対応して、前記接続情報が示す前記ネットワークにおいて当該組み合わせの転送パターンが指定される際に前記複数の送信元のそれぞれから宛先までの経路を特定し、
    当該組み合わせに対応して特定した前記経路に基づいて、前記ネットワークにおいて前記複数の送信元のそれぞれから前記複数の宛先のそれぞれまで経路競合なく全対全通信を行う転送パターンと、前記ネットワーク内の各トポロジー構造における送信元と宛先との組み合わせに対応する出力ポートとを決定する、
    処理を実行させることを特徴とする通信プログラム。
JP2016113071A 2016-06-06 2016-06-06 情報処理装置、通信手順決定方法、および通信プログラム Expired - Fee Related JP6623939B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016113071A JP6623939B2 (ja) 2016-06-06 2016-06-06 情報処理装置、通信手順決定方法、および通信プログラム
US15/608,341 US10554535B2 (en) 2016-06-06 2017-05-30 Apparatus and method to perform all-to-all communication without path conflict in a network including plural topological structures

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016113071A JP6623939B2 (ja) 2016-06-06 2016-06-06 情報処理装置、通信手順決定方法、および通信プログラム

Publications (2)

Publication Number Publication Date
JP2017220764A JP2017220764A (ja) 2017-12-14
JP6623939B2 true JP6623939B2 (ja) 2019-12-25

Family

ID=60483971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016113071A Expired - Fee Related JP6623939B2 (ja) 2016-06-06 2016-06-06 情報処理装置、通信手順決定方法、および通信プログラム

Country Status (2)

Country Link
US (1) US10554535B2 (ja)
JP (1) JP6623939B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6844198B2 (ja) * 2016-10-25 2021-03-17 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
CN106789331B (zh) * 2017-01-11 2024-02-20 北京金数信数码科技有限公司 拓扑结构生成方法和系统

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103444A (en) * 1990-04-12 1992-04-07 At&T Bell Laboratories Conference connection method in a multicast packet switching network
US5140585A (en) * 1990-07-19 1992-08-18 Kabushiki Kaisha Toshiba Star local-area network system
JP3202074B2 (ja) * 1992-10-21 2001-08-27 富士通株式会社 並列ソート方式
US5453978A (en) * 1994-04-04 1995-09-26 International Business Machines Corporation Technique for accomplishing deadlock free routing through a multi-stage cross-point packet switch
US6091725A (en) * 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6456838B1 (en) * 1999-02-17 2002-09-24 Verizon Laboratories Inc. Generic approach to generating permutations for all-to-all personalized exchange for self-routing multistage interconnection networks
US8326754B2 (en) * 2001-02-05 2012-12-04 Oracle International Corporation Method and system for processing transactions
US20020141427A1 (en) * 2001-03-29 2002-10-03 Mcalpine Gary L. Method and apparatus for a traffic optimizing multi-stage switch fabric network
US7236488B1 (en) * 2001-08-10 2007-06-26 Gautam Kavipurapu Intelligent routing switching system
US7330435B2 (en) * 2001-11-29 2008-02-12 Iptivia, Inc. Method and system for topology construction and path identification in a routing domain operated according to a link state routing protocol
US7315517B2 (en) * 2002-05-22 2008-01-01 Board Of Supervisors Of Louisiana State University And Agricultural And Mechanical College Non-blocking WDM optical networks
US7680048B2 (en) * 2006-10-06 2010-03-16 International Business Machiens Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamically adjusting local routing strategies
US7598766B2 (en) * 2007-01-09 2009-10-06 University Of Washington Customized silicon chips produced using dynamically configurable polymorphic network
JP4676463B2 (ja) 2007-07-13 2011-04-27 株式会社日立製作所 並列計算機システム
US8103435B2 (en) * 2007-07-27 2012-01-24 George Mason Intellectual Properties, Inc. Near real-time traffic routing
US8423663B2 (en) * 2007-08-06 2013-04-16 International Business Machines Corporation Providing full point-to-point communications among compute nodes of an operational group in a global combining network of a parallel computer
US8065433B2 (en) * 2009-01-09 2011-11-22 Microsoft Corporation Hybrid butterfly cube architecture for modular data centers
EP2374250B1 (en) * 2009-01-19 2014-10-29 Hewlett-Packard Development Company, L.P. Load balancing
US20110085557A1 (en) * 2009-10-08 2011-04-14 Brocade Communications Systems, Inc. Partitioning of Switches and Fabrics into Logical Switches and Fabrics
JP5532849B2 (ja) * 2009-11-20 2014-06-25 富士通株式会社 コンピュータ、プロセス間通信プログラム、およびプロセス間通信方法
JP5241763B2 (ja) * 2010-03-24 2013-07-17 株式会社日立製作所 通信システムおよび通信システムの制御方法
JP5540963B2 (ja) * 2010-07-15 2014-07-02 富士通株式会社 情報処理方法、装置及びプログラム
JP5664131B2 (ja) * 2010-11-01 2015-02-04 富士通株式会社 情報処理方法、装置及びプログラム
EP2708000B1 (en) * 2011-05-08 2020-03-25 The J. Scott Benson Living Trust Flexible radix switching network
JP5794011B2 (ja) * 2011-07-19 2015-10-14 富士通株式会社 ネットワーク管理装置及びネットワーク管理方法
US9301026B2 (en) * 2011-11-01 2016-03-29 Plexxi Inc. Affinity modeling in a data center network
US9014201B2 (en) * 2011-11-09 2015-04-21 Oracle International Corporation System and method for providing deadlock free routing between switches in a fat-tree topology
US8737269B1 (en) * 2012-01-26 2014-05-27 Google Inc. System and method for reducing hardware table resources in a multi-stage network device
US9379971B2 (en) * 2012-05-11 2016-06-28 Simula Inovation AS Method and apparatus for determining paths between source/destination pairs
US9014006B2 (en) * 2013-01-31 2015-04-21 Mellanox Technologies Ltd. Adaptive routing using inter-switch notifications
GB2511089A (en) 2013-02-22 2014-08-27 Ibm All-to-all message exchange in parallel computing systems
US20150043905A1 (en) * 2013-08-07 2015-02-12 Futurewei Technologies, Inc. System and Method for Photonic Switching and Controlling Photonic Switching in a Data Center
JP6160406B2 (ja) * 2013-09-27 2017-07-12 富士通株式会社 設計支援装置、設計支援プログラムおよび設計支援方法
US9548960B2 (en) * 2013-10-06 2017-01-17 Mellanox Technologies Ltd. Simplified packet routing
JP6303613B2 (ja) * 2014-03-05 2018-04-04 富士通株式会社 経路データ生成装置、経路データ生成方法及び経路データ生成プログラム
JP6520344B2 (ja) * 2014-05-14 2019-05-29 富士通株式会社 並列計算機システム、並列計算機システムの制御方法、及び情報処理装置
JP6844198B2 (ja) * 2016-10-25 2021-03-17 富士通株式会社 情報処理装置、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
US20170353377A1 (en) 2017-12-07
JP2017220764A (ja) 2017-12-14
US10554535B2 (en) 2020-02-04

Similar Documents

Publication Publication Date Title
Fan et al. The t/k-diagnosability of the BC graphs
Ziavras RH: a versatile family of reduced hypercube interconnection networks
JP6623939B2 (ja) 情報処理装置、通信手順決定方法、および通信プログラム
Kohavi Secondary state assignment for sequential machines
Stevens et al. The coolest way to generate binary strings
WO2018198479A1 (ja) 情報処理装置、情報処理方法及びプログラム
US10379901B2 (en) Apparatus and method to select transmission sources and destinations allowing all-to-all communication without link congestion in a network including plural topological structures
Chen et al. Efficient path-based multicast in wormhole-routed mesh networks
Summerville et al. A flexible bit-pattern associative router for interconnection networks
Chang et al. Fault-tolerant bipancyclicity of faulty hypercubes under the generalized conditional-fault model
Greenberg et al. Routing multiple paths in hypercubes
Hung et al. Christmas tree: A versatile 1-fault-tolerant design for token rings
JP6197872B2 (ja) データ処理システム、データ処理方法およびデータ処理プログラム
CN105740037B (zh) 软件定义网络组合编程动作计算方法、系统、装置及芯片
JP5636078B1 (ja) 仮想ネットワークの物理ネットワークへの配置装置及び方法
Boura Design and analysis of routing schemes and routers for wormhole-routed mesh architectures
CN109416683B (zh) 数据处理设备、数据库系统和数据库系统的通信操作方法
Choi et al. A nearly optimal one-to-many routing algorithm on k-ary n-cube networks
Datta et al. Summation and routing on a partitioned optical passive stars network with large group size
Bennes et al. A comparative study of job allocation and migration in the pancake network
Nieri Intersecting Defects: the Supergroup Side and Geometric Transitions
Chung Design of a set of one-to-many node-disjoint and nearly shortest paths on recursive circulant networks
Fan et al. Efficient algorithms to embed Hamiltonian Paths and Cycles in faulty crossed cubes
Kawano A Scalable Routing Methodology for Low-Latency Interconnection Networks
Hsieh Fault-tolerant mutually independent Hamiltonian cycles embedding on hypercubes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190212

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191016

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191029

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191111

R150 Certificate of patent or registration of utility model

Ref document number: 6623939

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees