JP5725446B2 - 分散並列プログラムの実行システム及び方法 - Google Patents

分散並列プログラムの実行システム及び方法 Download PDF

Info

Publication number
JP5725446B2
JP5725446B2 JP2011068482A JP2011068482A JP5725446B2 JP 5725446 B2 JP5725446 B2 JP 5725446B2 JP 2011068482 A JP2011068482 A JP 2011068482A JP 2011068482 A JP2011068482 A JP 2011068482A JP 5725446 B2 JP5725446 B2 JP 5725446B2
Authority
JP
Japan
Prior art keywords
communication
time
inter
machines
calculation
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.)
Expired - Fee Related
Application number
JP2011068482A
Other languages
English (en)
Other versions
JP2012203708A (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.)
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 JP2011068482A priority Critical patent/JP5725446B2/ja
Publication of JP2012203708A publication Critical patent/JP2012203708A/ja
Application granted granted Critical
Publication of JP5725446B2 publication Critical patent/JP5725446B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)

Description

本発明は、グリッド環境におけるメッセージパッシング型分散並列プログラムを実行する際のシステム資源の使用を効率化する手法に関する。
従来、遠隔地にあるシステムを結合したグリッド環境上で、分散並列プログラムを実行する試みが行われている。このとき、各システムの実行速度がそれぞれ異なる場合、各システム間のプロセス間通信処理において、実行速度の差から生じる通信待ち時間が発生してしまう。特に、大規模データサイズ、大規模プロセス数でアプリケーション実行を行うHPC分野では、この消費電力またはシステム資源の浪費の影響は小さくなく、改善が望まれている。例えば、特許文献1は、グリッド環境における処理能力を低下させることなく消費電力を低減することが記載されている。
特開2005−128937号公報
メッセージパッシング型分散並列プログラムについて簡単に説明すると、メッセージパッシング型分散並列プログラムは、データの計算処理と通信処理を繰り返し行う構成をとっており、通信処理では、送信プロセスが送信手続きを呼び出し、受信プロセスが受信手続きを呼び出すことで、通信を行っている。通信処理において、受信プロセスが受信手続きを呼び出した時に、送信プロセスにおいて計算処理が終了せず、送信手続きの呼び出しが遅れるような場合には、受信プロセスは送信プロセスで送信手続きが呼び出されるまで通信待ち状態となる。その後、送信手続きが呼び出されたら、両プロセス間で通信処理が開始される。
ところで、性能差のあるマシンから構成されるグリッド環境上で、計算インバランスのないメッセージパッシング型分散並列プログラムを実行する場合、実行速度の速いマシンで動作するプロセスと実行速度が遅いマシンで動作するプロセス間通信処理において、実行速度の速いマシンで動作するプロセスでは、実行速度の遅いシステムで動作するプロセスの計算処理の遅延により、上述した通信待ちが必ず発生する。このケースで発生する通信待ち時間は、本質的には不必要な時間であり、その間は確保しているCPU、メモリ等のシステム資源を無駄に消費していると言える。また、実行速度の速いマシンで動作するプロセスにおいて、通信待ち時間を短縮するために当該通信の前に行う計算処理を遅延させたとしても、プログラムの実行性能に影響はない。
本発明は、かかる実情に鑑み、計算インバランスのないメッセージパッシング型分散並列プログラムを実行する際に、プログラム全体での実行性能を維持しつつ、実行速度が速いマシンの消費電力を低減することのできるシステム及び方法を提供しようとするものである。
本発明の一実施形態によれば、性能差のあるマシンを含んで構成されるグリッド環境上における、性能差のあるマシン間のプロセス間通信処理において、プログラムの実行時に、当該通信の開始時間から、その前のマシン間のプロセス間通信の終了時間と、その間に発生した同一マシン内の通信時間を除いた時間(以下「計算処理時間」という。)を計算する。また、当該通信の通信待ち時間から通信マージン時間(通信パケットのマシン間伝送時間)を除いた時間(以下「真の通信待ち時間」という。)を計算する。これらの時間の比率を基に、通信待ち時間が低減するように実行速度の速いマシン側の計算処理に関わる要素を調整する。例えば、CPUクロック数、スレッド数などの要素が調整される。
一実施態様においては、計算処理時間がある閾値を越えた場合、または経過時間がある閾値を越えた場合、またはある関数に到達した場合、それ以降の性能差のあるマシン間のプロセス間通信処理において、真の通信待ち時間が発生したプロセスは、自マシンが実行速度の速いマシンと判断し、通信待ち時間が低減するように、計算処理時間と真の通信待ち時間の比率を基に、計算処理に関わる要素を調整する。真の通信待ち時間が発生しないプロセスは本調整を行わない。実行終了時には、変更した計算処理に関わる要素の設定を元に戻す。
本発明によれば、計算インバランスのないメッセージパッシング型分散並列プログラムを実行する際に、プログラム全体での実行性能は維持しつつ、実行速度が速いマシンの消費電力を低減することにより、消費電力の抑止やシステム資源使用の効率化を図ることができるという効果を奏し得る。
本発明の一実施形態に係るグリッド環境における分散並列プログラムの実行システムの概略構成を示すブロック図である。 本実施例における、メッセージパッシング型分散並列プログラムの初期化処理の流れを示すフローチャートである。 本実施例における、同一マシン内でのプロセス間通信処理の流れを示すフローチャートである。 本実施例における、性能差のあるマシン間のプロセス間通信処理の流れを示すフローチャートである。 本実施例における、メッセージパッシング型の分散並列プログラムの終了処理の流れを示すフローチャートである。
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。
図1は、本発明の一実施形態に係るグリッド環境における分散並列プログラムの実行システムの概略構成を示すブロック図である。同図に示すように、本分散並列プログラムの実行システムは、複数のプロセッサを備えたプロセッサシステムであって、実行速度の速いマシン1と実行速度の遅いマシン6とが、インターコネクト部11を介して相互に接続されている。各マシンに接続されている。実行速度の速いマシン1はファイル5を備え、実行速度の遅いマシン6はファイル10を備える。各ファイル5,10は、計算処理に関わる要素が格納される。本実施例では、各ファイル5,10に、性能差のあるマシン間の通信マージン時間、安定的に動作するCPUクロック数の下限、および計算に関わる要素の調整のタイミングを決定するために用いる計算処理時間の閾値が格納されている。
各マシン1,6は、計算インバランスのないメッセージパッシング型の分散並列プログラム2,7、及び、メモリ4,9を有する。各分散並列プログラム2,7はそれぞれ、n個のプロセス3−1〜n,m個のプロセス8−1〜mを有する。各プロセス3−1〜n,8−1〜mはそれぞれ、CPUクロック数の取得及び設定を行うCPUクロック数処理部31−1〜n,81−1〜m、プロセス間通信処理を行うプロセス間通信処理部32−1〜n,82−1〜m、及び、プロセス間通信に関数する性能情報の採取及び計算等の処理を行うプロセス間通信情報処理部33−1〜n、83−1〜mを備える。同一マシン内のプロセス間通信はメモリを介して行い、異マシン間のプロセス間通信はインターコネクト部を介して行う。
次に、図2〜5を用いて、本実施例の動作について説明する。なお、説明では実行速度の速いマシン1を対象に説明するが、実行速度の遅いマシン6についても同様の動作を行う。
図2は、本実施例における、メッセージパッシング型分散並列プログラムの初期化処理の流れを示すフローチャートである。同図に示すように、メッセージパッシング型分散並列プログラムの初期化処理において、CPUクロック数処理部31は、現在のCPUクロック数および安定的に動作するCPUクロック数の下限を、ファイル5から取得する。プロセス間通信情報処理部33は、通信マージン時間および計算処理時間の閾値を、ファイル5から取得する(ステップS21)。
図3は、本実施例における、同一マシン内でのプロセス間通信処理の流れを示すフローチャートである。同図に示すように、プロセス間通信処理部32が相手プロセスとの通信処理を実施する際に、まず、プロセス間通信情報処理部33が通信処理開始時間を計測する(ステップS31)。そして、プロセス間通信処理部32が、相手プロセスとの通信処理を実施する(ステップS32)。当該通信処理が終了したとき、プロセス間通信情報処理部33は、通信処理終了時間を計測する(ステップS33)。そして、プロセス間通信情報処理部33は、通信処理終了時間から通信処理開始時間を引いた時間をマシン内通信処理時間として加算する(ステップS34)。
図4は、本実施例における、性能差のあるマシン間のプロセス間通信処理の流れを示すフローチャートである。同図に示すように、まず、プロセス間通信情報処理部33は、通信処理の開始時間および通信待ち時間を計測する(ステップS41、S42)。プロセス間通信処理部32は、相手プロセスとの通信処理を実施する(ステップS43)。当該通信処理が終了したとき、プロセス間通信情報処理部33は、通信処理の終了時間を計測する(ステップS44)。そして、プロセス間通信情報処理部33は、当該通信の通信処理開始時間からその前のマシン間のプロセス間通信の通信処理終了時間とマシン内通信処理時間を引いた値を算出し、これを計算処理時間とする。この計算処理時間が計算処理時間の閾値を越えた場合、次のステップを実施する(ステップS45)。
プロセス間通信情報処理部33は、通信待ち時間から通信マージン時間を引いた値を算出し、これを真の通信待ち時間とする。また、計算処理時間と真の通信待ち時間の比率を算出する(ステップS46)。CPUクロック数処理部31は、真の通信待ち時間が正の場合、実行速度の速いマシンであると判定し、次のステップを実施する(ステップS47)。実行速度の速いマシンの場合、CPUクロック数処理部31は、計算処理時間と真の通信待ち時間との比率を基にして、真の通信待ち時間が発生しないように、ステップS21で取得した安定的に動作するCPUクロック数の下限の範囲内で、CPUクロック数を低減する設定を行う(ステップS48)。
計算処理に関わる要素の調整を行った場合、それ以降は、平衡状態が保たれると仮定し、調整を行った実行速度が速いマシン側のプロセスおよびそのペアである実行速度が遅い側のプロセスにおいて、再調整処理は行わないという動作も可能である。この場合、通信処理において、各種時間の計測・計算・判定処理も行わない。
図5は、本実施例における、メッセージパッシング型の分散並列プログラムの終了処理の流れを示すフローチャートである。CPUクロック数処理部31は、ステップS47において実行速度が速いマシンであると判定した場合(ステップS50)、CPUクロック数を元に戻す(ステップS51)。
また、CPUクロック数の調整方法の従来技術として、計算処理中はCPUクロック数を維持し、通信待ち処理中はCPUクロック数を最低限に落とすというものもあるが、本実施形態の方が消費電力量は低く抑えることができる。これを以下で説明する。本実施形態および従来技術の計算処理の消費電力量を比較するために、CPUクロック数をそれぞれf1、f2、仕事量をW1、W2、消費電力量をP1、P2として、従来技術と本実施形態との計算処理の時間比率をp(<1)とする。消費電力量はCPUクロック数の2乗に比例するので、
W1=a・f1 (a:係数)
W2=a・p・f2
P1=b・f12 (b:係数)
P2=b・p・f22
であり、
W1=W2
だから(計算量は同じ)、
f1=p・f2
よって、
P1=b・p2・f22=P2・p<P2
従って、本発明の方が従来技術と比較して、消費電力量を低く抑えることができる。
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
例えば、計算処理時間の閾値および通信マージン時間は、実行時に実行時オプションまたは環境変数として与えてもよい。また、計算処理に関わる要素の調整のタイミングとして、計算処理時間の閾値を使用する代わりに、経過時間の閾値または関数名を使用することも可能である。経過時間の閾値を越えた後または当該関数を過ぎた後の最初のマシン間のプロセス間通信処理において、計算処理に関わる要素の調整を行う。また、メッセージパッシング型分散並列処理と共有並列処理を併用する、計算インバランスのないハイブリッド並列プログラムを実行する場合、各スレッドが同一CPU上で動作するのならば、上記と同様にCPUクロック数を低減すればよいが、各スレッドが別々のCPU上で動作するのならば、CPUクロック数を低減する代わりに、実行速度の速いマシンのスレッド数を低減することも可能である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限
られない。
(付記1)性能差のあるマシンを含んで構成されるグリッド環境において、性能差のあるマシン間のプロセス間通信処理を行う方法であって、プロセス間通信情報処理部が、プログラムの実行時に、当該通信の開始時間から、その前のマシン間のプロセス間通信の終了時間と、その間に発生した同一マシン内の通信時間を除いた、計算処理時間を計算するステップと、当該通信の通信待ち時間から、通信パケットのマシン間伝送時間である通信マージン時間を除いた、真の通信待ち時間を計算するステップと、計算処理時間と真の通信待ち時間の比率を基に、通信待ち時間が低減するように実行速度の速いマシン側の計算処理に関わる要素を調整するステップと、を備える方法。
(付記2)計算処理に関わる要素は、CPUクロック数又はスレッド数を含むことを特徴とする付記1に記載の方法。
(付記3)プロセス間通信情報処理部は、計算処理時間がある閾値を越えた場合又はある関数に到達した場合、それ以降の性能差のあるマシン間のプロセス間通信処理において、真の通信待ち時間が発生したプロセスは、自マシンが実行速度の速いマシンと判断し、通信待ち時間が低減するように、計算処理時間と真の通信待ち時間の比率を基に、計算処理に関わる要素を調整することを特徴とする付記1又は2に記載の方法。
(付記4)プロセス間通信情報処理部は、実行終了時には、変更した計算処理に関わる要素の設定を元に戻すことを特徴とする付記1乃至3のいずれかに記載の方法。
(付記5)性能差のあるマシンを含んで構成されるグリッド環境において、性能差のあるマシン間のプロセス間通信処理を行う実行システムであって、相手プロセスとの通信処理を実施するプロセス間通信処理部と、プログラムの実行時に、当該通信の開始時間から、その前のマシン間のプロセス間通信の終了時間と、その間に発生した同一マシン内の通信時間を除いた、計算処理時間を計算し、かつ、当該通信の通信待ち時間から、通信パケットのマシン間伝送時間である通信マージン時間を除いた、真の通信待ち時間を計算するプロセス間通信情報処理部と、を備え、プロセス間通信情報処理部は、計算処理時間と真の通信待ち時間の比率を基に、通信待ち時間が低減するように実行速度の速いマシン側の計算処理に関わる要素を調整することを特徴とする実行システム。
1 実行速度の速いマシン、2,7 分散並列プログラム、3,8 プロセス、4,9 メモリ、5,10 ファイル、6 実行速度の遅いマシン、11 インターコネクト部、31,81 CPUクロック数処理部、32,82 プロセス間通信処理部、33,83 プロセス間通信情報処理部

Claims (5)

  1. 性能差のあるマシンを含んで構成されるグリッド環境において、性能差のあるマシン間のプロセス間通信処理を行う方法であって、
    プロセス間通信情報処理部が、
    プログラムの実行時に、当該通信の開始時間から、その前のマシン間のプロセス間通信の終了時間と、その間に発生した同一マシン内の通信時間を除いた、計算処理時間を計算するステップと、
    当該通信の通信待ち時間から、通信パケットのマシン間伝送時間である通信マージン時間を除いた、真の通信待ち時間を計算するステップと、
    前記計算処理時間と前記真の通信待ち時間の比率を基に、通信待ち時間が低減するように実行速度の速いマシン側の計算処理に関わる要素を調整するステップと、
    を備える方法。
  2. 前記計算処理に関わる要素は、CPUクロック数又はスレッド数を含むことを特徴とする請求項1に記載の方法。
  3. 前記プロセス間通信情報処理部は、前記計算処理時間がある閾値を越えた場合又はある関数に到達した場合、それ以降の性能差のあるマシン間のプロセス間通信処理において、前記真の通信待ち時間が発生したプロセスは、自マシンが実行速度の速いマシンと判断し、通信待ち時間が低減するように、前記計算処理時間と前記真の通信待ち時間の比率を基に、前記計算処理に関わる要素を調整することを特徴とする請求項1又は2に記載の方法。
  4. 前記プロセス間通信情報処理部は、実行終了時には、変更した計算処理に関わる要素の設定を元に戻すことを特徴とする請求項1乃至3のいずれかに記載の方法。
  5. 性能差のあるマシンを含んで構成されるグリッド環境において、性能差のあるマシン間のプロセス間通信処理を行う実行システムであって、
    相手プロセスとの通信処理を実施するプロセス間通信処理部と、
    プログラムの実行時に、当該通信の開始時間から、その前のマシン間のプロセス間通信の終了時間と、その間に発生した同一マシン内の通信時間を除いた、計算処理時間を計算し、かつ、当該通信の通信待ち時間から、通信パケットのマシン間伝送時間である通信マージン時間を除いた、真の通信待ち時間を計算するプロセス間通信情報処理部と、を備え、
    前記プロセス間通信情報処理部は、前記計算処理時間と前記真の通信待ち時間の比率を基に、通信待ち時間が低減するように実行速度の速いマシン側の計算処理に関わる要素を調整することを特徴とする実行システム。
JP2011068482A 2011-03-25 2011-03-25 分散並列プログラムの実行システム及び方法 Expired - Fee Related JP5725446B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011068482A JP5725446B2 (ja) 2011-03-25 2011-03-25 分散並列プログラムの実行システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011068482A JP5725446B2 (ja) 2011-03-25 2011-03-25 分散並列プログラムの実行システム及び方法

Publications (2)

Publication Number Publication Date
JP2012203708A JP2012203708A (ja) 2012-10-22
JP5725446B2 true JP5725446B2 (ja) 2015-05-27

Family

ID=47184643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011068482A Expired - Fee Related JP5725446B2 (ja) 2011-03-25 2011-03-25 分散並列プログラムの実行システム及び方法

Country Status (1)

Country Link
JP (1) JP5725446B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3033675A1 (en) * 2013-08-13 2016-06-22 Intel Corporation Power balancing to increase workload density and improve energy efficiency
JP6607078B2 (ja) * 2016-02-23 2019-11-20 富士通株式会社 並列計算機、並列lu分解方法及び並列lu分解プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215599A (ja) * 2001-01-18 2002-08-02 Mitsubishi Electric Corp マルチプロセッサシステムおよびその制御方法
JP2004199139A (ja) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd プロセッサシステム、命令列最適化装置、および命令列最適化プログラム

Also Published As

Publication number Publication date
JP2012203708A (ja) 2012-10-22

Similar Documents

Publication Publication Date Title
CN109766189B (zh) 集群调度方法和装置
CA2849565C (en) Method, apparatus, and system for scheduling processor core in multiprocessor core system
JP2012043409A5 (ja)
EP3550429A1 (en) Instruction generation process multiplexing method and device
Kim et al. Utilization-aware load balancing for the energy efficient operation of the big. LITTLE processor
EP2808789B1 (en) Multi-core apparatus and job scheduling method thereof
JP2011028464A (ja) バッチ処理多重化方法
CN109379158A (zh) 一种存储集群中新增节点的时间同步方法、装置及设备
CN106453127A (zh) 一种令牌处理方法和装置
CN112383585A (zh) 消息处理***、方法及电子设备
JP5725446B2 (ja) 分散並列プログラムの実行システム及び方法
WO2024077881A1 (zh) 神经网络训练的调度方法、***及计算机可读存储介质
WO2016177081A1 (zh) 通知消息处理方法及装置
JP2020080059A (ja) 評価装置、評価方法および評価プログラム
JP5521644B2 (ja) ハイブリッド並列処理システム、方法、及びプログラム
JP2013149221A (ja) プロセッサの制御装置およびその方法
JP2014191655A (ja) マルチプロセッサ、電子制御装置、プログラム
CN104702534A (zh) 一种实现多进程共享端口的数据处理的方法及装置
WO2012065432A1 (zh) 多核***中定时器的实现方法及多核***
CN105245372A (zh) 一种基于缓存和异步机制的加载网络资源的优化方法
US20100146322A1 (en) Method for overclocking central processing unit of computer motherboard
Marendić et al. An investigation into the performance of reduction algorithms under load imbalance
US11886916B2 (en) System for adaptive multithreaded recalculation operations
JP2005316679A (ja) 並列演算処理装置
CN104348639B (zh) 一种分区间的rpc超时值自适应调整方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141224

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

R150 Certificate of patent or registration of utility model

Ref document number: 5725446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150322

LAPS Cancellation because of no payment of annual fees