JP7167687B2 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

情報処理装置、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP7167687B2
JP7167687B2 JP2018236385A JP2018236385A JP7167687B2 JP 7167687 B2 JP7167687 B2 JP 7167687B2 JP 2018236385 A JP2018236385 A JP 2018236385A JP 2018236385 A JP2018236385 A JP 2018236385A JP 7167687 B2 JP7167687 B2 JP 7167687B2
Authority
JP
Japan
Prior art keywords
node
information
nodes
information processing
identification information
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.)
Active
Application number
JP2018236385A
Other languages
English (en)
Other versions
JP2020098470A (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 JP2018236385A priority Critical patent/JP7167687B2/ja
Priority to US16/675,282 priority patent/US11467876B2/en
Priority to EP19207835.0A priority patent/EP3671479B1/en
Priority to CN201911166247.XA priority patent/CN111343227B/zh
Publication of JP2020098470A publication Critical patent/JP2020098470A/ja
Application granted granted Critical
Publication of JP7167687B2 publication Critical patent/JP7167687B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17387Three dimensional, e.g. hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D2204/00Indexing scheme relating to details of tariff-metering apparatus
    • G01D2204/40Networks; Topology
    • G01D2204/47Methods for determining the topology or arrangement of meters in a network
    • 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/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/69Types of network addresses using geographic information, e.g. room number
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet

Description

本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
複数のノード(プロセッサ)を含むネットワークでは、各ノードに固有の番号を割り当てることで、ノード間での通信が可能になる。例えば、ネットワークに接続された複数のプロセッサに、互いに重複しない仮のプロセッサ番号を割り当ててプロセッサ数を把握した後、実のプロセッサ番号を順に割り当てる手法が提案されている(例えば、特許文献1参照)。また、6次元メッシュ/トーラスネットワークを採用したスーパーコンピュータが提案されている(例えば、特許文献2参照)。
特開平6-266674号公報 特開2016-207010号公報
複数のノードを含むネットワークでは、予め決められたノード間の接続仕様にしたがって各ノードに座標等のID(IDentification)が割り当てられる。各ノードが、パケットの送信先のノードの座標と自ノードの座標との差分に基づいて、パケットを転送する次元方向(すなわち、ケーブル)を決める場合、各ノードは、自ノードに接続されるケーブルがどの次元方向のものであるかを認識していればよい。すなわち、各ノードは、パケットの転送先のノードの位置を知らなくてよい。
例えば、複数のサーバを組み合わせて複数のノードを含むシステムを構築する場合であって、システムによりノード数が異なる場合、システム毎にノード間の接続状況が異なる。このため、ノードに座標を割り当てる前にノード間の接続状況を把握する必要がある。しかしながら、座標の差分に基づいてパケットを転送する次元方向を決める場合、座標が割り当てられていないとパケットの宛先を指定できず、パケットを送信することができない。したがって、ノード間の接続状況を把握することが困難になる。
1つの側面では、本発明は、ネットワークに含まれる複数のノードの接続状況を把握することを目的とする。
一つの観点によれば、次元ルーティング手法により情報を転送する複数のノードの接続関係を抽出する情報処理装置において、前記複数のノードの各々は、複数のポートを有し、前記複数のポートの各々に接続されるケーブルを介して他のノードのいずれかに接続され、前記複数のノードの1つである第1ノードに第1座標情報を割り当て、前記第1ノードを除く複数の第2ノードに第1座標情報に対して複数の次元の1つが"1"異なる第2座標情報を割り当てる割り当て処理と、前記第1ノードの複数のポートから前記第1ノードを示すノード識別情報と送信元のポートを示すポート識別情報とを含む第1情報を送信させ、第1情報を受信した前記第2ノードの受信バッファに、受信した第1情報に含まれるノード識別情報とポート識別情報との対応を保持させる第1情報送信処理と、第1情報を受信した前記第2ノードから前記受信バッファに保持されたノード識別情報とポート識別情報とを取得し、取得したノード識別情報とポート識別情報とに基づいて前記第1ノードに隣接する隣接ノードを特定する特定処理とを、前記複数のノードの各々を前記第1ノードに順次割り当てて実行することで、前記複数のノードの接続関係を抽出することを特徴とする。
1つの側面では、本発明は、ネットワークに含まれる複数のノードの接続状況を把握することができる。
一実施形態における演算処理装置を含む情報処理システムの一例を示す図である。 図1において、ノードを含むシステムボードがラックに収納された場合の初期状態の一例を示す図である。 図1の情報処理装置が実行する抽出処理の一例を示す図である。 図1の情報処理装置の動作フローの一例を示す図である。 別の実施形態における情報処理装置を含む情報処理システムの一例を示す図である。 図5のノードNAの一例を示す図である。 図5のノードNBの一例を示す図である。 図5の情報処理装置が実行するノードの接続関係を抽出する抽出処理の一例を示す図である。 図8の続きを示す図である。 図9の続きを示す図である。 全てのノードからテストパケットを送信し、図9および図10で説明した処理を実行した後に判明したノードの接続関係の一例を示す図である。 図5の情報処理装置の動作フローの一例を示す図である。 図12のステップS20の一例を示す図である。
以下、図面を用いて実施形態が説明される。
図1は、一実施形態における情報処理装置を含む情報処理システムの一例を示す。図1に示す情報処理システム100は、複数のケーブル10を介して相互に接続された複数のノード11と、各ノード11に共通に接続された情報処理装置12とを有する。例えば、情報処理システム100は、所定数のノードに演算を実行させることで、ニューラルネットワークの深層学習等を実行してもよい。特に図示していないが、各ノード11は、例えば、並列に演算を実行する複数の演算装置と、複数の演算装置を統括する演算統括部と、演算に使用するデータおよび演算結果を保持するメモリとを有する。例えば、情報処理システム100は、所定数のノード11を含むシステムボードをラック等に収納し、ノード11間をケーブル10で相互に接続することで構築される。
情報処理装置12は、ネットワークに含まれるケーブル10とは異なる通信線13を介して全てのノード11に接続され、全てのノード11と通信が可能である。例えば、情報処理装置12は、サーバであり、情報処理プログラムを実行するCPU(Central Processing Unit)、情報処理プログラムが格納されるメモリ、ハードディスク装置およびノード11と通信するための通信インタフェース等を有する。
また、情報処理装置12は、情報処理プログラムが記録されたCD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)またはUSB(Universal Serial Bus)メモリ等の記録媒体RMを接続する入出力インタフェースを有してもよい。この場合、情報処理プログラムは、入出力インタフェースを介してハードディスク装置等に格納される。情報処理装置12は、後述するように、情報処理プログラムを実行することで、ノード11間の接続情報を抽出する抽出処理を実行する。なお、情報処理装置12は、例えば、ノード11の状態を監視することで、ノード11の故障を検出してもよく、ノード11の電源を管理してもよい。
図1に示す例では、複数のケーブル10と複数のノード11とにより、3次元トーラスネットワークが構築される。各ノード11は、X軸(+X、-X)、Y軸(+Y、-Y)およびZ軸(+Z、-Z)のいずれかがそれぞれ割り当てられた6本のケーブル10に接続される。図1では、Z軸に接続されるノード11の記載は省略される。以下では、X、Y、Zの各軸は、次元とも称され、+X、-X等の方向を含む次元は、次元情報とも称される。なお、情報処理システム100に構築されるネットワークは、メッシュネットワーク等の他のネットワークでもよく、3次元以外の次元でもよい。
各ノード11には、ネットワーク上でのノード11の位置(座標)を識別可能な座標情報が割り当てられる。座標情報は、座標空間(X、Y、Z)上でのノード11の位置が分かるように、(0、0、0)、(0、3、1)等の座標を含む。なお、この実施形態では、ケーブル10を介して互いに隣接するノード11の座標は、次元のいずれか1つが”1”だけ異なるように割り当てられる。例えば、座標が(3、3、3)のノード11に隣接するノード11の座標は、(2、3、3)、(4、3、3)、(3、2、3)、(3、4、3)、(3、3、2)、(3、3、4)のいずれかである。以下では、ノード11を座標で示す場合、ノード(2、3、3)等と称される。
各ノード11は、例えば、次元ルーティングの手法を用いて、まず、送信先のノード11のX軸の座標と一致するまでX軸方向にパケットを転送し、次に、送信先のノード11のY軸の座標と一致するまでY軸方向にパケットを転送する。そして、送信先のノード11のZ軸の座標が一致するまでZ軸方向にパケットが転送されることで、パケットが送信先のノード11に届く。すなわち、各ノード11は、受信したパケットに含まれる送信先のノード11の座標情報と自ノード11の座標情報との差分に基づいて、受信したパケットを転送する次元を決め、決めた次元が割り当てられたケーブル10に、受信したパケットを転送する。例えば、ノード(0、0、1)からノード(1、1、3)にパケットを送信する場合、パケットは、ノード(1、0、1)、(1、1、1)、(1、1、2)、(1、1、3)に順次転送される。
図2は、図1において、ノード11を含むシステムボード14がラックに収納された場合の初期状態の一例を示す。ラックにシステムボード14を収納し、ノード11間をケーブル10で接続した時点では、座標は各ノード11に割り当てられておらず、各ノード11は、ケーブル10が接続されたポート番号を認識しているだけである。すなわち、ノード11間の接続関係は不明である。
図2では、ケーブル10が接続される6つのポート番号を0番から5番で示している。以下では、ポート番号はケーブル番号とも称される。このように、初期状態では、ケーブル番号と次元情報とは対応付けられておらず、各ノード11に接続された各ケーブル10の次元情報は確定していない。そこで、情報処理装置12は、情報処理プログラムを実行することで、ノード11の接続関係を抽出する抽出処理を実行する。換言すれば、情報処理装置12は、各ノード11がどのケーブル10を介してどのノード11に接続されているかを判定する。
図3は、図1の情報処理装置12が実行する抽出処理の一例を示す。まず、情報処理装置12は、複数のノード11の1つであるノード11Aに固有の座標情報(X、Y、Z)=(0、0、1)を割り当て、残りのノード11に共通の座標情報(X、Y、Z)=(0、0、0)を割り当てる割り当て処理を実行する。固有の座標情報が割り当てられたノード11Aは、第1ノードの一例である。
次に、情報処理装置12は、ノード11Aに指示して、ノード11Aに接続された6本のケーブル10の各々にテストパケットを送信させる送信処理を実行する。テストパケットに含まれる情報は、第1情報の一例である。例えば、固有の座標情報と共通の座標情報とは、次元X、Y、ZのうちのZのみが”1”異なる。これにより、テストパケットの宛先の座標(0、0、0)とした場合、ケーブル10を介してノード11Aと直接接続された6つのノード11Bのみにテストパケットを送信することができる。換言すれば、各ノード11に正式な座標を割り当てる前であって、ノード11間の接続関係が不明な初期状態においても、テストパケットを6本のケーブル10のそれぞれ接続された6つのノード11に受信させることができる。
なお、テストパケットの送信先のノード(0、0、0)は、テストパケットの送信元のノード(0、0、1)に対して、次元方向Zが”-1”異なる。このため、ノード11Aは、自ノードが有する次元情報レジスタ15に設定された情報に基づいて、ノード(0、0、0)へのテストパケットを、次元方向(-Z)のケーブル10に送信する。次元情報レジスタ15は、ケーブル10と、ケーブル10に割り当てる次元との関係が登録される登録部の一例である。
次元情報レジスタ15は、各ノード11に設けられ、図3の下側の枠内に示すように、ケーブル番号(ポート番号)に対応して次元情報(+X、-X、+Y、-Y、+Z、-Z)を格納する領域を有し、ケーブル10がどの次元方向に接続されているかを示す。情報処理装置12は、テストパケットを送信する毎にノード11Aの次元情報レジスタ15を更新し、図3の下側の枠内の矢印方向の遷移で示すように、次元情報(-Z)とケーブル番号との対応を順次ずらしていく。これにより、ノード11Aは、共通の座標情報(0、0、0)が割り当てられたノード11のうち、ノード11Aに隣接して接続された6つのノード11B(隣接ノード)のみに、パケットを順次転送することができる。
この後、情報処理装置12は、全てのノード11を探索し、テストパケットを受信したノード11を検出することで、ノード11Aに接続された6本のケーブル10に接続された隣接ノード11Bを特定する特定処理を実行する。なお、テストパケットを受信したケーブル10の番号と、テストパケットの送信元のノード11を識別する識別情報とを格納する受信情報保持部が、各ノード11に設けられてもよい。この場合、情報処理装置12は、各ノード11の受信情報保持部に記憶された情報に基づいて、ノード11Aに接続された6本のケーブル10に接続された隣接ノード11Bを特定する特定処理を実行することができる。
この後、情報処理装置12は、上述した割り当て処理と送信処理と特定処理とを、固有の座標情報(0、0、1)を割り当てるノード11Aを順次切り替えながら実行する。これにより、全てのノード11(11A)に接続された6本のケーブル10に接続された隣接ノード11Bを特定することができ、全てのノード11の接続関係を抽出することができる。すなわち、各ノード11がどのケーブル10を介してどのノード11に接続されているかを認識することができ、図1に示すネットワークの接続関係を判明することができる。この後、情報処理システム100は、例えば、判明したノード11の接続関係に基づいて、各ノード11に座標を割り当てる。これにより、座標情報を含むネットワークを構築することができる。
図4は、図1の情報処理装置12の動作フローの一例を示す。図4に示すフローは、例えば、情報処理装置12が情報処理プログラムを実行することで実現される。すなわち、図4は、情報処理装置12による情報処理方法の一例および情報処理プログラムの一例を示す。
まず、ステップS1において、情報処理装置12は、ノード11の1つに固有の座標情報(0、0、1)を割り当てる。次に、ステップS2において、情報処理装置12は、残りのノード11に共通の座標情報(0、0、0)を割り当てる。次に、ステップS3において、情報処理装置12は、ノード(0、0、1)に、ノード(0、0、1)に接続されたケーブル10を介して、ノード(0、0、1)に接続された複数のノード(0、0、0)にテストパケットを送信させる。
次に、ステップS4において、情報処理装置12は、全てのノード11を探索し、テストパケットを受信したノード11を検出し、ノード(0、0、1)のケーブル10に接続された隣接ノード11Bを特定する。次に、ステップS5において、情報処理装置12は、全てのノード11に固有の座標情報(0、0、1)を割り当ててテストパケットを送信した場合、処理をステップS6に移行する。情報処理装置12は、固有の座標情報(0、0、1)を割り当てていないノード11がある場合、処理をステップS1に戻す。
ステップS6において、情報処理装置12は、固有の座標情報(0、0、1)を割り当てたノード11毎に特定した隣接ノードの情報に基づいて、全てのノード11の接続関係を抽出し、処理を終了する。
以上、図1から図4に示す実施形態では、固有の座標情報を割り当てるノード11Aを順次ずらし、ノード11Aからテストパケットを送信し、テストパケットを受信したノード11を、ケーブル10を介してノード11Aに接続された隣接ノード11Bと特定する。これにより、ノード11間の接続関係が不明なネットワークにおいて、ノード11間の接続状況を把握することができる。
ノード11Aに割り当てる固有の座標情報と他のノード11に割り当てる共通の座標情報とは、次元の1つのみが”1”だけ異なる。これにより、各ノード11に正式な座標を割り当てる前の初期状態において、ノード11Aから他のノード11に向けてテストパケットを送信することで、テストパケットを6本のケーブル10のそれぞれに直接接続されたノード11のみに受信させることができる。
情報処理装置12は、ノード11Aの次元情報レジスタ15に設定する次元情報(-Z)とケーブル番号との対応を、テストパケットを送信する毎に順次ずらしていく。これにより、例えば、次元ルーティング方式において、ノード11Aは、共通の座標情報(0、0、0)が割り当てられた複数のノード11のうち、ノード11Aに直接接続された隣接ノード11Bのみに、テストパケットを順次転送することができる。
全てのノード11を、固有の座標情報が割り当てられたノード11Aに順次設定することで判明したノード11間の接続情報に基づいて、各ノード11に座標情報を割り当てることで、座標情報を含むネットワークを構築することができる。換言すれば、ラックに収納されるシステムボード14の枚数やノード11の数にかかわりなく、座標情報を含むネットワークを構築することができ、各種情報処理を実行する情報処理システム100として運用することができる。
図5は、別の実施形態における情報処理装置を含む情報処理システムの一例を示す。図1で説明した要素および機能と同様の要素および機能については、詳細な説明は省略される。図5に示す情報処理システム102は、複数のケーブル10を介して相互に接続された24個のノードN(N1-N24)と、ノードNに接続された所定数の情報処理装置(H)20と、スイッチ(SW)30とを有する。例えば、情報処理システム102は、所定数のノードNに演算を実行させることで、ニューラルネットワークの深層学習等を実行する。
情報処理装置20は、ケーブル10とは異なる通信線13とスイッチ30とを介して全てのノードNに接続され、全てのノードNと通信が可能である。スイッチ30は、情報処理装置20とノードNと間で転送されるパケット等の転送経路を切り換える。図5の縦方向に配置される2つの情報処理装置20の間および図5の横方向に配置される2つの情報処理装置20の間は、それぞれ2本の通信線40を介して互いに接続され、4つの情報処理装置20は、互いに通信可能である。
例えば、情報処理装置20は、図1に示した情報処理装置12と同様にサーバであり、情報処理プログラムを実行するCPU、情報処理プログラムが格納されるメモリ、ハードディスク装置およびノードNと通信するための通信インタフェース等を有する。また、情報処理装置20は、図1に示した情報処理装置12と同様に、情報処理プログラムが記録された記録媒体RMを接続する入出力インタフェースを有してもよい。
例えば、図5に示す情報処理システム102は、4つのノードNを各々含む6枚のシステムボードをラックに収納し、ノードN間をケーブル10で接続することで構築される。情報処理装置20は、ラック内に配置されてもよく、ラック外に配置されてもよい。ラックにシステムボード14を収納し、ノード11間をケーブル10で接続した時点では、情報処理装置20は、どのノードNがどのケーブル10を介して他のノードNに接続されているかを認識していない。すなわち、ノードN間の接続関係は不明である。このため、情報処理装置20は、図8から図13で説明するように、ノードN間の接続情報を抽出する抽出処理を実行する。
各ノードNは、10本のケーブルを介して他のノードNに接続される。なお、ノードN1、N3、N4、N6、N7、N9、N10、N12、N13、N15、N16、N18、N19、N21、N22、N24は、互いに同じ構成を有する。ノードN2、N5、N8、N11、N14、N17、N20、N23は、互いに同じ構成を有する。以下では、ノードN1、N3、N4、N6、N7、N9、N10、N12、N13、N15、N16、N18、N19、N21、N22、N24は、ノードNAとも称される。ノードNN2、N8、N5、N11、N14、N17、N20、N23は、ノードNBとも称される。ノードNAは、ノードNBに比べて処理性能が高い。
なお、情報処理システム102は、全て同じノードNAを有してもよい。また、情報処理システム102が含むノードNの総数は、24個に限定されず、ラックに収納されるシステムボードの枚数や、システムボードに搭載されるノードNの数により相違されてもよい。
図6は、図5のノードNAの一例を示す。ノードNAは、DMA(Direct Memory Access)エンジン部202、演算統括部204、4つの並列演算装置206、4つの演算制御部208、4つのメモリ制御部210および4つのメモリ212を有する。また、ノードNAは、通信制御部214、ネットワーク構成管理部216、ネットワーク制御部218、通信用バッファ220およびインターコネクト装置222を有する。ノードNAにおいて、メモリ212以外は、1つのチップ内に集積されてもよい。なお、ノードNAにおいて、並列演算装置206、演算制御部208、メモリ制御部210およびメモリ212のそれぞれ数は、4つに限定されず、2つあるいは8つでもよい。また、メモリ212は、複数の並列演算装置206に共有されてもよい。
DMAエンジン部202は、通信制御部214と演算統括部204とからの指示に基づいて動作し、例えば、通信制御部214および通信線13を介して接続される図示しない情報処理装置20とメモリ制御部210との間でのデータの転送を制御する。通信制御部214は、例えば、PCI(Peripheral Component Interconnect)プロトコルに基づいて、通信線13を介して接続される情報処理装置20等との通信を制御し、命令列、データ、制御情報等の転送を制御する。
演算統括部204は、通信制御部214を介して情報処理装置20から受信した指示に基づいて、演算制御部208に並列演算装置206の動作を制御させ、また、ネットワーク制御部218の動作を制御する。並列演算装置206は、積和演算器等を含む複数の処理ユニットを有し、演算制御部208からの指示に基づいて、複数の演算を並列に実行する。演算制御部208は、演算統括部204からの指示に基づいて、並列演算装置206の動作を制御する。
メモリ制御部210は、DMAエンジン部202またはネットワーク制御部218からの指示に基づいて、メモリ212のアクセス動作を制御する。メモリ212は、例えば、DRAM(Dynamic Random Access Memory)等の複数のメモリチップが積層されたメモリモジュールである。メモリ212は、並列演算装置206が実行する演算命令、演算データおよび並列演算装置206の動作を制御する制御命令等を保持し、並列演算装置206が演算命令の実行により得た演算結果を保持する。
ネットワーク構成管理部216は、図3に示した次元情報レジスタ15と同様の次元情報レジスタ232と、自ノードNのID(識別情報)および自ノードNの座標情報を保持する座標情報レジスタ234と、テストパケット用の受信バッファ236とを有する。座標情報レジスタ234および受信バッファ236の例は、図8で説明される。次元情報レジスタ232は、10本のケーブル10に対応して、10本のケーブル10のそれぞれに割り当てる10個の次元情報を格納する領域を有する。次元情報レジスタ232は、ケーブル10と、ケーブル10に割り当てる次元との関係が登録される登録部の一例である。
ネットワーク構成管理部216は、情報処理装置20からの指示に基づいて、テストパケットを送信する。また、ネットワーク構成管理部216は、テストパケットを受信した場合、テストパケットに含まれるエントリ番号に対応する受信バッファ236のエントリにテストパケットの送信元のノードNのIDを示す情報を格納する。さらに、ネットワーク構成管理部216は、情報処理装置20からの指示に基づいて、受信バッファ236が保持する情報を情報処理装置20に出力する。ネットワーク制御部218は、演算統括部204、メモリ制御部210、ネットワーク構成管理部216、通信用バッファ220およびインターコネクト装置222との間での情報の授受を管理する。
通信用バッファ220は、インターコネクト装置222を介して送受信するデータを保持する。インターコネクト装置222は、ケーブル10を介して他のノードNのインターコネクト装置222に接続される。インターコネクト装置222は、通信用バッファ220からパケットを受信した場合、パケットに含まれる転送先のノードNの座標情報を参照し、次元ルーティングの規則にしたがって、パケットを転送する次元方向を算出する。そして、インターコネクト装置222は、算出した次元方向が割り当てられたケーブル10(ポート)にパケットを転送する。
インターコネクト装置222は、他のノードNからパケットを受信した場合であって、受信したパケットに含まれる転送先の座標情報が自ノードNを示す場合、パケットを通信用バッファ220に出力する。インターコネクト装置222は、受信したパケットに含まれる転送先の座標情報が他のノードNを示す場合、次元ルーティングの規則にしたがって、パケットを転送する次元方向を算出する。インターコネクト装置222は、算出した次元方向が割り当てられたケーブル10(ポート)にパケットを転送する。
図7は、図5のノードNBの一例を示す。図6と同じ要素については、同じ符号を付し、詳細な説明は省略する。ノードNBは、並列演算装置206、演算制御部208、メモリ制御部210およびメモリ212をそれぞれ1つ有することを除き、ノードNAと同様の構成である。すなわち、ノードNBの処理性能は、ノードNAの処理性能に比べて低い。ノードNBにおいても、メモリ212以外は、1つのチップ内に集積されてもよい。なお、ノードNBにおいて、並列演算装置206、演算制御部208、メモリ制御部210およびメモリ212の数は、1つに限定されない。
図8から図10は、図5の情報処理装置20が実行するノードNの接続関係を抽出する抽出処理の一例を示す。図8には、各ノードN1-N24が有する座標情報レジスタ234および受信バッファ236と、情報処理装置20が有する隣接情報リスト22とが示される。
座標情報レジスタ234は、自ノードNのIDと、自ノードNの座標情報(A、B、C)とを保持する領域を有する。図8に示す例では、情報処理装置20は、各ノードNに仮のIDを割り当て、仮のIDを座標情報レジスタ234に格納する。説明を分かりやすくするため、図8では、座標情報レジスタ234に格納された仮のIDは、ノードN1-N24の符号と同じにされている。受信バッファ236は、例えば、各ノードNに接続されるケーブル(すなわち、ポート)の数に対応する10個のエントリを有する。初期状態では、受信バッファ236の各エントリは、"0"に設定されている。IDは、識別情報の一例である。
情報処理装置20は、まず、ノードN1に固有の座標情報(A、B、C)=(0、0、1)を割り当て、残りのノードN2-N24に共通の座標情報(A、B、C)=(0、0、0)を割り当てる割り当て処理を実行する。なお、座標情報の次元数(=”3”)は、一例である。固有の座標情報が割り当てられたノードN1は、第1ノードの一例である。図3と同様に、固有の座標情報と共通の座標情報とは、1つの次元(例えば、次元C)のみ、”1”だけ異なる。
次に、情報処理装置20は、ノードN1に接続された10本のケーブル10の各々を介してテストパケットを送信させる送信処理を実行する。例えば、テストパケットには、ノードN1のIDを示す情報(例えば、”1”)と、テストパケットの宛先のノードNの受信バッファ236のエントリ番号とを含む。例えば、エントリ番号は、テストパケットを送信するケーブル10(ポート)の番号に設定される。テストパケットに含まれる情報は、第1情報の一例である。
この際、まず、情報処理装置20は、ノードN1の0番目のポートに次元”-C”を割り当てる情報を次元情報レジスタ232に書き込む。例えば、ポート番号は、ケーブル番号に等しい。そして、情報処理装置20は、テストパケットの宛先を座標(0、0、0)とし、テストパケットを送信するケーブル番号と同じ値(=”0”)が割り当てられた受信バッファ236のエントリを格納先に指定して、テストパケットをノードN1に送信させる。テストパケットに含まれる受信バッファ236のエントリの格納先を示す情報は、格納先情報の一例である。これにより、0番目のポートに接続されたケーブル10を介してノードN1に接続されたノードN(例えば、N2)にテストパケットが転送される。
次に、情報処理装置20は、ノードN1の1番目のポートに次元”-C”を割り当てる情報を次元情報レジスタ232に書き込む。そして、情報処理装置20は、テストパケットの宛先を座標(0、0、0)とし、テストパケットを送信するケーブル番号と同じ値(=”1”)が割り当てられた受信バッファ236のエントリを格納先に指定して、テストパケットをノードN1に送信させる。これにより、1番目のポートに接続されたケーブル10を介してノードN1に接続されたノードN(例えば、N2)にテストパケットが転送される。
この後、情報処理装置20は、次元情報レジスタ232を順次書き換えて、次元”-C”を割り当てるポートを1つずつずらし、ケーブル番号と同じ値が割り当てられた受信バッファ236のエントリを格納先に指定して、テストパケットをノードN1に送信させる。これにより、10本のケーブルを介してノードN1に直接接続された全てのノードNにテストパケットが転送される。例えば、図5に示すネットワークでは、テストパケットは、ノードN1から、4本のケーブル10を介してノードN2に送信され、2本のケーブル10を介してノードN7に送信され、4本のケーブル10を介してノードN13に送信される。
なお、図8に示す隣接情報リスト22は、10本のケーブル10の番号(0から9)に対応して、テストパケットの送信元のノードNの番号を格納する領域(”発”)と、テストパケットの送信先のノードNの番号を格納する領域(”着”)とを有する。隣接情報リスト22は、ノードN毎に設けられる。
図9は、ノードN1からテストパケットを10回送信した後の状態を示す。ノードN2は、受信バッファ236の0番から3番のエントリが格納先に指定されたテストパケットをノードN1から順次受信し、受信バッファ236の0番から3番のエントリに、テストパケットの宛先のノードN1を示す”1”を格納する(図9(a))。ノードN7は、受信バッファ236の6番、7番のエントリが格納先に指定されたテストパケットをノードN1から順次受信し、受信バッファ236の6番、7番のエントリに、テストパケットの宛先のノードN1を示す”1”を格納する(図9(b))。ノードN13は、受信バッファ236の4番、5番、8番、9番のエントリが格納先に指定されたテストパケットをノードN1から順次受信する。ノードN13は、受信バッファ236の4番、5番、8番、9番のエントリに、テストパケットの宛先のノードN1を示す”1”を格納する(図9(c))。
情報処理装置20は、ノードN1からテストパケットを10回送信した後、全てのノードN1-N24を探索する。そして、情報処理装置20は、エントリに”1”を保持している受信バッファ236を検出することで、ノードN1からテストパケットを受信したノードNを検出する。なお、テストパケットを送信したノードN1は探索対象から外されてもよい。
情報処理装置20は、ノードN2の受信バッファ236の0番目のエントリに格納された”1”に基づいて、ノードN1の0番目のケーブルがノードN2に接続されていると判定する。そして、情報処理装置20は、ノードN1に対応する隣接情報リスト22において、ケーブル番号”0”に対応する”発”の領域にノードN1を示す”1”を格納し、ケーブル番号”0”に対応する”着”の領域にノードN2を示す”2”を格納する。すなわち、情報処理装置20は、ノードN1の0番目のケーブルがノードN2に接続されていることを示す情報を隣接情報リスト22に格納する。
また、情報処理装置20は、ノードN2の受信バッファ236の1番目、2番目、3番目のエントリに格納された”1”に基づいて、ノードN1の1番目、2番目、3番目のケーブルがノードN2に接続されていると判定する。そして、情報処理装置20は、隣接情報リスト22において、ケーブル番号”1”、”2”、”3”に対応する”発”の領域にノードN1を示す”1”を格納し、ケーブル番号”1”、”2”、”3”に対応する”着”の領域にノードN2を示す”2”を格納する。すなわち、情報処理装置20は、ノードN1の1番目、2番目、3番目のケーブルがノードN2に接続されていることを示す情報を隣接情報リスト22に格納する。
同様にして、情報処理装置20は、ノードN7の受信バッファ236に格納された情報に基づいて、ノードN1の6番目、7番目のケーブルがノードN7に接続されていることを示す情報を隣接情報リスト22に格納する。情報処理装置20は、ノードN13の受信バッファ236に格納された情報に基づいて、ノードN1の4番、5番、8番、9番のケーブルがノードN13に接続されていることを示す情報を隣接情報リスト22に格納する。
このように、情報処理装置20は、ノードN1からテストパケットを受信したノードN2、N7、N13が、ノードN1のどのケーブル10(ポート)に接続されているかを特定する特定処理を実行する。すなわち、テストパケットを送信するケーブル番号が割り当てられた受信バッファ236のエントリを格納先に指定してテストパケットを送信することで、送信元のノードNのどのケーブル10がどのノードNに接続されているかを検出することができる。
図10は、ノードN3からテストパケットを10回送信した後の状態を示す。ノードN2は、受信バッファ236の0番から3番のエントリが格納先に指定されたテストパケットをノードN3から順次受信し、受信バッファ236の0番から3番のエントリに、テストパケットの宛先のノードN3を示す”3”を格納する(図10(a))。ノードN9は、受信バッファ236の6番、7番のエントリが格納先に指定されたテストパケットをノードN3から順次受信し、受信バッファ236の6番、7番のエントリに、テストパケットの宛先のノードN3を示す”3”を格納する(図10(b))。ノードN15は、受信バッファ236の4番、5番、8番、9番のエントリが格納先に指定されたテストパケットをノードN3から順次受信する。ノードN15は、受信バッファ236の4番、5番、8番、9番のエントリに、テストパケットの宛先のノードN3を示す”3”を格納する(図10(c))。
図10では、情報処理装置20は、ノードN3からテストパケットを10回送信した後、全てのノードN1-N24を探索し、エントリに”3”を保持している受信バッファ236を検出することで、ノードN3からテストパケットを受信したノードNを検出する。そして、情報処理装置20は、図9の説明と同様に、ノードN3からテストパケットを受信したノードN2、N9、N15が、ノードN3のどのケーブル10(ポート)に接続されているかを特定する特定処理を実行する。
なお、図9と図10において、ノードN2の受信バッファ236の0番目から3番目のエントリには、ノードN1を示す情報”1”が格納された後、ノードN3を示す”3”が上書きされる。しかしながら、情報処理装置20は、テストパケットを送信するノードNを切り換えて、10本のケーブル10にテストパケットを送信する毎に、全ノードNの受信バッファ236を参照し、隣接情報リスト22を生成する。これにより、受信バッファ236に保持された情報が上書きされる場合にも、正しい隣接情報リスト22を作成することができる。また、受信バッファ236には、テストパケットを送信したノードNの番号が格納され、ノードNの番号は、隣接情報リスト22を作成する毎に異なる。このため、テストパケットを送信するノードNを切り換える毎に、受信バッファ236をクリアしなくても、情報処理装置20は、正しい隣接情報リスト22を作成することができる。
図9および図10で説明した処理と同様に、情報処理装置20は、全てのノードNについて、割り当て処理、送信処理および特定処理を実行し、その都度、隣接情報リスト22を作成する。そして、情報処理装置20は、作成した24個の隣接情報リスト22に基づいて、ノードNの接続関係を抽出する。例えば、図9では、ノードN1の0番目のケーブル10がノードN2に接続されていることを特定できるが、ノードN1の0番目のケーブル10がノードN2のどのケーブル10に接続されているかは特定できない。
しかしながら、ノードN2からテストパケットを送信した後に作成される隣接情報リスト22に基づいて、例えば、ノードN2の2番目のケーブル10がノードN1に接続されていることを特定することができる。これにより、ノードN1の0番目のケーブル10がノードN2の2番目のケーブル10に接続されていることを特定することができる。
図11は、全てのノードNからテストパケットを送信し、図9および図10で説明した処理を実行した後に判明したノードN1-N24の接続関係の一例を示す。なお、実際には、ノードN間を接続するケーブル10の番号まで特定されるが、図11での記載は省略し、ノードN間を接続するケーブルの本数のみが記載される。
図12および図13は、図5の情報処理装置20の動作フローの一例を示す。図12および図13に示すフローは、例えば、情報処理装置20が情報処理プログラムを実行することで実現される。すなわち、図12および図13は、情報処理装置20による情報処理方法の一例および情報処理プログラムの一例を示す。図12および図13に示すフローでは、情報処理装置20は、図8から図11で説明したノードNの接続関係を抽出する動作を示す。
まず、図12のステップS10において、情報処理装置20は、全てのノードNの座標情報を(0、0、0)に設定する。ステップS12からステップS22の処理は、全てのノードN(n個)のそれぞれについて実行される。
ステップS12において、情報処理装置20は、i番目のノードNの座標情報を(0、0、1)に変更する。ステップS14、S16の処理は、10本のケーブルのそれぞれについて実行される。ステップS14において、情報処理装置20は、d番目のケーブル10を使用して、座標情報が(0、0、1)のノードNから座標情報が(0、0、0)のノードNにテストパケットを送信させる。テストパケットは、送信元のノードNのID(=”i”)と、送信先のノードNの受信バッファ236のエントリの番号d(=ケーブル番号)とを含む。テストパケットを受信したノードNは、テストパケットに含まれる送信元のノードNのID(=”i”)を、受信バッファ236のd番目のエントリに格納する。
次に、ステップS16において、情報処理装置20は、テストパケットの送信元のノードNの次元情報レジスタ232を書き換えて、図3と同様に、テストパケットを送信するケーブル10(ポート)を1つシフトする。
テストパケットの送信元のノードNから10本のケーブル10のそれぞれにテストパケットを送信した場合、ステップS20において、情報処理装置20は、全てのノードNを探索する。そして、情報処理装置20は、テストパケットを受信したノードNの受信バッファ236に保持された情報に基づいて、隣接情報リスト22を作成する。ステップ20の処理の例は、図13に示される。
次に、ステップS22において、情報処理装置20は、i番目のノードNのIDを(0、0、0)に変更し、全てのノードNに対する操作が完了していない場合、処理をステップS12に戻す。全てのノードNに対する操作が完了した場合、処理を終了する。
図13は、図12のステップS20の一例を示す。ステップS202からステップS206の処理は、全てのノードN(n個)のそれぞれを探索先に指定して実行され、さらに、ノードN毎に、受信バッファ236の10個のエントリ(d=”0”~”9”)のそれぞれについて実行される。
ステップS202において、情報処理装置20は、探索先のノードNの受信バッファ236のd番目のエントリの値mを取得する。次に、ステップS204において、情報処理装置20は、値mがテストパケットの送信元のノードN(=”i”)を示す場合、処理をステップS204に移行する。情報処理装置20は、値mがテストパケットの送信元のノードN(=”i”)を示す場合、処理をステップS206に移行する。情報処理装置20は、値mがテストパケットの送信元のノードN(=”i”)を示さない場合、以下に示す判定処理を実行する。
判定処理では、情報処理装置20は、値mがテストパケットの送信元のノードN(=”i”)を示さない場合であって、受信バッファ236の全てのエントリの値を取得していない場合、処理をステップS202に戻す。情報処理装置20は、値mがテストパケットの送信元のノードN(=”i”)を示さない場合であって、受信バッファ236の全てのエントリの値を取得した場合、探索対象のノードNを更新し(k+1)、値dを”0”にリセットし、処理をステップS202に戻す。さらに、情報処理装置20は、値mがテストパケットの送信元のノードN(=”i”)を示さない場合であって、全てのノードNの探索が完了した場合、処理を終了する。
ステップS206において、情報処理装置20は、隣接情報リスト22において、”発”の領域に”i”を格納し、”着”の領域に”k”を格納し、”ケーブル”の領域に”d”を格納する。そして、情報処理装置20は、受信バッファ236の全てのエントリの値を取得していない場合、処理をステップS202に戻す。情報処理装置20は、受信バッファ236の全てのエントリの値を取得した場合、探索対象のノードNを更新し(k=k+1)、値dを”0”にリセットし、処理をステップS202に戻す。さらに、情報処理装置20は、全てのノードNの探索が完了した場合、処理を終了する。
以上、図5から図13に示す実施形態においても、図1から図4に示す実施形態と同様に、ノードN間の接続関係が不明なネットワークにおいて、ノードN間の接続状況を把握することができる。把握した接続状況に基づいて、各ノードに座標情報を割り当てることで、座標情報を含むネットワークを構築することができる。
テストパケットの送信元のノードNの座標情報と他のノードの座標情報とを、次元の1つのみを”1”だけ相違させることで、ノードN間の接続関係が不明な状態でも、テストパケットを送信することができる。これにより、テストパケットの送信元のノードNに直接接続されたノードNのみにテストパケットを受信させることができる。
テストパケットの送信元のノードNの次元情報レジスタ232に設定する次元情報(-C)とケーブル番号との対応を、テストパケットを送信する毎に順次シフトする。これにより、次元ルーティングでパケットを転送する方式において、ノードN間の接続関係が不明な状態でも、テストパケットの送信元のノードNに直接接続されたノードNのみに、テストパケットを順次転送することができる。
さらに、図5から図13に示す実施形態では、ノードN間の接続関係を抽出する前に、全てのノードNに仮のIDを割り当て、テストパケットの送信元のノードNの仮のIDをテストパケットに含める。これにより、テストパケットを受信したノードNの受信バッファ236にテストパケットの送信元のノードNのIDを格納することができ、隣接情報リスト22を作成することができる。すなわち、ノードN間の接続情報を抽出することができる。
情報処理装置20は、テストパケットに、送信元のノードNのIDと、送信先のノードNの受信バッファ236の格納先のエントリ番号を含ませる。そして、テストパケットを受信したノードNに、テストパケットに含まれる送信元のノードNのIDを受信バッファ236の格納先に指定したエントリに格納させる。これにより、情報処理装置20は、受信バッファ236に保持された情報に基づいて、テストパケットを受信したノードNがテストパケットの送信元のノードNのどのケーブル10と接続されているかを判定することができる。さらに、全てのノードNからテストパケットを送信することで、情報処理装置20は、各ノードNの各ケーブルが他のノードNのどのポートに接続されているかを判定することができ、ノードN間の接続情報を抽出することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
10 ケーブル
11 ノード
12 情報処理装置
13 通信線
14 システムボード
15 次元情報レジスタ
16 加算部
20 情報処理装置
30 スイッチ
40 通信線
100、102 情報処理システム
232 次元情報レジスタ
234 座標情報レジスタ
236 受信バッファ
N、NA、NB ノード

Claims (6)

  1. 次元ルーティング手法により情報を転送する複数のノードを制御する情報処理装置において、
    前記複数のノードの各々は、複数のポートを有し、前記複数のポートの各々に接続されるケーブルを介して他のノードのいずれかに接続され、
    前記複数のノードの1つである第1ノードに第1座標情報を割り当て、前記第1ノードを除く複数の第2ノードに第1座標情報に対して複数の次元の1つが"1"異なる第2座標情報を割り当てる割り当て処理と、
    前記第1ノードの複数のポートから前記複数の第2ノードに前記第1ノードを示すノード識別情報と送信するポートを示す送信ポート識別情報とを含む第1情報を送信させ、第1情報を受信した前記第2ノードの受信バッファに、受信した第1情報に含まれるノード識別情報と送信ポート識別情報との対応関係を保持させる第1情報送信処理と、
    第1情報を受信した前記第2ノードから前記受信バッファに保持されたノード識別情報とポート識別情報とを取得し、取得したノード識別情報とポート識別情報とに基づいて前記第1ノードに隣接する隣接ノードを特定する特定処理とを、
    前記複数のノードの各々を前記第1ノードに順次割り当てて実行することで、前記複数のノードの接続関係を抽出することを特徴とする情報処理装置。
  2. 前記複数のノードの各々は、前記複数のポートのそれぞれに割り当てる次元と前記複数のポートとの関係が登録される登録部を有し、
    前記第1情報送信処理において、前記第1ノードの前記登録部"1"異なる次元を割り当てるポートを順次変え、"1"異なる次元を割り当てた前記第1ノードのポートから前記登録部に割り当てた次元に第1情報を送信させることを特徴とする請求項1に記載の情報処理装置。
  3. 前記受信バッファは、第1情報に含まれるノード識別情報を格納するエントリを、第1情報を受信する前記複数のポートの数に対応して有し、
    前記第1ノードが前記複数のポートから各々送信する第1情報に含まれる送信ポート識別情報は、ノード識別情報を格納するエントリのエントリ番号を示し、
    前記特定処理において、前記隣接ノード毎に、ノード識別情報が格納されたエントリに基づいて、第1情報を送信した前記第1ノードのポートを特定し、
    前記複数のノードの全てを前記第1ノードに割り当てて前記特定処理を完了した後、前記特定処理の各々で特定された情報に基づいて前記複数のノードの接続関係を抽出することを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. 最初の前記割り当て処理の実行前に、前記複数のノードの各々に、仮のノード識別情報を割り当てることを特徴とする請求項1ないし請求項3のいずれか1項に記載の情報処理装置。
  5. 次元ルーティング手法により情報を転送する複数のノードを制御する情報処理装置により前記複数のノードの接続関係を抽出する情報処理方法において、
    前記複数のノードの各々は、複数のポートを有し、前記複数のポートの各々に接続されるケーブルを介して他のノードのいずれかに接続され、
    前記複数のノードの1つである第1ノードに第1座標情報を割り当て、前記第1ノードを除く複数の第2ノードに第1座標情報に対して複数の次元の1つが"1"異なる第2座標情報を割り当てる割り当て処理と、
    前記第1ノードの複数のポートから前記複数の第2ノードに前記第1ノードを示すノード識別情報と送信するポートを示す送信ポート識別情報とを含む第1情報を送信させ、第1情報を受信した前記第2ノードの受信バッファに、受信した第1情報に含まれるノード識別情報と送信ポート識別情報との対応関係を保持させる第1情報送信処理と、
    第1情報を受信した前記第2ノードから前記受信バッファに保持されたノード識別情報とポート識別情報とを取得し、取得したノード識別情報とポート識別情報とに基づいて前記第1ノードに隣接する隣接ノードを特定する特定処理とを、
    前記複数のノードの各々を前記第1ノードに順次割り当てて実行することで、前記複数のノードの接続関係を抽出することを特徴とする情報処理方法。
  6. 次元ルーティング手法により情報を転送する複数のノードを制御する情報処理装置に前記複数のノードの接続関係を抽出させる情報処理プログラムにおいて、
    前記複数のノードの1つである第1ノードに第1座標情報を割り当て、前記第1ノードを除く複数の第2ノードに第1座標情報に対して複数の次元の1つが"1"異なる第2座標情報を割り当てる割り当て処理と、
    前記第1ノードの複数のポートから前記複数の第2ノードに前記第1ノードを示すノード識別情報と送信するポートを示す送信ポート識別情報とを含む第1情報を送信させ、第1情報を受信した前記第2ノードの受信バッファに、受信した第1情報に含まれるノード識別情報と送信ポート識別情報との対応関係を保持させる第1情報送信処理と、
    第1情報を受信した前記第2ノードから前記受信バッファに保持されたノード識別情報とポート識別情報とを取得し、取得したノード識別情報とポート識別情報とに基づいて前記第1ノードに隣接する隣接ノードを特定する特定処理とを、
    前記複数のノードの各々を前記第1ノードに順次割り当てて実行することで、前記情報処理装置に、前記複数のノードの接続関係を抽出させる情報処理プログラム。
JP2018236385A 2018-12-18 2018-12-18 情報処理装置、情報処理方法および情報処理プログラム Active JP7167687B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018236385A JP7167687B2 (ja) 2018-12-18 2018-12-18 情報処理装置、情報処理方法および情報処理プログラム
US16/675,282 US11467876B2 (en) 2018-12-18 2019-11-06 Information processing apparatus, information processing method and non-transitory computer-readable storage medium for storing information processing program of determining relations among nodes in N-dimensional torus structure
EP19207835.0A EP3671479B1 (en) 2018-12-18 2019-11-07 Information processing apparatus, information processing method and information processing program
CN201911166247.XA CN111343227B (zh) 2018-12-18 2019-11-25 信息处理装置、信息处理方法和信息处理计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018236385A JP7167687B2 (ja) 2018-12-18 2018-12-18 情報処理装置、情報処理方法および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2020098470A JP2020098470A (ja) 2020-06-25
JP7167687B2 true JP7167687B2 (ja) 2022-11-09

Family

ID=68531362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018236385A Active JP7167687B2 (ja) 2018-12-18 2018-12-18 情報処理装置、情報処理方法および情報処理プログラム

Country Status (4)

Country Link
US (1) US11467876B2 (ja)
EP (1) EP3671479B1 (ja)
JP (1) JP7167687B2 (ja)
CN (1) CN111343227B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131174A (zh) 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180205613A1 (en) 2017-01-17 2018-07-19 Electronics And Telecommunications Research Institute Method for automatically allocating ip address for distributed storage system in large-scale torus network and apparatus using the same

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04273327A (ja) * 1991-02-27 1992-09-29 Shimadzu Corp 静的並列処理用プログラムの作成支援装置
JPH04281638A (ja) * 1991-03-11 1992-10-07 Nippon Telegr & Teleph Corp <Ntt> 構成管理方式
JP2565281B2 (ja) * 1993-03-11 1996-12-18 日本電気株式会社 並列計算機におけるプロセッサ番号自動設定装置
US7171476B2 (en) * 2001-04-20 2007-01-30 Motorola, Inc. Protocol and structure for self-organizing network
US7080156B2 (en) * 2002-03-21 2006-07-18 Sun Microsystems, Inc. Message routing in a torus interconnect
US7466656B2 (en) * 2004-10-26 2008-12-16 International Business Machines Corporation Method, apparatus and program storage device for efficient construction of network overlays through interconnection topology embedding
US7898942B2 (en) * 2005-03-31 2011-03-01 Nec Corporation Ring network system, failure recovery method, failure detection method, node and program for node
US7644254B2 (en) * 2007-04-18 2010-01-05 International Business Machines Corporation Routing data packets with hint bit for each six orthogonal directions in three dimensional torus computer system set to avoid nodes in problem list
US9330230B2 (en) * 2007-04-19 2016-05-03 International Business Machines Corporation Validating a cabling topology in a distributed computing system
US20090113308A1 (en) * 2007-10-26 2009-04-30 Gheorghe Almasi Administering Communications Schedules for Data Communications Among Compute Nodes in a Data Communications Network of a Parallel Computer
WO2009070898A1 (en) * 2007-12-07 2009-06-11 Scl Elements Inc. Auto-configuring multi-layer network
JP5195933B2 (ja) * 2009-01-30 2013-05-15 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
JP5212152B2 (ja) * 2009-02-10 2013-06-19 日本電気株式会社 通信システム
WO2011059090A1 (ja) * 2009-11-16 2011-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。
WO2012131631A1 (en) * 2011-03-31 2012-10-04 Koninklijke Philips Electronics N.V. Automatically commissioning of devices of a networked control system
US9077616B2 (en) * 2012-08-08 2015-07-07 International Business Machines Corporation T-star interconnection network topology
WO2014045444A1 (ja) * 2012-09-24 2014-03-27 富士通株式会社 並列計算機、ノード装置、及び並列計算機の制御方法
TW201521405A (zh) * 2013-11-29 2015-06-01 萬國商業機器公司 查找網路纜線連接器之方法、資訊設備及程式產品
NO2776466T3 (ja) * 2014-02-13 2018-01-20
JP6511937B2 (ja) 2015-04-24 2019-05-15 富士通株式会社 並列計算機システム、演算方法、演算プログラム、及び情報処理装置
CN106331037B (zh) * 2015-06-30 2023-09-19 邻元科技(北京)有限公司 用于分布式计算网络的计算节点
CN105224501B (zh) * 2015-09-01 2018-10-02 华为技术有限公司 改进圆环面网络及其确定数据包传输路径的方法和装置
US20170093619A1 (en) * 2015-09-25 2017-03-30 Detong Chen Distributed internet crawler, connector, and information publisher and method of use
US10063460B2 (en) * 2015-09-30 2018-08-28 The Mitre Corporation Method and apparatus for shortening multi-hop routes in a wireless ad hoc network
US10295438B2 (en) * 2016-06-24 2019-05-21 The Boeing Company Modeling and analysis of leading edge ribs of an aircraft wing
US10057334B2 (en) * 2016-11-14 2018-08-21 Futurewei Technologies, Inc. Quad full mesh and dimension driven network architecture
CN106685716B (zh) * 2016-12-29 2019-04-26 平安科技(深圳)有限公司 网络拓扑自适应的数据可视化方法及装置
CN107612746B (zh) * 2017-10-12 2020-12-22 曙光信息产业股份有限公司 一种构建Torus网络的方法、Torus网络和路由算法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180205613A1 (en) 2017-01-17 2018-07-19 Electronics And Telecommunications Research Institute Method for automatically allocating ip address for distributed storage system in large-scale torus network and apparatus using the same

Also Published As

Publication number Publication date
CN111343227A (zh) 2020-06-26
JP2020098470A (ja) 2020-06-25
EP3671479B1 (en) 2021-11-10
CN111343227B (zh) 2022-12-13
US11467876B2 (en) 2022-10-11
EP3671479A1 (en) 2020-06-24
US20200192717A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
US8601423B1 (en) Asymmetric mesh NoC topologies
US7281055B2 (en) Routing mechanisms in systems having multiple multi-processor clusters
CN100414535C (zh) 可重配置的集成电路器件
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
KR100897964B1 (ko) 네트워크에서 스위치를 구성하기 위한 시스템
US20030233388A1 (en) Transaction management in systems having multiple multi-processor clusters
JP2011503710A (ja) しっかりと連結されたマルチプロセッサのための共有メモリ・システム
JP7167687B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP5624579B2 (ja) オンチップルータ
JPH0668053A (ja) 並列計算機
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
JP4869714B2 (ja) 情報処理装置、信号伝送方法、およびブリッジ
EP3176701B1 (en) Systems and methods for transmitting an access request via a flexible register access bus
US20230305991A1 (en) Network Computer with Two Embedded Rings
JP5847887B2 (ja) オンチップルータ及びそれを用いたマルチコアシステム
JP6930381B2 (ja) 情報処理システム、演算処理装置及び情報処理システムの制御方法
KR102402255B1 (ko) 멀티코어 뉴로모픽 장치 및 그 장치에서 수행되는 글로벌 라우팅 방법
JP2016038649A (ja) 並列計算機システム及び並列計算機システムの制御方法
WO2016041804A1 (en) Method, device and system for deciding on a distribution path of a task
WO2019107608A1 (ko) 데이터 집합을 카운팅하는 방법 및 시스템
CN114048060A (zh) 死锁环路的检测方法、装置、电子设备和存储介质
JPS58222640A (ja) 転送装置
CN117743259A (zh) 一种数据访问、多芯片级联方法、系统、设备和存储介质
JP2007020110A (ja) バスシステム及びその経路決定方法
Sahu Bidirectional Network-on-Chip Router Implementation Using VHDL

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221010

R150 Certificate of patent or registration of utility model

Ref document number: 7167687

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150