JP5949312B2 - 並列計算機システム、データ転送装置及び並列計算機システムの制御方法 - Google Patents

並列計算機システム、データ転送装置及び並列計算機システムの制御方法 Download PDF

Info

Publication number
JP5949312B2
JP5949312B2 JP2012180616A JP2012180616A JP5949312B2 JP 5949312 B2 JP5949312 B2 JP 5949312B2 JP 2012180616 A JP2012180616 A JP 2012180616A JP 2012180616 A JP2012180616 A JP 2012180616A JP 5949312 B2 JP5949312 B2 JP 5949312B2
Authority
JP
Japan
Prior art keywords
port
data
arbitration
cpu
ports
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
JP2012180616A
Other languages
English (en)
Other versions
JP2014038497A (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 JP2012180616A priority Critical patent/JP5949312B2/ja
Priority to US13/920,750 priority patent/US9336172B2/en
Publication of JP2014038497A publication Critical patent/JP2014038497A/ja
Application granted granted Critical
Publication of JP5949312B2 publication Critical patent/JP5949312B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Description

本発明は、並列計算機システム、データ転送装置及び並列計算機システムの制御方法に関する。
並列計算機などでは、CPU(Central Processing Unit)及びメモリなどを有する電子計算機である計算ノードを複数接続してシステム全体の性能向上を図ることが行われている。このような複数の計算ノードを有する情報処理システムで用いられるネットワークには、複数の計算ノードをスイッチで繋いで構成されるものがある。このスイッチには、データ転送装置としてのクロスバスイッチなどが用いられる場合がある。
クロスバスイッチには、入力ポートにバッファを有するものと、物量の制限などから入力ポートにバッファを有さないものがある。バッファを有さないクロスバスイッチを用いた場合、クロスバスイッチの入力ポートとその入力ポートへデータを供給する計算ノードなどの送信元との間でデータを同期させるなどのハンドシェイクが行われる。複数の計算ノードからデータの送信要求がある場合、ハンドシェイクを行う対象の決定が行われる。このハンドシェイク対象の決定の処理は調停と呼ばれる場合がある。ハンドシェイクの方式の一例として、送信元からクロスバスイッチに対して調停リクエストを送信し、それを受信したクロスバスイッチが送信許可を送信元へ応答するという手順を経た後に、送信元がクロスバスイッチに対してデータパケットを送信する方式がある。また、複数の計算ノードが入力ポートに対して順番に一定期間データ送信を許可する方式がある。
調停リクエストを用いる場合、クロスバスイッチは、複数の計算ノードからデータの調停リクエストを受信すると、どの計算ノードからの調停リクエストを受け付けるかを決定する調停処理を行う。選択された計算ノードは、選択を行ったポートとの間の送信許可を得て、送信許可を受けたポートにデータパケットを送信する。このような調停処理における調停リクエストの処理方法として、あるポートにおいて選択されなかった調停リクエスト及びあるポートから選択された計算ノードが他のポートへ出力している調停リクエストを1度削除する方法が考えられる。以下では、あるポートにおいて選択されなかった調停リクエスト及びあるポートから選択された計算ノードが他のポートへ出力している調停リクエストを「不使用の調停リクエスト」という。また、不使用の調停リクエストを削除することを「ネゲート」という場合がある。さらに、他の処理方法として、あるポートから選択された計算ノードが他のポートへ出力した調停リクエストを出し続ける方法が考えられる。
また、ポート毎に調停までの待ち時間を作成し、調停装置が待ち時間の待機後に調停を行い、クロスバスイッチのデッドサイクルの発生を抑える従来技術が提供されている(例えば、特許文献1参照)。その他にも、データ転送許可信号を発信後にデータの長さをカウンタにセットして定期的にカウンタをデクリメントしカウンタが0になった場合に次の調停処理を行う従来技術などがある(例えば、特許文献2参照)。
このようなシステムにおいて、計算ノードとポートとの組みの間に通信頻度の差が生じることが考えられる。この場合、従来のシステムでは、同じ程度に計算ノードとポートとを接続させてデータ伝送を行っていくため、通信頻度の高い入力ポートと低い入力ポートとの優劣が付かずデータ転送処理の効率を向上させることは困難であった。
特開平11−73403号公報 特開2001−22711号公報
そこで、通信頻度の高い出力ポートと低い出力ポートとの優劣にあわせて処理を高速に行うために、計算ノードと入力ポートとで通信頻度が高い組合せをグループとして接続させる優先順位を高めることが考えられる。この場合、不使用の調停リクエストを一度削除し、新たな調停リクエストをそれぞれの計算ノードが送信する方法が用いられることがある。この場合次のような問題が考えられる。
例えば、図9を参照して、通信頻度が高い組合せをグループとした場合の並列計算機におけるデータ転送の一例について説明する。ここで、図9は、通信頻度が高い組合せをグループとした場合の並列計算機におけるデータ転送を説明するための図である。
計算ノード901と出力ポート912とがグループであり、計算ノード902と出力ポート913とがグループであり、計算ノード903と出力ポート914とがグループであり、計算ノード904と出力ポート901とがグループである。そして、計算ノード901は、出力ポート912〜913のそれぞれに調停リクエスト921〜923を送信し、出力ポート912からの送信許可924を受け、出力ポート912を介して計算ノード902へのデータ転送を選択する。その後、計算ノード901は、出力ポート913及び914への調停リクエストは削除する。さらに、計算ノード901は、新たな調停リクエストをポート912へ送信する。この場合、計算ノード901は、ポート912へのデータ送信が完了した後に、出力ポート912〜914に対して同時に調停リクエストを送信する。この場合、出力ポート913及び914は、自己とグループになっている計算ノード902及び903に対して送信している送信許可に対するデータ送信が行われないことを確認してから、計算ノード901の調停リクエストに対する調停を行う。これに対して、出力ポート912は、計算ノード901からの調停リクエストに対する調停を受信後直ぐに行える。そのため、出力ポート912は、出力ポート913及び914に比べてレイテンシが小さく、計算ノード901に対する送信許可の送信が直ぐに行えるので、計算ノード901においてデータの送信先として選択される確率がポート913及び914に比べて高い。この結果、同じ組合せでデータ転送が何度も行われる可能性が高くなる。
また、計算ノード901が、出力ポート912へのデータ送信完了後に、出力ポート912〜914に対して調停リクエストを同時に送信し、出力ポート913及び914は、グループとなっている計算ノードに対して送信許可を送信してはいない場合を考える。この場合、出力ポート912が計算ノードA901とグループになっているので、出力ポート912は、出力ポート913及び914に対してレイテンシが小さく、計算ノード901は、出力ポート901に対するデータ送信を直ぐに始められる。このため、出力ポート912は、出力ポート913及び914に比べて、計算ノード901によってデータの送信先として選択させる確立が高い。この結果、この場合も同じ組合せでデータ転送が何度も行われる可能性が高くなる。
このようなことから、従来の並列計算機では、並列計算機においてデータ転送の不均衡が発生し効率的な通信を行うことが困難となる。
そして、ポート毎に調停までの待ち時間を作成する従来技術においても、通信頻度が高い組合せをグループとした場合を考慮してはおらず、グループとされた計算ノードとポートとがバスを専有してしまう可能性が高く、効率的な通信を行うことは困難である。また、データの長さをセットしたカウンタに基づいて調停を行う従来技術でも、通信頻度が高い組合せをグループとした場合を考慮してはおらず、同様に効率的な通信を行うことは困難である。
開示の技術は、上記に鑑みてなされたものであって、効率的な通信を行う並列計算機システム、データ転送装置及び並列計算機システムの制御方法を提供することを目的とする。
本願の開示する並列計算機システム、データ転送装置及び並列計算機システムの制御方法は、一つの態様において、それぞれ計算を行う複数の計算ノードと前記複数の計算ノードに接続するデータ転送装置とを有する。前記データ転送装置は、所定の状態で対の計算ノードから調停リクエストを受信すると前記対の計算ノードを選択し、それ以外の場合、前記複数の計算ノードいずれか一つ又は複数から前記調停リクエストを受け付け、前記調停リクエストを受け付けた計算ノードから一つを選択し、選択した計算ノードに対して送信許可を返信する調停部と、前記調停部により選択された計算ノードからデータを受信し、他の計算ノードに対して受信したデータを転送するデータ転送部とを有する複数のポートと、前記複数の計算ノードの中から各前記ポートと対になる前記対の計算ノードをそれぞれ動的に決定する組合せ決定部とを備える。前記計算ノードは、前記ポートにデータ送信要求である調停リクエストを送信するリクエスト送信部と、前記所定の状態にある対のポートに対して前記リクエスト送信部が調停リクエストを送信した場合、前記対のポートに対してデータを送信し、それ以外の場合、前記調停リクエストに対する送信許可を返信したポートに対してデータを送信するデータ送信部とを備える。
本願の開示する並列計算機システム、データ転送装置及び並列計算機システムの制御方法の一つの態様によれば、効率的な通信を行うことができるという効果を奏する。
図1は、実施例1に係る並列計算機の構成図である。 図2は、実施例1に係る並列計算機の詳細を表すブロック図である。 図3は、各CPUから各出力ポートへのアクセス数の集計結果の一例を表す図である。 図4は、実施例1に係る並列計算機におけるマスターポートの切替処理のフローチャートである。 図5は、従来の並列計算機によるネゲートを行う場合のデータ送信処理のタイミングチャートである。 図6は、実施例2に係る並列計算機におけるマスターポートの切替処理のフローチャートである。 図7は、実施例3に係る並列計算機の構成図である。 図8は、実施例3に係る並列計算機におけるマスターポートの切替処理のフローチャートである。 図9は、通信頻度が高い組み合せをグループとした場合の並列計算機におけるデータ転送を説明するための図である。
以下に、本願の開示する並列計算機システム、データ転送装置及び並列計算機システムの制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する並列計算機システム、データ転送装置及び並列計算機システムの制御方法が限定されるものではない。
図1は、実施例1に係る並列計算機の構成図である。図1に示すように、本実施例に係る並列計算機は、CPU1〜4及びそれらのCPUを接続するデータ転送装置としてのクロスバスイッチ5を有する。ここで、本実施例では、4つのCPUを用いて説明するが、並列計算機に設けられるCPUの数はこれに限らず、4つ未満でも5つ以上でもよい。また、本実施例では、クロスバスイッチ5は、CPUの数にあわせて4つの入力ポート及び出力ポートを有しているが、ポート数はこれに限らない。また、クロスバスイッチ5のポート数はCPUの数と異なってもよい。
CPU1は、他のCPUとの間での通信を制御するルータ部10を有している。ルータ部10は、送信部11及び受信部12を有している。送信部11は、クロスバスイッチ5に対する通信の要求である調停リクエスト及び他のCPUへのデータの送信を行う。受信部12は、クロスバスイッチ5からの通信許可通知及び他のCPUから送られてきたデータを受信する。
CPU2〜4は、CPU1と同様の構成を有するので説明を省略する。
クロスバスイッチ5は、入力ポート51〜54、出力ポート61〜64及びマスターポート制御部70を有している。入力ポート51と出力ポート61とは一対のポートである。同様に、入力ポート52〜54も、それぞれ出力ポート62〜64と対になっている。
入力ポート51は、対になっている出力ポート61以外の出力ポート62〜64のいずれとも接続することができる。さらに、入力ポート51は、CPU1の送信部11に接続されている。入力ポート51は、CPU1の送信部11から送出されたデータや調停リクエストの入力を受ける。そして、入力ポート51は、出力ポート62〜64のうちの、調停リクエストで通信を要求する通信先のCPUが接続されている出力ポートにデータを転送する。また、入力ポート51は、調停リクエストに対する出力ポートからの応答である通信許可通知を受信し、送信部11へ出力する。さらに、入力ポート51は、出力ポート62〜64のうちの、送信部11から送出されたデータの宛先のCPUが接続されている出力ポートに対して、送信部11から受信したデータを転送する。
入力ポート52〜54も、入力ポート51と同様の機能を有し、同様の動作を行うので説明を省略する。入力ポート51〜54については、後でさらに詳しく説明する。
マスターポート制御部70は、出力ポート61〜62に対して、優先的にデータの転送を行う1対のグループとなるCPUを決定する。以下では、このグループにおけるCPUに対する出力ポートを「マスターポート」と呼ぶ。そして、マスターポート制御部70は、決定したマスターポートの組の出力ポートに対して、マスターポートの組となるCPUの情報を通知する。マスターポート制御部70によるマスターポートの決定の詳細については後で説明する。
出力ポート61は、対になっている入力ポート51以外の入力ポート52〜54のいずれとも接続することができる。さらに、出力ポート61は、CPU1の受信部12に接続されている。出力ポート61は、CPU2〜4からの調停リクエストを受信し、データの送信をいずれのCPUに許可するかを決定する調停を行う。そして、出力ポート61は、調停により決定したCPUが接続している入力ポートに対して通信許可通知を出力する。また、出力ポート61は、CPU2〜4から送られてきたデータをCPU1の受信部12へ出力する。
出力ポート62〜64も、出力ポート61と同様の機能を有し、同様の動作を行うので説明を省略する。出力ポート61〜64については、後でさらに詳しく説明する。
出力ポート61がデータ転送を行っていない場合又は調停リクエストを受信していない場合をアイドル状態という。出力ポート61は、マスターポート制御部70から指定されたCPUに対するマスターポートとなる。そして、出力ポート61は、アイドル状態で、マスターポートの組みとなっているCPUから調停リクエストを受信すると、調停を行わずに直ぐにCPU1からのデータ転送を行うように設定されている。このように、出力ポート61は、あるCPUに対して優先的にデータの転送を行うマスターポートとして設定される。クロスバスイッチ5の起動時には、出力ポート62は、CPU1のマスターポートに設定されている。また、出力ポート63は、CPU2のマスターポートに設定されている。また、出力ポート64は、CPU3のマスターポートに設定されている。出力ポート61は、CPU4のマスターポートに設定されている。
また、CPU1〜4が、CPU1〜4のうちの他のCPUへデータを送信する場合、データはサイズが大きいため、データを送信する経路は1つのみ確保できる。すなわち、CPU1〜4は、1度のデータ送信において、いずれか1つのCPUに対してデータを送信することになる。これに対して、調停リクエストなどはサイズが小さいため、CPU1〜4は、1度の送信において複数の経路を確保できる。すなわち、CPU1〜4は、複数のCPUに対して同時に調停リクエストを送ることができる。
さらに、図2を参照して、本実施例に係る並列計算機についてさらに詳しく説明する。図2は、実施例1に係る並列計算機の詳細を表すブロック図である。ここでは、CPU1がCPU2及び3に対するデータの送信要求を行い、CPU2及び4がCPU3に対するデータの送信要求を行う場合を例に説明する。図2では、説明に使用する送信部、入力ポート及び出力ポートを記載し、他の部分については記載を省略している。
送信部11は、リクエスト送信部111、調停回路112及びデータ送信部113を有している。また、送信部21は、リクエスト送信部121、調停回路122及びデータ送信部123を有している。また、送信部41は、リクエスト送信部141、調停回路142及びデータ送信部143を有している。ここで、送信部31は図には図示していないが、送信部31も同様の機能を有している。
リクエスト送信部111は、CPU1が他のCPU2〜4のいずれかへデータを送信する場合、調停リクエストを入力ポート51へ送出する。リクエスト送信部111からの調停リクエストは同時に複数のCPUに対して送信されてもよい。また、調停リクエストには、データの送信先であるCPUの情報が付加されている。
ここでは、リクエスト送信部111は、CPU2に対するデータ送信の調停リクエストを入力ポート51へ出力する。また、リクエスト送信部111は、CPU3に対するデータ送信の調停リクエストを入力ポート51へ出力する。
また、リクエスト送信部111は、調停リクエストを送信したという情報を、その調停リクエストで指定しているデータの送信先のCPUの情報と共に調停回路112へ送信する。
次に、リクエスト送信部111は、調停回路112からデータの送信先となるCPUの選択の通知を受けて、各CPUへの調停リクエストの送信を停止する。例えば、CPU2をデータの送信先として選択した旨の通知を調停回路112から受信すると、リクエスト送信部111は、CPU2及び3への調停リクエストの送信を停止する。
調停回路112は、出力ポート62がデータの転送を行っていないアイドル状態の場合、マスターポートである出力ポート62からの通信許可通知を入力ポート51から受信し続ける。そして、この状態でリクエスト送信部111からCPU2へのデータ送信の調停リクエストの送信の通知を受けると、調停回路112は、リクエスト送信部111が送信した調停リクエストに対応するデータの送信をデータ送信部113に指示する。
また、出力ポート62がアイドル状態でない場合、調停回路112は、リクエスト送信部111からの調停リクエストへの応答として出力ポート62から送出された通信許可通知を入力ポート51から受ける。また、アイドル状態であるかないかに関わらず、調停回路112は、調停リクエストへの応答としてマスターポート以外の出力ポート63及び64から送出された通信許可通知を入力ポート51から受ける。調停回路112は、複数の通信許可通知を受信した場合、最初に受信した通信許可通知を送信してきた出力ポートに接続されているCPUをデータの送信先として選択し、そのCPUに対するデータ送信をデータ送信部113に指示する。
例えば、調停回路112は、出力ポート62から送出された通信許可通知を入力ポート51から受ける。次に、調停回路112は、出力ポート63から送出された通信許可通知を入力ポート51から受ける。そして、調停回路112は、最初に取得した通信許可通知に対応するCPU2へのデータの送信をデータ送信部113に指示する。さらに、調停回路112は、CPU2をデータの送信先として選択したことをリクエスト送信部111へ通知する。
送信部21の調停回路122及び送信部41の調停回路142は、調停回路112と同様の動作を行う。ここでは、送信部21の調停回路122及び送信部41の調停回路142は、出力ポート63が調停によりデータ送信を許可するCPUとしてCPU1を選択したため、通信許可通知を取得しない。
データ送信部113は、データの送信先として選択されたCPUに対するデータ送信の指示を調停回路112から受信する。そして、データ送信部113は、指定されたCPUに対してデータを送信する。
例えば、データ送信部113は、CPU2に対するデータの送信の指示を調停回路112から受信する。そして、データ送信部113は、CPU3宛てのデータを入力ポート51へ送信する。
入力ポート51は、データの送信先であるCPUに対する調停リクエストをリクエスト送信部111から受信する。そして、入力ポート51は、受信した調停リクエストをデータの送信先のCPUが接続されている出力ポートに送信する。
例えば、入力ポート51は、CPU3に対するデータ送信の調停リクエストをリクエスト送信部111から受信する。そして、入力ポート51は、CPU3が接続されている出力ポート63に調停リクエストを送信する。次に、入力ポート51は、CPU2に対するデータ送信の調停リクエストをリクエスト送信部111から受信する。そして、入力ポート51は、CPU2が接続されている出力ポート62に調停リクエストを送信する。
出力ポート62がデータの転送を行っていないアイドル状態の場合、入力ポート51は、通信許可通知を出力ポート62の調停回路161から受信し続ける。そして、入力ポート51は、調停回路161からの通信許可通知を調停回路112へ送信する。この場合でも、マスターポート以外の出力ポート63においてCPU1によるデータの送信が許可された場合、入力ポート51は、出力ポート63から通信許可通知を受信し、受信した通信許可通知を調停回路112へ送信する。ただし、マスターポートが優先されるので、この場合後述するように、調停回路112は、CPU1のマスターポートである出力ポート62に接続されているCPU2をデータの送信先として選択することになる。
これに対して、出力ポート62がアイドル状態でない場合、入力ポート51は、次のような動作を行う。入力ポート51は、調停リクエストを送った出力ポートがマスターポートであるなしに関わらず、調停リクエストを送った出力ポートにおいてデータ送信が許可された場合、通信許可通知をその調停リクエストを送った出力ポートから受信する。
例えば、入力ポート51は、マスターポートである出力ポート62の調停回路161から通信許可通知を受信する。そして、入力ポート51は、調停回路161からの通信許可通知を調停回路112へ送信する。また、入力ポート51は、出力ポート63の調停回路163から通信許可通知を受信する。そして、入力ポート51は、調停回路163からの通信許可通知を調停回路112へ送信する。
さらに、入力ポート51は、調停回路112がデータの送信先として選択したCPU宛のデータをデータ送信部113から受信する。そして、入力ポート51は、受信したデータをそのデータの送信先のCPUが接続されている出力ポートへ送信する。例えば、入力ポート51は、CPU2宛てのデータをデータ送信部113から受信する。そして、入力ポート51は、CPU2宛てのデータを出力ポート62のデータ転送部163へ送信する。
出力ポート62は、調停回路161、アクセスカウンタ162及びデータ転送部163を有する。出力ポート63も同様に、調停回路164、アクセスカウンタ165及びデータ転送部166を有している。
出力ポート62がアイドル状態でない場合について説明する。調停回路161は、CPU2を送信先とするデータの送信要求についての調停リクエストを入力ポート51,52及び54から受信する。そして、調停リクエストが複数有る場合、調停回路161は、予め決められた条件を用いて、調停リクエストを送ってきたCPUの中から1つのCPUを選択する。例えば、調停回路161は、CPU1,3及び4の優先順位を予め記憶しておく。そして、調停回路161は、調停リクエストを送信してきたCPUの中で、記憶している優先順位のうち最も高い優先順位を有するCPUを選択する。この他にも、例えば、調停回路161は、一度選択されたCPUの優先順をさげるなどして、CPUの優先順位を変更しながら、優先順位の最も高いCPUを選択してもよい。
調停回路161は、選択したCPUが接続されている入力ポートに通信許可通知を送信する。たとえば、CPU1を選択した場合、調停回路161は、入力ポート51に通信許可通知を送信する。
出力ポート62は、マスターポートの組となるCPUの情報をマスターポート制御部70から受ける。
出力ポート62がアイドル状態の場合、調停回路161は、マスターポート制御部70から指示されたマスターポートの組となっているCPUへの通信許可通知を、そのCPUが接続されている入力ポートに対して送信し続ける。例えば、出力ポート62に対するマスターポートの組のCPUがCPU1とすると、調停回路161は、CPU1が接続されている入力ポート51に通信許可通知を送信し続ける。この時、マスターポートの組のCPU1から調停リクエストを受信すると、調停回路161は直ぐにマスターポートの組のCPU1からCPU2へのデータ転送を行う指示をデータ転送部163に指示する。
一方、アイドル状態で、マスターポートの組となっているCPU以外からの調停リクエストを受信した場合、出力ポート62は、マスターポートへの送信許可通知の送信を停止する。そして、調停リクエストを複数受信している場合、調停回路161は、調停を行い、データ送信を許可するCPUを決定する。その後、調停回路161は、決定したCPUへの送信許可通知をそのCPUが接続している入力ポートへ送信する。これに対して、調停リクエストを1つしか受信していなければ、調停回路161は、その調停リクエストを送信したCPUへの送信許可通知をそのCPUが接続している入力ポートへ送信する。
また、アイドル状態でない場合、調停リクエストを複数受信すると、調停回路161は、調停を行い、データ送信を許可するCPUを決定する。その後、調停回路161は、決定したCPUへの送信許可通知をそのCPUが接続している入力ポートへ送信する。これに対して、調停リクエストを1つしか受信していなければ、調停回路161は、その調停リクエストを送信したCPUへの送信許可通知をそのCPUが接続している入力ポートへ送信する。
例えば、調停回路161は、マスターポートの組のCPUとしてCPU1の情報をマスターポート制御部70から受ける。このとき、アイドル状態でCPU1,3及び4から調停リクエストを受信すると、調停回路161は、データ送信を許可するCPUをマスターポートの組であるCPU1に決定する。この場合、CPU3及び4は、データ送信を許可するCPUとしては選択されない。また、調停回路161は、アイドル状態でない状態で、CPU1,3及び4から調停リクエストを受信した場合、調停回路161は、調停を行い、データ送信を許可するCPUを決定する。
また、他の出力ポートにおいても同様に調停が行われ、データの送信を許可するCPUが選択され、通信許可通知をそのCPUが接続されている入力ポートにそのCPU宛の通信許可通知が送信される。例えば、同じCPUに対して、異なる出力ポートから通信許可が送信される場合もある。例えば、出力ポート63の調停回路163は、CPU1から調停リクエストを受信する。そして、調停回路163は、データ送信を許可するCPUとしてCPU1を選択する。そして、調停回路163は、CPU1への通信許可通知を入力ポート51へ送信する。ただし、先に出力ポート62が通信許可通知をCPU1へ送信している場合、調停回路163からの出力許可通知はCPU1の調停回路112へ送信されるが、CPU3はデータ送信の送信先として選択されない。
調停回路161は、後述するデータ転送部163によるデータ伝送が終了すると、調停リクエストの受付を再開する。そして、調停回路161は、再度調停を行う。このように、調停回路161は、調停リクエストの受信及び調停の実行を繰り返す。
アクセスカウンタ162は、調停回路が受信した調停リクエストの送信元のCPUの情報を調停回路161から取得する。そして、アクセスカウンタ162は、一定期間毎に送信元毎の調停リクエストの受信回数の集計を行う。ここでは、調停リクエストの受信回数を「アクセス数」とする。一定期間経過後、アクセスカウンタ162は、自己が搭載されている出力ポートである出力ポート62の情報と共にアクセス数の集計結果をマスターポート制御部70に送信する。
データ転送部163は、送信部11がCPU2へのデータ送信を行う場合、送信部11のデータ送信部113が送信したデータを入力ポート51から受信する。そして、データ転送部163は、受信したデータをCPU2の受信部22へ送信する。
マスターポート制御部70は、マスターポート設定のための閾値を記憶している。マスターポート制御部70は、一定期間毎に出力ポート61〜64におけるアクセス数の集計結果を、それぞれの出力ポートのアクセスカウンタから受信する。
マスターポート制御部70は、各出力ポート61〜64から受信したアクセス数の集計結果からポート毎に最もアクセス数の最も多いCPUを抽出する。そして、マスターポート制御部70は、各出力ポート61〜64と抽出したCPUの組合せをマスターポートの組み合わせとする。すなわち、マスターポート制御部70は、抽出したCPUに対応する出力ポートをそのCPUのマスターポートとする。この時、複数の出力ポートにおいてアクセス数が最も多いCPUが同じである場合、マスターポート制御部70は、それらの出力ポートにおいてそのCPUからのアクセス数の差が閾値よりも小さい場合には、マスターポートの設定を行わない。逆に、それらの出力ポートにおいてそのCPUからのアクセス数の差が閾値よりも大きい場合には、マスターポート制御部70は、アクセス数が多い方の出力ポートをそのCPUのマスターポートとする。そして、マスターポート制御部70は、選ばなかった方の出力ポートに対しては、マスターポートの設定を行わない。
また、マスターポート制御部70は、各出力ポート61〜64から受信したアクセス数の集計結果から各ポートへのアクセス数が上位2つのCPUを特定する。そして、その上位2つのCPUからのアクセス数の差が閾値以内のポートがあり、そのポートがいずれかのCPUのマスターポートとして設定されている場合、マスターポート制御部70は、マスターポートの設定を解除する。
また、マスターポート制御部70は、各出力ポート61〜64から受信したアクセス数の集計結果から、CPU毎に、そのCPUから調停リクエストが送られた出力ポートのうちアクセス数が上位2つの出力ポートを特定する。そして、上位2つの出力ポートへのアクセス数が閾値以内のCPUがあり、そのCPUに対してマスターポートが設定されている場合、マスターポート制御部70は、そのマスターポートの設定を解除する。
ここで、上位2つのアクセス数の差が一定の値よりも小さくなることは、アクセス数が拮抗していると考えられる。この場合、マスターポートを設定しておくと、マスターポートが過度に優先されてしまう可能性がある。そこで、アクセス数の差が一定の値よりも小さくなった場合には、マスターポート制御部70は、マスターポートの設定を解除することで、アクセスの不均衡を解消する。
例えば、マスターポート制御部70が、図3に示すアクセス数を取得した場合で説明する。図3は、各CPUから各出力ポートへのアクセス数の集計結果の一例を表す図である。
図3の場合、出力ポート61への最大のアクセス数を有するCPUはCPU4である。また、出力ポート62への最大のアクセス数を有するCPUはCPU1である。また、出力ポート63への最大のアクセス数を有するCPUはCPU4である。また、出力ポート64への最大のアクセス数を有するCPUはCPU2である。ここで、CPU4は、出力ポート61及び63において最大のアクセス数を有している。ここで、マスターポート制御部70は、閾値を10と記憶しているとする。この場合、マスターポート制御部70は、アクセス数がより多い出力ポート63とCPU4との組をマスターポートの組とする。さらに、CPU1は、出力ポート62へのアクセス数が30であり、出力ポート63へのアクセス数が20である。この場合、CPU1の上位2つの出力ポートへのアクセス数の差が10以内であるので、マスターポート制御部70は、CPU1と組み合わせてマスターポートの組を設定することは行わない。また、CPU1が既にマスターポートの組である場合には、マスターポート制御部70は、マスターポートの設定を解除する。したがって、図3の場合には、マスターポート制御部70は、出力ポート63とCPU4とをマスターポートの組とし、出力ポート64とCPU2とをマスターポートの組とする。
ここで、本実施例では、1度のアクセス数が最も多いCPUと出力ポートの組をマスターポートの組と設定し、その後、同一CPUからのアクセス数及び同一出力ポートへのアクセス数により、マスターポートの設定を解除している。ただし、これに限らず、マスターポートの設定を行う前に、同一CPUからのアクセス数及び同一出力ポートへのアクセス数によりマスターポートの設定を行わない出力ポート及びCPUを決定し、その後、マスターポートの設定を行ってもよい。
受信部22は、送信部11がCPU2に対してデータ送信を行う場合、送信部11が送信したデータをデータ転送部163から受信する。CPU2は、受信部22で受信したデータを用いて処理を行う。
次に、図4を参照して、本実施例に係る並列計算機におけるマスターポートの切替処理の流れについて説明する。図4は、実施例1に係る並列計算機におけるマスターポートの切替処理のフローチャートである。
CPU1〜4の各リクエスト送信部111〜141は、自己が接続しているクロスバスイッチ5の入力ポート51〜54を介してデータの送信先のCPUが接続されている出力ポート62〜64に対して調停リクエストを送信する(ステップS101)。
出力ポート61〜64の調停回路は、調停リクエストを送信してきたCPU1〜4に対して調停を行い(ステップS102)、データ送信を許可するCPUを選択する。この時、出力ポート61〜64の中でマスターポートが設定されている出力ポートはマスターポートの組であるCPUを優先的にデータの送信先として選択する。そして、出力ポート61〜64は、通信許可通知を選択したCPUに送信する。
CPU1〜4は、複数の通信許可通知を受信している場合、最初に通信許可通知を送信してきた出力ポート61〜64が接続されているCPUをデータの送信先として選択する。1つのポートから通信許可通知を受信している場合、CPU1〜4は、そのポートをデータの送信先として選択する。そして、CPU1〜4は、自己が接続している入力ポート51〜54を介して、データの送信先のCPUが接続されている出力ポート61〜64に対してデータを送信する(ステップS103)。受信部12〜42は、対応する出力ポート61〜64から送信されたデータを受信する。
また、出力ポート61〜64の各アクセスカウンタは、受信した調停リクエストの数をカウントし、CPU毎のアクセス数をカウントする(ステップS104)。
出力ポート61〜64の各アクセスカウンタは、一定期間が経過したか否かを判定する(ステップS105)。経過していない場合(ステップS105:否定)、アクセスカウンタは、そのまま待機し、CPU1〜4及びクロスバスイッチ5は、ステップS101に戻る。
これに対して、一定期間が経過した場合(ステップS105:肯定)、出力ポート61〜64の各アクセスカウンタは、アクセス数の集計結果をマスターポート制御部70へ送信する(ステップS106)。
マスターポート制御部70は、出力ポート61〜64の各アクセスカウンタからアクセス数の集計結果を受信する。そして、マスターポート制御部70は、各出力ポート61〜64に対するアクセス数が最大のCPU1〜4とそのポートとをマスターポートの組とする(ステップS107)。
次に、マスターポート制御部70は、アクセス数が最大のCPU1〜4が同じCPUとなっている出力ポート61〜64があるか否かを判定する(ステップS108)。最大のアクセス数が同じCPU1〜4である出力ポート61〜64がない場合(ステップS108:否定)、マスターポート制御部70は、ステップS110へ進む。
これに対して、最大のアクセス数が同じCPU1〜4である出力ポート61〜64がある場合(ステップS108:肯定)、マスターポート制御部70は、アクセス数が多い方の出力ポートをそのCPUのマスターポートに設定する(ステップS109)。
次に、マスターポート制御部70は、出力ポート61〜64の中で、上位2つのアクセス数の差が所定値以内の出力ポートがある場合、その出力ポートのマスターポートの設定を解除する(ステップS110)。
また、マスターポート制御部70は、CPU1〜4の中で、上位2つのアクセス数の差が所定値以内のCPUがある場合、そのCPUとのマスターポートの組の設定を解除する(ステップS111)。
CPU1〜4は、並列計算機の処理が完了したか否かを判定する(ステップS112)。処理が完了していない場合(ステップS112:否定)、CPU1〜4及びクロスバスイッチ5は、ステップS101へ戻る。
一方、並列計算機の処理が完了した場合(ステップS112:肯定)、CPU1〜4及びクロスバスイッチ5は、処理を終了する。
次に、図5を参照して、従来の並列計算機によるデータ送信処理について説明する。図5は、従来の並列計算機によるネゲートを行う場合のデータ送信処理のタイミングチャートである。グラフ201〜203は、送信部11から各出力ポートへの調停リクエストの送信を示す。また、グラフ204は、送信部11からのデータ送信を表す。グラフ205〜207は、送信部31から各出力ポートへの調停リクエストの送信を示す。また、グラフ208は、送信部31からのデータ送信を表す。そして、グラフ209〜212は、出力ポート61〜64による送信許可通知の送信先及びデータ転送を表す。
グラフ201〜203で示すように、送信部11は、タイミング221〜223で出力ポート62〜64に調停リクエストを送信する。出力ポート62は、送信部11のマスターポートであるため、送信部11は、グラフ204及び209のように、直ちにデータの送信先として出力ポート62を選択し、データの送信を開始する。この時、出力ポート63及び64は、送信部11の調停リクエストを受けて、グラフ210及び211のタイミング224及び225で調停を行う。そして、出力ポート63及び64は、送信部11に対して通信許可通知を送信する。しかし、送信部11は、出力ポート62をデータの送信先として選択しているので、出力ポート63及び64は、データの送信先として選択されない。そのため、出力ポート63及び64は、送信許可通知を破棄(ネゲート)する。そして、出力ポート63は、グラフ210のタイミング226で、送信部21をマスターポートに設定する。また、出力ポート64は、グラフ211のタイミング227で、送信部31をマスターポートに設定する。
さらに、グラフ205〜207に示すように、送信部31は、タイミング228〜230で、出力ポート61,62及び64へ調停リクエストを送信する。この時、出力ポート62はデータ転送中であるため、送信部31は、出力ポート62ではデータの送信が許可されない。一方、出力ポート64は、送信部31のマスターポートであるため、送信部31は、グラフ208及び211のように、直ちにデータの送信先として出力ポート64を選択し、データの送信を開始する。これに対して、出力ポート61は、送信部31からの調停リクエストを受けて、グラフ212のタイミング231で調停を行い、送信部31のデータ送信を許可する。しかし、送信部31は、出力ポート64をデータの送信先として選択しているので、出力ポート61は、データの送信先として選択されない。そのため、出力ポート61は、送信許可通知を破棄(ネゲート)する。そして、出力ポート61は、グラフ212のタイミング232で、送信部41をマスターポートに設定する。
さらに、グラフ201〜203で示すように、送信部11は、タイミング233〜235で出力ポート62〜64に再度調停リクエストを送信する。出力ポート62は、送信部11のマスターポートであるため、送信部11は、グラフ204及び209のように、直ちにデータの送信先として出力ポート62を選択し、データの送信を開始する。ここで、出力ポート64はデータ転送中であるため、送信部11は、出力ポート64ではデータの送信が許可されない。これに対して、出力ポート63は、送信部11からの調停リクエストを受けて、グラフ210のタイミング236で調停を行い、送信部31のデータ送信を許可する。しかし、送信部11は、出力ポート62をデータの送信先として選択しているので、出力ポート63は、データの送信先として選択されない。そのため、出力ポート63は、送信許可通知を破棄(ネゲート)する。そして、出力ポート63は、グラフ210のタイミング237で、送信部21をマスターポートに設定する。このような処理が行われることで、グラフ209に示すように、マスターポートの組である送信部11と出力ポート62との組が連続して選択されデータ転送を行うようになり、グラフ201に示すように、出力ポート63は、長期間に亘ってデータの転送を行えない状態が続くおそれがある。
このように、従来は、図5に示すようにマスターポートの組となっているCPUが優先的に選択されてしまうことで、長期間に亘ってデータの転送が行えない出力ポートが発生していた。これに対して、本実施例にかかる並列計算機は、マスターポートの組が続けて選択されることを回避でき、長期間に亘ってデータの転送が行えない出力ポートの発生を軽減できる。
以上に説明したように、本実施例に係る並列計算機では、アクセス数が最多のCPUと出力ポートとの組合せをマスターポートの組合せとして動的にマスターポートの組を変更していく。これにより、マスターポートとして固定された場合のように、特定のCPUと出力ポートの組が過度に優先されることを軽減し、効率的な通信を行うことができる。また、そのときに最もアクセス数が多いCPUと出力ポートとの組をマスターポートとするので、処理に適応させて特定のポートを優先させることができ、より効率的な通信を行うことができる。
さらに、上位のアクセス数が近づいた場合にマスターポートの設定をはずすので、特定の組合せの頻度が高いといった状態でない場合には、無理に優先する出力ポートを設定することなく、公平に全ての出力ポートに対してデータ送信を行うことができる。このことからも、効率的な通信を行うことができるといえる。
次に、実施例2に係る並列計算機システムについて説明する。本実施例に係る並列計算機システムは、マスターポートの選択方法が実施例1と異なるものである。本実施例に係る並列計算機も図1及び図2のブロック図で示される。以下の説明では、同じ機能を有する各部については説明を省略する。
マスターポート制御部70は、マスターポートの候補を選択するための選択閾値を予め記憶している。そして、マスターポート制御部70は、一定期間毎に出力ポート61〜64のアクセスカウンタから集計結果を受信する。
マスターポート制御部70は、受信した集計結果から、出力ポート61〜64毎に選択閾値以上のアクセス数となっているCPUを抽出する。
そして、マスターポート制御部70は、出力ポート61〜64毎に抽出したCPUに対して調停を行い、出力ポート61〜64毎にマスターポートの組とするCPUを選択する。この調停方法は、複数のCPUから1つを選べるアルゴリズムであれば特に制限はない。例えば、マスターポート制御部70は、出力ポート毎に、各CPUの優先度を記憶しておき、抽出された複数のCPUのうち最も優先度が高いCPUを選択してもよい。また、マスターポート制御部70は、前回選択したCPUを除外した上で、残ったCPUのうち優先度が最も高いCPUを選択してもよい。
さらに、マスターポート制御部70は、マスターポートの組とするCPUとして同じCPUが複数の出力ポートで選択されている場合、その中でマスターポートの組を決定し、さらに、残った出力ポートにおいて再度マスターポートを選択する調停を行ってもよい。例えば、同じCPUのマスターポートとなっている複数の出力ポートの中で、そのCPUからのアクセス数が最も多い出力ポートをそのCPUのマスターポートと決定してもよい。
そして、マスターポート制御部70は、決定したマスターポートの組となるCPUの情報を各出力ポート61〜64へ送信する。
次に、図6を参照して、本実施例に係る並列計算機におけるマスターポートの切替処理の流れについて説明する。図6は、実施例2に係る並列計算機におけるマスターポートの切替処理のフローチャートである。
CPU1〜4の各リクエスト送信部111〜141は、自己が接続しているクロスバスイッチ5の入力ポート51〜54を介してデータの送信先のCPUが接続されている出力ポート62〜64に対して調停リクエストを送信する(ステップS201)。
出力ポート61〜64の調停回路は、調停リクエストを送信してきたCPU1〜4に対して調停を行い(ステップS202)、データ送信を許可するCPUを選択する。この時、出力ポート61〜64の中でマスターポートが設定されている出力ポートはマスターポートの組であるCPUを優先的にデータの送信先として選択する。そして、出力ポート61〜64は、通信許可通知を選択したCPUに送信する。
CPU1〜4は、複数の通信許可通知を受信している場合、最初に通信許可通知を送信してきた出力ポート61〜64が接続されているCPUをデータの送信先として選択する。1つのポートから通信許可通知を受信している場合、CPU1〜4は、そのポートをデータの送信先として選択する。そして、CPU1〜4は、自己が接続している入力ポート51〜54を介して、データの送信先のCPUが接続されている出力ポート61〜64に対してデータを送信する(ステップS203)。受信部12〜42は、対応する出力ポート61〜64から送信されたデータを受信する。
また、出力ポート61〜64の各アクセスカウンタは、受信した調停リクエストの数をカウントし、CPU毎のアクセス数をカウントする(ステップS204)。
出力ポート61〜64の各アクセスカウンタは、一定期間が経過したか否かを判定する(ステップS205)。経過していない場合(ステップS205:否定)、アクセスカウンタは、そのまま待機し、CPU1〜4及びクロスバスイッチ5は、ステップS201に戻る。
これに対して、一定期間が経過した場合(ステップS205:肯定)、出力ポート61〜64の各アクセスカウンタは、アクセス数の集計結果をマスターポート制御部70へ送信する(ステップS206)。
マスターポート制御部70は、出力ポート61〜64の各アクセスカウンタからアクセス数の集計結果を受信する。そして、マスターポート制御部70は、各出力ポート61〜64に対するアクセス数が選択閾値を超えるCPU1〜4を抽出する(ステップS207)。
次に、マスターポート制御部70は、各出力ポート61〜64毎に、抽出したCPU1〜4に対して調停を行い、マスターポートの組を決定する(ステップS208)。
マスターポート制御部70は、出力ポート61〜64の中の複数が同じCPUのマスターポートとなっているか否かを判定する(ステップS209)。複数の出力ポートが同じCPUのマスターポートとなっている場合(ステップS209:肯定)、マスターポート制御部70は、同じCPUに対してマスターポートなっている複数の出力ポートに対して調停を行い、1つの出力ポートをそのCPUのマスターポートとして選択する(ステップS210)。その後、マスターポート制御部70は、ステップS208へ戻り、選択しなかった出力ポートに対して調停を行い、マスターポートの組を決定する。
複数の出力ポートが同じCPUのマスターポートとなっていない場合(ステップS209:否定)、マスターポート制御部70は、決定したマスターポートの組となっているCPUの情報を各出力ポート61〜64に通知し、マスターポートを設定する(ステップS211)。
CPU1〜4は、並列計算機の処理が完了したか否かを判定する(ステップS212)。処理が完了していない場合(ステップS212:否定)、CPU1〜4及びクロスバスイッチ5は、ステップS201へ戻る。
一方、並列計算機の処理が完了した場合(ステップS212:肯定)、CPU1〜4及びクロスバスイッチ5は、処理を終了する。
以上に説明したように、本実施例に係る並列計算機システムは、アクセス数が閾値以上となるCPUの中から調停によってマスターポートの組となるCPUを決定する。調停により、マスターポートの組となるCPUを選択することで、最大のアクセス数のCPUを自動的にマスターポートにする場合に比べて、よりバランスよくマスターポートを設定することができる。そのため、マスターポートとして固定された場合のように、特定のCPUと出力ポートの組が過度に優先されることを軽減し、効率的な通信を行うことができる。また、処理に適応させて特定のポートを優先させることができ、より効率的な通信を行うことができる。
次に、実施例3に係る並列計算機システムについて説明する。本実施例に係る並列計算機システムは、マスターポートの選択方法が実施例1及び2と異なるものである。図7は、実施例3に係る並列計算機の構成図である。以下の説明では、実施例1と同じ機能を有する各部については説明を省略する。
各CPU1〜4は、実行するソフトウェアにおいて自己からのデータ送信の頻度が高いCPUの情報をマスターポート制御部70に送信する。例えば、CPU1〜4は、ソフトウェアの中に格納されているCPU同士のデータ転送の量を基に、CPU間でのデータ転送の頻度を求めて、データ送信の頻度が高い組合せとなるCPUをマスターポートに通知する。
マスターポート制御部70は、CPUと出力ポートとをマスターポートの組とする組み合わせのパターンであるマスターポートのパターンを予め記憶している。マスターポート制御部70は、データ送信の頻度が高いCPUの情報を各CPU1〜4から受信する。
マスターポート制御部70は、各CPU1〜4において、データ送信の頻度が高いCPUとなるCPUに接続している出力ポート61〜64が、各CPU1〜4のマスターポートとなるマスターポートのパターンを選択する。そして、マスターポート制御部70は、選択したマスターポートのパターンに合わせて、各出力ポート61〜64にそれぞれのマスターポートの組となるCPUの情報を通知する。
次に、図8を参照して、本実施例に係る並列計算機におけるマスターポートの切替処理の流れについて説明する。図8は、実施例3に係る並列計算機におけるマスターポートの切替処理のフローチャートである。
CPU1〜4は、実行するソフトウェアにおいて自己からのデータ送信の頻度が高いCPUの情報をマスターポート制御部70に送信する(ステップS301)。
マスターポート制御部70は、データ送信の頻度が高いCPUの情報を各CPU1〜4から受信する。そして、マスターポート制御部70は、データ送信の頻度が高いCPUに接続している出力ポート61〜64が、各CPU1〜4のマスターポートとなるマスターポートのパターンを選択する(ステップS302)。
そして、マスターポート制御部70は、選択したマスターポートのパターンに合わせて、各出力ポート61〜64にそれぞれのマスターポートの組となるCPUの情報を通知し、マスターポートを設定する(ステップS303)。
CPU1〜4の各リクエスト送信部111〜141は、自己が接続しているクロスバスイッチ5の入力ポート51〜54を介してデータの送信先のCPUが接続されている出力ポート62〜64に対して調停リクエストを送信する(ステップS304)。
出力ポート61〜64の調停回路は、調停リクエストを送信してきたCPU1〜4に対して調停を行い(ステップS305)、データ送信を許可するCPUを選択する。この時、出力ポート61〜64の中でマスターポートが設定されている出力ポートはマスターポートの組であるCPUを優先的にデータの送信先として選択する。そして、出力ポート61〜64は、通信許可通知を選択したCPUに送信する。
CPU1〜4は、複数の通信許可通知を受信している場合、最初に通信許可通知を送信してきた出力ポート61〜64が接続されているCPUをデータの送信先として選択する。1つのポートから通信許可通知を受信している場合、CPU1〜4は、そのポートをデータの送信先として選択する。そして、CPU1〜4は、自己が接続している入力ポート51〜54を介して、データの送信先のCPUが接続されている出力ポート61〜64に対してデータを送信する(ステップS306)。受信部12〜42は、対応する出力ポート61〜64から送信されたデータを受信する。
CPU1〜4は、並列計算機の処理が完了したか否かを判定する(ステップS307)。処理が完了していない場合(ステップS307:否定)、CPU1〜4及びクロスバスイッチ5は、ステップS304へ戻る。
一方、並列計算機の処理が完了した場合(ステップS307:肯定)、CPU1〜4及びクロスバスイッチ5は、処理を終了する。
以上に説明したように、本実施例に係る並列計算機システムは、ソフトウェアにおいて各CPUからのデータ転送の頻度が高いCPUに接続された出力ポートを各CPUのマスターポートとする。これにより、ソフトウェアに依存した特定のデータ転送傾向にあわせてマスターポートを設定することができ、より効率的な通信を行うことができる。そして、固定的にマスターポートが設定されている場合のように、特定のマスターポートが過度に優先されることを軽減でき、より効率的なデータ転送を行うことができる。
1〜4 CPU
5 クロスバスイッチ
10,20,30,40 ルータ部
11,21,31,41 送信部
12,22,32,42 受信部
51〜54 入力ポート
61〜64 出力ポート
111,121,141 リクエスト送信部
112,122,142 調停回路
113,123,143 データ送信部
161,164 調停回路
162,165 アクセスカウンタ
163,166 データ転送部

Claims (9)

  1. それぞれ計算を行う複数の計算ノードと前記複数の計算ノードに接続するデータ転送装置とを有する並列計算機システムにおいて、
    前記データ転送装置は、
    所定の状態で対の計算ノードから調停リクエストを受信すると前記対の計算ノードを選択し、それ以外の場合、前記複数の計算ノードいずれか一つ又は複数から前記調停リクエストを受け付け、前記調停リクエストを受け付けた計算ノードから一つを選択し、選択した計算ノードに対して送信許可を返信する調停部と、前記調停部により選択された計算ノードからデータを受信し、他の計算ノードに対して受信したデータを転送するデータ転送部とを有する複数のポートと、
    前記複数の計算ノードの中から各前記ポートと対になる前記対の計算ノードをそれぞれ動的に決定する組合せ決定部とを備え、
    前記計算ノードは、
    前記ポートにデータ送信要求である調停リクエストを送信するリクエスト送信部と、
    前記所定の状態にある対のポートに対して前記リクエスト送信部が調停リクエストを送信した場合、前記対のポートに対してデータを送信し、それ以外の場合、前記調停リクエストに対する送信許可を返信したポートに対してデータを送信するデータ送信部と
    を備えることを特徴とする並列計算機システム。
  2. 前記組合せ決定部は、各前記ポートに対して第1所定時間におけるデータ通信アクセス数が最多の計算ノードを、各前記ポートの対の計算ノードとすることを特徴とする請求項1に記載の並列計算機システム。
  3. 前記組合せ決定部は、第2所定時間における前記データ通信アクセス数の上位2つの差が所定値以下になったポートがある場合、該ポートの対の計算ノードを解除することを特徴とする請求項2に記載の並列計算機システム。
  4. 前記組合せ決定部は、対の計算ノードを解除したポートにおいて、前記第2所定時間における前記データ通信アクセス数の上位2つの差が閾値以上となった場合、当該ポートに対して第1所定時間における前記データ通信アクセス数が最多の計算ノードを、対の計算ノードとすることを特徴とする請求項3に記載の並列計算機システム。
  5. 前記組合せ決定部は、前記ポートにおける各前記計算ノードからのデータ通信アクセス数をカウントし、前記データ通信アクセス数が閾値を超える計算ノードの中から前記対の計算ノードを1つ選択することを特徴とする請求項1に記載の並列計算機システム。
  6. 前記組合せ決定部は、前記計算ノードが実行する処理を基に前記計算ノードと前記ポートの組合せを決定することを特徴とする請求項1に記載の並列計算機システム。
  7. 前記組合せ決定部は、前記計算ノードが実行する処理における各前記計算ノードと各前記ポートとの間の通信量に応じて前記計算ノードと前記ポートの組合せを決定することを特徴とする請求項6に記載の並列計算機システム。
  8. それぞれ計算を行う複数の計算ノードに接続する複数のポートと、
    前記ポートの中から前記複数の計算ノードのそれぞれと対になるポートを決定する組合せ決定部とを備え
    前記ポートのそれぞれは、
    所定の状態で対の計算ノードから調停リクエストを受信すると前記対の計算ノードを選択し、それ以外の場合、前記複数の計算ノードのうちのいずれか一つ又は複数からデータ送信要求である調停リクエストを受け付け、前記調停リクエストを受け付けた計算ノードから一つを選択し、選択した計算ノードに対して送信許可を返信する調停部と、
    前記調停部により選択された計算ノードからデータを受信し、他の計算ノードに対して受信したデータを転送するデータ転送部とを備えた
    ことを特徴とするデータ転送装置。
  9. それぞれ計算を行う複数の計算ノードと前記複数の計算ノードに接続する複数のポートを有するデータ転送装置とを有する並列計算機システムの制御方法において、
    各前記計算ノードの中から各前記ポートと対になる前記計算ノードをそれぞれ決定し、
    前記計算ノードに、前記ポートにデータ送信要求である調停リクエストを送信させ、
    前記ポートに、前記計算ノードから前記調停リクエストを受信させ、
    前記ポートが所定の状態で対の計算ノードから調停リクエストを受信すると、当該ポートに前記対の計算ノードを選択させ、それ以外の場合、前記調停リクエストを受け付けた計算ノードの中から一つを選択させ、選択した計算ノードに対して送信許可を返信させ、
    前記計算ノードが前記所定の状態の対のポートに調停リクエストを送信した場合、前記計算ノードに、前記対のポートに対してデータを送信させ、
    前記所定の状態の前記対のポートに調停リクエストを送信する以外の場合、前記計算ノードに、前記調停リクエストに対する送信許可を返信した前記ポートに対してデータを送信させ、
    前記ポートに、選択した計算ノードからデータを受信させ、他の計算ノードに対して受信したデータを転送させる
    ことを特徴とする並列計算機システムの制御方法。
JP2012180616A 2012-08-16 2012-08-16 並列計算機システム、データ転送装置及び並列計算機システムの制御方法 Active JP5949312B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012180616A JP5949312B2 (ja) 2012-08-16 2012-08-16 並列計算機システム、データ転送装置及び並列計算機システムの制御方法
US13/920,750 US9336172B2 (en) 2012-08-16 2013-06-18 Parallel computer system, data transfer device, and method for controlling parallel computer system for performing arbitration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012180616A JP5949312B2 (ja) 2012-08-16 2012-08-16 並列計算機システム、データ転送装置及び並列計算機システムの制御方法

Publications (2)

Publication Number Publication Date
JP2014038497A JP2014038497A (ja) 2014-02-27
JP5949312B2 true JP5949312B2 (ja) 2016-07-06

Family

ID=50100895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012180616A Active JP5949312B2 (ja) 2012-08-16 2012-08-16 並列計算機システム、データ転送装置及び並列計算機システムの制御方法

Country Status (2)

Country Link
US (1) US9336172B2 (ja)
JP (1) JP5949312B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205032B (zh) * 2015-08-25 2018-06-26 华为技术有限公司 Cpu互连装置、系统及其控制方法、控制装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666551A (en) * 1994-06-30 1997-09-09 Digital Equipment Corporation Distributed data bus sequencing for a system bus with separate address and data bus protocols
US6055599A (en) * 1995-09-11 2000-04-25 Electronics & Telecommunications Research Institute Hierarchical crossbar interconnection network for a cluster-based parallel processing computer
JPH10254843A (ja) * 1997-03-06 1998-09-25 Hitachi Ltd クロスバスイッチ、該クロスバスイッチを備えた並列計算機及びブロードキャスト通信方法
JPH1173403A (ja) 1997-08-29 1999-03-16 Fujitsu Ltd クロスバスイッチ制御回路
JP3099325B2 (ja) * 1998-05-20 2000-10-16 日本電気株式会社 クロスバスイッチ装置及びその制御方法
JP2001022711A (ja) * 1999-07-08 2001-01-26 Hitachi Ltd クロスバースイッチの制御方法及び並列計算機システム
US6484220B1 (en) * 1999-08-26 2002-11-19 International Business Machines Corporation Transfer of data between processors in a multi-processor system
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
DE602004001583T2 (de) * 2003-03-24 2007-07-19 Sony Computer Entertainment Inc. Crossbar-vermittlungsstelle, zugehöriges betriebssteuerungverfahren und -programm
US8250280B1 (en) * 2008-07-15 2012-08-21 Marvell Israel (M.I.S.L.) Ltd. Bus transaction maintenance protocol
JP5687644B2 (ja) * 2012-02-28 2015-03-18 日本電信電話株式会社 パケット転送装置およびパケットスケジューリング方法
JP5978849B2 (ja) * 2012-08-09 2016-08-24 富士通株式会社 並列計算機システム、クロスバスイッチ及び並列計算機システムの制御方法

Also Published As

Publication number Publication date
US20140052885A1 (en) 2014-02-20
JP2014038497A (ja) 2014-02-27
US9336172B2 (en) 2016-05-10

Similar Documents

Publication Publication Date Title
JP5335892B2 (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
US9264371B2 (en) Router, method for controlling the router, and computer program
US7624221B1 (en) Control device for data stream optimizations in a link interface
US11228488B2 (en) Software implementation of network switch/router
US6728790B2 (en) Tagging and arbitration mechanism in an input/output node of a computer system
US6681274B2 (en) Virtual channel buffer bypass for an I/O node of a computer system
US6721816B1 (en) Selecting independently of tag values a given command belonging to a second virtual channel and having a flag set among commands belonging to a posted virtual and the second virtual channels
US6807599B2 (en) Computer system I/O node for connection serially in a chain to a host
CN109716719B (zh) 数据处理方法及装置、交换设备
JP5949312B2 (ja) 並列計算機システム、データ転送装置及び並列計算機システムの制御方法
JP5978849B2 (ja) 並列計算機システム、クロスバスイッチ及び並列計算機システムの制御方法
WO2012113224A1 (zh) 多节点计算系统下选择共享内存所在节点的方法和装置
US6839784B1 (en) Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel
US6820151B2 (en) Starvation avoidance mechanism for an I/O node of a computer system
EP3376719B1 (en) Arbitrating data packets
JP5715458B2 (ja) 情報処理システム、調停方法
JP2015069345A (ja) 情報処理装置,データ転送装置,およびデータ転送方法
CN112486871B (zh) 一种用于片上总线的路由方法以及系统
JP6197817B2 (ja) 中継装置、中継方法及び中継システム
JP2011193258A (ja) 半導体集積回路装置、経路決定回路及び経路決定方法
JP5478342B2 (ja) 情報処理装置
Young et al. A deadlock-free NoC architecture for the sea of heterogeneous processing elements
WO2008057821A2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system
Chen et al. Design of key technology in reflective memory network communication module

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160418

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: 20160510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160523

R150 Certificate of patent or registration of utility model

Ref document number: 5949312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150