JP2011141751A - 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法 - Google Patents

並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法 Download PDF

Info

Publication number
JP2011141751A
JP2011141751A JP2010002107A JP2010002107A JP2011141751A JP 2011141751 A JP2011141751 A JP 2011141751A JP 2010002107 A JP2010002107 A JP 2010002107A JP 2010002107 A JP2010002107 A JP 2010002107A JP 2011141751 A JP2011141751 A JP 2011141751A
Authority
JP
Japan
Prior art keywords
communication
time information
synchronization
phase
processors
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.)
Granted
Application number
JP2010002107A
Other languages
English (en)
Other versions
JP5493880B2 (ja
Inventor
Takeshi Kano
健 加納
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010002107A priority Critical patent/JP5493880B2/ja
Publication of JP2011141751A publication Critical patent/JP2011141751A/ja
Application granted granted Critical
Publication of JP5493880B2 publication Critical patent/JP5493880B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】集団通信の高速化を図れる並列コンピュータシステムを提供する。
【解決手段】各プロセッサは、通信フェーズごとに予測された通信フェーズでの自機の通信時間のうち少なくとも最長時間を示す通信時間情報と同期要求を同期装置に送信する処理手段と、同期装置から各通信フェーズの実行時間を特定するための実行時間情報と同期完了指示を受信する受信手段を含み、処理手段は、実行時間情報と同期完了指示が受信されると、集団通信を開始しかつ各通信フェーズで通信フェーズでの自機の通信時間が実行時間情報にて特定される実行時間以下であると、通信フェーズの期間を該実行時間とし、同期装置は、各プロセッサから通信時間情報と同期要求を受信すると通信時間情報に基づき実行時間情報を作成する作成手段と、実行時間情報と同期完了指示を複数のプロセッサに配信する配信手段と、を含む。
【選択図】図1

Description

本発明は、複数のプロセッサがネットワークを介して接続された並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法に関し、特には、複数のプロセッサが集団通信を行う並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法に関する。
複数のプロセッサがネットワークを介して接続された並列コンピュータにて並列処理が実行されるには、複数のプロセッサが同時に通信を行う集団通信を行う必要がある。
特許文献1には、並列コンピュータ内の全プロセッサが並列コンピュータ内の全プロセッサと通信する全対全通信方法が記載されている。特許文献1の図11には、この全対全通信方法での処理フローが記載されている。なお、全対全通信は集団通信の一例である。
この処理フローでは、各プロセッサが個別の送信先と通信するフェーズ(以下「部分通信フェーズ」と呼ぶ)が次々と実行される状況で、各部分通信フェーズが実行される前に、全プロセッサの同期が取られ、全プロセッサの部分通信フェーズの切り換えタイミングが合わされている。つまり、この処理フローでは、各プロセッサの同期が取られた後、1つの部分通信フェーズが実行され、その後、各プロセッサの同期が取られ、その後、新たな1つの部分通信フェーズが実行される。
図12は、特許文献1に記載の全対全通信方法での集団通信のタイムチャートを示した図である。図12において、集団通信フェーズ1201に入る前、および、集団通信フェーズ1201内の部分通信フェーズ1202の後で、プロセッサ間同期処理1203が行われ、部分通信フェーズ1202の開始タイミングが合わせられる。
この全対全通信方法では、全プロセッサの部分通信フェーズの開始タイミングが合わされた後で、全プロセッサが、データの送信先を同時に切り替える。これにより、通信経路上でのデータのぶつかりが防止される。
もし、部分通信フェーズが実行される前に全プロセッサの同期が取られない場合には、プロセッサ間で部分通信フェーズの開始タイミングがずれてしまう。プロセッサ間で部分通信フェーズの開始タイミングがずれると、本来は通信経路上でのデータのぶつかりがない通信であるはずなのに、通信経路上でのデータのぶつかりが発生する。
例えば、特許文献1の図9に示されたフェーズ管理テーブルには、フェーズ2でのPE2からPE3へのデータの通信と、フェーズ3でのPE8からPE3へのデータの通信とが、記載されている。この場合、もしも、PE2がフェーズ2でPE3へのデータの通信を行っている状況で、PE8がフェーズ3に入ってしまいPE8がPE3へのデータの通信を行うと、PE3へのデータの通信が2つ発生する。このため、通信経路上でのデータのぶつかりが発生し、並列処理の性能が悪化する。
特許文献1に記載の全対全通信方法では、通信経路上でのデータのぶつかりが起こらないように、フェーズ管理テーブルを作り、かつ、部分通信フェーズと部分通信フェーズの間の時間で全プロセッサの同期をとることで、全プロセッサでの部分通信フェーズの開始タイミングが合わせられる。これによって、全プロセッサから全プロセッサへのデータの通信が、通信経路上でのデータのぶつかりが生じることなく行われる。
特許第2601591号公報
特許文献1に記載の全対全通信方法では、部分通信フェーズと部分通信フェーズの間の時間で、集団通信に参加する全プロセッサ間の同期を取る必要がある。
複数のプロセッサ間の同期を取るためには、プロセッサ間の同期を取るための手段(以下「同期手段」と称する)が、何らかの通信を行う。このため、もしも、複数のプロセッサが、同時にプロセッサ間の同期を取るための命令を実行したとしても、その命令の実行開始時から同期が完了するまでには、何らかの時間がかかる。
したがって、プロセッサ間の同期を取るために要する時間が、本来の通信のオーバヘッドとなり、集団通信に要する時間が長くなり、集団通信の性能が劣化してしまうという課題があった。
また、プロセッサ間の同期を取るために要する時間は、一般にプロセッサ数が多くなれば多くなるほど長くなる。なぜなら、プロセッサ数が多い場合には、物理的にプロセッサ間の距離が大きくなり、よって、同期手段が行う通信の距離が長くなるからである。
したがって、並列コンピュータの規模が大規模になるほど、プロセッサ間の同期に要する時間が長くなる。よって、特許文献1に記載の全対全通信方法では、部分通信フェーズと部分通信フェーズの間の時間に実行されるプロセッサ間の同期処理に関するオーバヘッドが大きくなり、集団通信に要する時間が長くなり、集団通信の性能は劣化する。
本発明の目的は、上述の課題を解決可能な並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法を提供することにある。
本発明の並列コンピュータシステムは、複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムであって、
各プロセッサは、
前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する処理手段と、
前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信手段と、を含み、
前記処理手段は、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とし、
前記同期装置は、
前記各プロセッサから前記通信時間情報と前記同期要求とを受信すると、当該通信時間情報に基づいて前記実行時間情報を作成する作成手段と、
前記作成手段にて作成された実行時間情報と、前記同期完了指示と、を前記複数のプロセッサに配信する配信手段と、を含む。
本発明のプロセッサは、複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムにて、前記複数のプロセッサの1つとして使用されるプロセッサであって、
前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する処理手段と、
前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信手段と、を含み、
前記処理手段は、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする。
本発明の同期装置は、各通信フェーズで複数のプロセッサのうちの2つ以上のプロセッサのそれぞれがネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムと接続される同期装置であって、
各プロセッサから、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成手段と、
前記作成手段にて作成された実行時間情報と、同期完了指示と、を前記複数のプロセッサに配信する配信手段と、を含む。
本発明の通信方法は、複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムでの通信方法であって、
各プロセッサが、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する送信ステップと、
前記同期装置が、前記各プロセッサから前記通信時間情報と前記同期要求とを受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成ステップと、
前記同期装置が、前記実行時間情報と同期完了指示とを前記複数のプロセッサに配信する配信ステップと、
前記各プロセッサが、前記同期装置から、前記実行時間情報と前記同期完了指示とを受信する受信ステップと、
前記各プロセッサが、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする制御ステップと、を含む。
本発明の通信方法は、複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムにて、前記複数のプロセッサの1つとして使用されるプロセッサでの通信方法であって、
前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する送信ステップと、
前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信ステップと、
前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする制御ステップと、を含む。
本発明の通信支援方法は、各通信フェーズで複数のプロセッサのうちの2つ以上のプロセッサのそれぞれがネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムと接続される同期装置での通信支援方法であって、
各プロセッサから、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成ステップと、
前記実行時間情報と、同期完了指示と、を前記複数のプロセッサに配信する配信ステップと、を含む。
本発明によれば、複数のプロセッサによる集団通信を高速に行うことが可能になる。
本発明の第1実施形態の並列コンピュータシステムを示したブロック図である。 同期装置103として使用可能な同期装置201を示したブロック図である。 プロセッサ101-(0)〜101-(N-1)のいずれにも使用可能なプロセッサ301を示したブロック図である。 第1実施形態の動作を説明するためのフローチャートである。 第1実施形態の並列コンピュータシステムでの集団通信の動作を説明するための図である。 本発明の第2実施形態の並列コンピュータシステムを示したブロック図である。 同期装置103Aとして使用可能な同期装置701を示したブロック図である。 プロセッサ101A-(0)〜101A-(N-1)のいずれにも使用可能なプロセッサ801を示したブロック図である。 第2実施形態の動作を説明するためのフローチャートである。 プロセッサ101B-(0)〜101B-(N-1)のいずれにも使用可能なプロセッサ1001を示したブロック図である。 第3実施形態の動作を説明するためのフローチャートである。 特許文献1に記載の技術による集団通信フェーズを説明する図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
(第1実施形態)
図1は、本発明の第1実施形態の並列コンピュータシステムを示したブロック図である。
図1において、並列コンピュータシステムは、複数のプロセッサ101-(0)〜101-(N-1)と、プロセッサ間ネットワーク(以下、単に「ネットワーク」と称する)102と、プロセッサ間同期装置(以下、単に「同期装置」と称する)103と、を含む。なお、Nは、2以上の整数である。
複数のプロセッサ101-(0)〜101-(N-1)は、集団通信を行う。集団通信では、複数のプロセッサ101-(0)〜101-(N-1)は、ネットワーク102を介して同時に通信を行う。
本実施形態では、集団通信は、複数の通信フェーズのそれぞれでプロセッサ間の通信が行われることによって実行される。
各通信フェーズでは、複数のプロセッサ101-(0)〜101-(N-1)のうち2つ以上のプロセッサのそれぞれがネットワーク102を介して互いに異なる1つのプロセッサにデータを送信する。以下では、通信フェーズを「部分通信フェーズ」と称する。
本実施形態では、複数のプロセッサ101-(0)〜101-(N-1)は、集団通信として、次のような全対全通信を行う。プロセッサ101-(0)〜101-(N-1)のそれぞれは、各部分通信フェーズで、ネットワーク102を介して互いに異なる1つのプロセッサにデータを送信する。
このため、本実施形態で全対全通信が実行される場合、プロセッサ101-(0)〜101-(N-1)の数と同じ数の部分通信フェーズが必要になる。なお、集団通信は、全対全通信に限るものではない。
プロセッサ101-(0)〜101-(N-1)のそれぞれは、プロセッサを同期する旨の命令(以下、単に「同期命令」と称する)を実行すると、部分通信フェーズごとに予測された部分通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を示した同期要求情報104を、同期装置103に送信する。
本実施形態では、各プロセッサから送信される同期要求情報104に示された通信時間情報は、部分通信フェーズごとに予測された、各部分通信フェーズにおける自プロセッサの通信時間のうち、最長の時間(以下「第1最長時間」と称する)のみを示す。
同期装置103は、すべてのプロセッサ101-(0)〜101-(N-1)から同期要求情報104を受信すると、各同期要求情報104に示された通信時間情報に基づいて、実行時間情報を作成する。実行時間情報は、各部分通信フェーズの実行時間を特定するための情報である。
同期装置103は、実行時間情報を作成すると、すべてのプロセッサ101-(0)〜101-(N-1)に、同期完了指示と実行時間情報とを示した同期完了情報105を送信する。
プロセッサ101-(0)〜101-(N-1)のそれぞれは、同期完了情報105を受信すると、集団通信を開始し、かつ、各部分通信フェーズにおける自プロセッサの通信を、同期完了情報105が示す実行時間情報にて特定される各部分通信フェーズの時間をかけて行う。
図2は、同期装置103として使用可能な同期装置201を示したブロック図である。
図2において、同期装置201は、作成部202と、同期完了情報配信部(以下、単に「配信部」と称する)203と、を含む。
作成部202は、一般的に作成手段と呼ぶことができる。
作成部202は、プロセッサ101-(0)〜101-(N-1)のそれぞれから同期要求情報104を受信すると、それら同期要求情報104内の通信時間情報に基づいて、実行時間情報を作成する。
本実施形態では、作成部202は、プロセッサ101-(0)〜101-(N-1)のすべてから同期要求情報104を受信すると、それら同期要求情報104が示す通信時間情報にて示された通信時間(第1最長時間)のうちで最長の時間(以下「第2最長時間」と称する)を特定する。作成部202は、第2最長時間を示す最長時間情報を、実行時間情報として作成する。
配信部203は、一般的に配信手段と呼ぶことができる。
配信部203は、作成部202にて作成された実行時間情報と、同期完了指示と、を示す同期完了情報105を、プロセッサ101-(0)〜101-(N-1)のそれぞれに配信する。本実施形態では、配信部203は、作成部202にて実行時間情報として作成された最長時間情報と、同期完了指示と、を示す同期完了情報105を、プロセッサ101-(0)〜101-(N-1)のそれぞれに一斉に配信する。
作成部202は、カウンタ204と、比較器205と、レジスタ206と、MUX(マルチプレクサ)207と、最大値レジスタ208と、比較器209と、を含む。
カウンタ204には、初期値としてプロセッサ数を表すNが設定される。カウンタ204は、同期装置201がプロセッサ101-(0)〜101-(N-1)のそれぞれから同期要求情報104を受信するごとに、カウント値を1ずつ減算していく。
比較器205は、カウンタ204のカウント値と0(ゼロ)とを比較する。比較器205は、カウンタ204のカウント値がゼロになると、つまり、同期装置201がプロセッサ101-(0)〜101-(N-1)のそれぞれから同期要求情報104を受信すると、配信指示を配信部203に出力する。比較器205は、配信指示を出力すると、初期状態への変更を示す初期状態指示を、カウンタ204とMUX207と最大値レジスタ208とに出力する。
なお、カウンタ204は、比較器205から初期状態指示を受け付けると、カウント値を初期値Nに設定する。
レジスタ206は、同期装置201がプロセッサ101-(0)〜101-(N-1)のそれぞれから同期要求情報104を受信するごとに、その同期要求情報104が示す通信時間情報を格納する。なお、本実施形態では、レジスタ206に格納される通信時間情報は、各プロセッサでの第1最長時間を示す。
MUX207は、初期値である0(ゼロ)と、レジスタ206に格納された通信時間情報と、を受け付ける。MUX207は、比較器205から初期状態指示を受け付けている間は、初期値0を出力し、一方、比較器205から初期状態指示を受け付けていない間は、レジスタ206内の通信時間情報を出力する。
最大値レジスタ208は、比較器205から初期状態指示を受け付けると、MUX207からの出力(この場合、初期値0)を格納する。
比較器209は、レジスタ206内の通信時間情報と、最大値レジスタ208内の情報と、を比較する。比較器209は、レジスタ206内の通信時間情報が示す時間が、最大値レジスタ208内の情報が示す時間よりも長い場合、更新指示を、最大値レジスタ208に出力する。
最大値レジスタ208は、更新指示を受け付けると、MUX207からの出力(この場合、レジスタ206内の通信時間情報)を格納する。
よって、最大値レジスタ208には、プロセッサ101-(0)〜101-(N-1)のそれぞれからの同期要求情報104が示す通信時間情報のうち、最長の時間(第2最長時間)を示す通信時間情報(以下「最大値」とも称する)が格納される。本実施形態では、この最大値が、最長時間情報として用いられる。
配信部203は、比較器205から配信指示を受け付けると、最大値レジスタ208内の通信時間情報(最大値)つまり最長時間情報を読み出し、その最長時間情報と、同期完了指示と、を示す同期完了情報105を、プロセッサ101-(0)〜101-(N-1)のそれぞれに配信する。
図3は、プロセッサ101-(0)〜101-(N-1)のいずれにも使用可能なプロセッサ301を示したブロック図である。
図3において、プロセッサ301は、処理部302と、受信装置303と、を含む。処理部302は、主記憶部304と、CPU305と、送信装置306と、を含む。送信装置306は、送信部307と、最大時間レジスタ308と、タイマ309と、を含む。
処理部302は、一般的に処理手段と呼ぶことができる。
処理部302は、同期要求情報104を同期装置103に送信する。
受信装置303は、一般的に受信手段と呼ぶことができる。
受信装置303は、同期装置103から、同期完了情報105を受信する。また、受信装置303は、プロセッサ101-(0)〜101-(N-1)の各々から自プロセッサ宛に送信されたデータを受信する。
処理部302は、同期完了情報105が受信されると、集団通信を開始し、かつ、各部分通信フェーズにおいて、部分通信フェーズにおける自プロセッサの通信時間が、同期完了情報105内の実行時間情報にて特定される当該部分通信フェーズの実行時間以下である場合、当該部分通信フェーズの期間を当該部分通信フェーズの実行時間にする。
本実施形態では、処理部302は、同期完了情報105が受信されると、集団通信を開始し、かつ、各部分通信フェーズにおいて、部分通信フェーズにおける自プロセッサの通信時間が、同期完了情報105内の最長時間情報にて示された第2最長時間以下である場合、その通信フェーズの期間を第2最長時間とする。
主記憶部304は、コンピュータにて読み取り可能な記録媒体である。主記憶部304には、種々のデータ、および、プロセッサ301の動作を規定するプログラムが記録されている。種々のデータは、例えば、集団通信で通信されるデータと、プロセッサ101-(0)〜101-(N-1)の間の距離を示す距離データと、を含む。なお、距離データは、各部分通信フェーズでの自プロセッサの通信時間が予測される際に使用される。
CPU305は、主記憶部304内のプログラムを読み取り実行することによって、プロセッサ301全体を制御する。
送信装置306は、同期要求情報104を同期装置103に送信し、また、集団通信を行う。
送信部307は、例えばCPU305からの指示に従い、パケットを用いて同期要求情報104を同期装置103に送信する。また、送信部307は、例えばCPU305からの指示に従い、部分通信フェーズごとに、ネットワーク102を介して、プロセッサ101-(0)〜101-(N-1)のうちの1つのプロセッサ宛に、パケットでデータを送信する。
最大時間レジスタ308は、各部分通信フェーズでの通信時間のうち最大の時間を示す情報(最長時間情報)を保持する。
タイマ309は、部分通信フェーズの時間(最長時間情報に示された時間)を測る。
同期装置103から送信された同期完了情報105は、受信装置303で受信される。同期完了情報105内の同期完了指示は、受信装置303によって送信部307に送られる。また、同期完了情報105内の最長時間情報は、受信装置303によって最大時間レジスタ308に格納される。
送信部307は、同期完了指示を受け取ると、最初の部分通信フェーズでの通信(送信)を開始し、最大時間レジスタ308内の値(最長時間情報に示された時間)をタイマ309にセットし、タイマ309を動かす。
タイマ309は、最長時間情報に示された時間を示すカウント値を、時間経過に伴ってカウントダウンしていく。タイマ309は、タイマ309のカウント値がゼロになると、カウント値がゼロになった旨の通知を送信部307に伝える。
送信部307は、1つの部分通信フェーズでの通信が終了した際に、タイマ309から、カウント値がゼロになった旨の通知を受けていない場合には、カウント値がゼロになった旨の通知を受け付けるまで、通信が終了した部分通信フェーズを維持し、カウント値がゼロになった旨の通知を受け付けると、次の部分通信フェーズでの通信を開始する。以下、全ての部分通信フェーズでの通信が終了するまで、同様の動作が繰り返される。
図4は、第1実施形態の動作を説明するためのフローチャートである。以下、図4を参照して第1実施形態の動作を説明する。
まず、集団通信フェーズ401に入る前の動作に関して説明を行う。なお、以下では、プロセッサ101-(0)〜101-(N-1)のそれぞれが行う動作を、「プロセッサi」が行う動作として説明する。
プロセッサi(プロセッサi 内のCPU305)は、集団通信フェーズを構成する各部分通信フェーズでの自プロセッサの送信時間(通信時間)の最大値Tiを予測する(ステップ402)。
例えば、CPU305は、部分通信フェーズごとに、その部分通信フェーズでのデータの送信先となるプロセッサまでの距離と、その部分通信フェーズで送信されるデータのサイズと、に基づいて、送信時間を計算して予測し、その最大値Ti(第1最長時間)を求める。
例えば、CPU305は、データの送信先となるプロセッサまでの距離が長いほど、送信時間が長くなり、また、送信されるデータのサイズが大きくなるほど、送信時間が長くなるように、送信時間を計算する。
なお、各部分通信フェーズでの自プロセッサの送信時間が、予めプロセッサi 内の主記憶部304に記憶されていてもよい。この場合、CPU305は、主記憶部304内の送信時間のうちの最大値Tiを特定する。
次に、CPU305は、同期命令を実行して、同期要求と、最大値Tiを示す通信時間情報と、を示した同期要求情報104を、各部分通信フェーズで行われる通信の詳細を示す通信情報と共に、送信部307に出力する。送信部307は、同期要求情報104と通信情報とを受け付けると、同期要求情報104を同期装置103に送信する(ステップ403)。
次に、CPU305は、同期装置103からの同期完了情報105を待つ(ステップ404)。
同期装置103では、作成部202は、プロセッサ101-(0)〜101-(N-1)のすべてから同期要求情報104を受信すると、それら同期要求情報104が示す通信時間情報にて示された通信時間(Ti)のうちの最長の時間(「第2最長時間」=Tmax)を特定する。作成部202は、Tmaxを示す最長時間情報を、実行時間情報として作成する。
配信部203は、作成部202にて作成された最長時間情報と、同期完了指示と、を示す同期完了情報105を、プロセッサ101-(0)〜101-(N-1)のそれぞれに配信する。
プロセッサiでは、受信装置303が同期完了情報105を受信すると、受信装置303は、同期完了情報105内のTmaxを最大時間レジスタ308に格納し(ステップ405)、同期完了情報105内の同期完了指示を送信部307に出力する。処理部302は、Tmaxが最大時間レジスタ308に格納され、送信部307が同期完了指示を受け付けると、集団通信フェーズ401に入る。
次に、集団通信フェーズ401について説明する。
まず、送信部307は、最大時間レジスタ308内のTmaxをタイマ309にセットする(ステップ406)。
続いて、送信部307は、タイマ309を動かすと共に、CPU305から受け付けた通信情報に基づいて、部分通信フェーズj(j=0〜M-1)での通信を開始する(ステップ407)。
続いて、部分通信フェーズjでの通信が完了すると、送信部307は、部分通信フェーズjでの通信が完了したとき、タイマ309の値がゼロになっているかどうかを調べる(ステップ408)。
もし、部分通信フェーズjでの通信が完了したときに、タイマ309の値がゼロになっていない場合には、送信部307は、タイマ309の値がゼロになるまで待つ(ステップ409)。
一方、部分通信フェーズjでの通信が完了したときに、タイマ309の値がすでにゼロになっていた場合には、つまり、部分通信フェーズjにおける自プロセッサの通信時間がTmaxよりも長いエラー状況が発生した場合には、送信部307は、エラー情報をCPU305に出力する(ステップ410)。
CPU305は、エラー情報を受け付けると、予測された最大値Tiが短かったためエラーが生じた旨の表示を、不図示の表示部に行わせ、最大値Tiの再設定をユーザに促す。
ステップ409でタイマ309の値がゼロなると、または、ステップ410でエラー情報が出力されると、送信部307は、通信情報を参照して、通信が終了した部分通信フェーズjが最後の部分通信フェーズM-1であるかどうかを調べる(ステップ411)。
もし、部分通信フェーズjが最後でなければ、送信部307は、処理をステップ406に戻して、通信情報に基づいて、次の部分通信フェーズを実行する。
一方、部分通信フェーズjが最後であると、送信部307は、部分通信フェーズが最後である旨の終了通知を、CPU305に出力する。CPU305は、終了通知を受け付けると、同期命令を実行して同期要求を送信部307に出力する。送信部307は、同期要求を受け付けると、同期要求を同期装置103に送信する(ステップ412)。
次に、CPU305は、同期装置103からの同期完了指示を待つ(ステップ413)。
一方、同期装置103では、作成部202は、プロセッサ101-(0)〜101-(N-1)のすべてから同期要求を受信すると、同期完了指示を、プロセッサ101-(0)〜101-(N-1)のそれぞれに配信する。
プロセッサiでは、受信装置303が、同期完了指示を受信すると、集団通信の処理が完了する。
本実施形態によれば、プロセッサ101-(0)〜101-(N-1)のそれぞれでは、処理部302は、部分通信フェーズごとに予測された部分通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間(Ti)を示す通信時間情報と、同期要求と、を同期装置103に送信する。
同期装置103では、作成部202は、プロセッサ101-(0)〜101-(N-1)のそれぞれから通信時間情報と同期要求とを受信すると、それら通信時間情報に基づいて、各部分通信フェーズの実行時間を特定するための実行時間情報を作成する。
同期装置103では、配信部203は、作成部202にて作成された実行時間情報と、同期完了指示と、をプロセッサ101-(0)〜101-(N-1)に配信する。
プロセッサ101-(0)〜101-(N-1)では、処理部302は、受信装置303が実行時間情報と同期完了指示とを受信すると、集団通信を開始し、かつ、各部分通信フェーズにおいて、部分通信フェーズにおける自プロセッサの通信時間が実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする。
したがって、本実施形態では、集団通信を開始するときにプロセッサ間の同期を取る処理(以下「プロセッサ間同期処理」と称する)が1回行われるが、2回目以降の部分通信フェーズの前では、部分通信フェーズの開始時刻を合わせるためのプロセッサ間同期処理が行われず、各部分通信フェーズでの予測通信時間に基づいて作成された実行時間に応じて、部分通信フェーズを切り換えることが可能になる。
このため、部分通信フェーズごとにプロセッサ間同期処理を実行する必要がなくなる。
その結果、各部分通信フェーズを開始する時刻を集団通信に参加している全プロセッサで合わせるために行われオーバヘッドとなっていたプロセッサ間同期処理の動作回数を少なくすることが可能になり、集団通信を高速に行うことが可能になる。
図5は、第1実施形態の並列コンピュータシステムでの集団通信の動作を説明するための図である。図5に示すように、部分通信フェーズ501間で行われていたプロセッサ間同期処理502がなくなり、集団通信を高速化することが可能になる。
また、本実施形態では、実行時間情報として、最長時間情報が用いられる。この場合、各プロセッサで予測された部分通信フェーズ単位での通信時間のうち最長の通信時間が、各部分通信フェーズの実行時間として用いられる可能性が高くなる。
この場合、1つの実行時間(第2最長時間)で、すべての部分通信フェーズの時間を規定することが可能になる。
また、本実施形態では、処理部302は、各部分通信フェーズにおいて、部分通信フェーズにおける自プロセッサの通信時間が実行時間情報にて特定される当該部分通信フェーズの実行時間よりも長いエラー状況が発生すると、エラー情報を出力する。
エラー状況は、例えば、最大値Tiの見積もりが適切でないときに生じる。このため、エラー情報の出力は、最大値Tiの見積もりが適切でないことを意味する。よって、処理部302がエラー情報を出力することによって、ユーザは、最大値Tiの見積もりの手法、さらに言えば、各部分通信フェーズでの自プロセッサの通信時間の予測の手法を見直し、最大値Tiの見積もりを適切にすることが可能になる。
(第2実施形態)
図6は、本発明の第2実施形態の並列コンピュータシステムを示したブロック図である。図6において、図1に示したものと同一構成のものには同一符号を付してある。
図6において、並列コンピュータシステムは、複数のプロセッサ101A-(0)〜101A-(N-1)と、ネットワーク102と、プロセッサ間同期装置(以下、単に「同期装置」と称する)103Aと、を含む。なお、Nは、2以上の整数である。
複数のプロセッサ101A-(0)〜101A-(N-1)は、集団通信を行う。集団通信では、複数のプロセッサ101A-(0)〜101A-(N-1)は、ネットワーク102を介して同時に通信を行う。
本実施形態では、集団通信は、複数の通信フェーズのそれぞれでプロセッサ間の通信が行われることによって実行される。本実施形態では、通信フェーズの数をM(Mは2以上の整数)とする。
各通信フェーズでは、複数のプロセッサ101A-(0)〜101A-(N-1)のうち2つ以上のプロセッサのそれぞれがネットワーク102を介して互いに異なる1つのプロセッサにデータを送信する。以下では、通信フェーズを「部分通信フェーズ」と称する。
本実施形態では、複数のプロセッサ101A-(0)〜101A-(N-1)は、集団通信として、次のような全対全通信を行う。プロセッサ101A-(0)〜101A-(N-1)のそれぞれは、各部分通信フェーズで、ネットワーク102を介して互いに異なる1つのプロセッサにデータを送信する。
このため、本実施形態で全対全通信が実行される場合、プロセッサ101A-(0)〜101A-(N-1)の数と同じ数の部分通信フェーズが必要になる。なお、集団通信は、全対全通信に限るものではない。
プロセッサ101A-(0)〜101A-(N-1)のそれぞれは、同期命令を実行すると、部分通信フェーズごとに予測された部分通信フェーズにおける自プロセッサの通信時間のそれぞれを示す個別通信時間情報(通信時間情報)と、同期要求と、を示した同期要求情報104Aを、同期装置103Aに送信する。ここで、個別通信時間情報は、各部分通信フェーズにおける自プロセッサの予測通信時間のそれぞれを示すため、複数の予測通信時間を示すことになる。なお、個別通信時間情報は、部分通信フェーズが実行される順番に、各部分通信フェーズでの予測通信時間を示す。
同期装置103Aは、すべてのプロセッサ101A-(0)〜101A-(N-1)から同期要求情報104Aを受信すると、各同期要求情報104Aに示された個別通信時間情報に基づいて、部分通信フェーズごとに、部分通信フェーズでの各プロセッサの通信時間のうち最長の時間を示す個別最長時間情報を、実行時間情報として作成する。
同期装置103Aは、個別最長時間情報(実行時間情報)を作成すると、すべてのプロセッサ101A-(0)〜101A-(N-1)に、同期完了指示と個別最長時間情報(実行時間情報)とを示した同期完了情報105Aを送信する。
プロセッサ101A-(0)〜101A-(N-1)のそれぞれは、同期完了情報105Aを受信すると、集団通信を開始し、かつ、各部分通信フェーズにおける自プロセッサの通信を、同期完了情報105Aが示す個別最長時間情報(実行時間情報)にて特定される各部分通信フェーズの時間をかけて行う。
図7は、同期装置103Aとして使用可能な同期装置701を示したブロック図である。図7において、図2に示したものと同一構成のものには同一符号を付してある。
図2において、同期装置701は、作成部702と、同期完了情報配信部(以下、単に「配信部」と称する)703と、を含む。
作成部702は、一般的に作成手段と呼ぶことができる。
作成部702は、プロセッサ101A-(0)〜101A-(N-1)のそれぞれから同期要求情報104Aを受信すると、それら同期要求情報104A内の個別通信時間情報に基づいて、個別最長時間情報を、実行時間情報として作成する。
配信部703は、一般的に配信手段と呼ぶことができる。
配信部703は、作成部702にて作成された個別最長時間情報(実行時間情報)と、同期完了指示と、を示す同期完了情報105Aを、プロセッサ101A-(0)〜101A-(N-1)のそれぞれに配信する。本実施形態では、配信部703は、作成部702にて作成された個別最長時間情報と、同期完了指示と、を示す同期完了情報105Aを、プロセッサ101A-(0)〜101A-(N-1)のそれぞれに一斉に配信する。
作成部702は、カウンタ204と、比較器205と、レジスタ206Aと、MUX207と、最大値レジスタファイル208Aと、比較器209Aと、を含む。
カウンタ204には、初期値としてプロセッサ数を表すNが設定される。カウンタ204は、同期装置701がプロセッサ101A-(0)〜101A-(N-1)のそれぞれから同期要求情報104Aを受信するごとに、カウント値を1ずつ減算していく。
比較器205は、カウンタ204のカウント値と0(ゼロ)とを比較する。比較器205は、カウンタ204のカウント値がゼロになると、つまり、同期装置701がプロセッサ101A-(0)〜101A-(N-1)のそれぞれから同期要求情報104Aを受信すると、配信指示を配信部703に出力する。比較器205は、配信指示を出力すると、初期状態指示を、カウンタ204とMUX207と最大値レジスタファイル208Aとに出力する。
なお、カウンタ204は、比較器205から初期状態指示を受け付けると、カウント値を初期値Nに設定する。
レジスタ206Aは、同期装置701がプロセッサ101A-(0)〜101A-(N-1)のそれぞれから同期要求情報104Aを受信するごとに、その同期要求情報104Aが示す個別通信時間情報を格納する。個別通信時間情報は、M個の部分通信フェーズでの予測通信時間を、部分通信フェーズが実行される順番に示す。
MUX207は、初期値である0(ゼロ)と、レジスタ206Aに格納された通信時間情報と、を受け付ける。MUX207は、比較器205から初期状態指示を受け付けている間は、初期値0を出力し、一方、比較器205から初期状態指示を受け付けていない間は、レジスタ206A内の通信時間情報を出力する。
最大値レジスタファイル208Aは、部分通信フェーズごとに情報を格納できる記憶部である。最大値レジスタファイル208Aは、比較器205から初期状態指示を受け付けると、MUX207からの出力(この場合、初期値0)を格納する。
比較器209Aは、レジスタ206A内の個別通信時間情報に示された部分通信フェーズごとの予測通信時間と、最大値レジスタファイル208A内の部分通信フェーズごとの情報とを、部分通信フェーズ単位で比較する。
比較器209Aは、レジスタ206A内の予測通信時間が最大値レジスタファイル208A内の情報よりも大きい部分通信フェーズがあると、その部分通信フェーズの情報を更新する旨の部分更新指示を、最大値レジスタファイル208Aに出力する。
最大値レジスタファイル208Aは、部分更新指示を受け付けると、最大値レジスタファイル208A内の情報のうち、部分更新指示が示す部分通信フェーズの情報を、MUX207からの出力(この場合、レジスタ206A内の予測通信時間のうち、部分更新指示が示す部分通信フェーズの予測通信時間を示す情報)に更新する。なお、最大値レジスタファイル208A内の情報は、個別最長時間情報と呼ぶことができる。作成部702は、個別最長時間情報を、実行時間情報として作成する。
配信部703は、比較器205から配信指示を受け付けると、最大値レジスタファイル208A内の個別最長時間情報を読み出し、その個別最長時間情報を、実行時間情報として、同期完了指示と共に示す同期完了情報105Aを、プロセッサ101A-(0)〜101A-(N-1)のそれぞれに配信する。
図8は、プロセッサ101A-(0)〜101A-(N-1)のいずれにも使用可能なプロセッサ801を示したブロック図である。なお、図8において、図3に示したものと同一構成のものには同一符号を付してある。
図8において、プロセッサ801は、処理部802と、受信装置803と、を含む。処理部802は、主記憶部304と、CPU305Aと、送信装置306Aと、を含む。送信装置306Aは、送信部307Aと、最大時間レジスタファイル308Aと、タイマ309Aと、を含む。
処理部802は、一般的に処理手段と呼ぶことができる。
処理部802は、同期要求情報104Aを同期装置103Aに送信する。
受信装置803は、一般的に受信手段と呼ぶことができる。
受信装置803は、同期装置103Aから、同期完了情報105Aを受信する。また、受信装置803は、プロセッサ101A-(0)〜101A-(N-1)の各々から自プロセッサ宛に送信されたデータを受信する。
主記憶部304は、コンピュータにて読み取り可能な記録媒体である。主記憶部304には、種々のデータ、および、プロセッサ801の動作を規定するプログラムが記録されている。種々のデータは、例えば、集団通信で通信されるデータと、プロセッサ101A-(0)〜101A-(N-1)の間の距離を示す距離データと、を含む。なお、距離データは、各部分通信フェーズでの自プロセッサの通信時間が予測される際に使用される。
CPU305Aは、主記憶部304内のプログラムを読み取り実行することによって、プロセッサ801全体を制御する。
送信装置306Aは、同期要求情報104Aを同期装置103Aに送信し、また、集団通信を行う。
送信部307Aは、例えばCPU305Aからの指示に従い、パケットを用いて同期要求情報104Aを同期装置103Aに送信する。また、送信部307Aは、例えばCPU305Aからの指示に従い、部分通信フェーズごとに、ネットワーク102を介して、プロセッサ101A-(0)〜101A-(N-1)のうちの1つのプロセッサ宛に、パケットでデータを送信する。
最大時間レジスタファイル308Aは、集団通信での部分通信フェーズごとに、部分通信フェーズにかかる最大の時間を示す情報(最長時間情報)を保持する。
タイマ309Aは、部分通信フェーズごとに、部分通信フェーズの時間(最長時間情報に示された時間)を測る。
同期装置103Aから送信された同期完了情報105Aは、受信装置803で受信される。同期完了情報105A内の同期完了指示は、受信装置803によって送信部307Aに送られる。また、同期完了情報105A内の個別最長時間情報は、受信装置803によって最大時間レジスタファイル308Aに格納される。
送信部307Aは、同期完了指示を受け取ると、最初の部分通信フェーズでの通信(送信)を開始し、最大時間レジスタファイル308A内の値のうち、実行される部分通信フェーズの値(最長時間情報)をタイマ309Aにセットし、タイマ309Aを動かす。
タイマ309Aは、最長時間情報に示された時間を示すカウント値を、時間経過に伴ってカウントダウンしていく。タイマ309Aは、タイマ309Aのカウント値がゼロになると、カウント値がゼロになった旨の通知を送信部307Aに伝える。
送信部307は、1つの部分通信フェーズでの通信が終了した際に、タイマ309Aから、カウント値がゼロになった旨の通知を受けていない場合には、カウント値がゼロになった旨の通知を受け付けるまで、通信が終了した部分通信フェーズを維持し、カウント値がゼロになった旨の通知を受け付けると、次の部分通信フェーズでの通信を開始する。以下、全ての部分通信フェーズでの通信が終了するまで、同様の動作が繰り返される。
図9は、第2実施形態の動作を説明するためのフローチャートである。以下、図9を参照して第2実施形態の動作を説明する。
まず、集団通信フェーズ901に入る前の動作に関して説明を行う。なお、以下では、プロセッサ101A-(0)〜101A-(N-1)のそれぞれが行う動作を、「プロセッサi」が行う動作として説明する。
プロセッサi(プロセッサi 内のCPU305A)は、集団通信フェーズを構成する部分通信フェーズjでの送信時間(通信時間)Tij(j=0〜M-1)求める(ステップ902)。
例えば、CPU305Aは、部分通信フェーズjでのデータの送信先となるプロセッサまでの距離と、部分通信フェーズjで送信されるデータのサイズと、に基づいて、送信時間Tijを計算して予測する。
例えば、CPU305Aは、データの送信先となるプロセッサまでの距離が長いほど、送信時間が長くなり、また、送信されるデータのサイズが大きくなるほど、送信時間が長くなるように、送信時間Tijを計算する。
なお、各部分通信フェーズでの自プロセッサの送信時間が、予めプロセッサi 内の主記憶部304に記憶されていてもよい。この場合、CPU305Aは、主記憶部304内の送信時間Tijを読み出す。
次に、CPU305Aは、同期命令を実行して、同期要求と、Ti0〜TiM-1を示す個別通信時間情報と、を示した同期要求情報104Aを、各部分通信フェーズで行われる通信の詳細を示す通信情報と共に、送信部307Aに出力する。送信部307Aは、同期要求情報104Aと通信情報とを受け付けると、同期要求情報104Aを同期装置103Aに送信する(ステップ903)。
次に、CPU305Aは、同期装置103Aからの同期完了情報105Aを待つ(ステップ904)。
同期装置103Aでは、作成部702は、プロセッサ101A-(0)〜101A-(N-1)のすべてから同期要求情報104Aを受信すると、それら同期要求情報104Aが示す個別通信時間情報に基づいて、各部分通信フェーズでの送信時間の最大値であるTmax0〜TmaxM-1を示す個別最長時間情報を、実行時間情報として作成する。
配信部703は、作成部702にて作成された個別最長時間情報と、同期完了指示と、を示す同期完了情報105Aを、プロセッサ101A-(0)〜101A-(N-1)のそれぞれに配信する。
プロセッサiでは、受信装置803が同期完了情報105Aを受信すると、受信装置803は、同期完了情報105A内のTmax0〜TmaxM-1を、最大時間レジスタファイル308Aに格納し(ステップ905)、同期完了情報105A内の同期完了指示を送信部307Aに出力する。処理部802は、Tmax0〜TmaxM-1が最大時間レジスタファイル308Aに格納され、送信部307Aが同期完了指示を受け付けると、集団通信フェーズ901に入る。
次に、集団通信フェーズ901について説明する。
まず、送信部307Aは、最大時間レジスタファイル308A内のTmax0〜TmaxM-1のうち、これから実行される部分通信フェーズj (j=0〜M-1)に対応する値Tmaxjを、タイマ309Aにセットする(ステップ906)。
続いて、送信部307Aは、タイマ309Aを動かすと共に、CPU305Aから受け付けた通信情報に基づいて、部分通信フェーズjの通信を開始する(ステップ907)。
続いて、部分通信フェーズjの通信が完了すると、送信部307Aは、部分通信フェーズjの通信が完了したとき、タイマ309Aの値がゼロになっているかどうかを調べる(ステップ908)。
もし、部分通信フェーズjの通信が完了したとき、タイマ309Aの値がゼロになっていない場合には、送信部307Aは、タイマ309Aの値がゼロになるまで待つ(ステップ909)。
一方、部分通信フェーズjでの通信が完了したときに、タイマ309Aの値がすでにゼロになっていた場合には、つまり、部分通信フェーズjにおける自プロセッサの通信時間がTmaxjよりも長いエラー状況が発生した場合には、送信部307Aは、エラー情報をCPU305Aに出力する(ステップ910)。
CPU305Aは、エラー情報を受け付けると、予測された最大値Tmaxjが短かったためエラーが生じた旨の表示を、不図示の表示部に行わせ、最大値Tmaxjの再設定をユーザに促す。
ステップ909でタイマ309Aの値がゼロなると、または、ステップ910でエラー情報が出力されると、送信部307Aは、通信情報を参照して、部分通信フェーズjが最後の部分通信フェーズ、すなわち、部分通信フェーズM-1であるかどうかを調べる(ステップ911)。
もし、部分通信フェーズjが最後でなければ、送信部307Aは、処理をステップ906に戻して、通信情報に基づいて次の部分通信フェーズを実行する。
一方、部分通信フェーズjが最後であると、送信部307Aは、部分通信フェーズが最後である旨の終了通知を、CPU305Aに出力する。CPU305Aは、終了通知を受け付けると、同期命令を実行して同期要求を送信部307Aに出力する。送信部307Aは、同期要求を受け付けると、同期要求を同期装置103Aに送信する(ステップ912)。
次に、CPU305Aは、同期装置103Aからの同期完了指示を待つ(ステップ913)。
一方、同期装置103Aでは、作成部802は、プロセッサ101A-(0)〜101A-(N-1)のすべてから同期要求を受信すると、同期完了指示を、プロセッサ101A-(0)〜101A-(N-1)のそれぞれに配信する。
プロセッサiでは、受信装置803は、同期完了指示を受信すると、集団通信処理が完了する。
本実施形態では、プロセッサ間同期処理は、集団通信フェーズ901に入る前に1回と、集団通信フェーズの後に1回実行されるだけになり、部分通信フェーズごとにプロセッサ間同期処理を実行する必要がない。その結果、集団通信を高速化することができる。
本実施形態では、作成部702は、各プロセッサから通信時間情報として送信された個別通信時間情報と同期要求とを受信すると、個別通信時間情報に基づいて、部分通信フェーズごとに部分通信フェーズでの各プロセッサの通信時間のうち最長の時間を示す個別最長時間情報を、実行時間情報として作成する。
処理部802は、個別最長時間情報と同期完了指示とが受信されると、集団通信を開始し、かつ、部分通信フェーズごとに、部分通信フェーズにおける自プロセッサの通信時間が個別最長時間情報にて示された当該部分通信フェーズの時間以下である場合、当該部分通信フェーズの期間を、個別最長時間情報にて示された当該部分通信フェーズの時間とする。
このため、部分通信フェーズ間での送信時間にばらつきがある場合に、部分通信フェーズごとに、部分通信フェーズでの予測最大送信時間を使うことで、集団通信をより高速化することが可能になる。
(第3実施形態)
次に、本発明の第3実施形態の並列コンピュータシステムを説明する。
第3実施形態の並列コンピュータシステムでは、第1実施形態の並列コンピュータシステム内のプロセッサ101-(0)〜101-(N-1)の代わりに、プロセッサ101B-(0)〜101B-(N-1)が使用され、同期装置103の代わりに、同期装置103Bが使用される。なお、同期装置103Bの構成は、同期装置103と同様である。
複数のプロセッサ101B-(0)〜101B-(N-1)は、集団通信を行う。集団通信では、複数のプロセッサ101B-(0)〜101B-(N-1)は、ネットワーク102を介して同時に通信を行う。
本実施形態では、集団通信は、複数の通信フェーズのそれぞれでプロセッサ間の通信が行われることによって実行される。本実施形態では、通信フェーズの数をM(Mは2以上の整数)とする。
各通信フェーズでは、複数のプロセッサ101B-(0)〜101B-(N-1)のうち2つ以上のプロセッサのそれぞれがネットワーク102を介して互いに異なる1つのプロセッサにデータを送信する。以下では、通信フェーズを「部分通信フェーズ」と称する。
本実施形態では、複数のプロセッサ101B-(0)〜101B-(N-1)は、集団通信として、次のような全対全通信を行う。プロセッサ101B-(0)〜101B-(N-1)のそれぞれは、各部分通信フェーズで、ネットワーク102を介して互いに異なる1つのプロセッサにデータを送信する。
このため、本実施形態で全対全通信が実行される場合、プロセッサ101B-(0)〜101B-(N-1)の数と同じ数の部分通信フェーズが必要になる。なお、集団通信は、全対全通信に限るものではない。
図10は、プロセッサ101B-(0)〜101B-(N-1)のいずれにも使用可能なプロセッサ1001を示したブロック図である。なお、図10において、図3に示したものと同一構成のものには同一符号を付してある。
プロセッサ1001は、処理部1002、受信装置1003と、を含む。処理部1002は、主記憶部304と、CPU305Bと、送信装置306Bと、を含む。送信装置306Bは、送信部307Bと、最大時間レジスタ308と、タイマ309と、予測ミスカウンタ1004と、を含む。
予測ミスカウンタ1004は、一般的に記憶手段と呼ぶことができる。
予測ミスカウンタ1004は、複数の部分通信フェーズで発生したエラー状況の発生回数を記憶する。
処理部1002は、一般的に処理手段と呼ぶことができる。
処理部1002は、同期要求情報104Bを同期装置103Bに送信する。
受信装置1003は、一般的に受信手段と呼ぶことができる。
受信装置1003は、同期装置103Bから、同期完了情報105Bを受信する。また、受信装置1003は、プロセッサ101B-(0)〜101B-(N-1)の各々から自プロセッサ宛に送信されたデータを受信する。
処理部1002は、同期完了情報105Bが受信されると、集団通信を開始し、かつ、各部分通信フェーズにおいて、部分通信フェーズにおける自プロセッサの通信時間が、同期完了情報105B内の実行時間情報にて特定される当該部分通信フェーズの実行時間以下である場合、当該部分通信フェーズの期間を当該部分通信フェーズの実行時間にする。
本実施形態では、処理部1002は、同期完了情報105Bが受信されると、集団通信を開始し、かつ、各部分通信フェーズにおいて、部分通信フェーズにおける自プロセッサの通信時間が、同期完了情報105B内の最長時間情報にて示された最長時間以下である場合、その通信フェーズの期間をその最長時間とする。
処理部1002は、集団通信が終了すると、予測ミスカウンタ1004のカウント値(エラー状況の発生回数を示す回数情報)と、同期要求と、を示す同期要求情報104Cを、同期装置103Bに送信する。
同期装置103Bでは、作成部702では、プロセッサ101B-(0)〜101B-(N-1)のそれぞれから同期要求情報104Cを受信すると、同期要求情報104Cにて示されるカウント値のうちの最大値を示す最大回数情報を作成する。
同期装置103Bでは、配信部703は、作成部702が作成した最大回数情報と、同期完了指示と、を示す同期完了情報105Cを、プロセッサ101B-(0)〜101B-(N-1)に送信する。
受信装置1003は、同期完了情報105Cを受信すると、同期完了情報105C内の最大回数情報を予測ミスカウンタ1004に格納し、同期完了情報105C内の同期完了指示を、送信部307Bに出力する。
処理部1002は、新たに通信時間情報を送信する状況になると、予測ミスカウンタ1004内の最大回数情報が示す回数が多くなるほど、部分通信フェーズごとに予測された部分通信フェーズにおける自プロセッサの通信時間が長くなるように、その通信時間を補正し、その補正された通信時間のうち少なくとも最長の時間を示す通信時間情報を、新たな通信時間情報として、同期要求と共に同期装置103Bに送信する。
主記憶部304は、コンピュータにて読み取り可能な記録媒体である。主記憶部304には、種々のデータ、および、プロセッサ1001の動作を規定するプログラムが記録されている。種々のデータは、例えば、集団通信で通信されるデータと、プロセッサ101B-(0)〜101B-(N-1)の間の距離を示す距離データと、を含む。なお、距離データは、各部分通信フェーズでの自プロセッサの通信時間が予測される際に使用される。
CPU305Bは、主記憶部304内のプログラムを読み取り実行することによって、プロセッサ301全体を制御する。
送信装置306Bは、同期要求情報104Bおよび104Cを別々に同期装置103に送信し、また、集団通信を行う。
送信部307Bは、例えばCPU305Bからの指示に従い、パケットを用いて、同期要求情報104Bおよび104Cを同期装置103に別々に送信する。また、送信部307Bは、例えばCPU305Bからの指示に従い、部分通信フェーズごとに、ネットワーク102を介して、プロセッサ101B-(0)〜101B-(N-1)のうちの1つのプロセッサ宛に、パケットでデータを送信する。
同期装置103Bから送信された同期完了情報105Bおよび105Cは、受信装置1003で受信される。同期完了情報105Bおよび105C内の同期完了指示は、受信装置1003によって送信部307Bに送られる。また、同期完了情報105B内の最長時間情報は、受信装置1003によって最大時間レジスタ308に格納される。また、同期完了情報105C内の最大回数情報は、受信装置1003によって予測ミスカウンタ1004に格納される。
送信部307Bは、同期完了指示を受け取ると、最初の部分通信フェーズでの通信(送信)を開始し、最大時間レジスタ308内の値(最長時間情報に示された時間)をタイマ309にセットし、タイマ309を動かす。
タイマ309は、最長時間情報に示された時間を示すカウント値を、時間経過に伴ってカウントダウンしていく。タイマ309は、タイマ309のカウント値がゼロになると、カウント値がゼロになった旨の通知を送信部307Bに伝える。
送信部307Bは、1つの部分通信フェーズでの通信が終了した際に、タイマ309から、カウント値がゼロになった旨の通知を受けていない場合には、カウント値がゼロになった旨の通知を受け付けるまで、通信が終了した部分通信フェーズを維持し、カウント値がゼロになった旨の通知を受け付けると、次の部分通信フェーズでの通信を開始する。
また、送信部307Bは、1つの部分通信フェーズでの通信が終了した際に、タイマ309から、カウント値がゼロになった旨の通知を既に受けていた場合には、予測ミスカウンタ1004のカウント値を+1する。
以下、全ての部分通信フェーズでの通信が終了するまで、同様の動作が繰り返される。
図11は、第3実施形態の動作を説明するためのフローチャートである。
まず、集団通信フェーズ1101に入る前の動作に関して説明を行う。なお、以下では、プロセッサ101B-(0)〜101B-(N-1)のそれぞれが行う動作を、「プロセッサi」が行う動作として説明する。
プロセッサi(プロセッサi 内のCPU305B)は、集団通信フェーズを構成する各部分通信フェーズでの自プロセッサの送信時間(通信時間)の最大値Tiを予測し、予測ミスカウンタ1004の値を使って最大値Tiを補正してTi’を求める(ステップ1102)。
例えば、CPU305Bは、図3に示したCPU305と同様に最大値Tiを求める。なお、各部分通信フェーズでの自プロセッサの送信時間が、予めプロセッサi 内の主記憶部304に記憶されていてもよい。この場合、CPU305Bは、主記憶部304内の送信時間のうちの最大値Tiを特定する。
続いて、CPU305Bは、例えば、予測ミスカウンタの値が0ならば、補正なし、予測ミスカウンタ1004の値が大きければ大きいほど、Tiに大きな値を加えてTi’を求める。
次に、CPU305Bは、同期命令を実行して、同期要求と、Ti’を示す通信時間情報と、を示した同期要求情報104Bを、各部分通信フェーズで行われる通信の詳細を示す通信情報と共に、送信部307Bに出力する。送信部307Bは、同期要求情報104Bと通信情報とを受け付けると、同期要求情報104Bを同期装置103Bに送信する(ステップ1103)。
次に、CPU305Bは、同期装置103Bからの同期完了情報105Bを待つ(ステップ1104)。
同期装置103Bでは、作成部202は、プロセッサ101B-(0)〜101B-(N-1)のすべてから同期要求情報104Bを受信すると、それら同期要求情報104Bが示す通信時間情報にて示されたTi’のうちで最長の時間(T’max)を特定する。作成部202は、T’maxを示す最長時間情報を、実行時間情報として作成する。
配信部203は、作成部202にて作成された最長時間情報(T’max)と、同期完了指示と、を示す同期完了情報105Bを、プロセッサ101B-(0)〜101B-(N-1)のそれぞれに配信する。
プロセッサiでは、受信装置1003が同期完了情報105Bを受信すると、受信装置1003は、同期完了情報105B内のT’maxを最大時間レジスタ308に格納し、予測ミスカウンタ1004の値を0にし(ステップ1105)、同期完了情報105B内の同期完了指示を送信部307Bに出力する。処理部1002は、T’max が最大時間レジスタ308に格納され、予測ミスカウンタ1004の値が0にされ、送信部307Bが同期完了指示を受け付けると、集団通信フェーズ1101に入る。
次に、集団通信フェーズ1101について説明する。
まず、送信部307Bは、最大時間レジスタ308内の値T’maxをタイマ309にセットする(ステップ1106)。
続いて、送信部307Bは、タイマ309を動かすと共に、CPU305Bから受け付けた通信情報に基づいて、部分通信フェーズj(j=0〜M-1)での通信を開始する(ステップ1107)。
続いて、部分通信フェーズjでの通信が完了すると、送信部307Bは、部分通信フェーズjでの通信が完了したとき、タイマ309の値がゼロになっているかどうかを調べる(ステップ1108)。
もし、部分通信フェーズjでの通信が完了したときに、タイマ309の値がゼロになっていない場合には、送信部307Bは、タイマ309の値がゼロになるまで待つ(ステップ1109)。
一方、部分通信フェーズjでの通信が完了したときに、タイマ309の値がすでにゼロになっていた場合には、つまり、部分通信フェーズjにおける自プロセッサの通信時間がT’maxよりも長いエラー状況が発生した場合には、送信部307Bは、エラー情報をCPU305Bに出力し(ステップ1110)、予測ミスカウンタ1004の値を+1する(ステップ1111)。
CPU305は、エラー情報を受け付けると、予測された最大値Ti’が短かったためエラーが生じた旨の表示を、不図示の表示部に行わせる。
ステップ1109でタイマ309の値がゼロなると、または、ステップ1111で予測ミスカウンタ1004の値が+1されると、送信部307Bは、通信情報を参照して、通信が終了した部分通信フェーズjが最後の部分通信フェーズM-1であるかどうかを調べる(ステップ1112)。
もし、部分通信フェーズjが最後でなければ、送信部307Bは、処理をステップ1106に戻して、通信情報に基づいて、次の部分通信フェーズを実行する。
一方、部分通信フェーズjが最後であると、送信部307Bは、部分通信フェーズが最後である旨の終了通知を、CPU305Bに出力する。CPU305Bは、終了通知を受け付けると、同期命令を実行して、同期要求と、予測ミスカウンタ1004のカウント値と、を示す同期要求情報104Cを、送信部307Bに出力する。送信部307Bは、同期要求情報104Cを受け付けると、同期要求情報104Cを同期装置103Bに送信する(ステップ1113)。
次に、CPU305Bは、同期装置103Bからの同期完了指示105Cを待つ(ステップ1114)。
一方、同期装置103Bでは、作成部202は、プロセッサ101B-(0)〜101B-(N-1)のすべてから同期完了指示105Cを受信すると、それら同期完了指示105C内の予測ミスカウンタ1004のカウント値のうちの最大値を示す最大回数情報を作成する。
同期装置103Bでは、配信部703は、作成部702が作成した最大回数情報と、同期完了指示と、を示す同期完了情報105Cを、プロセッサ101B-(0)〜101B-(N-1)に送信する。
プロセッサiでは、受信装置1103は、同期完了情報105Cを受信すると、同期完了情報105C内の最大回数情報を予測ミスカウンタ1004にセットし(ステップ1115)、集団通信の処理が完了する。
本実施形態では、プロセッサ間同期処理は、集団通信フェーズ1101に入る前に1回と、集団通信フェーズの後に1回実行されるだけになり、部分通信フェーズごとにプロセッサ間同期処理を実行する必要がない。その結果、集団通信を高速化することができる。
本実施形態では、予測された部分通信フェーズの通信時間の最大値よりも、部分通信フェーズでの実際の通信時間が長かった場合には、次回の集団通信での部分通信フェーズの通信時間の最大値Tiを予測ミスカウンタ308の値により補正することで、Ti’が求められる。そして、Ti’に基づいてT’maxが設定される。このため、予測された部分通信フェーズの通信時間を自動的に適切な値に調整することが可能となる。
なお、第3実施形態が、第1実施形態に新たな機能(予測ミスカウンタ1004を用いて、各部分通信フェーズでの予測通信時間を補正する機能)を追加したものとして示されたが、第2実施形態に、第3実施形態の機能(予測ミスカウンタ1004を用いて、各部分通信フェーズでの予測通信時間を補正する機能)が追加されてもよい。
以上説明した各実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
(付記1)
複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムにて、前記複数のプロセッサの1つとして使用されるプロセッサであって、
前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する処理手段と、
前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信手段と、を含み、
前記処理手段は、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする、プロセッサ。
(付記2)
付記1に記載のプロセッサにおいて、
前記受信手段は、前記実行時間情報として配信された、前記各プロセッサからの通信時間情報にて示された時間のうち最長の時間を示す最長時間情と、前記同期完了指示と、を受信し、
前記処理手段は、前記最長時間情報と前記同期完了指示とが受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記最長時間情報にて示された時間以下である場合、当該通信フェーズの期間を当該最長時間情報にて示された時間とする、プロセッサ。
(付記3)
各通信フェーズで複数のプロセッサのうちの2つ以上のプロセッサのそれぞれがネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムと接続される同期装置であって、
各プロセッサから、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成手段と、
前記作成手段にて作成された実行時間情報と、同期完了指示と、を前記複数のプロセッサに配信する配信手段と、を含む同期装置。
(付記4)
付記3に記載の同期装置において、
前記作成手段は、前記各プロセッサからの通信時間情報にて示された時間のうち最長の時間を示す最長時間情報を、前記実行時間情報として作成し、
前記配信手段は、前記最長時間情報を、前記実行時間情報として、前記同期完了指示と共に前記複数のプロセッサに配信する、同期装置。
(付記5)
複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムでの通信方法であって、
各プロセッサが、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する送信ステップと、
前記同期装置が、前記各プロセッサから前記通信時間情報と前記同期要求とを受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成ステップと、
前記同期装置が、前記実行時間情報と同期完了指示とを前記複数のプロセッサに配信する配信ステップと、
前記各プロセッサが、前記同期装置から、前記実行時間情報と前記同期完了指示とを受信する受信ステップと、
前記各プロセッサが、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする制御ステップと、を含む通信方法。
(付記6)
付記5に記載の通信方法において、
前記作成ステップでは、前記各プロセッサからの通信時間情報にて示された時間のうち最長の時間を示す最長時間情報を、前記実行時間情報として作成し、
前記配信ステップでは、前記最長時間情報を、前記実行時間情報として、前記同期完了指示と共に前記複数のプロセッサに配信し、
前記受信ステップでは、前記実行時間情報として配信された最長時間情報と、前記同期完了指示と、を受信し、
前記制御ステップでは、前記最長時間情報と前記同期完了指示とが受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記最長時間情報にて示された時間以下である場合、当該通信フェーズの期間を当該最長時間情報にて示された時間とする、通信方法。
(付記7)
複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムにて、前記複数のプロセッサの1つとして使用されるプロセッサでの通信方法であって、
前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する送信ステップと、
前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信ステップと、
前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする制御ステップと、を含む通信方法。
(付記8)
付記7に記載の通信方法において、
前記受信ステップでは、前記実行時間情報として配信された、前記各プロセッサからの通信時間情報にて示された時間のうち最長の時間を示す最長時間情と、前記同期完了指示と、を受信し、
前記制御ステップでは、前記最長時間情報と前記同期完了指示とが受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記最長時間情報にて示された時間以下である場合、当該通信フェーズの期間を当該最長時間情報にて示された時間とする、通信方法。
(付記9)
各通信フェーズで複数のプロセッサのうちの2つ以上のプロセッサのそれぞれがネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムと接続される同期装置での通信支援方法であって、
各プロセッサから、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成ステップと、
前記実行時間情報と、同期完了指示と、を前記複数のプロセッサに配信する配信ステップと、を含む通信支援方法。
(付記10)
付記9に記載の通信支援方法において、
前記作成ステップでは、前記各プロセッサからの通信時間情報にて示された時間のうち最長の時間を示す最長時間情報を、前記実行時間情報として作成し、
前記配信ステップでは、前記最長時間情報を、前記実行時間情報として、前記同期完了指示と共に前記複数のプロセッサに配信する、通信支援方法。
101、101A、101B、301、801、1001 プロセッサ
102 プロセッサ間ネットワーク
103、103A、201、701 プロセッサ間同期装置
202、702 作成部
203、703 同期完了情報配信部
204 カウンタ
205 比較器
206、206A レジスタ
207 MUX
208 最大値レジスタ
208A 最大値レジスタファイル
209、209A 比較器
302、802、1002 処理部
303、803、1003 受信装置
304 主記憶部
305、305A、305B CPU
306、306A、306B 送信装置
307、307A、307B 送信部
308 最大時間レジスタ
308A 最大時間レジスタファイル
309、309A タイマ
1004 予測ミスカウンタ

Claims (10)

  1. 複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムであって、
    各プロセッサは、
    前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する処理手段と、
    前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信手段と、を含み、
    前記処理手段は、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とし、
    前記同期装置は、
    前記各プロセッサから前記通信時間情報と前記同期要求とを受信すると、当該通信時間情報に基づいて前記実行時間情報を作成する作成手段と、
    前記作成手段にて作成された実行時間情報と、前記同期完了指示と、を前記複数のプロセッサに配信する配信手段と、を含む、並列コンピュータシステム。
  2. 請求項1に記載の並列コンピュータシステムにおいて、
    前記作成手段は、前記各プロセッサからの通信時間情報にて示された時間のうち最長の時間を示す最長時間情報を、前記実行時間情報として作成し、
    前記配信手段は、前記最長時間情報を、前記実行時間情報として、前記同期完了指示と共に前記複数のプロセッサに配信し、
    前記受信手段は、前記実行時間情報として配信された最長時間情報と、前記同期完了指示と、を受信し、
    前記処理手段は、前記最長時間情報と前記同期完了指示とが受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記最長時間情報にて示された時間以下である場合、当該通信フェーズの期間を当該最長時間情報にて示された時間とする、並列コンピュータシステム。
  3. 請求項1に記載の並列コンピュータシステムにおいて、
    前記処理手段は、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間を示す個別通信時間情報を、前記通信時間情報として、前記同期要求と共に前記同期装置に送信し、
    前記作成手段は、前記各プロセッサから前記通信時間情報として送信された個別通信時間情報と前記同期要求とを受信すると、前記通信フェーズごとに、前記個別通信時間情報に示された当該通信フェーズでの各プロセッサの通信時間のうち最長の時間を示す個別最長時間情報を、前記実行時間情報として作成し、
    前記配信手段は、前記個別最長時間情報を、前記実行時間情報として、前記同期完了指示と共に前記複数のプロセッサに配信し、
    前記受信手段は、前記実行時間情報として配信された個別最長時間情報と前記同期完了指示とを受信し、
    前記処理手段は、前記個別最長時間情報と前記同期完了指示とが受信されると、前記集団通信を開始し、かつ、前記通信フェーズごとに、当該通信フェーズにおける自プロセッサの通信時間が前記個別最長時間情報にて示された当該通信フェーズの時間以下である場合、当該通信フェーズの期間を、前記個別最長時間情報にて示された当該通信フェーズの時間とする、並列コンピュータシステム。
  4. 請求項1から3のいずれか1項に記載の並列コンピュータシステムにおいて、
    前記処理手段は、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間よりも長いエラー状況が発生すると、エラー情報を出力する、並列コンピュータシステム。
  5. 請求項4に記載の並列コンピュータシステムにおいて、
    前記処理手段は、前記複数の通信フェーズで発生したエラー状況の発生回数を記憶する記憶手段を含み、前記集団通信が終了すると、前記記憶手段内のエラー状況の発生回数を示す回数情報を、前記同期装置に送信し、
    前記作成手段は、前記各プロセッサから前記回数情報を受信すると、当該回数情報にて示されるエラー状況の発生回数のうち最大の発生回数を示す最大回数情報を作成し、
    前記配信手段は、前記作成手段にて作成された最大回数情報を、前記複数のプロセッサに配信し、
    前記受信手段は、前記最大回数情報を受信し、
    前記処理手段は、新たに前記通信時間情報を送信する状況になると、前記最大回数情報が示す回数が多くなるほど、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間が長くなるように、当該通信時間を補正し、当該補正された通信時間のうち少なくとも最長の時間を示す通信時間情報を、前記新たな通信時間情報として、前記同期要求と共に前記同期装置に送信する、並列コンピュータシステム。
  6. 複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムにて、前記複数のプロセッサの1つとして使用されるプロセッサであって、
    前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する処理手段と、
    前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信手段と、を含み、
    前記処理手段は、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする、プロセッサ。
  7. 各通信フェーズで複数のプロセッサのうちの2つ以上のプロセッサのそれぞれがネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムと接続される同期装置であって、
    各プロセッサから、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成手段と、
    前記作成手段にて作成された実行時間情報と、同期完了指示と、を前記複数のプロセッサに配信する配信手段と、を含む同期装置。
  8. 複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムでの通信方法であって、
    各プロセッサが、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する送信ステップと、
    前記同期装置が、前記各プロセッサから前記通信時間情報と前記同期要求とを受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成ステップと、
    前記同期装置が、前記実行時間情報と同期完了指示とを前記複数のプロセッサに配信する配信ステップと、
    前記各プロセッサが、前記同期装置から、前記実行時間情報と前記同期完了指示とを受信する受信ステップと、
    前記各プロセッサが、前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする制御ステップと、を含む通信方法。
  9. 複数のプロセッサと、ネットワークと、前記プロセッサ間の同期をとる同期装置と、を有し、各通信フェーズで前記複数のプロセッサのうちの2つ以上のプロセッサのそれぞれが前記ネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムにて、前記複数のプロセッサの1つとして使用されるプロセッサでの通信方法であって、
    前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を前記同期装置に送信する送信ステップと、
    前記同期装置から、各通信フェーズの実行時間を特定するための実行時間情報と、同期完了指示と、を受信する受信ステップと、
    前記実行時間情報と前記同期完了指示が受信されると、前記集団通信を開始し、かつ、前記各通信フェーズにおいて、当該通信フェーズにおける自プロセッサの通信時間が前記実行時間情報にて特定される当該通信フェーズの実行時間以下である場合、当該通信フェーズの期間を当該通信フェーズの実行時間とする制御ステップと、を含む通信方法。
  10. 各通信フェーズで複数のプロセッサのうちの2つ以上のプロセッサのそれぞれがネットワークを介して互いに異なる1つのプロセッサにデータを送信する集団通信を行う並列コンピュータシステムと接続される同期装置での通信支援方法であって、
    各プロセッサから、前記通信フェーズごとに予測された当該通信フェーズにおける自プロセッサの通信時間のうち少なくとも最長の時間を示す通信時間情報と、同期要求と、を受信すると、当該通信時間情報に基づいて、各通信フェーズの実行時間を特定するための実行時間情報を作成する作成ステップと、
    前記実行時間情報と、同期完了指示と、を前記複数のプロセッサに配信する配信ステップと、を含む通信支援方法。
JP2010002107A 2010-01-07 2010-01-07 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法 Active JP5493880B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010002107A JP5493880B2 (ja) 2010-01-07 2010-01-07 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010002107A JP5493880B2 (ja) 2010-01-07 2010-01-07 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法

Publications (2)

Publication Number Publication Date
JP2011141751A true JP2011141751A (ja) 2011-07-21
JP5493880B2 JP5493880B2 (ja) 2014-05-14

Family

ID=44457542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010002107A Active JP5493880B2 (ja) 2010-01-07 2010-01-07 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法

Country Status (1)

Country Link
JP (1) JP5493880B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150092094A (ko) 2012-12-04 2015-08-12 일본전자재료(주) 전기적 접촉자

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01126040A (ja) * 1987-11-11 1989-05-18 Nec Corp 画像通信方法
JPH05151181A (ja) * 1991-11-26 1993-06-18 Fujitsu Ltd 並列計算機およびその全対全通信方法
JP2000200255A (ja) * 1999-01-07 2000-07-18 Hitachi Ltd プロセッサ間の同期化方法及び同期回路
JP2008030691A (ja) * 2006-07-31 2008-02-14 Denso Corp 車両用制御システムのメッセージ管理装置及び車両用制御システム
WO2009028231A1 (ja) * 2007-08-24 2009-03-05 Nec Corporation 通信方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01126040A (ja) * 1987-11-11 1989-05-18 Nec Corp 画像通信方法
JPH05151181A (ja) * 1991-11-26 1993-06-18 Fujitsu Ltd 並列計算機およびその全対全通信方法
JP2000200255A (ja) * 1999-01-07 2000-07-18 Hitachi Ltd プロセッサ間の同期化方法及び同期回路
JP2008030691A (ja) * 2006-07-31 2008-02-14 Denso Corp 車両用制御システムのメッセージ管理装置及び車両用制御システム
WO2009028231A1 (ja) * 2007-08-24 2009-03-05 Nec Corporation 通信方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150092094A (ko) 2012-12-04 2015-08-12 일본전자재료(주) 전기적 접촉자

Also Published As

Publication number Publication date
JP5493880B2 (ja) 2014-05-14

Similar Documents

Publication Publication Date Title
JP5430469B2 (ja) マスタ装置及びスレーブ装置及び時刻同期方法及びプログラム
US8654798B2 (en) Barrier synchronization apparatus, barrier synchronization system, and barrier synchronization method
JP5456202B2 (ja) マスタ装置及びスレーブ装置及び時刻同期方法
US8572615B2 (en) Parallel computing system, synchronization device, and control method of parallel computing system
US8868862B2 (en) Method and apparatus for synchronization in primary-backup replication schemes
JP5176230B2 (ja) 計算機システム、計算機制御方法及び計算機制御プログラム
JP2012128809A (ja) 並列計算機システム、同期装置、並列計算機システムの制御方法
JP2009151629A (ja) ノードシステム、サーバ切換え方法、サーバ装置、データ引き継ぎ方法、およびプログラム
US11336510B2 (en) Information processing system, information processing method, and non-transitory recording medium
US20210152322A1 (en) Communication apparatus, communication system, communication method, and computer readable medium
JP5493880B2 (ja) 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
JP2011097124A (ja) 車載ネットワーク装置
TW201731265A (zh) 時間同步從裝置及通訊控制方法
JP4605191B2 (ja) 割込み処理同期装置、割込み処理同期方法及びプログラム
JP5212743B2 (ja) 通信方法
JPH08263397A (ja) ネットワークの時刻同期方式
US9342473B2 (en) Parallel computer system, crossbar switch, and method of controlling parallel computer system according to selective transmission of data via ports of the crossbar switch
CN111193570A (zh) 指令执行的方法、装置、系统、介质和电子设备
CN112889031A (zh) 计算系统中数据处理的同步
EP2450795A1 (en) Computer device, parallel computer system, and synchronization program
JP7207133B2 (ja) 情報処理装置、同期装置及び情報処理装置の制御方法
US20240250913A1 (en) Method of adjusting scheduling cycle and network device
JP2010108407A (ja) 同期メッセージ発行装置、同期メッセージ発行システム、同期メッセージ発行方法および同期メッセージ発行プログラム
JP6817730B2 (ja) データ送信装置、メッセージ生成装置、データ送信システム、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140114

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140217

R150 Certificate of patent or registration of utility model

Ref document number: 5493880

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150