(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024105977
(43)【公開日】2024-08-07
(54)【発明の名称】計算資源制御プログラム、計算資源制御装置、及び計算資源制御方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20240731BHJP
【FI】
G06F9/50 120A
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023010007
(22)【出願日】2023-01-26
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】バイダ マリナ
(57)【要約】
【課題】複数の処理単位を実行する並列計算機において、各処理単位に割り当てられる計算資源の個数を制御する。
【解決手段】コンピュータは、第1期間におけるデータ共有動作に関する動作情報に基づいて、第2期間において複数の処理単位各々に割り当てられる計算資源の個数を決定する。データ共有動作は、複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する動作である。コンピュータは、決定された個数の計算資源を複数の処理単位各々に割り当てる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、前記複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する、データ共有動作に関する動作情報に基づいて、第2期間において前記複数の処理単位各々に割り当てられる計算資源の個数を決定し、
決定された前記個数の計算資源を前記複数の処理単位各々に割り当てる、
処理をコンピュータに実行させるための計算資源制御プログラム。
【請求項2】
前記動作情報は、前記第1期間において、前記複数の処理単位各々の実行時に発生する、計算資源1個当たりの前記データ共有動作の回数に関する情報であり、
前記複数の処理単位各々に割り当てられる計算資源の個数を決定する処理は、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも少ない処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも増加させ、かつ、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも多い処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも減少させる処理を含むことを特徴とする請求項1記載の計算資源制御プログラム。
【請求項3】
前記第2期間を前記第1期間として用い、かつ、前記第2期間よりも後の期間を前記第2期間として用いて、前記複数の処理単位各々に割り当てられる計算資源の個数を決定する処理と、前記決定された個数の計算資源を前記複数の処理単位各々に割り当てる処理とを繰り返す処理を、前記コンピュータにさらに実行させることを特徴とする請求項1記載の計算資源制御プログラム。
【請求項4】
複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、前記複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する、データ共有動作に関する動作情報に基づいて、第2期間において前記複数の処理単位各々に割り当てられる計算資源の個数を決定する決定部と、
決定された前記個数の計算資源を前記複数の処理単位各々に割り当てる割り当て部と、
を備えることを特徴とする計算資源制御装置。
【請求項5】
複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、前記複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する、データ共有動作に関する動作情報に基づいて、第2期間において前記複数の処理単位各々に割り当てられる計算資源の個数を決定し、
決定された前記個数の計算資源を前記複数の処理単位各々に割り当てる、
処理をコンピュータが実行することを特徴とする計算資源制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算資源制御技術に関する。
【背景技術】
【0002】
複数のノード装置を含む並列計算機において、ワークロードに含まれる複数のプロセスが並列に動作し、2つのプロセスの間でデータが共有されることがある。各ノード装置は、CPU(Central Processing Unit)及びメモリを含む。ワークロードは、並列計算機において1つ又は複数のノード装置内のCPUによって実行される処理単位の一例である。
【0003】
データ共有は、プロセス間における複数のコピー動作を含み、プロセス間におけるコピー動作は、ハードウェア間におけるコピー動作を伴う。ハードウェア間におけるコピー動作は、ワークロードを実行する2つのCPUのうち一方のCPUがメモリ内の特定の領域にデータを書き込む書き込み動作と、書き込み動作の後で他方のCPUが同じ領域からデータを読み出す読み出し動作とを含む。書き込み動作及び読み出し動作は、一方のCPUから他方のCPUへデータをコピーするために行われる。
【0004】
ワークロードの実行に関連して、マルチプロセッシングでのメモリ管理装置が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
並列計算機が複数のワークロードを実行し、各ワークロードがデータ共有を伴う場合、複数のワークロードそれぞれに対するCPUの割り当て方法によって、並列計算機の電力効率が低下することがある。
【0007】
なお、かかる問題は、ワークロードを実行するCPUがデータを共有する場合に限らず、様々な処理単位を実行する様々な計算資源がデータを共有する場合において生ずるものである。
【0008】
1つの側面において、本発明は、複数の処理単位を実行する並列計算機において、各処理単位に割り当てられる計算資源の個数を制御することを目的とする。
【課題を解決するための手段】
【0009】
1つの案では、計算資源制御プログラムは、以下の処理をコンピュータに実行させる。
【0010】
コンピュータは、第1期間におけるデータ共有動作に関する動作情報に基づいて、第2期間において複数の処理単位各々に割り当てられる計算資源の個数を決定する。データ共有動作は、複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する動作である。コンピュータは、決定された個数の計算資源を複数の処理単位各々に割り当てる。
【発明の効果】
【0011】
1つの側面によれば、複数の処理単位を実行する並列計算機において、各処理単位に割り当てられる計算資源の個数を制御することができる。
【図面の簡単な説明】
【0012】
【
図1】実施形態の計算資源制御装置の機能的構成図である。
【
図2】第1の計算資源制御処理のフローチャートである。
【
図6】データ共有キューステータス送信処理のフローチャートである。
【
図7A】第2の計算資源制御処理のフローチャート(その1)である。
【
図7B】第2の計算資源制御処理のフローチャート(その2)である。
【
図10】ワークロードに対して割り当てられるCPUの個数を示す図である。
【
図11】データ共有キューステータスとCPUの個数の関係を示す図である。
【
図12】情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら、実施形態を詳細に説明する。
【0014】
並列計算機において、特定のワークロードを実行するCPUの個数が増加すると、そのワークロードに含まれる複数のプロセスに起因して発生する、データ共有動作の回数も増加する。データ共有動作は、ハードウェア間におけるコピー動作を伴うため、電力を消費する。したがって、データ共有動作の回数が増加するほど、並列計算機の消費電力も増加する。
【0015】
1CPU当たりのデータ共有動作が多いワークロードの実行時に発生するコピー動作は、1CPU当たりのデータ共有動作が少ないワークロードと比較して、ワークロードの実行速度をそれほど向上させるわけではない。したがって、1CPU当たりのデータ共有動作が少ないワークロードの方が、1CPU当たりのデータ共有動作が多いワークロードよりも、計算能力に対する計算速度の比率が良好である。
【0016】
この場合、1CPU当たりのデータ共有動作が多いワークロードに対して多数のCPUが割り当てられると、データ共有動作が増加するわりには、ワークロードの実行速度が向上しないため、並列計算機の電力効率が低下する。一方、1CPU当たりのデータ共有動作が少ないワークロードに対して多数のCPUが割り当てられると、データ共有動作の増加を抑えながら、ワークロードを早く終了させることができるため、並列計算機の電力効率が向上する。
【0017】
図1は、実施形態の計算資源制御装置の機能的構成例を示している。
図1の計算資源制御装置101は、決定部111及び割り当て部112を含む。
【0018】
図2は、
図1の計算資源制御装置101が行う第1の計算資源制御処理の例を示すフローチャートである。まず、決定部111は、第1期間におけるデータ共有動作に関する動作情報に基づいて、第2期間において複数の処理単位各々に割り当てられる計算資源の個数を決定する(ステップ201)。
【0019】
データ共有動作は、複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する動作である。
【0020】
次に、割り当て部112は、決定された個数の計算資源を複数の処理単位各々に割り当てる(ステップ202)。
【0021】
図1の計算資源制御装置101によれば、複数の処理単位を実行する並列計算機において、各処理単位に割り当てられる計算資源の個数を制御することができる。
【0022】
図3は、並列計算機の構成例を示している。
図3の並列計算機301は、ノード装置311-1~ノード装置311-N(Nは2以上の整数)及び制御装置312を含む。制御装置312は、
図1の計算資源制御装置101に対応する。
【0023】
ノード装置311-1~ノード装置311-N及び制御装置312は、インターコネクト313を介して接続されている。インターコネクト313は、並列計算機301内の通信ネットワークである。
【0024】
ノード装置311-1~ノード装置311-Nは、ワークロード1~ワークロードL(Lは1以上の整数)を実行する。制御装置312は、各ワークロードw(w=1~L)に対して、1つ又は複数のノード装置311-pを割り当てる。
【0025】
図4は、
図3のノード装置311-p(p=1~N)のハードウェア構成例を示している。
図4のノード装置311-pは、CPU411、メモリ412、及び通信装置413を含む。これらの構成要素はハードウェアであり、バス414により互いに接続されている。CPU411は、演算処理部の一例である。
【0026】
ワークロードwは、割り当てられたノード装置311-p内のCPU411によって実行される。メモリ412は、ワークロードwの実行に用いられるデータを記憶し、データ共有キューを含む。CPU411は、メモリ412内のデータを用いて、ワークロードwに含まれる情報処理を行う。
【0027】
通信装置413は、インターコネクト313に接続され、通信に伴うデータ変換を行う通信インタフェース回路である。通信装置413は、インターコネクト313を介して、他のノード装置311-p及び制御装置312と通信する。
【0028】
並列計算機301におけるデータ共有動作は、ワークロードwを実行する2つのノード装置311-pの間におけるコピー動作を含む。コピー動作は、書き込み動作及び読み出し動作を含む。
【0029】
書き込み動作は、例えば、2つのノード装置311-pのうち、一方のノード装置311-p内のCPU411が、メモリ412内の特定の領域にデータを書き込む動作である。読み出し動作は、例えば、書き込み動作の後で、他方のノード装置311-p内のCPU411が、通信装置413を介して、そのメモリ412内の特定の領域からデータを読み出す動作である。書き込み動作及び読み出し動作によって、一方のノード装置311-pから他方のノード装置311-pへデータがコピーされる。
【0030】
メモリ412内のデータ共有キューは、コピーされるデータが格納される特定の領域のアドレス及びサイズを示す情報を含む。書き込み動作及び読み出し動作は、データ共有キュー内の情報を用いて行われる。
【0031】
ワークロードwを実行する1つ又は複数のノード装置311-pのうち、何れかのノード装置311-pのCPU411は、実行しているワークロードwをバックグラウンドにおいて監視する。そして、CPU411は、ワークロードwのデータ共有キューステータスDSN(w)を計算し、通信装置413を介して、DSN(w)を制御装置312へ送信する。DSN(w)は、例えば、次式により計算される。
【0032】
DSN(w)=K(w)/M(w) (1)
【0033】
K(w)は、特定期間においてワークロードwが実行されている場合に、ワークロードwに含まれる複数のプロセスに起因して発生するデータ共有動作の回数を表す。M(w)は、特定期間においてワークロードwを実行しているCPU411の個数を表す。したがって、DSN(w)は、1CPU当たりのデータ共有動作の発生回数を表す。
【0034】
図5は、
図3の制御装置312の機能的構成例を示している。
図5の制御装置312は、制御部511、スケジューラ512、通信部513、及び記憶部514を含む。制御部511及びスケジューラ512は、
図1の決定部111及び割り当て部112にそれぞれ対応する。
【0035】
通信部513は、インターコネクト313を介して、各ノード装置311-pと通信する。特定期間において、制御部511は、通信部513を介して、ワークロードwを監視しているノード装置311-pから、ワークロードwのDSN(w)を受信する。そして、制御部511は、受信したDSN(w)を、データ共有動作に関する動作情報として記憶部514に格納する。
【0036】
動作情報は、特定期間において並列計算機301内で実行されているワークロード1~ワークロードLそれぞれのDSN(w)を含む。特定期間は、第1期間に対応する。
【0037】
次に、制御部511は、動作情報を用いて、特定期間の次の期間において各ワークロードwに割り当てられるCPU411の個数を決定し、決定されたCPU411の個数を示す割り当て情報を、スケジューラ512へ出力する。特定期間の次の期間は、第2期間に対応する。
【0038】
例えば、制御部511は、DSN(w)が他のワークロードwよりも小さいワークロードwについて、次の期間において割り当てられるCPU411の個数を特定期間よりも増加させる。そして、制御部511は、DSN(w)が他のワークロードwよりも大きいワークロードwについて、次の期間において割り当てられるCPU411の個数を特定期間よりも減少させる。
【0039】
スケジューラ512は、次の期間において、割り当て情報が示す個数のノード装置311-pを各ワークロードwに割り当てることで、それらのノード装置311-p内のCPU411をワークロードwに割り当てる。次の期間において、各ワークロードwは、割り当てられたノード装置311-p内のCPU411によって実行される。
【0040】
DSN(w)が大きいワークロードwに割り当てられるCPU411の個数を制限することで、DSN(w)が小さく、CPU411がより効率的に使用される他のワークロードwに対して、より多くのCPU411を割り当てることができる。したがって、計算能力に対する計算速度の比率がより良好なワークロードwを、より早く終了させることができ、並列計算機301の消費電力を削減することができる。これにより、データ共有動作の電力効率に対する影響が軽減される。
【0041】
制御部511は、次の期間を新たな特定期間として用い、かつ、その期間の次の期間を新たな次の期間として用いて、各ワークロードwに割り当てられるCPU411の個数を決定する処理を繰り返す。スケジューラ512は、各ワークロードwに割り当てられるCPU411の個数が決定される度に、決定された個数のノード装置311-pを各ワークロードwに割り当てる処理を繰り返す。
【0042】
期間毎に各ワークロードwに割り当てられるCPU411の個数を決定することで、各期間においてワークロード1~ワークロードLそれぞれに割り当てられるCPU411の個数を最適化することができる。
【0043】
図6は、
図3のノード装置311-pが行うデータ共有キューステータス送信処理の例を示すフローチャートである。
図6のデータ共有キューステータス送信処理は、ワークロードwを実行しているノード装置311-pのうち、ワークロードwを監視するノード装置311-pによって、各期間の終了時に行われる。したがって、データ共有キューステータス送信処理は、期間毎に繰り返される。
【0044】
ワークロードwを監視するノード装置311-pのCPU411は、各期間におけるワークロードwのデータ共有動作の発生を監視し、期間の終了時に、式(1)により、ワークロードwのDSN(w)を計算する(ステップ601)。そして、CPU411は、通信装置413を介して、DSN(w)を制御装置312へ送信する(ステップ602)。
【0045】
制御装置312の制御部511は、通信部513を介して、ワークロードwを監視しているノード装置311-pから、ワークロードwのDSN(w)を受信し、DSN(w)を動作情報として記憶部514に格納する。
【0046】
図7A及び
図7Bは、
図3の制御装置312が行う第2の計算資源制御処理の例を示すフローチャートである。
図7A及び
図7Bの計算資源制御処理は、各期間の終了後、その期間の次の期間が始まる前に行われる。したがって、計算資源制御処理は、期間毎に繰り返される。
【0047】
DS(w)は、ワークロードwのデータ共有キューステータスを示す変数であり、計算資源制御処理の開始時には、各期間の直前の期間におけるDSN(w)がDS(w)に設定されている。
【0048】
まず、制御部511は、フラグFにfalseを設定し、ワークロードを示す制御変数wに1を設定する(ステップ701)。そして、制御部511は、wをLと比較する(ステップ702)。
【0049】
wがL以下である場合(ステップ702,YES)、制御部511は、記憶部514内の動作情報から、ワークロードwのDSN(w)を取得する(ステップ703)。そして、制御部511は、DSN(w)をDS(w)と比較する(ステップ704)。
【0050】
DSN(w)がDS(w)と異なっている場合(ステップ704,NO)、制御部511は、フラグFにtrueを設定し、DS(w)にDSN(w)を設定する(ステップ705)。そして、制御部511は、wを1だけインクリメントして(ステップ706)、ステップ702以降の処理を繰り返す。DSN(w)がDS(w)と同じである場合(ステップ704,YES)、制御部511は、DS(w)を変更することなく、ステップ706以降の処理を行う。
【0051】
wがLを超えた場合(ステップ702,NO)、制御部511は、フラグFをチェックする(ステップ707)。フラグFがtrueである場合(ステップ707,YES)、制御部511は、何れかのワークロードwのDSN(w)が変化したことを検知する。
【0052】
この場合、制御部511は、各ワークロードwの係数C(w)を計算する(ステップ708)。そして、制御部511は、C(w)を用いて、各ワークロードwに対するCPU411の最適な個数n(w)を計算し(ステップ709)、n(w)を示す割り当て情報をスケジューラ512へ出力する(ステップ710)。
【0053】
次に、スケジューラ512は、次の期間において、割り当て情報が示すn(w)個のノード装置311-pを各ワークロードwに割り当てることで、各ワークロードwにn(w)個のCPU411を割り当てる(ステップ711)。
【0054】
フラグFがfalseである場合(ステップ707,NO)、制御部511は、何れのワークロードwのDSN(w)も変化していないと判定する。この場合、制御装置312は、処理を終了する。
【0055】
図8は、
図7Bのステップ708における係数計算処理の例を示すフローチャートである。まず、制御部511は、C(1)~C(L)の総和を示す変数Sに0を設定し、ワークロードを示す制御変数w1及び制御変数w2に1を設定する(ステップ801)。そして、制御部511は、w1をLと比較する(ステップ802)。
【0056】
w1がL以下である場合(ステップ802,YES)、制御部511は、ワークロードw1のC(w1)に1を設定する(ステップ803)。そして、制御部511は、w2をLと比較する(ステップ804)。
【0057】
w2がL以下である場合(ステップ804,YES)、制御部511は、w1=w2又はDS(w2)=0の何れかの条件が満たされるか否かをチェックする(ステップ805)。何れの条件も満たされない場合(ステップ805,NO)、制御部511は、次式により、C(w1)を更新する(ステップ806)。
【0058】
C(w1)=C(w1)*DS(w2) (2)
【0059】
次に、制御部511は、w2を1だけインクリメントして(ステップ807)、ステップ804以降の処理を繰り返す。w1=w2又はDS(w2)=0の何れかの条件が満たされる場合(ステップ805,YES)、制御部511は、C(w1)を更新することなく、ステップ807以降の処理を行う。
【0060】
w2がLを超えた場合(ステップ804,NO)、制御部511は、次式により、Sを更新する(ステップ808)。
【0061】
S=S+C(w1) (3)
【0062】
次に、制御部511は、w1を1だけインクリメントして(ステップ809)、ステップ802以降の処理を繰り返す。w1がLを超えた場合(ステップ802,NO)、制御部511は、処理を終了する。
【0063】
図9は、
図7Bのステップ709におけるCPU数計算処理の例を示すフローチャートである。まず、制御部511は、ワークロードLに対するCPU411の最適な個数を示す変数nLにNを設定し、ワークロードを示す制御変数wに1を設定する(ステップ901)。Nは、並列計算機301内で利用可能なCPU411の個数に相当する。次に、制御部511は、wをL-1と比較する(ステップ902)。
【0064】
wがL-1以下である場合(ステップ902,YES)、制御部511は、次式により、n(w)を計算する(ステップ903)。
【0065】
n(w)=max(int(N*(C(w)/S)),1) (4)
【0066】
max(int(N*(C(w)/S)),1)は、int(N*(C(w)/S))と1の最大値を表す。int(N*(C(w)/S))は、N*(C(w)/S)の整数部分を表す。次に、制御部511は、次式により、nLを更新する(ステップ904)。
【0067】
nL=nL-n(w) (5)
【0068】
次に、制御部511は、wを1だけインクリメントして(ステップ905)、ステップ902以降の処理を繰り返す。wがL-1を超えた場合(ステップ902,NO)、制御部511は、n(L)にnLを設定する(ステップ906)。
【0069】
式(2)によれば、他のワークロードw2のDS(w2)が大きいほど、C(w1)が大きくなり、式(4)によれば、C(w)が大きいほど、n(w)が大きくなる。したがって、DS(w)が他のワークロードwよりも小さいワークロードwのn(w)は増加する傾向がある。
【0070】
一方、式(2)によれば、他のワークロードw2のDS(w2)が小さいほど、C(w1)が小さくなり、式(4)によれば、C(w)が小さいほど、n(w)が小さくなる。したがって、DS(w)が他のワークロードwよりも大きいワークロードwのC(w)は減少する傾向がある。
【0071】
一例として、N=10、L=3、DSN(1)=8、DSN(2)=5、DSN(3)=4、及びF=trueである場合を想定する。この場合、w1=1のときに、w2=2~3についてステップ806の処理を繰り返すことで、C(1)は、次のように計算される。
【0072】
C(1)=1*DS(2)*DS(3)=1*5*4=20 (11)
【0073】
同様にして、C(2)及びC(3)は、次のように計算される。
【0074】
C(2)=1*DS(1)*DS(3)=1*8*4=32 (12)
C(3)=1*DS(1)*DS(2)=1*8*5=40 (13)
【0075】
そして、w1=1~3についてステップ808の処理を繰り返すことで、Sは、次のように計算される。
【0076】
S=0+C(1)+C(2)+C(3)
=0+20+32+40
=92 (14)
【0077】
次に、ステップ903の処理を行うことで、n(1)及びn(2)は、次のように計算される。
【0078】
n(1)=max(int(N*(C(1)/S)),1)
=max(int(10*(20/92)),1)
=2 (15)
n(2)=max(int(N*(C(2)/S)),1)
=max(int(10*(32/92)),1)
=3 (16)
【0079】
そして、w1=1~2についてステップ904の処理を繰り返した後に、ステップ906の処理を行うことで、n(3)は、次のように計算される。
【0080】
n(3)=nL=10-2-3=5 (17)
【0081】
したがって、ワークロード1には2個のCPU411が割り当てられ、ワークロード2には3個のCPU411が割り当てられ、ワークロード3には5個のCPU411が割り当てられる。
【0082】
図10は、連続する3つの期間においてワークロード1~ワークロード3に対して割り当てられるCPU411の個数の例を示している。n0は、期間t0の終了後に計算されたn(1)~n(3)を表す。したがって、n0は、期間t1においてワークロード1~ワークロード3に割り当てられたCPU411の個数を表す。
【0083】
DSi(i=1~3)は、期間tiの終了後にノード装置311-pから送信され、DS(1)~DS(3)に設定されたDSN(1)~DSN(3)を表す。Ciは、期間tiの終了後に計算されたC(1)~C(3)を表す。niは、期間tiの終了後に計算されたn(1)~n(3)を表す。したがって、niは、期間t(i+1)においてワークロード1~ワークロード3に割り当てられたCPU411の個数を表す。
【0084】
図11は、データ共有キューステータスとCPU411の個数の関係の例を示している。横軸は、
図10のワークロード1~ワークロード3のn(w)を表し、縦軸は、ワークロード1~ワークロード3のDS(w)を表す。
【0085】
点1101は、期間t1におけるn(1)及びDS(1)に対応し、点1102は、期間t1におけるn(2)及びDS(2)に対応し、点1103は、期間t1におけるn(3)及びDS(3)に対応する。
【0086】
点1111は、期間t2におけるn(1)及びDS(1)に対応するとともに、期間t2におけるn(2)及びDS(2)にも対応する。点1112は、期間t2におけるn(3)及びDS(3)に対応する。
【0087】
点1121は、期間t3におけるn(1)及びDS(1)に対応するとともに、期間t3におけるn(2)及びDS(2)にも対応する。点1122は、期間t3におけるn(3)及びDS(3)に対応する。
【0088】
期間t0において、n(1)=5、n(2)=2、及びn(3)=3であり、期間t1において、DS(1)=8、DS(2)=5、DS(3)=2、n(1)=2、n(2)=3、及びn(3)=5である。
【0089】
期間t1において、DS(1)はDS(2)及びDS(3)よりも大きいため、n(1)は、期間t1においてワークロード1に割り当てられたCPU411の個数よりも減少している。一方、n(2)は、期間t1においてワークロード2に割り当てられたCPU411の個数よりも増加しており、n(3)は、期間t1においてワークロード3に割り当てられたCPU411の個数よりも増加している。
【0090】
期間t2において、DS(1)=3、DS(2)=3、DS(3)=3、n(1)=3、n(2)=3、及びn(3)=4である。
【0091】
期間t2において、DS(1)=DS(2)=DS(3)であるため、n(1)~n(3)は、期間t2においてワークロード1~ワークロード3に割り当てられたCPU411の個数からあまり変化していない。
【0092】
期間t3において、DS(1)=0、DS(2)=0、DS(3)=40、n(1)=5、n(2)=5、及びn(3)=0である。
【0093】
期間t3において、DS(3)はDS(1)及びDS(2)よりも大きいため、n(3)は、期間t3においてワークロード3に割り当てられたCPU411の個数よりも減少している。一方、n(1)は、期間t3においてワークロード1に割り当てられたCPU411の個数よりも増加しており、n(2)は、期間t3においてワークロード2に割り当てられたCPU411の個数よりも増加している。
【0094】
次に、
図7A及び
図7Bの計算資源制御処理の前後における消費電力及び処理時間の変化について説明する。この説明では、以下のような変数が用いられる。
【0095】
r(w):計算資源制御処理の直前の期間においてワークロードwに割り当てられたCPU411の個数
PD:1回のデータ共有動作の消費電力
TD:1回のデータ共有動作の処理時間
PC:最適化処理の消費電力
TC:最適化処理の処理時間
【0096】
最適化処理は、ステップ701~ステップ710の処理に対応する。計算資源制御処理の直前の期間におけるデータ共有動作の消費電力P1は、次式により表される。
【0097】
P1=PD*(Σr(w)*DS(w)) (21)
【0098】
Σは、w=1~Lについての総和を表す。最適化処理の消費電力と、計算資源制御処理の終了後に開始される次の期間におけるデータ共有動作の推定消費電力との和P2は、次式により表される。
【0099】
P2=PC+PD*(Σn(w)*DS(w)) (22)
【0100】
P2に対するP1の比率RPは、次式により表される。
【0101】
RP=P1/P2 (23)
【0102】
計算資源制御処理の直前の期間におけるデータ共有動作の処理時間T1は、次式により表される。
【0103】
T1=TD*(Σr(w)*DS(w)) (24)
【0104】
最適化処理の処理時間と、計算資源制御処理の終了後に開始される次の期間におけるデータ共有動作の処理時間との和T2は、次式により表される。
【0105】
T2=TC+TD*(Σn(w)*DS(w)) (25)
【0106】
T2に対するT1の比率RTは、次式により表される。
【0107】
RT=T1/T2 (26)
【0108】
計算資源制御処理によって、DS(w)が小さいワークロードwに対して割り当てられるCPU411の個数n(w)は増加するため、そのワークロードwはより早く終了する。一方、DS(w)が大きいワークロードwに対して割り当てられるCPU411の個数n(w)は減少するため、並列計算機301全体のデータ共有動作の回数が削減される。したがって、次の期間におけるデータ共有動作の消費電力及び処理時間が減少する。
【0109】
DS(w)が大きいワークロードwに対してより多くのCPU411が割り当てられるのは、そのワークロードwの一部の処理が実行された後になるため、CPU411の増加に伴う追加的なデータ共有動作の発生が抑制される。
【0110】
一例として、N=10、L=3、r(1)=6、r(2)=2、r(3)=2、DS(1)=27、DS(2)=1、DS(3)=7、n(1)=0、n(2)=8、及びn(3)=2である場合を想定する。この場合、P1は、式(21)により、次のように計算される。
【0111】
P1=PD*(6*27+2*1+2*7)=178PD (27)
【0112】
P2は、式(22)により、次のように計算される。
【0113】
P2=PC+PD*(0*27+8*1+2*7)=PC+22PD (28)
【0114】
RPは、式(23)により、次のように計算される。
【0115】
RP=178PD/(PC+22PD) (29)
【0116】
PC<156PDである場合、RP>1となるため、計算資源制御処理によって電力効率が向上する。
【0117】
T1は、式(24)により、次のように計算される。
【0118】
T1=TD*(6*27+2*1+2*7)=178TD (30)
【0119】
T2は、式(25)により、次のように計算される。
【0120】
T2=TC+TD*(0*27+8*1+2*7)=TC+22TD (31)
【0121】
RTは、式(26)により、次のように計算される。
【0122】
RT=178TD/(TC+22TD) (32)
【0123】
TC<156TDである場合、RT>1となるため、計算資源制御処理によって処理効率が向上する。
【0124】
図3の並列計算機301は、ノード装置311-1~ノード装置311-Nによって使用される共有メモリを含んでいてもよい。この場合、共有メモリは、ワークロードwの実行に用いられるデータを記憶し、各ノード装置311-pは、共有メモリ内のデータを用いて、ワークロードwに含まれる情報処理を行う。
【0125】
データ共有動作に含まれる書き込み動作において、2つのノード装置311-pのうち、一方のノード装置311-p内のCPU411は、通信装置413を介して、共有メモリ内の特定の領域にデータを書き込むことができる。書き込み動作の後の読み出し動作において、他方のノード装置311-p内のCPU411は、通信装置413を介して、共有メモリ内の特定の領域からデータを読み出すことができる。
【0126】
図3のノード装置311-1~ノード装置311-Nは、ワークロードwの代わりに、ジョブ又はタスクを処理単位として実行してもよい。
図4のノード装置311-pは、CPU411の代わりに、GPU(Graphics Processing Unit)等の他の演算処理部を含んでいてもよい。
【0127】
図1の計算資源制御装置101の構成は一例に過ぎず、計算資源制御装置101の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【0128】
図3の並列計算機301の構成は一例に過ぎず、並列計算機301の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
図4のノード装置311-pの構成は一例に過ぎず、並列計算機301の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
図5の制御装置312の構成は一例に過ぎず、並列計算機301の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【0129】
図2及び
図6~
図9のフローチャートは一例に過ぎず、計算資源制御装置101又は並列計算機301の構成又は条件に応じて一部の処理を省略又は変更してもよい。
【0130】
図10及び
図11に示したCPU411の個数は一例に過ぎず、各ワークロードwに割り当てられるCPU411の個数n(w)は、利用可能なCPU411の個数N、ワークロードwの個数L、及び各ワークロードwのDSN(w)に応じて変化する。
【0131】
式(1)~式(32)は一例に過ぎず、並列計算機301は、別の計算式を用いて計算資源制御処理を行ってもよい。
【0132】
図12は、
図1の計算資源制御装置101及び
図5の制御装置312として用いられる情報処理装置(コンピュータ)のハードウェア構成例を示している。
図12の情報処理装置は、CPU1201、メモリ1202、入力装置1203、出力装置1204、補助記憶装置1205、媒体駆動装置1206、及びネットワーク接続装置1207を含む。これらの構成要素はハードウェアであり、バス1208により互いに接続されている。
【0133】
メモリ1202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを記憶する。メモリ1202は、
図5の記憶部514として動作してもよい。
【0134】
CPU1201(プロセッサ)は、例えば、メモリ1202を利用してプログラムを実行することにより、
図1の決定部111及び割り当て部112として動作する。
【0135】
CPU1201は、メモリ1202を利用してプログラムを実行することにより、
図5の制御部511及びスケジューラ512としても動作する。
【0136】
入力装置1203は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示又は情報の入力に用いられる。出力装置1204は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせ又は処理結果の出力に用いられる。処理結果は、各ワークロードwに割り当てられるCPU411の個数n(w)であってもよい。
【0137】
補助記憶装置1205は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置1205は、ハードディスクドライブ又はSSD(Solid State Drive)であってもよい。情報処理装置は、補助記憶装置1205にプログラム及びデータを格納しておき、それらをメモリ1202にロードして使用することができる。補助記憶装置1205は、
図5の記憶部514として動作してもよい。
【0138】
媒体駆動装置1206は、可搬型記録媒体1209を駆動し、その記録内容にアクセスする。可搬型記録媒体1209は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体1209は、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。ユーザ又はオペレータは、可搬型記録媒体1209にプログラム及びデータを格納しておき、それらをメモリ1202にロードして使用することができる。
【0139】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ1202、補助記憶装置1205、又は可搬型記録媒体1209のような、物理的な(非一時的な)記録媒体である。
【0140】
ネットワーク接続装置1207は、インターコネクト313に接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置1207を介して受信し、それらをメモリ1202にロードして使用することができる。ネットワーク接続装置1207は、
図5の通信部513として動作してもよい。
【0141】
なお、情報処理装置が
図12のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略又は変更することも可能である。例えば、ユーザ又はオペレータとのインタフェースが不要である場合は、入力装置1203及び出力装置1204を省略してもよい。情報処理装置が可搬型記録媒体1209を利用しない場合は、媒体駆動装置1206を省略してもよい。
【0142】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【0143】
図1乃至
図12を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、前記複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する、データ共有動作に関する動作情報に基づいて、第2期間において前記複数の処理単位各々に割り当てられる計算資源の個数を決定し、
決定された前記個数の計算資源を前記複数の処理単位各々に割り当てる、
処理をコンピュータに実行させるための計算資源制御プログラム。
(付記2)
前記動作情報は、前記第1期間において、前記複数の処理単位各々の実行時に発生する、計算資源1個当たりの前記データ共有動作の回数に関する情報であり、
前記複数の処理単位各々に割り当てられる計算資源の個数を決定する処理は、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも少ない処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも増加させ、かつ、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも多い処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも減少させる処理を含むことを特徴とする付記1記載の計算資源制御プログラム。
(付記3)
前記第2期間を前記第1期間として用い、かつ、前記第2期間よりも後の期間を前記第2期間として用いて、前記複数の処理単位各々に割り当てられる計算資源の個数を決定する処理と、前記決定された個数の計算資源を前記複数の処理単位各々に割り当てる処理とを繰り返す処理を、前記コンピュータにさらに実行させることを特徴とする付記1記載の計算資源制御プログラム。
(付記4)
前記複数の計算資源は複数の演算処理部であることを特徴とする付記1乃至3の何れか1項に記載の計算資源制御プログラム。
(付記5)
複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、前記複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する、データ共有動作に関する動作情報に基づいて、第2期間において前記複数の処理単位各々に割り当てられる計算資源の個数を決定する決定部と、
決定された前記個数の計算資源を前記複数の処理単位各々に割り当てる割り当て部と、
を備えることを特徴とする計算資源制御装置。
(付記6)
前記動作情報は、前記第1期間において、前記複数の処理単位各々の実行時に発生する、計算資源1個当たりの前記データ共有動作の回数に関する情報であり、
前記決定部は、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも少ない処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも増加させ、かつ、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも多い処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも減少させることを特徴とする付記5記載の計算資源制御装置。
(付記7)
前記決定部は、前記第2期間を前記第1期間として用い、かつ、前記第2期間よりも後の期間を前記第2期間として用いて、前記複数の処理単位各々に割り当てられる計算資源の個数を決定する処理を繰り返し、
前記割り当て部は、前記決定された個数の計算資源を前記複数の処理単位各々に割り当てる処理を繰り返すことを特徴とする付記5記載の計算資源制御装置。
(付記8)
前記複数の計算資源は複数の演算処理部であることを特徴とする付記5乃至7の何れか1項に記載の計算資源制御装置。
(付記9)
複数の計算資源を含む並列計算機において、第1期間における複数の処理単位各々の実行時に、前記複数の計算資源のうち実行される処理単位に割り当てられた2つの計算資源がデータを共有する、データ共有動作に関する動作情報に基づいて、第2期間において前記複数の処理単位各々に割り当てられる計算資源の個数を決定し、
決定された前記個数の計算資源を前記複数の処理単位各々に割り当てる、
処理をコンピュータが実行することを特徴とする計算資源制御方法。
(付記10)
前記動作情報は、前記第1期間において、前記複数の処理単位各々の実行時に発生する、計算資源1個当たりの前記データ共有動作の回数に関する情報であり、
前記複数の処理単位各々に割り当てられる計算資源の個数を決定する処理は、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも少ない処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも増加させ、かつ、前記複数の処理単位のうち、前記計算資源1個当たりの前記データ共有動作の回数が他の処理単位よりも多い処理単位について、前記第2期間において割り当てられる計算資源の個数を前記第1期間よりも減少させる処理を含むことを特徴とする付記9記載の計算資源制御方法。
(付記11)
前記第2期間を前記第1期間として用い、かつ、前記第2期間よりも後の期間を前記第2期間として用いて、前記複数の処理単位各々に割り当てられる計算資源の個数を決定する処理と、前記決定された個数の計算資源を前記複数の処理単位各々に割り当てる処理とを繰り返す処理を、前記コンピュータがさらに実行することを特徴とする付記9記載の計算資源制御方法。
(付記12)
前記複数の計算資源は複数の演算処理部であることを特徴とする付記9乃至11の何れか1項に記載の計算資源制御方法。
【符号の説明】
【0144】
101 計算資源制御装置
111 決定部
112 割り当て部
301 並列計算機
311-1~311-N ノード装置
312 制御装置
313 インターコネクト
411、1201 CPU
412、1202 メモリ
413 通信装置
414、1208 バス
511 制御部
512 スケジューラ
513 通信部
514 記憶部
1203 入力装置
1204 出力装置
1205 補助記憶装置
1206 媒体駆動装置
1207 ネットワーク接続装置
1209 可搬型記録媒体