IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECソリューションイノベータ株式会社の特許一覧

特開2024-129493受信側MPI通信スリープ時間決定装置、受信側MPI通信スリープ時間決定方法、プログラム及び記録媒体
<>
  • 特開-受信側MPI通信スリープ時間決定装置、受信側MPI通信スリープ時間決定方法、プログラム及び記録媒体 図1
  • 特開-受信側MPI通信スリープ時間決定装置、受信側MPI通信スリープ時間決定方法、プログラム及び記録媒体 図2
  • 特開-受信側MPI通信スリープ時間決定装置、受信側MPI通信スリープ時間決定方法、プログラム及び記録媒体 図3
  • 特開-受信側MPI通信スリープ時間決定装置、受信側MPI通信スリープ時間決定方法、プログラム及び記録媒体 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129493
(43)【公開日】2024-09-27
(54)【発明の名称】受信側MPI通信スリープ時間決定装置、受信側MPI通信スリープ時間決定方法、プログラム及び記録媒体
(51)【国際特許分類】
   G06F 9/54 20060101AFI20240919BHJP
【FI】
G06F9/54 Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023038731
(22)【出願日】2023-03-13
(71)【出願人】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100115255
【弁理士】
【氏名又は名称】辻丸 光一郎
(74)【代理人】
【識別番号】100201732
【弁理士】
【氏名又は名称】松縄 正登
(74)【代理人】
【識別番号】100154081
【弁理士】
【氏名又は名称】伊佐治 創
(74)【代理人】
【識別番号】100227019
【弁理士】
【氏名又は名称】安 修央
(72)【発明者】
【氏名】石原 諒大
(57)【要約】      (修正有)
【課題】本発明は、MPI通信において最適な受信側のスリープ時間を決定できるスリープ時間決定装置の提供を目的とする。
【解決手段】本発明の受信側MPI通信スリープ時間決定装置10は、情報取得部11、記録実行部12、及び、スリープ時間決定部13を含み、前記情報取得部11は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、前記送信データは、1データを分割した複数の分割データであり、各前記分割データは、分割情報を含み、前記記録実行部12は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、前記スリープ時間決定部13は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
情報取得部、記録実行部、及び、スリープ時間決定部を含み、
前記情報取得部は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行部は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定部は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定する、
受信側MPI通信スリープ時間決定装置。
【請求項2】
前記スリープ時間決定部は、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、単位データ量当たりの平均送信時間を算出し、前記平均送信時間に基づき、前記全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、前記スリープ時間を決定する、
請求項1記載の受信側MPI通信スリープ時間決定装置。
【請求項3】
前記スリープ時間決定部は、前記平均送信時間に対し補正係数を使用して前記スリープ時間を決定する、
請求項2記載の受信側MPI通信スリープ時間決定装置。
【請求項4】
前記送信データは、前記送信側プロセスによるMPI手続きにおけるMPI手続き情報を含み、
前記記録実行部は、前記1データ毎に、一つのレコードとして、前記分割情報及び前記MPI手続き情報を前記MPI通信履歴記録部に記録し、
前記スリープ時間決定部は、前記送信側プロセスの新規MPI手続きの開始の際に、過去の前記MPI通信履歴記録部を参照し、前記新規MPI手続きにおける前記MPI手続き情報が過去の前記MPI手続き情報と一部又は全部で一致する否かを判定し、一致する場合、前記過去の前記MPI手続き情報における受信時間に基づき、受信側プロセスが、前記スリープ時間を予測する前の受信途中段階における途中段階スリープ時間を決定する、
請求項1記載の受信側MPI通信スリープ時間決定装置。
【請求項5】
前記途中段階スリープ時間は、前記受信側プロセスが前記受信途中段階においてスリープを繰り返す場合の各スリープ時間である、
請求項4記載の受信側MPI通信スリープ時間決定装置。
【請求項6】
前記記録実行部は、前記途中段階スリープ時間終了後に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを前記1データの前記MPI手続き情報に置き換える、
請求項4記載の受信側MPI通信スリープ時間決定装置。
【請求項7】
前記記録実行部は、前記途中段階スリープ時間終了前に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを削除する、
請求項4記載の受信側MPI通信スリープ時間決定装置。
【請求項8】
情報取得工程、記録実行工程、及び、スリープ時間決定工程を含み、
前記情報取得工程は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行工程は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定工程は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
受信側MPI通信スリープ時間決定方法。
【請求項9】
前記スリープ時間決定工程は、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、単位データ量当たりの平均送信時間を算出し、前記平均送信時間に基づき、前記全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
請求項8記載の受信側MPI通信スリープ時間決定方法。
【請求項10】
前記スリープ時間決定工程は、前記平均送信時間に対し補正係数を使用して前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
請求項9記載の受信側MPI通信スリープ時間決定方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信側MPI通信スリープ時間決定装置、受信側MPI通信スリープ時間決定方法、プログラム及び記録媒体に関する。
【背景技術】
【0002】
コンピュータを複数台繋げて処理を行う場合、コンピュータ間のデータのやり取りに、MPI通信が利用されている。MPI通信によるデータ送信中、ビジーウェイト状態となり、送信処理のためにCPUが占有されるという問題がある。この問題の解決方法として、スリープ状態にすることによってCPUを開放する方法があるが、データ送信が完了した後までスリープ状態が続くと、結果的にコンピュータの効率が悪くなるという問題がある。そこで、過去の通信時間の実績に基づきビジーウェイト状態とスリープ状態とを選択するシステムが公開されている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001-117787号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のシステムにおいては、スリープ状態にした方が有利な場合には、スリープ状態を選択すること可能である。しかし、前記システムは、適切なスリープ時間を算出するものではない。
【0005】
そこで、本発明は、MPI通信において最適な受信側のスリープ時間を決定できるスリープ時間決定装置の提供を目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するために、本発明の受信側MPI通信スリープ時間決定装置は、
情報取得部、記録実行部、及び、スリープ時間決定部を含み、
前記情報取得部は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行部は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定部は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定する。
【0007】
本発明の受信側MPI通信スリープ時間決定方法は、
情報取得工程、記録実行工程、及び、スリープ時間決定工程を含み、
前記情報取得工程は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行工程は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定工程は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定し、
前記各工程が、コンピュータにより実行される。
【0008】
本発明のプログラムは、
情報取得手順、記録実行手順、及び、スリープ時間決定手順を含み、
前記情報取得手順は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行手順は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定手順は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムである。
【0009】
本発明の記録媒体は、
情報取得手順、記録実行手順、及び、スリープ時間決定手順を含み、
前記情報取得手順は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行手順は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定手順は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【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、記録実行部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、記録実行部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手続き情報等を記憶できる。
【0020】
本装置10において、メモリ102及び記憶装置104は、ログ情報、外部データベース(図示せず)や外部の装置から取得した情報、本装置10によって生成した情報、本装置10が処理を実行する際に用いる情報等の種々の情報を記憶することも可能である。この場合、メモリ102及び記憶装置104は、例えば、前記分割情報等を記憶していてもよい。なお、少なくとも一部の情報は、例えば、メモリ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手続きを実行しないことが好ましい。また、本発明における受信側MPI通信スリープ時間決定方法における前提として、MPI送信は、送信データを分割して行う。また、送信側と受信側は、通信処理を行う前にハンドシェイクを行っているが、その時点で送信側も送信データのデータサイズが把握できず、受信側が送信データの全体サイズが分からない場合があることを前提とする。
【0024】
まず、情報取得部11は、送信側プロセスがMPI手続きを実行して送信する送信データを取得する(S1、情報取得工程)。前記プロセスは、処理を実行しているプログラムであり、前記送信側プロセスは、送信側が、処理を実行しているプログラムである。前記送信データは、前述のとおり、1データを分割した複数の分割データである。前記複数の分割データは、時系列で順番に送信される。各前記分割データは、分割情報を含む。前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含む情報である。また、前記送信データは、前記送信側プロセスによるMPI手続きにおけるMPI手続き情報を含むものでもよい。
【0025】
つぎに、記録実行部12は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録する(S2、記録実行工程)。なお、前記MPI通信履歴記録部は、例えば、本装置10の中央処理装置に設けられるが、これに限定されず、例えば、本装置10の記憶部に設けられてもよく、外部記憶装置に設けられてもよい。なお、前記記録実行部12は、前記送信データの1データ毎に、一つのレコードとして、前記分割情報及び前記MPI手続き情報を前記MPI通信履歴記録部に記録してもよい。
【0026】
つぎに、スリープ時間決定部13は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定する(S3、スリープ時間決定工程)。なお、前記スリープ時間決定部は、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、単位データ量当たりの平均送信時間を算出し、前記平均送信時間に基づき、前記全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、前記スリープ時間を決定してもよい。また、前記スリープ時間決定部13は、前記平均送信時間に対し補正係数を使用して前記スリープ時間を決定してもよい。前記補正係数は、例えば、スリープ時間が受信時間を超えないようにするための係数である。また、スリープ時間の決定にあたって、前記補正係数は、例えば、加算、除算、乗算及び割算又はこれらの組み合わせで使用してもよい。また、前記補正係数は、スリープ時間がMPI通信待ち時間を超過しないようにするために任意に設定した係数であり、例えば、0.8として、前述の計算に基づき算出されたスリープ時間にこれを乗算してスリープ時間を決定するものとしてもよい。なお、前記補正係数は、0.8に限定されず、例えば、0.7でもよく、0.9でもよく、任意に設定できる。
【0027】
前記スリープ時間決定部13は、前記送信側プロセスの新規MPI手続きの開始の際に、過去の前記MPI通信履歴記録部を参照し、前記新規MPI手続きにおける前記MPI手続き情報が過去の前記MPI手続き情報と一部又は全部で一致する否かを判定し、一致する場合、前記過去の前記MPI手続き情報における受信時間に基づき、受信側プロセスが、前記スリープ時間を予測する前の受信途中段階における途中段階スリープ時間を決定してもよい。また、前記途中段階スリープ時間は、前記受信側プロセスが前記受信途中段階においてスリープを繰り返す場合の各スリープ時間であってもよい。前記新規MPI手続きにおける前記MPI送信が、例えば、1データを5パーセントずつに20分割して送信する場合、前記スリープ時間決定部13は、一致する過去の前記MPI手続きの送信に要した時間の20分の1の時間を途中段階スリープ時間と決定し、短いスリープ時間を繰り返してもよい。また、受信途中段階において、前記分割データが複数受信された場合に、前記スリープ時間決定部13は、残りのMPI送信について、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定してもよい。
【0028】
なお、前記記録実行部12は、前記途中段階スリープ時間終了後に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを前記1データの前記MPI手続き情報に置き換えてもよい。また、前記記録実行部は、前記途中段階スリープ時間終了前に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを削除してもよい。
【0029】
以下、本装置10を用いた受信側MPI通信スリープ時間決定方法の具体的な処理の一例を示す。なお、以下の説明は、具体的な流れの一例であり、前述のとおり、本実施形態の本装置10及び受信側MPI通信スリープ時間決定方法は、以下の説明に限定されず、本実施形態の受信側MPI通信スリープ時間決定方法は、本装置10の使用に限定されない。
【0030】
まず、前記情報取得部11は、送信側プロセスがMPI手続きを実行して送信する送信データを取得する。この送信データは、1データを20分割したものである。送信の際に、送信側から受信側に、図4の(A)のとおり、MPI送信の進捗に関する情報が送信される。なお、図4では、3つの進捗情報が一括して記載されているが、各進捗情報は、分割された送信データとともに、それぞれ送信されるものである。つぎに、前記記録実行部12は、図4の(A)の進捗情報に基づき、分割情報及び前記分割データの受信時間を、MPI通信履歴記録部に記録する。なお、前記記録の結果は、図4の(B)のとおりである。そして、スリープ時間決定部13は、図4の(B)の情報に基づき、以下のとおり、スリープ時間を決定する。まず、1番目と2番目に到着した到着時間と進捗度から計算した全体の推定送信時間を計算する(送信に要した時間(22.542秒-21.012秒)/進捗度(10パーセント-5パーセント)=30.6秒)。同様に2番目と3番目から、全体の推定送信時間を計算する(送信に要した時間(24.614秒-22.542秒)/進捗度(15パーセント-10パーセント)=41.44秒)。これらの平均に残りのデータの全体に対する割合に5パーセントを加えたものを乗ずる((30.6秒+41.44秒)/2×(100パーセント-15パーセント+5パーセント)=32.418秒)。この計算の結果、スリープ時間決定部13は、スリープ時間を32.418秒と決定する。なお、上記計算は一例であり、これに限定されない。また、例えば、前記3回目までの受信までの間、短いスリープを繰り返し、前記決定後は、一括して前記スリープ時間をスリープ状態にさせることであってもよい。
【0031】
本実施形態の受信側MPI通信スリープ時間決定装置は、MPI通信において最適な受信側のスリープ時間を決定できる。このため、効率的なMPI通信が可能となる。
【0032】
[実施形態2]
本実施形態のプログラムは、前述の受信側MPI通信スリープ時間決定方法の各工程を、コンピュータに実行させるためのプログラムである。具体的に、本実施形態のプログラムは、コンピュータに、例えば、情報取得手順、記録実行手順及びスリープ時間決定手順を実行させるためのプログラムである。
【0033】
前記情報取得手順は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行手順は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定手順は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定する。
【0034】
また、本実施形態のプログラムは、コンピュータを、例えば、情報取得手順、記録実行手順及びスリープ時間決定手順として機能させるプログラムということもできる。
【0035】
本実施形態のプログラムは、前記本発明の受信側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)等があげられる。また、本実施形態のプログラム(例えば、プログラミング製品、又はプログラム製品ともいう)は、例えば、外部のコンピュータから配信される形態であってもよい。前記「配信」は、例えば、通信回線網を介した配信でもよいし、有線で接続された装置を介した配信であってもよい。本実施形態のプログラムは、配信された装置にインストールされて実行されてもよいし、インストールされずに実行されてもよい。
【0036】
以上、実施形態を参照して本発明を説明したが、本発明は、上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をできる。
【0037】
<付記>
上記の実施形態の一部又は全部は、以下の付記のように記載されうるが、以下には限られない。
(付記1)
情報取得部、記録実行部、及び、スリープ時間決定部を含み、
前記情報取得部は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行部は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定部は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定する、
受信側MPI通信スリープ時間決定装置。
(付記2)
前記スリープ時間決定部は、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、単位データ量当たりの平均送信時間を算出し、前記平均送信時間に基づき、前記全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、前記スリープ時間を決定する、
付記1記載の受信側MPI通信スリープ時間決定装置。
(付記3)
前記スリープ時間決定部は、前記平均送信時間に対し補正係数を使用して前記スリープ時間を決定する、
付記2記載の受信側MPI通信スリープ時間決定装置。
(付記4)
前記送信データは、前記送信側プロセスによるMPI手続きにおけるMPI手続き情報を含み、
前記記録実行部は、前記1データ毎に、一つのレコードとして、前記分割情報及び前記MPI手続き情報を前記MPI通信履歴記録部に記録し、
前記スリープ時間決定部は、前記送信側プロセスの新規MPI手続きの開始の際に、過去の前記MPI通信履歴記録部を参照し、前記新規MPI手続きにおける前記MPI手続き情報が過去の前記MPI手続き情報と一部又は全部で一致する否かを判定し、一致する場合、前記過去の前記MPI手続き情報における受信時間に基づき、受信側プロセスが、前記スリープ時間を予測する前の受信途中段階における途中段階スリープ時間を決定する、
付記1記載の受信側MPI通信スリープ時間決定装置。
(付記5)
前記途中段階スリープ時間は、前記受信側プロセスが前記受信途中段階においてスリープを繰り返す場合の各スリープ時間である、
付記4記載の受信側MPI通信スリープ時間決定装置。
(付記6)
前記記録実行部は、前記途中段階スリープ時間終了後に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを前記1データの前記MPI手続き情報に置き換える、
付記4又は5記載の受信側MPI通信スリープ時間決定装置。
(付記7)
前記記録実行部は、前記途中段階スリープ時間終了前に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを削除する、
付記4から6のいずれか一項に記載の受信側MPI通信スリープ時間決定装置。
(付記8)
情報取得工程、記録実行工程、及び、スリープ時間決定工程を含み、
前記情報取得工程は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行工程は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定工程は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
受信側MPI通信スリープ時間決定方法。
(付記9)
前記スリープ時間決定工程は、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、単位データ量当たりの平均送信時間を算出し、前記平均送信時間に基づき、前記全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
付記8記載の受信側MPI通信スリープ時間決定方法。
(付記10)
前記スリープ時間決定工程は、前記平均送信時間に対し補正係数を使用して前記スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
付記9記載の受信側MPI通信スリープ時間決定方法。
(付記11)
前記送信データは、前記送信側プロセスによるMPI手続きにおけるMPI手続き情報を含み、
前記記録実行工程は、前記1データ毎に、一つのレコードとして、前記分割情報及び前記MPI手続き情報を前記MPI通信履歴記録部に記録し、
前記スリープ時間決定工程は、前記送信側プロセスの新規MPI手続きの開始の際に、過去の前記MPI通信履歴記録部を参照し、前記新規MPI手続きにおける前記MPI手続き情報が過去の前記MPI手続き情報と一部又は全部で一致する否かを判定し、一致する場合、前記過去の前記MPI手続き情報における受信時間に基づき、受信側プロセスが、前記スリープ時間を予測する前の受信途中段階における途中段階スリープ時間を決定し、
前記各工程が、コンピュータにより実行される、
付記8記載の受信側MPI通信スリープ時間決定方法。
(付記12)
前記途中段階スリープ時間は、前記受信側プロセスが前記受信途中段階においてスリープを繰り返す場合の各スリープ時間である、
付記11記載の受信側MPI通信スリープ時間決定方法。
(付記13)
前記記録実行工程は、前記途中段階スリープ時間終了後に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを前記1データの前記MPI手続き情報に置き換え、
前記各工程が、コンピュータにより実行される、
付記11又は12記載の受信側MPI通信スリープ時間決定方法。
(付記14)
前記記録実行工程は、前記途中段階スリープ時間終了前に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを削除し、
前記各工程が、コンピュータにより実行される、
付記11から13のいずれか一項に記載の受信側MPI通信スリープ時間決定方法。
(付記15)
情報取得手順、記録実行手順、及び、スリープ時間決定手順を含み、
前記情報取得手順は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行手順は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定手順は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラム。
(付記16)
前記スリープ時間決定手順は、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、単位データ量当たりの平均送信時間を算出し、前記平均送信時間に基づき、前記全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるための付記15記載のプログラム。
(付記17)
前記スリープ時間決定手順は、前記平均送信時間に対し補正係数を使用して前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるための付記16記載のプログラム。
(付記18)
前記送信データは、前記送信側プロセスによるMPI手続きにおけるMPI手続き情報を含み、
前記記録実行手順は、前記1データ毎に、一つのレコードとして、前記分割情報及び前記MPI手続き情報を前記MPI通信履歴記録部に記録し、
前記スリープ時間決定工程は、前記送信側プロセスの新規MPI手続きの開始の際に、過去の前記MPI通信履歴記録部を参照し、前記新規MPI手続きにおける前記MPI手続き情報が過去の前記MPI手続き情報と一部又は全部で一致する否かを判定し、一致する場合、前記過去の前記MPI手続き情報における受信時間に基づき、受信側プロセスが、前記スリープ時間を予測する前の受信途中段階における途中段階スリープ時間を決定し、
前記各手順を、コンピュータに実行させるための付記15記載のプログラム。
(付記19)
前記途中段階スリープ時間は、前記受信側プロセスが前記受信途中段階においてスリープを繰り返す場合の各スリープ時間である、
付記18記載のプログラム。
(付記20)
前記記録実行手順は、前記途中段階スリープ時間終了後に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを前記1データの前記MPI手続き情報に置き換え、
前記各手順を、コンピュータに実行させるための付記18又は19記載のプログラム。
(付記21)
前記記録実行手順は、前記途中段階スリープ時間終了前に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを削除し、
前記各手順を、コンピュータに実行させるための付記18から20のいずれか一項に記載のプログラム。
(付記22)
情報取得手順、記録実行手順、及び、スリープ時間決定手順を含み、
前記情報取得手順は、送信側プロセスがMPI手続きを実行して送信する送信データを取得し、
前記送信データは、1データを分割した複数の分割データであり、
前記複数の分割データは、時系列で順番に送信され、
各前記分割データは、分割情報を含み、
前記分割情報は、前記1データの分割であることを示す共通識別コード、送信の順番を示す順番情報、及び、前記分割データが前記1データに対する累積割合を示す進捗度情報を含み、
前記記録実行手順は、前記分割情報、及び、前記分割データの受信時間を、MPI通信履歴記録部に記録し、
前記スリープ時間決定手順は、前記分割データが複数受信され、かつ、前記分割データが全部受信する前において、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、前記1データにおける未受信データの全部が到着する全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、受信側プロセスにおける前記未受信データ到着までのスリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
(付記23)
前記スリープ時間決定手順は、前記複数受信の各前記分割データの前記分割情報及び前記受信時間に基づき、単位データ量当たりの平均送信時間を算出し、前記平均送信時間に基づき、前記全データ到着予想時間を算出し、前記全データ到着予想時間に基づき、前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記22記載の記録媒体。
(付記24)
前記スリープ時間決定手順は、前記平均送信時間に対し補正係数を使用して前記スリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記23記載の記録媒体。
(付記25)
前記送信データは、前記送信側プロセスによるMPI手続きにおけるMPI手続き情報を含み、
前記記録実行手順は、前記1データ毎に、一つのレコードとして、前記分割情報及び前記MPI手続き情報を前記MPI通信履歴記録部に記録し、
前記スリープ時間決定工程は、前記送信側プロセスの新規MPI手続きの開始の際に、過去の前記MPI通信履歴記録部を参照し、前記新規MPI手続きにおける前記MPI手続き情報が過去の前記MPI手続き情報と一部又は全部で一致する否かを判定し、一致する場合、前記過去の前記MPI手続き情報における受信時間に基づき、受信側プロセスが、前記スリープ時間を予測する前の受信途中段階における途中段階スリープ時間を決定し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記22記載の記録媒体。
(付記26)
前記途中段階スリープ時間は、前記受信側プロセスが前記受信途中段階においてスリープを繰り返す場合の各スリープ時間である、
付記25記載の記録媒体。
(付記27)
前記記録実行手順は、前記途中段階スリープ時間終了後に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを前記1データの前記MPI手続き情報に置き換え、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記25又は26記載の記録媒体。
(付記28)
前記記録実行手順は、前記途中段階スリープ時間終了前に前記1データの全部が受信された場合、前記一致した前記過去のMPI手続きデータを削除し、
前記各手順を、コンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な付記25から27のいずれか一項に記載の記録媒体。
【産業上の利用可能性】
【0038】
本発明によれば、MPI通信において最適な受信側のスリープ時間を決定できる。このため、効率的なMPI通信が可能となる。
【符号の説明】
【0039】
10 受信側MPI通信スリープ時間決定装置
11 情報取得部
12 記録実行部
13 スリープ時間決定部
101 中央処理装置
102 メモリ
103 バス
104 記憶装置
105 入力装置
106 出力装置
107 通信デバイス

図1
図2
図3
図4