(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129395
(43)【公開日】2024-09-27
(54)【発明の名称】MPI通信スリープ時間決定装置、MPI通信装置、MPI通信スリープ時間決定方法、プログラム及び記録媒体
(51)【国際特許分類】
G06F 9/54 20060101AFI20240919BHJP
【FI】
G06F9/54 Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023038572
(22)【出願日】2023-03-13
(71)【出願人】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100115255
【弁理士】
【氏名又は名称】辻丸 光一郎
(74)【代理人】
【識別番号】100201732
【弁理士】
【氏名又は名称】松縄 正登
(74)【代理人】
【識別番号】100154081
【弁理士】
【氏名又は名称】伊佐治 創
(74)【代理人】
【識別番号】100227019
【弁理士】
【氏名又は名称】安 修央
(72)【発明者】
【氏名】石原 諒大
(57)【要約】
【課題】 本発明は、MPI通信において最適なスリープ時間を決定できるスリープ時間決定装置の提供を目的とする。
【解決手段】 本発明のMPI通信スリープ時間決定装置10は、記録実行部11、MPI通信時間算出部12及びスリープ時間決定部13を含み、前記記録実行部11は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報及び前記MPI通信の待ち状態の解除時刻を記録し、前記MPI通信時間算出部12は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して記録し、前記スリープ時間決定部13は、前記プロセスによる新規MPI手続き情報が、記録されている前記MPI手続き情報と一致するか否かを判断し、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
記録実行部、MPI通信時間算出部、及び、スリープ時間決定部を含み、
前記記録実行部は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出部は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定部は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定する、
MPI通信スリープ時間決定装置。
【請求項2】
前記スリープ時間決定部は、前記一致した前記レコードが複数存在する場合、前記複数の前記レコードの前記MPI通信時間の統計値に基づき、前記スリープ時間を決定する、
請求項1記載のMPI通信スリープ時間決定装置。
【請求項3】
前記スリープ時間決定部は、前記一致した前記レコードの前記MPI通信時間、及び、補正係数に基づき、前記スリープ時間を決定する、
請求項1記載のMPI通信スリープ時間決定装置。
【請求項4】
前記補正係数は、予め規定したリスク回避係数、及び、前記新規MPI手続きのデータサイズに対する前記一致したレコードのデータサイズの比の少なくとも一方であり、
前記スリープ時間決定部は、前記一致した前記レコードのMPI通信時間に前記補正係数を乗算して前記スリープ時間を決定する、
請求項3記載のMPI通信スリープ時間決定装置。
【請求項5】
前記記録実行部は、前記MPI通信履歴記録部において、前記MPI手続き情報の一部又は全部が一致する前記レコードが、予め規定した基準数を超える場合、前記基準数以内になるように、前記複数の前記レコードにおいて、記録時刻が古い順番に前記レコードを削除する、
請求項1から4のいずれか一項に記載のMPI通信スリープ時間決定装置。
【請求項6】
請求項1から4のいずれか一項に記載のMPI通信スリープ時間決定装置を含むMPI通信装置。
【請求項7】
記録実行工程、MPI通信時間算出工程、及び、スリープ時間決定工程を含み、
前記記録実行工程は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出工程は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定工程は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
MPI通信スリープ時間決定方法。
【請求項8】
前記スリープ時間決定工程は、前記一致した前記レコードが複数存在する場合、前記複数の前記レコードの前記MPI通信時間の統計値に基づき、前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
請求項7記載のMPI通信スリープ時間決定方法。
【請求項9】
前記スリープ時間決定工程は、前記一致した前記レコードの前記MPI通信時間、及び、補正係数に基づき、前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
請求項7記載のMPI通信スリープ時間決定方法。
【請求項10】
前記補正係数は、予め規定したリスク回避係数、及び、前記新規MPI手続きのデータサイズに対する前記一致したレコードのデータサイズの比の少なくとも一方であり、
前記スリープ時間決定工程は、前記一致した前記レコードのMPI通信時間に前記補正係数を乗算して前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
請求項9記載のMPI通信スリープ時間決定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、MPI通信スリープ時間決定装置、MPI通信装置、MPI通信スリープ時間決定方法、プログラム及び記録媒体に関する。
【背景技術】
【0002】
コンピュータを複数台繋げて処理を行う場合、コンピュータ間のデータのやり取りに、MPI通信が利用されている。MPI通信によるデータ送信中、ビジーウェイト状態となり、送信処理のためにCPUが占有されるという問題がある。この問題の解決方法として、スリープ状態にすることによってCPUを開放する方法があるが、データ送信が完了した後までスリープ状態が続くと、結果的にコンピュータの効率が悪くなるという問題がある。そこで、過去の通信時間の実績に基づきビジーウェイト状態とスリープ状態とを選択するシステムが公開されている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のシステムにおいては、スリープ状態にした方が有利な場合には、スリープ状態を選択すること可能である。しかし、前記システムは、適切なスリープ時間を算出するものではない。
【0005】
そこで、本発明は、MPI通信において最適なスリープ時間を決定できるスリープ時間決定装置の提供を目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するために、本発明のMPI通信スリープ時間決定装置は、
記録実行部、MPI通信時間算出部、及び、スリープ時間決定部を含み、
前記記録実行部は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出部は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定部は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定する。
【0007】
本発明のMPI通信スリープ時間決定方法は、
記録実行工程、MPI通信時間算出工程、及び、スリープ時間決定工程を含み、
前記記録実行工程は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出工程は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定工程は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定し、
前記各工程が、コンピュータにより実行される。
【0008】
本発明のプログラムは、
記録実行手順、MPI通信時間算出手順、及び、スリープ時間決定手順を含み、
前記記録実行手順は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出手順は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定手順は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムである。
【0009】
本発明の記録媒体は、
記録実行手順、MPI通信時間算出手順、及び、スリープ時間決定手順を含み、
前記記録実行手順は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出手順は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定手順は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0010】
本発明によれば、効率的なMPI通信が可能となる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態1のMPI通信スリープ時間決定装置の一例の構成を示すブロック図である。
【
図2】
図2は、実施形態1のMPI通信スリープ時間決定装置のハードウェア構成の一例を示すブロック図である。
【
図3】
図3は、実施形態1のMPI通信スリープ時間決定装置における処理の一例を示すフローチャートである。
【
図4】
図4は、実施形態1のMPI通信スリープ時間決定装置におけるスリープ時間決定の一例を説明する参考図である。
【発明を実施するための形態】
【0012】
本発明の実施形態について図を用いて説明する。本発明は、以下の実施形態には限定されない。以下の各図において、同一部分には、同一符号を付している。また、各実施形態の説明は、特に言及がない限り、互いの説明を援用でき、各実施形態の構成は、特に言及がない限り、組合せ可能である。
【0013】
[実施形態1]
図1は、本実施形態のMPI通信スリープ時間決定装置10(以下「本装置」ともいう。)の一例の構成を示すブロック図である。
図1に示すように、本装置10は、記録実行部11、MPI通信時間算出部12及びスリープ時間決定部13を含む。また、本装置10は、図示していないが、例えば、入力部、出力部、表示部及び/又は記憶部を含んでもよい。なお、前記記憶部は、後述のMPI通信履歴記録部として機能してもよい。
【0014】
本装置10は、例えば、前記各部を含む1つの装置でもよいし、前記各部が、通信回線網を介して接続可能な装置でもよい。また、本装置10は、前記通信回線網を介して、後述する外部装置と接続可能である。前記通信回線網は、特に制限されず、公知のネットワークを使用でき、例えば、有線でも無線でもよい。前記通信回線網は、例えば、インターネット回線、WWW(World Wide Web)、電話回線、LAN(Local Area Network)、SAN(Storage Area Network)、DTN(Delay Tolerant Networking)、LPWA(Low Power Wide Area)、L5G(ローカル5G)、等が挙げられる。無線通信としては、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ローカル5G、LPWA等が挙げられる。前記無線通信としては、各装置が直接通信する形態(Ad Hoc通信)、インフラストラクチャ(infrastructure通信)、アクセスポイントを介した間接通信等であってもよい。本装置10は、例えば、システムのサーバに組み込まれていてもよい。また、本装置10は、例えば、本発明のプログラムがインストールされたパーソナルコンピュータ(PC、例えば、デスクトップ型、ノート型)、スマートフォン、タブレット端末等であってもよい。さらに、本装置10は、例えば、前記各部のうち少なくとも一つがサーバ上にあり、その他の前記各部が端末上にあるような、クラウドコンピューティングやエッジコンピューティング等の形態であってもよい。
【0015】
図2に、本装置10のハードウェア構成のブロック図を例示する。本装置10は、例えば、中央処理装置(CPU、GPU等)101、メモリ102、バス103、記憶装置104、入力装置105、出力装置106、通信デバイス107等を含む。本装置10の各部は、それぞれのインタフェース(I/F)により、バス103を介して相互に接続されている。
【0016】
中央処理装置101は、コントローラ(システムコントローラ、I/Oコントローラ等)等により、他の構成と連携動作し、本装置10の全体の制御を担う。本装置10において、中央処理装置101により、例えば、本発明のプログラムやその他のプログラムが実行され、また、各種情報の読み込みや書き込みが行われる。具体的には、例えば、中央処理装置101が、記録実行部11、MPI通信時間算出部12及びスリープ時間決定部13として機能する。本装置10が、前記出力部を含む場合、中央処理装置101は、前記出力部として機能してもよい。また、後述のMPI通信履歴記録部として機能してもよい。本装置10は、演算装置として、CPU、GPU(Graphics Processing Unit)、APU(Accelerated Processing Unit)等の他の演算装置を備えてもよいし、CPUとこれらとの組合せを備えてもよい。
【0017】
バス103は、例えば、外部装置とも接続できる。前記外部装置は、例えば、ユーザの端末、外部記憶装置(外部データベース等)、プリンタ、外部入力装置、外部表示装置、外部撮像装置等が挙げられる。本装置10は、例えば、バス103に接続された通信デバイス107により、外部ネットワーク(前記通信回線網)に接続でき、外部ネットワークを介して、他の装置と接続することもできる。
【0018】
メモリ102は、例えば、メインメモリ(主記憶装置)が挙げられる。中央処理装置101が処理を行う際には、例えば、後述する記憶装置104に記憶されている本発明のプログラム等の種々の動作プログラムを、メモリ102が読み込み、中央処理装置101は、メモリ102からデータを受け取って、プログラムを実行する。前記メインメモリは、例えば、RAM(ランダムアクセスメモリ)である。また、メモリ102は、例えば、ROM(読み出し専用メモリ)であってもよい。
【0019】
記憶装置104は、例えば、前記メインメモリ(主記憶装置)に対して、いわゆる補助記憶装置ともいう。前述のように、記憶装置104には、本発明のプログラムを含む動作プログラムが格納されている。記憶装置104は、例えば、記録媒体と、記録媒体に読み書きするドライブとの組合せであってもよい。前記記録媒体は、特に制限されず、例えば、内蔵型でも外付け型でもよく、HD(ハードディスク)、CD-ROM、CD-R、CD-RW、MO、DVD、フラッシュメモリー、メモリーカード等が挙げられる。記憶装置104は、例えば、記録媒体とドライブとが一体化されたハードディスクドライブ(HDD)、及びソリッドステートドライブ(SSD)であってもよい。本装置10が前記記憶部を含む場合、例えば、記憶装置104は、前記記憶部として機能する。前記記憶部は、例えば、後述するMPI通信待ち状態の開始時刻、MPI手続き情報、及びMPI通信の待ち状態の解除時刻等を記憶できる。
【0020】
本装置10において、メモリ102及び記憶装置104は、ログ情報、外部データベース(図示せず)や外部の装置から取得した情報、本装置10によって生成した情報、本装置10が処理を実行する際に用いる情報等の種々の情報を記憶することも可能である。この場合、メモリ102及び記憶装置104は、例えば、前記MPI通信待ち状態の開始時刻等を記憶していてもよい。なお、少なくとも一部の情報は、例えば、メモリ102及び記憶装置104以外の外部サーバに記憶されていてもよいし、複数の端末にブロックチェーン技術等を用いて分散して記憶されていてもよい。
【0021】
本装置10は、例えば、さらに、入力装置105、出力装置106を備える。入力装置105は、例えば、タッチパネル、トラックパッド、マウス等のポインティングデバイス;キーボード;カメラ、スキャナ等の撮像手段;ICカードリーダ、磁気カードリーダ等のカードリーダ;マイク等の音声入力手段;等が挙げられる。出力装置106は、例えば、LEDディスプレー、液晶ディスプレー等の表示装置;スピーカ等の音声出力装置;プリンタ;等が挙げられる。本実施形態1において、入力装置105と出力装置106とは、別個に構成されているが、入力装置105と出力装置106とは、タッチパネルディスプレーのように、一体として構成されてもよい。
【0022】
つぎに、本実施形態のMPI通信スリープ時間決定方法の一例を、
図3のフローチャートに基づき説明する。本実施形態のMPI通信スリープ時間決定方法は、例えば、
図1又は
図2の本装置10を用いて、次のように実施する。なお、本実施形態のMPI通信スリープ時間決定方法は、
図1又は
図2の本装置10の使用には限定されない。
【0023】
MPI(Message Passing Interface)は、並列コンピューティングを利用するための標準規格である。MPIは、複数のコンピュータ間で通信をするために利用される。MPIによって通信をすると、通信中、ビジーウェイト状態として、通信処理にCPUが占有される。通信中にCPUを開放して、CPUを有効活用するためには、スリープ状態にするという方法がある。ただし、スリープ中は、データ送信に係るデータ到着後の処理等が行えないため、データ受信後にスリープ状態になっている場合、結果として、MPIプログラムの性能に悪影響を与えることになる。そこで、効率的に通信処理を行うためには、スリープ状態の時間を適切な長さに調整する必要がある。なお、以下、本発明を利用したMPI通信スリープ時間決定方法について説明するが、その前提として、送信側と受信側は、通信処理を行う前にハンドシェイクを行って、同期をとっていることが好ましい。このようにすることで、全く同じ内容の通信にも関わらず、通信待ちの時間が大きく変化するということはなくなる。また、MPI手続き実行後のデータ転送そのものは、専用のハードウェアが実行することが好ましい。さらに、MPI手続きは、同時に複数実行しないことが好ましい。つまり、実行したMPI手続きの送信処理あるいは受信処理が完了するまで、他のMPI手続きを実行しないことが好ましい。
【0024】
まず、記録実行部11は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録する(S1、記録実行工程)。前記プロセスは、処理を実行しているプログラムである。前記MPI手続き情報(以下、「パターン」ともいう。)は、例えば、送信処理及び受信処理等のMPI手続き名、送信元データのアドレス、送信元データの型、受信元データのアドレス、受信元データの型、通信相手のランク番号、送信するデータのサイズに関する情報、受信するデータのサイズに関する情報、タグ、コミュニケータ等のMPI手続きの内容に関する情報である。記録実行部11は、MPI通信待ち状態の開始時刻、前記プロセスが実行したパターン、及びMPI通信の待ち状態の解除時刻を、一つのレコードとして、識別コードを付与して前記MPI通信履歴記録部に記録する。なお、前記MPI通信履歴記録部は、例えば、本装置10の中央処理装置に設けられるが、これに限定されず、例えば、本装置10の記憶部に設けられてもよく、外部記憶装置に設けられてもよい。なお、前記記録実行部11は、前記MPI通信履歴記録部において、前記MPI手続き情報の一部又は全部が一致する前記レコードが、予め規定した基準数を超える場合、前記基準数以内になるように、前記複数の前記レコードにおいて、記録時刻が古い順番に前記レコードを削除してもよい。
【0025】
つぎに、MPI通信時間算出部12は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録する(S2、MPI通信時間算出工程)。例えば、前記MPI通信が完了した際に、前記MPI通信時間算出部12は、前述のとおり、前記MPI通信に要した時間を算出し、前記MPI通信時間として、前記解除時刻と結び付けて、前記MPI通信履歴記録部に記録する。
【0026】
つぎに、スリープ時間決定部13は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定する(S3、スリープ時間決定工程)。前記一致するか否かの判断は、例えば、前記MPI通信のパターンがすべて一致する場合に一致すると判断する方法によるが、これに限らず、例えば、任意に指定した一部の要素が一致する場合に一致すると判断する方法でもよく、その態様は任意に設定してよい。前記スリープ時間の決定方法は、例えば、後述のような方法があるが、これに限定されず、実情に合わせた任意の設定をしてもよい。なお、一致するレコードがない場合には、例えば、前記記録実行部11は、新規MPI手続きについて、MPI通信待ち状態の開始時刻、前記プロセスが実行したパターン、及びMPI通信の待ち状態の解除時刻を、一つのレコードとして、識別コードを付与して前記MPI通信履歴記録部に記録し、MPI通信時間算出部12は、前記MPI通信時間を算出して同じ前記レコードに記録して、その後の新たなMPI通信を継続してもよい。
【0027】
前記スリープ時間決定部13は、前記一致した前記レコードの前記MPI通信時間、及び、補正係数に基づき、前記スリープ時間を決定してもよい。前記補正係数は、例えば、スリープ時間が受信時間を超えないようにするための係数である。また、スリープ時間の決定にあたって、前記補正係数は、例えば、加算、除算、乗算及び割算又はこれらの組み合わせで使用してもよい。また、前記補正係数は、予め規定したリスク回避係数、及び、前記新規MPI手続きのデータサイズに対する前記一致したレコードのデータサイズの比の少なくとも一方であってもよい。前記リスク回避係数は、スリープ時間がMPI通信待ち時間を超過しないようにするために任意に設定した係数であり、例えば、0.8として、一致した前記レコードの前記MPI通信時間にこれを乗算してスリープ時間を決定する。なお、前記リスク回避係数は、0.8に限定されず、例えば、0.7でもよく、0.9でもよく、任意に設定できる。このように、前記スリープ時間決定部13は、前記一致した前記レコードのMPI通信時間に前記補正係数を乗算して前記スリープ時間を決定してもよい。また、スリープ時間の決定にデータサイズの比を利用する場合には、前記レコードの一致の条件から、データサイズの一致の条件は除外する。
【0028】
以下、本装置10を用いたMPI通信スリープ時間決定方法の具体的な処理の一例を示す。なお、以下の説明は、具体的な流れの一例であり、前述のとおり、本実施形態の本装置10及びMPI通信スリープ時間決定方法は、以下の説明に限定されず、本実施形態のMPI通信スリープ時間決定方法は、本装置10の使用に限定されない。
【0029】
まず、記録実行部11は、
図4の(A)のとおり、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、MPI手続き情報及びMPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録する。なお、この段階では、通信が完了していないため、通信待ち解除時刻及び通信完了に要した時間は空欄になっている。その後、前記MPI通信が完了し、記録実行部11は、前記MPI通信の待ち状態の解除時刻を、同じレコードに記録する。つぎに、MPI通信時間算出部12は、前記レコードにおける前記開始時刻及び前記解除時刻に基づきMPI通信時間を算出して同じ前記レコードに記録する。前記記録後のレコードの状態は、
図4の(B)のとおりである。その後、新規のMPI通信が行われた際に、MPIスリープ時間決定部13は、前記MPI履歴記録部に記録されているレコードに、新規MPI手続きとパターンが一致するものがあるかを確認する。
図4の(B)のID番号1のレコードが一致する場合、MPIスリープ時間決定部13は、同レコードの通信完了に要した時間である0.330秒に、補正係数0.8を乗じて、スリープ時間を0.264秒と決定する。なお、
図4には、データサイズの記録がないが、例えば、新規のMPI通信に係るデータサイズが、ID番号1の送信データのデータサイズの1,2倍であれば、1.2倍を乗じて、スリープ時間を0.3168秒と決定してもよい。
【0030】
本実施形態のMPI通信スリープ時間決定装置は、MPI通信において最適なスリープ時間を決定できる。このため、効率的なMPI通信が可能となる。
【0031】
[実施形態2]
本実施形態のプログラムは、前述のMPI通信スリープ時間決定方法の各工程を、コンピュータに実行させるためのプログラムである。具体的に、本実施形態のプログラムは、コンピュータに、例えば、記録実行手順、MPI通信時間算出手順及びスリープ時間決定手順を実行させるためのプログラムである。
【0032】
前記記録実行手順は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出手順は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定手順は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定する。
【0033】
また、本実施形態のプログラムは、コンピュータを、例えば、記録実行手順、MPI通信時間算出手順及びスリープ時間決定手順として機能させるプログラムということもできる。
【0034】
本実施形態のプログラムは、前記本発明のMPI通信スリープ時間決定装置及びMPI通信スリープ時間決定方法における記載を援用できる。前記各手順は、例えば、「手順」を「処理」と読み替え可能である。また、本実施形態のプログラムは、例えば、コンピュータ読み取り可能な記録媒体に記録されてもよい。前記記録媒体は、例えば、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)である。前記記録媒体は、特に制限されず、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードディスク(HD)、フラッシュメモリ(例えば、SSD(Solid State Drive)、USBフラッシュメモリ、SD/SDHCカード等)、光ディスク(例えば、CD‐R/CD‐RW、DVD‐R/DVD‐RW、BD‐R/BD‐RE等)、光磁気ディスク(MO)、フロッピー(登録商標)ディスク(FD)等があげられる。また、本実施形態のプログラム(例えば、プログラミング製品、又はプログラム製品ともいう)は、例えば、外部のコンピュータから配信される形態であってもよい。前記「配信」は、例えば、通信回線網を介した配信でもよいし、有線で接続された装置を介した配信であってもよい。本実施形態のプログラムは、配信された装置にインストールされて実行されてもよいし、インストールされずに実行されてもよい。
【0035】
以上、実施形態を参照して本発明を説明したが、本発明は、上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をできる。
【0036】
<付記>
上記の実施形態の一部又は全部は、以下の付記のように記載されうるが、以下には限られない。
(付記1)記録実行部、MPI通信時間算出部、及び、スリープ時間決定部を含み、
前記記録実行部は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出部は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定部は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定する、
MPI通信スリープ時間決定装置。
(付記1)
前記スリープ時間決定部は、前記一致した前記レコードが複数存在する場合、前記複数の前記レコードの前記MPI通信時間の統計値に基づき、前記スリープ時間を決定する、
付記1記載のMPI通信スリープ時間決定装置。
(付記2)
前記スリープ時間決定部は、前記一致した前記レコードの前記MPI通信時間、及び、補正係数に基づき、前記スリープ時間を決定する、
付記1記載のMPI通信スリープ時間決定装置。
(付記3)
前記補正係数は、予め規定したリスク回避係数、及び、前記新規MPI手続きのデータサイズに対する前記一致したレコードのデータサイズの比の少なくとも一方であり、
前記スリープ時間決定部は、前記一致した前記レコードのMPI通信時間に前記補正係数を乗算して前記スリープ時間を決定する、
付記3記載のMPI通信スリープ時間決定装置。
(付記4)
前記記録実行部は、前記MPI通信履歴記録部において、前記MPI手続き情報の一部又は全部が一致する前記レコードが、予め規定した基準数を超える場合、前記基準数以内になるように、前記複数の前記レコードにおいて、記録時刻が古い順番に前記レコードを削除する、
付記1から4のいずれか一項に記載のMPI通信スリープ時間決定装置。
(付記5)
付記1から5のいずれか一項に記載のMPI通信スリープ時間決定装置を含むMPI通信装置。
(付記6)
記録実行工程、MPI通信時間算出工程、及び、スリープ時間決定工程を含み、
前記記録実行工程は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出工程は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定工程は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
MPI通信スリープ時間決定方法。
(付記7)
前記スリープ時間決定工程は、前記一致した前記レコードが複数存在する場合、前記複数の前記レコードの前記MPI通信時間の統計値に基づき、前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
付記7記載のMPI通信スリープ時間決定方法。
(付記8)
前記スリープ時間決定工程は、前記一致した前記レコードの前記MPI通信時間、及び、補正係数に基づき、前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
付記7記載のMPI通信スリープ時間決定方法。
(付記9)
前記補正係数は、予め規定したリスク回避係数、及び、前記新規MPI手続きのデータサイズに対する前記一致したレコードのデータサイズの比の少なくとも一方であり、
前記スリープ時間決定工程は、前記一致した前記レコードのMPI通信時間に前記補正係数を乗算して前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
付記9記載のMPI通信スリープ時間決定方法。
(付記10)
前記記録実行工程は、前記MPI通信履歴記録部において、前記MPI手続き情報の一部又は全部が一致する前記レコードが、予め規定した基準数を超える場合、前記基準数以内になるように、前記複数の前記レコードにおいて、記録時刻が古い順番に前記レコードを削除し、
前記各工程が、コンピュータにより実行される、
付記7から10のいずれか一項に記載のMPI通信スリープ時間決定方法。
(付記11)
記録実行手順、MPI通信時間算出手順、及び、スリープ時間決定手順を含み、
前記記録実行手順は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出手順は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定手順は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラム。
(付記12)
前記スリープ時間決定手順は、前記一致した前記レコードが複数存在する場合、前記複数の前記レコードの前記MPI通信時間の統計値に基づき、前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるための付記12記載のプログラム。
(付記13)
前記スリープ時間決定手順は、前記一致した前記レコードの前記MPI通信時間、及び、補正係数に基づき、前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるための付記12記載のプログラム。
(付記14)
前記補正係数は、予め規定したリスク回避係数、及び、前記新規MPI手続きのデータサイズに対する前記一致したレコードのデータサイズの比の少なくとも一方であり、
前記スリープ時間決定手順は、前記一致した前記レコードのMPI通信時間に前記補正係数を乗算して前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるための付記14記載のプログラム。
(付記15)
前記記録実行手順は、前記MPI通信履歴記録部において、前記MPI手続き情報の一部又は全部が一致する前記レコードが、予め規定した基準数を超える場合、前記基準数以内になるように、前記複数の前記レコードにおいて、記録時刻が古い順番に前記レコードを削除し、
前記各手順を、コンピュータに実行させるための付記12から15のいずれか一項に記載のプログラム。
(付記16)
記録実行手順、MPI通信時間算出手順、及び、スリープ時間決定手順を含み、
前記記録実行手順は、プロセスによるMPI手続きの実行後のMPI通信待ち状態の開始時刻、前記MPI手続き情報、及び、前記MPI通信の待ち状態の解除時刻を一つのレコードとして、識別コードを付与してMPI通信履歴記録部に記録し、
前記MPI通信時間算出手順は、前記レコードにおける前記開始時刻及び前記解除時刻に基づき前記MPI通信時間を算出して同じ前記レコードに記録し、
前記スリープ時間決定手順は、前記プロセスによる新規MPI手続き情報が、前記MPI履歴記録部に記録されている前記レコードの前記MPI手続き情報と一致するか否かを判断し、一部又は全部が一致する場合に、一致した前記レコードのMPI通信時間に基づき、前記新規MPI手続きにおける前記MPI通信の前記プロセスのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
(付記17)
前記スリープ時間決定手順は、前記一致した前記レコードが複数存在する場合、前記複数の前記レコードの前記MPI通信時間の統計値に基づき、前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記17記載の記録媒体。
(付記18)
前記スリープ時間決定手順は、前記一致した前記レコードの前記MPI通信時間、及び、補正係数に基づき、前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記17記載の記録媒体。
(付記19)
前記補正係数は、予め規定したリスク回避係数、及び、前記新規MPI手続きのデータサイズに対する前記一致したレコードのデータサイズの比の少なくとも一方であり、
前記スリープ時間決定手順は、前記一致した前記レコードのMPI通信時間に前記補正係数を乗算して前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記19記載の記録媒体。
(付記20)
前記記録実行手順は、前記MPI通信履歴記録部において、前記MPI手続き情報の一部又は全部が一致する前記レコードが、予め規定した基準数を超える場合、前記基準数以内になるように、前記複数の前記レコードにおいて、記録時刻が古い順番に前記レコードを削除し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記17から20のいずれか一項に記載の記録媒体。
【産業上の利用可能性】
【0037】
本発明によれば、MPI通信において最適なスリープ時間を決定できる。このため、効率的なMPI通信が可能となる。
【符号の説明】
【0038】
10 MPI通信スリープ時間決定装置
11 記録実行部
12 MPI通信時間算出部
13 スリープ時間決定部
101 中央処理装置
102 メモリ
103 バス
104 記憶装置
105 入力装置
106 出力装置
107 通信デバイス