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

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

▶ パルテック・クラスター・コンペテンス・センター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツングの特許一覧

特開2024-40165アプリケーションの実行中に決定される異種コンピューティングリソースの動的な割り当て
<>
  • 特開-アプリケーションの実行中に決定される異種コンピューティングリソースの動的な割り当て 図1
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024040165
(43)【公開日】2024-03-25
(54)【発明の名称】アプリケーションの実行中に決定される異種コンピューティングリソースの動的な割り当て
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240315BHJP
   G06F 9/38 20180101ALI20240315BHJP
【FI】
G06F9/50 120A
G06F9/38 370B
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024001229
(22)【出願日】2024-01-09
(62)【分割の表示】P 2020560575の分割
【原出願日】2019-01-23
(31)【優先権主張番号】18152903.3
(32)【優先日】2018-01-23
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】507402886
【氏名又は名称】パルテック・アーゲー
【氏名又は名称原語表記】ParTec AG
【住所又は居所原語表記】Possartstr. 20, 81679 Muenchen, Germany
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【弁理士】
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】リッペルト トーマス
(72)【発明者】
【氏名】フローヴィッテル ベルンハルト
(57)【要約】
【課題】新規な複数の計算ノードおよび複数のブースタノードを含む異種コンピューティングシステムを動作させる方法を提供する。
【解決手段】本発明は、複数の計算ノードおよび複数のブースタノードを含む異種コンピューティングシステムを動作させる方法であって、複数の計算ノードおよび複数のブースタノードの少なくとも1つは計算タスクを計算するように構成され、計算タスクは複数のサブタスクを含み、最初の計算反復において、複数のサブタスクは、最初の分配で、複数の計算ノードおよびブースタノードのうちの一部に割り当てられて処理され、複数の計算ノードおよびブースタノードによる複数のサブタスクの処理に関する情報を使用して、計算ノードおよびブースタノードの間でのサブタスクのさらなる分配が生成されて、さらなる計算反復において計算ノードおよびブースタノードによって処理される、方法を提供する。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数の計算ノードおよび複数のブースタノードを含む異種コンピューティングシステムを動作させる方法であって、前記複数の計算ノードおよび複数のブースタノードの少なくとも1つは計算タスクを計算するように構成され、前記計算タスクは複数のサブタスクを含み、
最初の計算反復において、前記複数のサブタスクは、最初の分配で、前記複数の計算ノードおよびブースタノードのうちの一部に割り当てられて処理され、
前記複数の計算ノードおよびブースタノードによる前記複数のサブタスクの処理に関する情報を使用して、前記計算ノードおよびブースタノードの間での前記サブタスクのさらなる分配が生成されて、さらなる計算反復において前記計算ノードおよびブースタノードによって処理される、
方法。
【請求項2】
アプリケーションマネージャは、前記情報を受信し、前記さらなる分配を決定する、請求項1に記載の方法。
【請求項3】
リソースマネージャは、前記最初の反復のための前記計算ノードおよびブースタノードへのタスクおよびサブタスクの割り当てを前記計算タスクに応じて決定し、前記アプリケーションマネージャは、前記情報を受信し、前記リソースマネージャへの入力として処理して、前記リソースマネージャが、前記計算タスクの計算中にさらなる分配を動的に変更するようにする、請求項2に記載の方法。
【請求項4】
前記リソースマネージャは前記情報を受信して、前記リソースマネージャが、前記計算タスクの計算中に、前記計算ノードおよびブースタノードの相互の割り当てを動的に変更するようにする、請求項1~3のいずれか1項に記載の方法。
【請求項5】
デーモンは、前記計算ノードおよび前記ブースタノードにおいて動作して、前記情報を生成する、請求項1または請求項2に記載の方法。
【請求項6】
前記最初の分配は、各サブタスクに対してソースコード内に提供される評価に基づいて決定される、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記情報は、前記最初の反復および2回目の反復の少なくとも一方においてサブタスクのグループ化を提供するために使用される、請求項1~6のいずれか1項に記載の方法。
【請求項8】
ノードで動作するデーモンは、サブタスクの処理中に前記ノードの負荷の測定値を生成する、請求項3に記載の方法。
【請求項9】
複数のサブタスクを含む1つまたは複数のタスクを計算するための複数の計算ノードおよび複数のブースタノードと、前記計算ノードおよび前記ブースタノードを互いに接続する通信インターフェースと、を含む異種コンピューティングシステムであって、前記システムは、前記タスクの計算のためにブースタノードおよび計算ノードを相互に割り当てるためのリソースマネージャを含み、前記システムはアプリケーションマネージャをさらに含み、前記アプリケーションマネージャは、前記計算ノードおよびブースタノードにおいて動作するデーモンから情報を受信して、さらなる計算反復のために前記計算ノードおよび前記ブースタノードの間の前記サブタスクの分配を更新するように構成される、異種コンピューティングシステム。
【請求項10】
前記リソースマネージャは前記情報を受信して、前記リソースマネージャが前記計算ノードおよびブースタノードの相互の割り当てを動的に変更するようにする、請求項9に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算環境内で計算タスクを実行するためのメカニズムに関し、詳細には、計算タスクの並列処理に適合された異種計算環境に関する。
【背景技術】
【0002】
本発明は先に出願した国際公開第2012/049247号、すなわち、WO’247に記載のシステムを発展させたものであり、WO’247には、通信インターフェースを介して相互に接続された複数の計算ノードおよび複数のブースタを含むクラスタコンピュータアーキテクチャを記載している。リソースマネージャは、実行時間中に動的にブースタおよび計算ノードのうちの1つまたは複数を相互に割り当てる役割を果たす。このような動的プロセス管理の一例は、Clauss et al. "Dynamic Process Management with Allocation-internal Co-Scheduling towards Interactive Supercomputing", COSH 2016 Jan 19, Prague, CZに記載されており、これはあらゆる目的のために引用により本明細書に組み込まれている。WO’247の構成は、ブースタを計算ノードに割り当てるための柔軟性のある構成を提供するが、計算ノードおよびブースタの間でタスクをどのように分配するかについては扱っていない。
【0003】
WO’247の構成はさらに、Eicker et al. "The DEEP Project An alternative approach to heterogeneous cluster-computing in the many core era", Concurrency Computat.: Pract. Exper. 2016; 28:2394-2411に記載されている。記載された異種システムは、切り替え可能なネットワークによって接続された複数の計算ノードおよび複数のブースタノードを含む。アプリケーションを処理するために、アプリケーションは「タスク化」されて、どのタスクが計算ノードからブースタにオフロードされ得るかについての指示が提供される。このタスク化は、アプリケーション開発者が、異なるタスク間の依存関係を示すプラグマに加え、ブースタによって処理される非常にスケーラブルなコード部分を示すラベルにより、コードに注釈を付けることによって実現される。この文脈でのスケーラビリティとは、サービスに提供される負荷が増加した場合に、ハードウェアの増分的かつ線形的な増加により、ユーザごとに同じサービスレベルを維持できることを意味する。
【0004】
米国特許出願公開第2017/0262319号には、一態様において、データの分配およびコンピューティングリソースへのタスクのマッピングを完全にまたは部分的に自動化できるランタイムプロセスが記載されている。利用可能なリソースにアクションをマッピングするには、いわゆるチューニングの専門家、すなわち、人間のオペレータが依然として必要であり得る。本質的には、計算対象の所与のアプリケーションを、どのようにして所与のコンピューティング階層にマッピングできるかが記載されている。
【発明の概要】
【0005】
本発明は、複数の計算ノードおよび複数のブースタノードを含む異種コンピューティングシステムを動作させる方法であって、複数の計算ノードおよび複数のブースタノードの少なくとも1つは計算タスクを計算するように構成され、計算タスクは複数のサブタスクを含み、最初の計算反復において、複数のサブタスクは、最初の分配で、複数の計算ノードおよびブースタノードのうちの一部に割り当てられて処理され、複数の計算ノードおよびブースタノードによる複数のサブタスクの処理に関する情報を使用して、計算ノードおよびブースタノードの間でのサブタスクのさらなる分配が生成されて、さらなる計算反復において計算ノードおよびブースタノードによって処理される、方法を提供する。
【0006】
好ましくは、その情報は、計算ノードおよびブースタノードの各々において動作するそれぞれのデーモンによって提供される。提供された情報により、アプリケーションマネージャは、計算ノードおよびブースタノードの間のサブタスクの分配を、さらなる計算反復のために適合または改善できるか否かを判定することが可能になる。
【0007】
リソースマネージャは、計算タスクおよびさらなるパラメータに応じて、最初の反復についての計算ノードおよびブースタノードへのタスクおよびサブタスクの割り当てを決定し得る。アプリケーションマネージャは、その情報をリソースマネージャへの入力として処理して、リソースマネージャが計算タスクの計算中にさらなる分配を動的に変更するようにする。
【0008】
本発明のさらなる態様では、リソースマネージャは、その情報に基づいて、計算タスクの計算中に、計算ノードおよびブースタノードの相互の割り当てを動的に変更する。
【0009】
また、初期分配は、システムによる実行のためにコンパイルされるプログラミングコード内にシステムのユーザによって提供された情報を使用して、アプリケーションマネージャによって決定され得る。あるいは、アプリケーションマネージャは、サブタスクのコーディングの分析に基づいてそのような分配を生成するように構成され得る。
【0010】
さらなる態様では、本発明は、複数のサブタスクを含む1つまたは複数のタスクを計算するための複数の計算ノードおよび複数のブースタノードと、計算ノードおよびブースタノードを互いに接続する通信インターフェースと、を含む異種コンピューティングシステムであって、システムは、タスクの計算のためにブースタノードおよび計算ノードを相互に割り当てるためのリソースマネージャを含み、システムはアプリケーションマネージャをさらに含み、アプリケーションマネージャは、計算ノードおよびブースタノードにおいて動作するデーモンから情報を受信して、最初の計算反復とさらなる計算反復との間に計算ノードおよびブースタノードの間のサブタスクの分配を更新するように構成される、異種コンピューティングシステムを提供する。
【0011】
本発明のさらに他の態様では、リソースマネージャはその情報を受信して、リソースマネージャが計算タスクの計算中に計算ノードおよびブースタノードの相互の割り当てを動的に変更するようにする。以下、本発明の好ましい実施形態を単なる例として、添付の図面を参照して説明する。
【図面の簡単な説明】
【0012】
図1】本発明を組み込んだクラスタコンピュータシステムの模式図である。
【発明を実施するための形態】
【0013】
図1を参照すると、本発明を組み込んだクラスタコンピュータシステム10の模式図が示されている。システム10は、いくつかの計算ノード20と、いくつかのブースタノード22とを含む。計算ノード20およびブースタノードは、通信インフラストラクチャ24を介して接続され、ブースタノードは、ブースタインターフェース23を介して通信インターフェースに接続される。計算ノード20およびブースタノード22のそれぞれは、長方形で模式的に表しており、動作時のこれらの各ノードは、それぞれのデーモン26aおよび26bの少なくとも一方を組み込んでおり、これらはそれぞれのノードの長方形内に四角形で模式的に示している。本発明のデーモンとは、バックグラウンドプロセスとして動作し、本明細書で使用される情報を提供することが可能なアプリケーションである。Clauss et al. "Dynamic Process Management with Allocation-internal Co-Scheduling towards Interactive Supercomputing", COSH 2016 Jan 19, Prague, CZには、本明細書で扱うデーモンが開示されており、この論文の内容はあらゆる目的のために引用により本明細書に組み込まれている。
【0014】
また、システム10は、通信インフラストラクチャ24およびアプリケーションマネージャ30に接続されるように図示しているリソースマネージャ28を含む。リソースマネージャ28およびアプリケーションマネージャ30の各々は、それぞれのデーモン32および34を含む。
【0015】
計算ノード20は互いに同一であり得、または異なる特徴を有し得る。各計算ノードは、Intel社のXeonE5-2680プロセッサなどの1つまたは複数のマルチコアプロセッサを組み込んでいる。ノードは、高いGbit/sの速度でデータを転送可能なMellanox InfiniBand ConnectXファブリックに基づき得る通信インターフェースを介して相互に接続される。計算ノードは、通信インターフェースを介して、理想的には一連のブースタインターフェース40を介して複数のブースタノードにインターフェースする。図示のように、ブースタノードは、自身のオペレーティングシステムを自律的に起動して動作させることが可能な、Intel社のXeon Phiメニーコアプロセッサなどの、少なくとも1つのアクセラレータタイプのプロセッサをホストする。そのような技術については、上記のConcurrency Computat.: Pract. Exper. 2016; 28:2394-2411に記載されている。
【0016】
さらに、システム10は、あらゆる目的のために引用により本明細書に組み込まれている未公開の出願PCT/EP2017/075375に記載の、デーモンとアプリケーションマネージャとの間の通信を可能にするためのモジュール式コンピューティング抽象化層を含み得る。
【0017】
システムによって計算されるジョブは、いくつかのタスクを含み得、タスクの一部または全部は、ジョブの実行中に複数回繰り返され得る。たとえば、ジョブは、乱数を使用して結果がモデル化される「モンテカルロ」ベースのシミュレーションであり得、その計算は連続して何度も繰り返される。
【0018】
タスクはいくつかのサブタスクまたはカーネルを含み得る。これらのサブタスクのそれぞれは、計算ノードのうちの1つまたは複数による処理、あるいはブースタのうちの1つまたは複数による処理により適しており、またはより適さない場合がある。具体的には、サブタスクのスケーラビリティは、そのサブタスクが計算ノードまたはブースタのいずれによって処理される方が適切であるかを示し得る。このシステムはあらゆる方向に柔軟性があり、本明細書で扱う全てのノードによるサブタスクの共同処理に加え、ノード間の処理の再シャッフルも可能である。
【0019】
計算ノードおよびブースタの間の最初のサブタスクの分割を用いてタスクが計算される場合、そのような分割はタスクの計算にとって最適な分割ではない可能性がある。最初の反復においてあるブースタに割り当てられた特定のサブタスクは、実際にはそのブースタによる処理に適さない場合があり、ブースタではなく計算ノードによるサブタスクの処理が、タスクの計算を全体として最適化する場合がある。したがって、2回目および/またはそれ以降のサブタスクの分配が変更される、タスクの2回目の反復および必要に応じて行われ得るそれ以降の反復によって、タスクの計算効率が向上し得る。
【0020】
したがって、システム10は、デーモン26a、26bおよび32が、サブタスクの処理と、それぞれの処理エンティティの現在の状態とに関する情報をデーモン34にフィードバックするように、計算ノードおよびブースタのそれぞれが構成されるメカニズムを含む。デーモン34は、デーモン26a、26bおよび32によって提供された情報を使用して、その後の反復のためにタスクの計算を最適化するかまたは適合させるように計算ノードおよびブースタへのサブタスクの分配を調整できるか否かを判定する。また、リソースマネージャは、調整されたタスクの分配に加えて、計算ノードおよびブースタを相互に再割り当てすることができる。
【0021】
オペレータが各サブタスクのスケーラビリティ係数を推定したタスクを含むジョブがシステムに入力される。このタスクはコンパイルされ、コンパイルされたコードが実行される。実行時に、タスクはアプリケーションマネージャによって分析され、タスクのサブタスクは計算ノードに適したサブタスクと、ブースタに適したサブタスクとに分割され、この情報は、ブースタを計算ノードに割り当てるためにリソースマネージャに渡される。タスクの最初の反復中に、サブタスクの実行の結果は、サブタスクの処理とノードのステータスとに関するデーモンからの情報と共に収集される。そして、アプリケーションマネージャは、タスクのその後の反復のためのサブタスクの再割り当てを実行し、この更新された割り当て情報をリソースマネージャに渡し、リソースマネージャは、それに応じてノードへのブースタの割り当ても調整し得る。
【0022】
各反復について、計算ノードおよびブースタで動作するデーモンは、アプリケーションマネージャおよびリソースマネージャにステータス情報を報告して、計算ノードおよびブースタへのサブタスクの割り当てをさらに調整することにより、以後の反復の計算を最適化できるようにする。
【0023】
上記の手順では、初期のスケーラビリティ係数がプログラムコーダによって入力され得るタスク化ステップを組み込むように説明しているが、アプリケーションマネージャがサブタスクの初期のスケーラビリティ係数を自動的に設定し、以後の反復でこの初期設定が改善されるようにすることも可能である。そのような構成には、タスクのコーディングがより簡単になるため、クラスタコンピューティングアプリケーションに不慣れなプログラムコーダにとってのシステムの使いやすさを向上させることが可能になるという利点がある。
【0024】
サブタスクのスケーラビリティに基づいて計算ノードおよびブースタの間のサブタスクの分配を調整するだけでなく、分配はまた、サブタスクの処理に関して知った情報と、処理中にさらなるサブタスクを呼び出す必要性とによって影響され得る。ブースタによって処理されている第1のサブタスクが、そのブースタによって処理されていない第2のサブタスクからの入力を必要とする場合、これは第1のサブタスクの処理の中断につながり得る。したがって、第1のサブタスクを処理しているブースタのデーモンは、この状況をアプリケーションマネージャに報告して、さらなる反復において、第1および第2両方のサブタスクがそのブースタによって処理されるようにすることができる。したがって、アプリケーションマネージャは、計算ノードおよびブースタで動作するデーモンによって提供される情報を使用して、計算ノードおよびブースタに割り当てられるサブタスクのグループを調整するように構成される。
【0025】
図1の計算ノードには同じ参照番号を付与しており、ブースタノードも同様であるが、これは、全ての計算ノードが互いに同一であり、全てのブースタノードも互いに同一であることを示唆するものではない。システム10は、他の計算/ブースタノードとは特徴が異なる、システムに追加された計算ノードおよび/またはブースタノードを有し得る。したがって、計算ノードおよび/またはブースタノードのうちの特定のものは、特定のサブタスクを処理するのに特に適し得る。アプリケーションマネージャはこの構造情報を考慮に入れ、そのような割り当て情報をリソースマネージャに渡して、サブタスクが最適な方法で分配されるようにする。
【0026】
本発明の重要な側面は、国際公開第2012/049247号による一例として示されるように、コンピュータ階層への計算タスクおよびサブタスクのマッピングおよび調整が、コンピュータアーキテクチャの固有の柔軟性および適応性を十分に利用していない場合があるという認識に由来している。そのため、本発明は、国際公開第2017/0262319号による一例のように、アプリケーションタスクを最大限に十分に調整することに加え、計算ノードおよびブースタノードを互いに対して動的に設定し、最終的に、計算タスクの実行効率に関してデーモンにより提供された情報に基づいて、実行時間中に動的に計算タスクのマッピングを再構成し、動的に計算ノードおよびブースタノードを相互に再割り当てすることを統合している。
図1
【手続補正書】
【提出日】2024-02-07
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正の内容】
【0022】
各反復について、計算ノードおよびブースタで動作するデーモンは、アプリケーションマネージャおよびリソースマネージャにステータス情報を報告して、計算ノードおよびブースタへのサブタスクの割り当てをさらに調整することにより、以後の反復の計算を最適化できるようにする。ノードで動作するデーモンは、サブタスクの処理中に前記ノードの負荷の測定値を生成することができる。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数の計算ノードおよび複数のブースタノードを含む異種コンピューティングシステムを動作させる方法であって、前記複数の計算ノードおよび複数のブースタノードの少なくとも1つは計算タスクを計算するように構成され、前記計算タスクは複数のサブタスクを含み、
最初の計算反復において、前記複数のサブタスクは、最初の分配で、前記複数の計算ノードおよびブースタノードのうちの一部に割り当てられて処理され、
前記複数の計算ノードおよびブースタノードによる前記複数のサブタスクの処理に関する情報を使用して、前記計算ノードおよびブースタノードの間での前記サブタスクのさらなる分配が生成されて、さらなる計算反復において前記計算ノードおよびブースタノードによって処理される、
方法。
【外国語明細書】