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

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

▶ ベルンハルト フローヴィッターの特許一覧

特表2022-531353並列計算をダイナミックに最適化するための装置および方法
<>
  • 特表-並列計算をダイナミックに最適化するための装置および方法 図1
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-06
(54)【発明の名称】並列計算をダイナミックに最適化するための装置および方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20220629BHJP
【FI】
G06F9/50 120Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021564851
(86)(22)【出願日】2020-04-29
(85)【翻訳文提出日】2021-11-18
(86)【国際出願番号】 EP2020061887
(87)【国際公開番号】W WO2020221799
(87)【国際公開日】2020-11-05
(31)【優先権主張番号】19171779.2
(32)【優先日】2019-04-30
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】521476447
【氏名又は名称】ベルンハルト フローヴィッター
【氏名又は名称原語表記】Bernhard Frohwitter
【住所又は居所原語表記】Possartstr. 20, 81679 Muenchen, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ベルンハルト フローヴィッター
(72)【発明者】
【氏名】トーマス リッパート
(57)【要約】
本発明は、システムの増速度と、各タイプの処理要素の数と、並列化可能な各並行性のコード部分の分数とに関する一般化アムダールの法則を適用することによって、複数のタイプの処理要素を含む並列計算システムを最適化する方法を提供する。本発明は、所望の増速度の取得に要求されるアクセラレータ処理要素における変化の決定に使用可能である。
【特許請求の範囲】
【請求項1】
1つもしくは複数の計算アプリケーションを処理する並列計算システムのリソースを割り当てる方法であって、前記並列計算システムが、所定数の種々のタイプの処理要素、すなわち所定数の少なくとも第1のタイプの処理要素および所定数の少なくとも第2のタイプの処理要素を含み、前記方法が、
各計算アプリケーションに対する、
各タイプの処理要素に対して、前記アプリケーションのための、当該タイプの処理要素によって並列に処理可能なアプリケーションコードの一部分を表すパラメータを決定するステップと、
前記アプリケーションの処理のために取得されたパラメータを用いて、前記少なくとも第1のタイプの処理要素および前記少なくとも第2のタイプの処理要素により、1つもしくは複数のタイプの処理要素の数を変化させることによって前記アプリケーションの予測処理時間が変化する度合を決定するステップと、
を含み、さらに、
前記並列計算システムの処理要素の利用が最適化されるように、前記少なくとも第1のタイプの処理要素および前記少なくとも第2のタイプの処理要素を1つもしくは複数の計算アプリケーションに割り当てるステップと、
を含む、方法。
【請求項2】
複数の少なくとも第1のタイプの処理要素と複数の少なくとも第2のタイプの処理要素とを含む、複数の種々のタイプの処理要素を有する並列計算システムを設計する方法であって、前記方法が、
各タイプの処理要素に対して、当該タイプの処理要素によって並列に処理可能な対応する処理タスクの比率を表すパラメータを決定するステップと、
(i)前記アプリケーションのためのシステムの処理速度が当該タイプの処理要素の数によって変化しないポイントを決定するステップであって、処理速度、前記第1のタイプの処理要素および前記第2のタイプの処理要素のパラメータ、前記第1のタイプの処理要素の数、当該タイプの処理要素の数、ならびに前記第1のタイプの処理要素および前記第2のタイプの処理要素のコストに関する式において決定する、ステップと、
(ii)並列計算システムでの処理時間における所望の変化のために、各タイプの処理要素につき決定されたパラメータを使用するステップであって、前記所望の変化を処理時間内に取得するのに要求される処理要素の数における充分な変化を決定するために該パラメータを使用するステップと、
のいずれかにより、前記第1のタイプの処理要素および前記第2のタイプの処理要素のうち少なくとも一方の最適数を決定するステップと、
前記並列計算システムを構築するために、決定された前記最適数を使用するステップと、
を含む、方法。
【請求項3】
前記第1のタイプの処理要素は、前記第2のタイプの処理要素よりも高い処理能力を有し、前記第1のタイプの処理要素につき決定されたパラメータは、アプリケーションのうち低いほうのスケーラビリティコード部の並列化可能コード部分であり、前記第2のタイプの処理要素につき決定されたパラメータは、アプリケーションのうち高いほうのスケーラビリティコード部の並列化可能コード部分である、請求項1または2記載の方法。
【請求項4】
全体コスト係数と処理要素タイプ処理要素コスト係数とが考慮される、請求項1から3までのいずれか1項記載の方法。
【請求項5】
前記コスト係数は、財務コスト、エネルギ消費コストおよび熱冷却コストのうちの少なくとも1つである、請求項4記載の方法。
【請求項6】
解決について合意された時間を提供するためのサービスレベル合意が、処理要素の必要数を決定するための制約として使用される、請求項1から3までのいずれか1項記載の方法。
【請求項7】
前記最適数は、式
【数1】
を操作することによって決定され、
ここで、Sは増速係数であり、
は支配的な並行性のコード部の並列化可能な分数であり、
は支配的な並行性よりも高いスケーラビリティを有する並行性のコード部の並列化可能な分数であり、
は第1のタイプの処理要素の数であり、
は第2のタイプの処理要素の数であり、
ηは調整係数であり、
fは相対処理速度係数である、
請求項1から6までのいずれか1項記載の方法。
【請求項8】
前記並列計算システムは、1つもしくは複数のさらなるタイプの処理要素を含み、
各さらなるタイプの処理要素により並列に処理可能な対応する処理タスクの比率を表すパラメータは、各さらなるタイプについて決定される、
請求項1から7までのいずれか1項記載の方法。
【請求項9】
1つもしくは複数の計算アプリケーションを処理する並列計算システムのリソースを割り当てる方法であって、前記並列計算システムが、複数の少なくとも第1のタイプの処理要素と複数の少なくとも第2のタイプの処理要素とを含む、複数の種々のタイプの処理要素を含み、前記方法が、
計算アプリケーションに対する、
各タイプの処理要素に対して、前記アプリケーションのための、当該タイプの処理要素によって並列に処理可能なアプリケーションコードの一部分を表すパラメータを決定するステップと、
前記アプリケーションの処理のために取得されたパラメータを用いて、前記少なくとも第1のタイプの処理要素および前記少なくとも第2のタイプの処理要素により、1つもしくは複数のタイプの処理要素の数を変化させることによって前記アプリケーションの予測処理時間が変化する度合を決定するステップと、
を含み、さらに、
前記並列計算システムの処理要素の利用が最適化されるように、前記少なくとも第1のタイプの処理要素および前記少なくとも第2のタイプの処理要素を前記計算アプリケーションに割り当てるステップと、
を含む、方法。
【請求項10】
前記割り当てるステップは、式
【数2】
の操作に追従して行われ、
ここで、Sは増速係数であり、
は支配的な並行性のコード部の並列化可能な分数であり、
は支配的な並行性よりも高いスケーラビリティを有する並行性のコード部の並列化可能な分数であり、
は第1のタイプの処理要素の数であり、
は第2のタイプの処理要素の数であり、
ηは調整係数であり、
fは相対処理速度係数である、
請求項9記載の方法。
【請求項11】
前記並列計算システムは、少なくとも1つのさらなるタイプの処理要素を含み、1つもしくは複数のさらなるタイプの処理要素が、前記計算アプリケーションに割り当てられる、請求項9または10記載の方法。
【請求項12】
特定のレベルのサービスを要求するサービスレベル合意が、アプリケーションへの処理要素リソースの割り当てを決定するための制約として使用される、請求項9から11までのいずれか1項記載の方法。
【請求項13】
複数の少なくとも第1のタイプの処理要素と複数の少なくとも第2のタイプの処理要素とを含む、複数の処理要素を含む並列計算システムを設計する方法であって、前記方法が、
第1のタイプの処理要素の第1の数kをセットするステップと、
前記第1のタイプの処理要素の前記第1の数にわたって分散された第1の並行性の並列化可能部分pを決定するステップと、
前記第2のタイプの処理要素の第2の数にわたって分散された第2の並行性の並列化可能部分pを決定するステップと、
値k,p,pおよびSを用いて、前記並列計算システムに要求される増速度Sを提供するために要求される、前記第2のタイプの処理要素の前記第2の数を決定するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は並列計算システムの処理能力の最適化に関する。
【0002】
過去30年にわたって観察された、スーパーコンピュータおよびデータセンタで利用可能な計算能力の指数的な増大は、主として並列処理の増大の結果であり、これにより、チップ(マルチコア)上、ノード(複数のCPU)上、およびシステムレベル(システム内のノード数の増大)での計算の並行性の増大が可能となる。オンチップ並列処理により、部分的にはコアの数が増大してもチップあたりのエネルギ消費量は一定に維持されるが、ノードあたりのCPUの数とシステム内のノードの数とは、電力要求と要求される投資とを比例的に増大させる。
【0003】
同時に、種々様々な計算タスクが種々のタイプのハードウェアで最も効果的に実行されうることが明らかとなっている。このような計算要素の例は、マルチスレッドマルチコアCPU、多数コアCPU、GPU、TPUまたはFPGAである。また、種々のタイプのコアを搭載したプロセッサも目睫に迫っており、例えばIntel社のコンフィギャラブルスペイシャルアクセラレータ(CSA)のような追加データフローコプロセッサを備えたCPUが挙げられる。科学面での計算タスクの種々のカテゴリの例として、とりわけ、行列乗算、疎行列乗算、ステンシルベースシミュレーション、イベントベースシミュレーション、深層学習問題などがあり、工業面での例としては、特に、オペレーションズリサーチ、計算流体力学(CFD)、薬剤設計などにおけるワークフローが見出される。データ集約型の計算は高度な並列計算(HPC)において支配的となっており、データセンタにおける重要性をさらに増している。所与のタスクに対して最も電力効率の良い計算要素を利用する必要があることは明らかである。
【0004】
さらに、計算の複雑性が増大するにつれて、方法論的側面と計算タスクのカテゴリとの組み合わせがますます重要となる。ワークフローがスーパーコンピューティングセンタでの作業において支配的となり、種々のレベルの並列処理での個々のプログラムのスケーラビリティが問題を増大させ、データセンタで実行されるタスクの異質性が演算において支配的となるであろう。典型例は、ウェブベースのクエリから誘起される(高いスループットの)深層学習タスクのダイナミックな割り当てであり、これは、データセンタで発生するデータベースの広範な使用を含むことが多い。
【0005】
国際公開第2012/049247号に記載されているようなモジュラ型スーパーコンピューティングシステムの意味における種々のハードウェアリソースの組み合わせおよび相互作用、または実行すべき種々のタスクに対して適応化されたデータセンタ内の種々のモジュールは、現在および将来の複雑な計算問題の要求を満たさなければならない場合、巨大な技術的課題となることが明らかである。
【0006】
エクサスケール計算用の高速クラスタアーキテクチャの設計に関する考察は、N.Eicker and Th.Lippert, “An accelerated Cluster-Architecture for the Exascale”, PARS ’11, PARS-Mitteilungen, Mitteilungen-Gesellschaft fuer Informatik e.V., Parallel-Algorithmen und Rechnerstrukturen, pp.110-119に記載されており、ここでは、アムダールの法則の関連性が論じられている。
【0007】
アムダールの法則(AL)の本来のバージョンは、Gene Amdahl, “Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities”, AFIPS Conference Proceedings, Band 30, 1967, p.483-485で論じられているように、高度に理想化された設定での並列計算によって問題を計算する増速度Sの上方限界を定義している。
ALは、「並列化において、pが並列化可能なシステムもしくはプログラムの比率であり、かつ1-pが順列のままの比率である場合、k個のプロセッサを使用して達成可能な最大増速度が、
【数1】
である」のような語句で表現することができる(http://www.techopedia.com/definition/17035/amdahls-lawを参照されたい)。
【0008】
アムダールの本来の例は、計算問題のスカラー部分と並列コード部分とに関しており、これらは共に同じ技術タイプの計算要素上で実行される。数値演算が支配的な用途では、こうしたコード部分は浮動小数点演算(フロップ)の数の比として合理的に指定可能であり、整数計算のような他のタイプの演算では、等価の定義を与えることができる。並列化不能なスカラーコード部分sを、コードの実行中に発生するフロップの総数で除算されたスカラーフロップの数によって特徴付けられるもの、すなわち
s=スカラーフロップの数/フロップの総数
とし、同様に、並列実行のためにk個の計算要素に分散可能な並列コード部分pを、コードの実行中に発生するフロップの総数で除算された並列化可能なフロップの数によって特徴付けられるもの、すなわち
p=並列化可能なフロップの数/フロップの総数
とする。
【0009】
したがって、上で紹介したように、s=1-pである。スカラー部分の実行時間は、1つの計算要素上でしか計算できないため、sに比例することが明らかであるが、部分pの実行時間は、負荷がk個の計算要素に分散可能であるとき、pの1/kに比例する時間で計算可能である。したがって、増速度Sは、
【数2】
によって与えられる。
【0010】
当該式はALと称される。kが無限大に近づくとき、つまり、並列コード部分が無限にスケーラブルであると想定される場合、漸近的な増速度Sを、
【数3】
のように導出可能であり、これは単純にスカラーコード部分sの逆数である。当該形式におけるアムダールの法則は遅延および通信パフォーマンスなどの他の限界要因を考慮していないことへの注意が重要である。これらはさらにSを減少させる。一方、キャッシュ技術は状況を改善することができる。しかし、ALによる基本的な限界は、所与の仮定のもとに保持される。
【0011】
ALから、合理的な増速度を得るためにsのパーセンテージを低減する必要があることが明らかとなる。
【0012】
本発明は、1つもしくは複数の計算アプリケーションを処理する並列計算システムのリソースを割り当てる方法であって、並列計算システムが、所定数の種々のタイプの処理要素、すなわち所定数の少なくとも第1のタイプの処理要素および所定数の少なくとも第2のタイプの処理要素を含み、方法が、各計算アプリケーションに対して、各タイプの処理要素につき、アプリケーションのための、当該タイプの処理要素によって並列に処理可能なアプリケーションコードの一部分を表すパラメータを決定することと、アプリケーションの処理のために取得されたパラメータを用いて、少なくとも第1のタイプの処理要素および少なくとも第2のタイプの処理要素により、1つもしくは複数のタイプの処理要素の数を変化させることによってアプリケーションの予測処理時間が変化する度合を決定することと、並列計算システムの処理要素の利用が最適化されるように、少なくとも第1のタイプの処理要素および少なくとも第2のタイプの処理要素を1つもしくは複数の計算アプリケーションに割り当てることとを含む、方法を提供する。
【0013】
別の態様では、本発明は、複数の少なくとも第1のタイプの処理要素および複数の少なくとも第2のタイプの処理要素を含む複数の種々のタイプの処理要素を有する並列計算システムを設計する方法であって、方法が、各タイプの処理要素につき、当該タイプの処理要素によって並列に処理可能な対応する処理タスクの比率を表すパラメータを決定することと、(i)アプリケーションのためのシステムの処理速度が当該タイプの処理要素の数によって変化しないポイントを、処理速度、第1のタイプの処理要素および第2のタイプの処理要素のパラメータ、第1のタイプの処理要素の数、当該タイプの処理要素の数、ならびに第1のタイプの処理要素および第2のタイプの処理要素のコストに関する式において決定することと、(ii)並列計算システムでの処理時間における所望の変化のために、各タイプの処理要素につき決定されたパラメータを使用して、所望の変化を処理時間内に取得するのに要求される処理要素の数における充分な変化を決定することとのいずれかにより、第1のタイプの処理要素および第2のタイプの処理要素のうち少なくとも一方の最適数を決定することと、決定された最適数を使用して並列計算システムを構築することと、を含む、方法を提供する。
【0014】
さらに別の態様では、本発明は、1つもしくは複数の計算アプリケーションを処理する並列計算システムのリソースを割り当てる方法であって、並列計算システムが、複数の少なくとも第1のタイプの処理要素および複数の少なくとも第2のタイプの処理要素を含む複数の種々のタイプの処理要素を含み、方法が、計算アプリケーションに対して、各タイプの処理要素につき、アプリケーションのための、当該タイプの処理要素によって並列に処理可能なアプリケーションコードの一部分を表すパラメータを決定することと、アプリケーションの処理のために取得されたパラメータを用いて、少なくとも第1のタイプの処理要素および少なくとも第2のタイプの処理要素により、1つもしくは複数のタイプの処理要素の数を変化させることによってアプリケーションの予測処理時間が変化する度合を決定することと、並列計算システムの処理要素の利用が最適化されるように、少なくとも第1のタイプの処理要素および少なくとも第2のタイプの処理要素を計算アプリケーションに割り当てることとを含む、方法を提供する。
【0015】
さらに別の態様では、本発明は、複数の少なくとも第1のタイプの処理要素および複数の第2のタイプの処理要素を含む、複数の処理要素を含む並列計算システムを設計する方法であって、方法が、第1のタイプの処理要素の第1の数kをセットすることと、第1のタイプの処理要素の第1の数にわたって分散された第1の並行性の並列化可能部分pを決定することと、第2のタイプの処理要素の第2の数にわたって分散された第2の並行性の並列化可能部分pを決定することと、値k,p,pおよびSを用いて、並列計算システムに要求される増速度Sを提供するために要求される、第2のタイプの処理要素の第2の数を決定することとを含む、方法を提供する。
【0016】
本発明は、相互作用するコンピュータモジュールを備えたモジュラ型スーパーコンピュータおよびデータセンタを構築する基本方式として使用される技術、ならびにモジュラ型システムにおけるリソースの割り当てのダイナミックな動作制御のための方法を提供する。本発明は、モジュラ計算およびデータ分析システムの設計を最適化するため、ならびに所与のモジュラ型システムにおけるハードウェアリソースのダイナミックな調整を最適化するために使用可能である。
【0017】
本発明は、インターネットを介してデータセンタ内の中央システムに接続されている多数のより小さな並列計算システムを含む状況に容易に拡張可能である。当該状況はエッジコンピューティングと称される。この場合、エッジコンピューティングシステムは、データセンタとの対話において、可能な最低エネルギ消費量と大きな遅延での低い通信速度とに関する条件の基礎となっている。
【0018】
エネルギ、運用および投資のコストならびにパフォーマンスおよびその他の可能な条件に関して、並列計算および分散計算の有効性を最適化する方法が提供される。本発明は、新しいアムダールの法則の一般化形式(GAL)に追従する。GALは、(通常は種々の相互作用プログラムを含む)計算のワークフローまたは所与の単一のプログラムが、それぞれ、その一部もしくはプログラム部分の種々の並行性を示す状況に適用される。当該方法は、限定されるものではないが、次のような計算上の問題、すなわち、問題のプログラム部分の大部分を例えばGPUのような高速計算要素上で効率的に実行でき、多数のfine‐grainedベースの計算要素にスケーリング可能であるが、そのパフォーマンスが支配的な並行性によって制限される他のプログラム部分は例えばこんにちのマルチスレッドCPUのコアによって代表されるような強力な計算要素上で実行されることが最良であるという問題にとって特に有益である。
【0019】
GALを利用することで、モジュラ型スーパーコンピュータシステムまたは複数のモジュールから成るデータセンタ全体を、投資予算、エネルギ消費量、または解決までの時間などの制約を考慮して最適な方式で設計することができる一方、適切な計算ハードウェア上で最適な方式で計算問題をマッピングすることもできる。計算プロセスの実行プロパティに依存して、リソースのマッピングは、GALの運用によってダイナミックに調整可能である。
【0020】
ここで、本発明の好ましい実施形態を、例示のためのみであるが、並列計算システムの概略的な配置を示した添付の図を参照しながら以下に説明する。
【図面の簡単な説明】
【0021】
図1】複数の計算ノード10と複数のブースタノード20とを含む並列計算システム100を示す図である。
【0022】
本発明の適用形態を概略的に示すために、図1を参照して説明する。図1は、複数の計算ノード10と複数のブースタノード20とを含む並列計算システム100を示す図である。計算ノード10はそれぞれ相互接続されており、また、ブースタノード20もそれぞれ相互接続されている。通信インフラストラクチャ30は、計算ノード10とブースタノード20とを接続している。計算ノード10は、それぞれ、マルチコアCPUチップを備えたラックユニットであってよく、ブースタノード20は、それぞれ、マルチコアGPUチップを備えたラックユニットであってよい。
【0023】
実際の状況では、所与のワークフローまたは個々のプログラムを実行すると、3つ以上の並行性に(上記での使用の通り)直面することになる。n個の異なる並行性k,i=1…nが発生し、それぞれが異なるコード部分pに寄与するものとする(i=1は、上記からのスカラー並行性を定義しうる)。このようなプログラム部分の全てが、その個々の最大コア数kへとスケーリング可能である。このことは、kを超える数の計算要素へ分散される場合、kを超えては、当該コード部分についての最小計算時間に関連する改善がないことを意味する。この条件で、ALの上記の設定は、
【数4】
へと直截に一般化される。以下では、当該式を「一般化アムダールの法則」(GAL)と称する。支配的な並行性kは、増速度Sについての、i≠dのときの並行性kへの影響が、支配的な並行性k、すなわちi≠dのときの
【数5】
よりも小さくなるように定義される。
【0024】
GALに対応する漸近解析を決定するために、元のALに従って、i>dのときに全ての並行性kは無限大までスケーリング可能であると仮定することができる。理論的に到達可能な最大の漸近増速度Sは、この場合、
【数6】
によって与えられる。
【0025】
これは限定的なケースであって、実際には計算システムはこれに近づくことができるのみであることは明らかである。しばしばあることであるが、i<dのとき
【数7】
である場合、増速度は、
【数8】
となる。
【0026】
こうした理想的なケースでは、可能な増速度は、支配的な並行性kによって完全に決定される。
【0027】
ヘテロジニアスプロセッサ、ヘテロジニアス計算ノード、または例えば国際公開第2012/049247号のクラスタブースタシステムによって実現されるモジュラ型スーパーコンピュータによって与えられる計算プラットフォーム上で、種々の計算特性を有する計算要素が利用可能である。基本的に、こうした状況では、各問題設定にとって最適な計算要素とこうした計算要素の最適な数とに異なるコード部分を割り当てることができる。
【0028】
有益な例を挙げると、モジュラ型スーパーコンピュータは、スーパーコンピュータネットワークによって接続された多数の標準CPUと、(演算に必要なホスティング(または管理)CPUと共に)同様に高速ネットワークによって接続された多数のGPUとから構成可能である。2つのネットワークは相互にリンクされていると仮定され、必須ではないが理想的には同じタイプのものである。重要な観察は、こんにちのCPUおよびGPUが、通常コアと称される基本的な計算要素の基本速度に関してきわめて異なる周波数を示すということである。差は係数fと同等の大きさとなることがあり、ここで、CPUとGPUとの差は、多少は前後するとしても20≦f≦100となりうる。上で説明した他の技術についても同様の考察が当てはまる。
【0029】
本発明は、一般的な意味で当該差を活用している。システムCの計算要素とシステムBの計算要素との間のピークパフォーマンスに関して係数f>1があるとする。CではCPUのクラスタを取ることができ、Bでは「ブースタ」すなわちGPUのクラスタを取ることができる(ここで、後者は、CPUを管理しないGPUであり、当該考察にとって重要な計算要素(コア)を有するデバイスである)。
【0030】
2つの異なる計算要素が関係する場合のピークパフォーマンスに関する係数fが与えられている場合、システムC上の、パフォーマンスの高い計算要素(通常、少数の計算要素が利用可能である)にi≦dのときの低い並行性が割り当てられ、一方、スケーラブルなコード部分は、システムB上の、(多数を利用できる)パフォーマンスの低い計算要素に割り当てられる。f=1を後者に割り当てて、システムB上の計算要素のピークパフォーマンスに対するパフォーマンスを測定するものとする。このことは、
【数9】
に追従し、(一般的には計算要素の多数の異なる実現を仮定することができる)係数fが上記の考察に導入され、ここで、Cについてf=fおよびBについてf=1が選択される。
【0031】
したがって、漸近限界では、同様にあまり支配的でない並行性を無視すると、異なる計算要素を備えたシステムの場合のGALの増速度は、
【数10】
によって与えられる。
【0032】
結果として、支配的な並行性には強力な計算要素によって対応し、スケーラブルな並行性に対しては、さほど強力でないが(したがって、格段に安価で格段に消費電力が小さい)格段に多数の計算要素を活用できるという利益が得られる。
【0033】
したがって、GALは、一方では設計の基本方式を提供し、他方ではデータセンタ、スーパーコンピュータ施設、およびスーパーコンピューティングシステムで要求される、種々の並行性を示すタスクの最適な並列実行のためのダイナミックな動作基本方式を提供する。
【0034】
GALに加えて、モジュールの計算速度は、使用される処理要素のメモリ性能および入出力性能の特性、モジュール上の通信システムの特性、ならびにモジュール間の通信システムの特性によって決定される。
【0035】
実際には、これらの機能は、種々の用途に対して異なる効果を有する。したがって、1次近似では、これらの特性を考慮する必要がある。ηは、用途に依存する。当該係数は、コードの実行中にダイナミックに決定可能である。これにより、GALに従ってタスクの分散特性をダイナミックに変化させることができる。また、目的がシステムの設計である場合、それぞれ、幾つかのテストCPUおよびテストGPU上で事前にこれを決定することもできる。
【0036】
支配的な並行性(d)の低い2つのモジュラ型システムCと高い並行性(h)を計算するBとを記述するために、GALを低減すると、CPU上およびGPU上で決定された用途に依存する効率を結合係数ηにおいて考慮することができ、
【数11】
が得られる。
【0037】
前掲の式が与えられている場合、実際の目的は増速度Sを最適化することである。ここで、目標は次のように考えることができる。すなわち、将来のスーパーコンピューティングまたはデータセンタに要求されるモジュラ型システムの設計、ならびに運用中のモジュラ型コンピューティングシステムへのダイナミックに最適化されたリソースの割り当て、すなわちワークフローもしくはモジュラ型プログラムの実行である。当該式は、多数の他の目的への適用が可能である。
【0038】
モジュラ型コンピューティングシステム上で特定のプログラムを実行するためのパラメータを決定することは直截に行われる。この場合、式(1)のパラメータを事前にもしくは実行中に直ちに決定し、モジュラ型システムまたは所与の用途に対して最適化されたシステム上のパーティションの構成を決定することができる。
【0039】
モジュラ型スーパーコンピュータまたはモジュラ型データセンタを設計する場合、スーパーコンピューティングまたはデータセンタの選好性に応じて、所与のポートフォリオの平均的な特性を選択することもできるし、または重要なコードの特定の特性を考慮することもできる。結果は、平均的なパラメータまたは特定のパラメータのセットp,p,ηとなる。制約、例えばコストまたはエネルギ消費量を考慮することもできる。
【0040】
モジュラアーキテクチャを最適化するアイデアの説明のために、以下において、こうした最適化を明示的に実行することにより、単純な条件を説明し、動作させる。ここで行われる考察は、2つ超のモジュール、高次ネットワークもしくはプロセッサの特性、またはプログラムのプロパティを含めることにより、いっそう複雑な条件を考慮するために、容易に一般化可能である。
【0041】
ここでは、単純な例で説明するために、投資予算を制約としてKに固定することができるが、示されているように、他の制約、例えばエネルギ消費量、解決までの時間、スループットなどを考慮することもできる。簡単化のために、モジュールおよびその相互接続のコストを、それぞれ、計算要素の数およびそのコストk,kおよびc,cにおおよそ比例すると仮定すると、このことは、
K=c+c (式2)
に追従する。
【0042】
式(2)を式(1)に挿入すると、
【数12】
が得られる。
【0043】
dS/dk=0で、増速度を最大化する最適解を見出すことができる。当該解により、(この場合)2つの、(例えばCPUおよびGPUの計算コアに関して)異なるタイプの計算要素の最適数を決定することができ、すなわち、
【数13】
である。
【0044】
この単純な設計モデルは、拡張コストモデルに容易に一般化でき、他の制約を含む、より複雑な条件にも同様に適応化可能である。これは、並列コンピュータであるモジュールに組み込まれた種々の多様な計算要素に適用可能である。
【0045】
実際に、所与の計算タスクへのリソースの割り当てのダイナミックな調整は、従前と同様のレシピに関連する。相違点は、この場合、アーキテクチャ全体の寸法が固定されていることである。
【0046】
データセンタでの典型的な問題は、解決までの時間または特定のサービスレベル合意が満たされる場合に、所与の増速度を2倍とする(または任意の係数倍とする)のに要求されるリソースがさらにどれだけかかるかということである。この問題には、式(1)を用いて直接に解答することができる。
【0047】
この場合にも、例示的かつ簡単な例を考察する。ここでの開始点は、モジュラ型システムの主たるモジュールC上のk個の計算要素を事前に割り当てられたパーティションでありうる。当該パーティションのサイズを事前にどのように選択するかは、ユーザに委ねられるか、または任意の他の条件によって決定可能である。
【0048】
解答すべき問題の1つは、事前に割り当てられた増速度Sを達成するために、モジュラ型のコンピューティングシステムまたはデータセンタのモジュールBの対応するパーティションに要求される計算要素の数kがどれだけかということである。パラメータp,p,ηおよびfは、事前に既知であるか、またはコードの反復実行中に決定可能であるものと仮定する。後者の場合、調整はモジュラコードの実行中にダイナミックに実行可能である。既に述べたように、kは、当該問題設定の固定量であると仮定される。モジュールB上の固定数kから、または演算の実際のコストから引き出される制約から、開始することもできる。この場合にも、より複雑な問題に対してアプローチを容易に拡張することができ、またはより多くの異なるタイプの計算要素を含めることができる。
【0049】
式(1)の直截の変換から、
【数14】
が得られ、これにより、B上のリソースのダイナミックな調整が可能となる。合理的であれば、C上のパーティションを調整できることも明らかである。こうした考察により、データセンタの計算リソースの最適な割り当てにおいて制御された自由度が提供される。
【0050】
関連する第2の問題は、解決までの時間に関するサービスレベル合意の変更の制約がありうる条件において、増速度SをSoldから所望のSnewへ増減させるために引き出されるリソースの量がどれだけとなるかである。この場合に、式(1)を適用すると、
【数15】
が得られる。
【0051】
この場合も、リソースの割り当てはダイナミックに適応化可能である。当該式は、より複雑な条件に容易に拡張可能である。
【0052】
必要に応じて、C上のパーティションが調整可能であることは明らかである。さらに、1つのリソースが不足する場合または使用されない場合に備えて、2つ(またはそれ以上)のモジュールでリソースの使用のバランスを取ることもできる。
【0053】
計算ノード10は、上で言及したCPUであるCのクラスタに対応すると見なすことができ、ブースタノード20は、GPUであるBのクラスタに対応すると見なすことができる。上で示したように、本発明は、2つのタイプの処理ユニットのシステムのみに限定されない。他の処理ユニット、例えばテンソル処理ユニットTPUのクラスタ、または量子処理ユニットQPUのクラスタをシステムに追加することもできる。
【0054】
モジュラ型スーパーコンピューティングに関連する本発明の適用は、基本的に2つ以上のモジュール間の通信を可能にするMPI(例えばメッセージパッシングインタフェース)または他のバリエーションのような、任意の適切な通信プロトコルを基礎とすることができる。
【0055】
本発明の適用のために考慮されるデータセンタアーキテクチャは、モジュラ型スーパーコンピュータとまったく同様に、モジュールの意味での構成可能な分解されたインフラストラクチャのアーキテクチャである。このようなアーキテクチャは、CPU、GPU、DRAMおよびストレージの構成をそれぞれ反復する固定の構築ブロックから成るシステムでは達成が困難であってコストがかかるために有効でないレベルの、フレキシビリティ、スケーラビリティ、および予測可能なパフォーマンスを提供するだろう。こうした構成可能な分解されたデータセンタアーキテクチャに関する本発明の適用は、任意の適切な仮想化プロトコルを基礎とすることができる。仮想サーバは、計算部(CPU)、アクセラレーション部(GPU)、ストレージ(DRAM、SDD、並列ファイリングシステム)およびネットワークから成るこうしたリソースモジュールから構成可能である。仮想サーバは、GALのコンセプトとその可能な拡張とを適用して、選択された最適化ストラテジまたは特定のSLAに対し、プロビジョニングおよび再プロビジョニングすることができる。このことはダイナミックに実行可能である。
【0056】
コアシステムと相互作用するエッジで静的計算要素またはモバイル計算要素を活用するエッジコンピューティングの広範なバリエーションが提供される。本発明の適用により、上記の考察と同様にもしくはこれを拡張して、エッジ要素と中央計算モジュールとの通信の最適化が可能となる。
図1
【国際調査報告】