JP2019533249A - 高性能のコンピューティングシステムおよび方法 - Google Patents

高性能のコンピューティングシステムおよび方法 Download PDF

Info

Publication number
JP2019533249A
JP2019533249A JP2019518274A JP2019518274A JP2019533249A JP 2019533249 A JP2019533249 A JP 2019533249A JP 2019518274 A JP2019518274 A JP 2019518274A JP 2019518274 A JP2019518274 A JP 2019518274A JP 2019533249 A JP2019533249 A JP 2019533249A
Authority
JP
Japan
Prior art keywords
node
module
modular computing
computing system
nodes
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.)
Granted
Application number
JP2019518274A
Other languages
English (en)
Other versions
JP7066694B2 (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.)
Partec Cluster Competence Center GmbH
Original Assignee
Partec Cluster Competence Center GmbH
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 Partec Cluster Competence Center GmbH filed Critical Partec Cluster Competence Center GmbH
Publication of JP2019533249A publication Critical patent/JP2019533249A/ja
Priority to JP2022001010A priority Critical patent/JP7405876B2/ja
Application granted granted Critical
Publication of JP7066694B2 publication Critical patent/JP7066694B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Paper (AREA)
  • Jib Cranes (AREA)
  • Hardware Redundancy (AREA)

Abstract

本発明は、高性能のコンピューティング(HPC)の技術分野に関する。特に、本発明はヘテロジニアスコンピューティングシステムに関し、より特定的には、協働して計算タスクを処理するように自由に割り当てられ得る異なるモジュールを含むコンピューティングシステムに関する。モジュールコンピューティング抽象化層(MCAL)と呼ばれる制御エンティティが設けられる。この制御エンティティにより、異なるモジュールによって提供されるさまざまなリソースを動的に割り当てることが可能になる。本発明は、コンピューティングにおけるさまざまな要求に対する調整において柔軟性があるため、クラウドコンピューティングサービスを提供するための基礎となるシステムとしても適用可能である。クラウドコンピューティングサービスは、共有のコンピュータ処理リソースおよびデータを、要求に応じて(多くの場合、インターネットを通じて)コンピュータや他のデバイスに提供するものである。

Description

本発明は、高性能のコンピューティング(HPC)の技術分野に関する。特に、本発明はヘテロジニアスコンピューティングシステムに関し、より特定的には、協働して計算タスクを処理するように自由に割り当てられ得る異なるモジュールを含むコンピューティングシステムに関する。モジュールコンピューティング抽象化層(MCAL)と呼ばれる制御エンティティが設けられる。この制御エンティティにより、異なるモジュールによって提供されるさまざまなリソースを動的に割り当てることが可能になる。本発明は、コンピューティングにおけるさまざまな要求に対する調整において柔軟性があるため、クラウドコンピューティングサービスを提供するための基礎となるシステムとしても適用可能である。クラウドコンピューティングサービスは、共有のコンピュータ処理リソースおよびデータを、要求に応じて(多くの場合、インターネットを通じて)コンピュータや他のデバイスに提供するものである。
HPCシステムの用途は、幅広い技術分野をカバーする。ほんの数例挙げてみただけでも、人間の脳のシミュレーションを始めとして、天気および気候の予測、コンピュータによる流体工学、地震学的描像、電波天文学、データ解析などがある。高性能のコンピューティングへの要求は、絶えず高まっている。
現在主流のHPCアーキテクチャは、クラスタコンピュータおよび超並列処理(MPP)システムである。クラスタコンピュータは、標準ネットワーク技術を用いて互いに通信する複数のクラスタノードを含む。個々のクラスタノードは、既製の汎用プロセッサを備える。MPP(超並列処理)システムでは、多数のプロセッサが同時に(したがって、並列して)計算を行なう。それらもまた、通常は既製の汎用プロセッサを使用する。しかしながら、プロセッサは、通信のために専有のネットワーク技術および個別的に適合されたソフトウェアを使用する傾向にある。
より高い計算能力への強い要求を満たすために、コンピュータクラスタ内のクラスタノードの数、およびMPPシステム内のプロセッサの数が近年大幅に増加した。しかしながら、既製の汎用プロセッサを用いてシステム内での数を増やすだけでは解決策にならないことも分かってきた。
既製の汎用プロセッサにも、もちろんプラスの側面はある。それらの単一スレッド性能は高い。マルチコアプロセッサの場合、それらは、プロセッサまたはコア1つ当たり大容量のメモリを有する。標準プログラミングを使用することができるため、これらのシステムにアプリケーションを移植することが容易である。しかしながら、この技術は、限界に達しつつある。既製の汎用プロセッサに関して、そのクロック速度(頻度)は、この10年で実際的には増加していない。このことは、特にシステムの冷却に関して限界とならないように、チップ1つ当たりのエネルギ消費が100ワットを大きく超えるべきではないということに密接に関係している。さらに、それらのプロセッサは比較的高価であり、かつエネルギ効率が低い。
解決策は、アクセラレータを採用することに見出された。アクセラレータを用いることによって、非常にスケーラブルなアプリケーションの部分を計算することができる。アプリケーションが費用効果の高い方法で多くのリソースを追加することによって高負荷を処理することができる場合、そのアプリケーションは非常にスケーラブルであると言える。コードにおける並列して計算することのできないシーケンシャル部分が、通常、スケーラビリティへの最も重大な制約要因のうちの1つである。
2種類以上のプロセッサを用いたシステムは、ヘテロジニアスコンピュータシステムと呼ばれる。異なるアクセラレータは、汎用プロセッサ、具体的には、メニーコアプロセッサおよびGPU(グラフィックス・プロセッシング・ユニット)と組み合わせて使用され得る。メニーコアプロセッサは、50以上のコアを有する。GPUは、何百個もの単純なコンピューティングコアを有する。これらのタイプのプロセッサは、ともにエネルギ効率が良い。
ヘテロジニアスコンピュータシステムでは、各クラスタノードが、1つ以上のマルチコアプロセッサまたはGPUによって形成されるアクセラレータを備える。アクセラレータは、基本的には、クラスタノードのプライマリープロセッサの機能を補うコプロセッサとして機能する。クラスタノードは、コンポーネント同士がインターコネクトスイッチを通じてデータを伝送し合うファブリックを介して通信する。「ファブリック」という用語は、高性能のコンピューティングの分野では、システムトポロジーを意味するために使用される。また、インターコネクトという用語は、クラスタノード間の通信インフラストラクチャについて使用され、別々のデバイスを接続する電気的または光学的な接続またはケーブルを意味する。各ノードにアクセラレータを取り付けることの大きな問題は、割り当てが静的であることである。汎用プロセッサとGPUとの比は、システムの設計時に固定される。
国際出願WO2012−049247A1は、コンピュータクラスタ配列、および、当該紹介されたコンピュータクラスタ配列を動作させるための方法によって、上記欠点に取り組んでいる。このコンピュータクラスタ配列は計算ノードCNを備える。これにより、ブースタBに対する特定の計算タスクを動的に外部調達している。このように、計算ノードCNへのブースタBの割り当て手法が紹介されている。割り当ては、実行時に動的に行なわれる。このアーキテクチャでは、ブースタを形成するクラスタノードおよびアクセラレータノードが1つのファブリックに入る。これは、加速クラスタノードと比較して、より柔軟性がある。なぜなら、プロセスの開始時に、加速処理のためにブースタをクラスタノードに割り当てることができるからである。この配列については、Norbert Eicker等による「メニーコア時代におけるクラスタコンピューティングを追究するDEEPプロジェクト(The DEEP project Pursuing cluster-computing in the many-core era)」、第42回並列処理に関する国際会議(International Conference on Parallel Processing)、885〜892頁、2013年、および、「メニーコア時代におけるヘテロジニアスクラスタコンピューティングへの代替アプローチであるDEEPプロジェクト(The DEEP Project An alternative approach to heterogeneous cluster-computing in the many-core era)」、同時実行および計算:実践と経験(Concurrency and Computation: Practice and Experience)、28、2394〜2411頁、2015年にさらに記載されている。
1つのアプリケーションがクラスタブースタ型などのヘテロジニアスシステムによって計算されるとき、個々の計算タスクは、複数の異なるクラスタノード上で処理される必要があるだけでなく、2つの異なるアーキテクチャ、すなわち、コンピュータクラスタ上およびアクセラレータ上で処理される必要がある。クラスタコンピュータ内、およびブースタ内、さらには、クラスタコンピュータとブースタとの間において、効率的な通信が確保されなければならない。さらに、個々のパーツの信頼性が高い場合であっても、コンポーネント数の増加によってコンポーネントが故障するリスクが生じる。したがって、システムは、高い回復力、すなわち、個々のコンポーネントの故障への耐性を確保しつつ、機能性も保つ必要がある。
本発明は、モジュラーコンピューティングシステムを提供する。モジュラーコンピューティングシステムは、クラスタモジュール、ブースタモジュール、ストレージモジュール、ニューロモーフィックモジュール、データ解析モジュール、グラフィックスモジュール、量子コンピューティングモジュールなどの異なるモジュールを含む。各モジュールは、複数のノードを含み得る。クラスタモジュールは複数のクラスタノードを含み、ブースタモジュールは複数のブースタノードを含み、ストレージモジュールは複数のストレージノードを含む。その他同様である。
個々のノードは、すべて1つのファブリックに接続されている。異なるモジュールは異なるインターコネクトを有してもよい。クラスタモジュールは、例えばインフィニバンドインターコネクトを使用する。一方、ブースタモジュールは、特殊インターフェースノードを介してインフィニバンドインターコネクトに接続されたインテルOmni−Pathファブリックを使用する。同じことが、他のタイプのモジュールについても当てはまる。
異なるモジュールを結合して1つのシステムとするために、モジュラーコンピューティング抽象化層(MCAL)が設けられる。MCALは、通信機能および管理機能を提供する。Par Tec Cluster Competence Center社によるPara Stationを使用すれば、以下で説明する機能および特性を有するMCALを実現するための基盤を形成することができる。
MCALは、モジュール内での通信(モジュール内通信と呼ぶ)と、モジュール間の通信(モジュール間通信と呼ぶ)とを可能にする。そのために、MCALは、それぞれのファブリックにインターフェースを提供する。例えば、システム全体に対してファブリックが1つの場合もあるし、または、モジュール毎にファブリックが特化されている場合もある(例えば、クラスタモジュールにはインフィニバンド、ブースタモジュールにはインテルOmni−Pathファブリック、など)。イーサネット(登録商標)、10G、ギガビット、または共有メモリ通信など、他のインターコネクトも可能である。MCALは、如何なる種類の通信を用いてもよく、可用性、アプリケーションプログラムによる指示、性能、またはコストなどの要素に基づいて、特定の通信方法を選択する。
共有メモリ通信は、2つ以上のプロセスが通信するための非常に高速かつ効率的な方法を提供する。異なるタイプの共有メモリ通信が、MCALによって採用され得る。共有メモリを有する同じ物理ノード上で並列タスクの2つ以上のプロセスが実行される場合、これらのプロセス間の共有メモリ通信のために、この共有メモリが使用され得る。これは、典型的には、CPU1つ当たり1つのプロセスが生成されるSMPノード上で起こり得る。対称型マルチプロセッシング(SMP)は、2つ以上の同一のプロセッサが単一の共有メインメモリに接続しているアーキテクチャを意味する。MCALはプロセスについての知識、および、どのノードでプロセスが行なわれているかについての知識を有しているため、MCALは、そのような状況で共有メモリ通信を確立することができる。
しかしながら、共有メモリ通信はSMP状況に限定されない。プロセスが1つのモジュール内の異なるノード上で実行される場合、または、異なるモジュールに属するノード上で実行される場合であっても、MCALは、共有の仮想アドレス空間通信を確立する。共有の仮想アドレス空間通信を用いると、メッセージのメタデータおよびデータ自体の仮想アドレスを共有するだけで、サイズの大きなメッセージをノード間で伝達することができる。実際のメッセージは、プロセスにより、その割り当てられた仮想アドレス空間を介してアクセス可能である。したがって、高速通信が可能である。MCALは、通信に関係するプロセスまたはノードによって直接共有されるメモリ領域を設けることによって、仮想アドレス空間通信を確立する。
上記の例から分かるように、MCALは、通信機能を提供するだけでなく、通信方法を選択し、それによって性能および効率を向上させる。MCALは、例えば、プロセスを生成しながら、すなわち、新たな子プロセスを作成および実行しながら、どのインターコネクトが通信に使用可能かを決定することができる。同時に、MCALは、現在行なわれているプロセスを監視し、子プロセスを見つけて終了させるか、または非同期的に実行し続け得る。
MCALが提供する第2の主要な機能は、管理である。管理機能は、さまざまな局面、具体的には、ノード管理、モジュール管理、プロセス管理、およびリソース管理をカバーする。
ノード管理は、個々のノードを対象とする。例えば、クラスタモジュールにおけるクラスタノード、ブースタモジュールにおけるブースタノード、ストレージモジュールにおけるストレージノードなどであり、上で挙げたようなシステム内に存在する他のタイプのモジュールに関しても同様である。初めに、MCALは使用可能なノードを検出する。使用可能なノードとは、使用できる状態にあるノードのことである。これは、例えば、温度、メモリの空き容量など、および、それらの特性の経時的な変化などのシステムパラメータに基づいて、MCALが、正常に機能していないノードまたは故障寸前のノードを特定するように構成されていることを含む。したがって、MCALはフォールトトレランスを実現し、それによって高い回復力を確保している。
これは、MCALが仮想ノードの概念を採用することによって実現する。仮想ノードは、クラスタノード、ブースタノード、ストレージノードなどの実際のハードウェアを表わすものであるが、MCALは、自由に動的にノードをマップすることができる。例えば、アプリケーションにおいてX個のクラスタノード、Y個のブースタノード、およびZ個のストレージノード(X、Y、Zは整数)が必要である場合、MCALは、すべての利用可能なリソースの中からそれらのノードを提供することができる。ノードが故障している場合、または、ノードがシステムに追加された場合には、MCALは、仮想ノードと物理ノードとの間のマッピングを変更するだけで、迅速に反応することができる。利用可能なノードのリストの中から正常に機能していないノードを取り出すことができ、システム全体が機能不全に陥ることがない。
また、MCALは、到達可能性、レイテンシ、または物理的配置などの要因に応じて、特定のノードを選択することもできる。これは、実行中のアプリケーションに完全に透過的に行なわれ得る。
MCALは、システム全体を見渡し、各ノードおよび各インターコネクトの状態を絶えず最新の状態に維持している。MCALは、ノード1つ当たり利用可能なCPUの数、実行中のサービス、利用可能なストレージ、インターコネクト帯域幅、空きメモリ、温度、システムクロック速度などの、各ノードおよび各インターコネクトの特定の特性について、常時通知される。
もう一つの機能は、モジュール管理である。モジュール管理は、ノード管理に類似しており、特定のモジュールについてのノード管理を含み得るが、モジュールに特有の側面を考慮する。モジュール管理は、モジュールが他のモジュールと通信するために用いるインターフェースノード(設けられる場合)の状態など、モジュールに特有の側面に焦点を当てる。ノードと同様に、MCALは、モジュールの利用増大を可能にするために、モジュールの状態を監視する。
MCALは、プロセス管理も担う。実行中のアプリケーションの各々は、複数の個々のプロセスに分割される。複数の個々のプロセスは、開始、分散、および監視する必要がある。同時に、リソースを割り当てる必要がある。これは、プロセスが計算能力およびストレージを必要とすることに対応する。プロセスが特定の処理を必要とする場合、MCALは、1つ以上のブースタノード、または、ニューロモーフィックノード、データ解析ノード、グラフィックスノード、または、量子コンピューティングノードなどのさらに特定的なノードを、それぞれのモジュールから割り当てる。
そのために、MCALは、プロセスとその要件との間の依存を認識および制御するように構成されている。これに基づいて、MCALは、ブースタモジュールまたはクラスタモジュールの場合にはノード上にプロセスを作成し、または、ストレージモジュールの場合にはストレージを割り当てる。プロセスは監視され、依存プロセスはグループとして扱われる。これにより、並列タスクのうちのいずれか1つで発生するエラーに迅速に応答することが可能である。したがって、プロセスを速やかに再開させることができ、その結果、実行中のアプリケーションの全体の遅延を最小限に抑えることができる。
リソース管理は、MCALがモジュラーコンピューティングシステムにおいて行なうもう一つのタスクである。リソース管理の一部として、MCALは、オフロード機構を実現する。すなわち、例えばクラスタモジュール上で実行中のプロセスは、ブースタモジュール中のいくつかのブースタノードを必要とし得る。そのような場合には、MCALは、タスクを並列して実行するために、選択されたブースタノード上にプロセスを生成することができる。
オフロードの一部として、1つのブースタ上で実行されるように作成されるプロセスは、1つだけでなく複数であってもよい。複数のプロセスは、ホストプロセッサの介入を必要とせずに、モジュール通信ファブリックを用いて互いに直接通信する。
また、リソース管理は、例えば異なるプロセス間の接続数を減少させることによって、メモリ消費を低減することも保証する。これは、必要な時にのみ実際に確立するオンデマンド接続を用いることによって行なわれる。これにより、接続1つ当たりのメモリ消費が劇的に低減される。したがって、ノードなどのリソースは仮想的に扱われるだけでなく、仮想割り当ては物理ネットワークにも適用される。
リソースを割り当てる際に、MCALは、1つのプロセスのリクエストを考慮するだけでなく、他のプロセスのリクエストも考慮する。これにより、統合制御に基づいて通信インフラストラクチャの変更に柔軟に応答することができる。
統合制御は、MCALによって提供されるもう一つの機能局面である。統合制御は、MCALが、管理機能から収集した情報を用いて通信を制御すること(およびその逆)を意味する。このように、通信機能と管理機能とは別個のものではなく、システム性能全体をさらに最適化するために統合されたものである。
すべてのモジュールにおけるすべてのノードのすべての異なる局面、ならびにすべてのインターコネクト、モジュール内通信、およびモジュール間通信のステータスについてのMCALの知識を用いて、システムを作動させる。これにより、システムの挙動の変更、および、システム上で実行中のアプリケーションの要求の変更に対する動的な調整が可能になる。
統合制御は、実際のシステム状態およびアプリケーション要求を考慮するだけでなく、次に起こるモジュールのリクエストまたはインターコネクト使用の予測も行なう。
システム状態の情報は、ノードの動的な割り当てのために用いられる。これは、フィードバックループ登録システムの割り当て決定の広範な影響を用いてリソースの割り当てが行なわれることを含む。その結果、将来の割り当てが相応に調整される。また、システムは、自己学習の方法で、そのような情報を記憶することによって将来のケースの割り当て決定を向上させる。
アプリケーションの主要部分が通常はクラスタモジュールで開始されるとしても、MCALは、クラスタモジュールまたはブースタモジュール上でアプリケーションのどの部分を実行させるかを特定する。決定の根拠は、例えば、実行中のコード性能の監視結果をアプリケーションコード自体で示すものである。これにより、アプリケーションのコンピューティング中に割り当てを調整することができる。
MCALの実現例としては、MCALは、システム全体にわたって分散されている。MCALは、各ノード上に実装されるノードマネージャ(NM)を含む。ノードマネージャはハードウェアで実現されてもよく、またはソフトウェアで実現されてもよく、例えば、それぞれのノード上で実行されるデーモンプロセスとして実現されてもよい。ノードマネージャは、モジュールおよびシステム全体を大域的に見るために、絶えず情報を収集する。システム上で実行中のアプリケーションは、管理機能と通信することによって、または個々のノードマネージャと直接通信することによって、この情報を活用することができる。これは特定のインターフェースによって実現される。この特定のインターフェースは、ハードウェアであってもよいし、API(アプリケーションプログラミングインターフェース)であってもよい。このように、MCALがアプリケーションから入力を得るだけでなく、アプリケーションも、MCALによって収集された情報を個々のノードマネージャを介して活用する。
ノードマネージャの通信トラフィックは、モジュール内およびモジュール間通信から厳密に分離されている。これにより、モジュール内およびモジュール間通信は、管理機能によって中断されることなく高速で実行される。さらに、このような分離によって、システムセキュリティを高めることができる。
実際の通信ネットワークの使用は、MCALによって制御される。MCALは、この機能をメッセージパッシングインターフェース(MPI)を介してアプリケーションに提供する。MCALの一部は、モジュール毎のMPIスタックであるとともに、システム全体に及ぶグローバルMPIである。個々のMPIは、例えば、コンピュータクラスタモジュール、ブースタモジュール、ストレージモジュールなどについて実現される。
MCALの通信は、管理ネットワークを用いる。管理ネットワークは、モジュール内およびモジュール間通信に用いられる物理ネットワークと同じ物理ネットワークであってもよいし、異なる物理ネットワークであってもよい。例えば、モジュール内およびモジュール間通信は、インフィニバンド、ミリネットなどであってもよく、管理ネットワークは、ノードマネージャを接続するイーサネットによって形成されてもよい。
システムには、管理タスクまたは制御機能がシステムを作動させることを可能にするフロントエンドを提供するための特殊ノードが含まれてもよい。フロントエンドが通信ネットワークに接続されることは必要ではないが、通信ネットワークへだけ接続されている。例えばワークステーションコンピュータ、パーソナルコンピュータ(PC)、ラップトップコンピュータ、または任意のスマートコンピューティングデバイスによって形成され得るフロントエンドノードを介して、モジュラーコンピューティングシステムは管理され得る。モジュラーコンピューティングシステム上で実行中のアプリケーションは、スケジュール、開始、停止、および監視され得る。これは、バッチ処理によって行なわれ得る。すなわち、手動による介入なく、したがって非対話方式で、モジュラーコンピューティングシステム上で一連のジョブを実行することによって行なわれ得る。
手動による介入なくモジュラーコンピューティングシステム上で一連のジョブを実行することに加えて、MCALは、対話型コンピューティングを提供し得る。対話型コンピューティングでは、モジュラーコンピューティングシステム上で実行中のアプリケーションが、その実行中に人からの入力を受け付ける。この入力は、ワークステーションコンピュータ、パーソナルコンピュータ(PC)、ラップトップコンピュータ、または任意のスマートコンピューティングデバイスを介して提供され得る。そのようなシナリオでは、例えばラップトップコンピュータを介してモジュラーコンピューティングシステムにアクセスし、ラップトップコンピュータがモジュラーコンピューティングシステムの計算能力を有しているかのように見せることができる。これは、即時または現在進行中であるとユーザが感じるような時間枠内での応答が必要なリアルタイムのアプリケーションに非常に有用である。また、膨大な量の構造化データ、半構造化データ、および非構造化データを情報のマイニングのためにアクセス可能にするビッグデータアプリケーションにおいても、そのような配列を利用することができる。これは、計算能力およびストレージを提供するための基礎となるリソースとしてモジュラーコンピューティングシステムを有するクラウドコンピューティングサービスにも当てはまる。
上述のモジュラーコンピューティングシステムにおいて、MCALとシステムとが強固に統合されることによって、通信レイテンシが低減され、通信を向上させることができる。
本発明に従うモジュラーコンピューティングシステムの機能図である。 本発明に従うモジュラーコンピューティングシステムの第1の実施形態を示す図である。 本発明に従うモジュラーコンピューティングシステムの第2の実施形態を示す図である。
図1は、本発明に従うモジュラーコンピューティングシステム100の機能図である。アプリケーション層110がモジュラーコンピューティングシステムの最上部を形成する。モジュラーコンピューティングシステム100において、アプリケーション層では、ソフトウェアプログラムなどのアプリケーションプログラムが実行され得る。アプリケーション層110がシステムのリソースにアクセスすることを可能にするために、モジュラーコンピューティング抽象化層120(MCAL)が設けられる。システムのリソースは、クラスタモジュール130、ブースタモジュール140、ストレージモジュール150、データ解析モジュール160、および他のモジュール170、例えば、ニューロモーフィックモジュール、グラフィックスモジュール、および量子コンピューティングモジュールからなるグループのうちの1つ以上など、さまざまなモジュールによって形成される。同じ種類のモジュールを複数有することも可能である。
MCAL120は、モジュール内での通信(モジュール内通信と呼ぶ)と、モジュール間の通信(モジュール間通信と呼ぶ)とを可能にする。MCAL120は、如何なる種類の通信を用いてもよく、可用性、アプリケーションプログラムによる指示、性能、またはコストなどの要素に基づいて、特定の通信方法を選択する。
さらに、MCAL120は管理機能を提供する。管理機能は、さまざまな局面、具体的には、ノード管理、モジュール管理、プロセス管理、およびリソース管理をカバーする。ノード管理は、個々のノードを対象とするものであり、図2および図3を参照して、さらに説明する。
MCAL120は、システム全体を見渡し、モジュール130、140、150、160、および170の各々の状態を絶えず最新の状態に維持している。MCAL120は、利用可能なプロセッサの数、実行中のサービス、利用可能なストレージ、インターコネクト帯域幅、空きメモリ、温度、システムクロック速度などの、モジュール130、140、150、160、および170の特定の特性について、常時通知される。MCAL120が提供するもう一つの機能は、モジュール管理である。モジュール管理は、モジュールに特有の側面を考慮する。したがって、MCALは、クラスタモジュール130、ブースタモジュール140、ストレージモジュール150、データ解析モジュール160、および他のモジュール170を管理するように特別に適合された機能を含む。MCAL120は、プロセス管理も担う。実行中のアプリケーション110の各々は、複数の個々のプロセスに分割される。複数の個々のプロセスは、開始、分散、および監視する必要がある。同時に、リソースを割り当てる必要がある。これは、プロセスが計算能力およびストレージを必要とすることに対応する。プロセスが特定の処理を必要とする場合、MCAL120は、1つ以上のブースタノード、または、ニューロモーフィックノード、データ解析ノード、グラフィックスノード、または、量子コンピューティングノードなどのさらに特定的なノードを、それぞれのモジュールから割り当てる。そのために、MCAL120は、プロセスとその要件との間の依存を認識および制御するように構成されている。リソース管理は、MCAL120がモジュラーコンピューティングシステムにおいて行なうもう一つのタスクである。リソース管理の一部として、MCAL120は、オフロード機構を実現する。すなわち、例えばクラスタモジュール130上で実行中のプロセスは、ブースタモジュール140中のいくつかのブースタノードを必要とし得る。そのような場合には、MCAL120は、タスクを並列して実行するために、ブースタモジュール140から選択されたブースタノード上にプロセスを生成することができる。
統合制御は、MCAL120によって提供されるもう一つの機能局面である。統合制御は、MCAL120が、管理機能から収集した情報を用いて通信を制御すること(およびその逆)を意味する。このように、通信機能と管理機能とは別個のものではなく、システム性能全体をさらに最適化するために統合されたものである。これにより、システムの挙動の変更、および、システム上で実行中のアプリケーションの要求の変更に対する動的な調整が可能になる。統合制御は、実際のシステム状態およびアプリケーション要求を考慮するだけでなく、次に起こるモジュールのリクエストまたはインターコネクト使用の予測も行なう。
図2は、本発明に従うモジュラーコンピューティングシステム200の第1の実施形態を示す。モジュラーコンピューティングシステム200は、クラスタモジュール202と、ブースタモジュール204と、ストレージモジュール206とを含む。
クラスタモジュール202は、複数のクラスタノード208(CN)を含む。各クラスタノード208上には、ノードマネージャ209(NM)が設けられる。ノードマネージャ209(NM)は、他のノードマネージャ209と協働して、モジュラーコンピューティングシステム200に通信機能および管理機能を提供する。ブースタモジュール204は、複数のブースタノード210(BN)を含む。各ブースタノード210上には、ノードマネージャ209が設けられる。ノードマネージャ209は、他のノードマネージャ209と協働して、モジュラーコンピューティングシステム200に通信機能および管理機能を提供する。ストレージモジュール206は、複数のストレージノード212(SN)を含む。各ストレージノード212上には、ノードマネージャ209が設けられる。ノードマネージャ209は、他のノードマネージャ209と協働して、モジュラーコンピューティングシステム200に通信機能および管理機能を提供する。
クラスタノードは、汎用マイクロプロセッサ(例えば、インテルXeonプロセッサ)、メモリ、インターフェース(例えば、ネットワークカード)を有するコンピュータによって形成され得る。ブースタノードは、GPUまたはメニーコアプロセッサ、メモリ、および、インターフェース(例えば、ネットワークカード)を備える処理システムによって形成され得る。ストレージノードは、RAM(ランダムアクセスメモリ)、不揮発性メモリ(例えば、フラッシュメモリ)、SSD(ソリッドステートディスク)、ハードディスクなどであり得るメモリを含む。さらに、ストレージノードは、ノードコントローラ(例えば、マイクロプロセッサ)、およびインターフェース(例えば、ネットワークカード)を含む。
2つの異なるネットワーキングインフラストラクチャが設けられる。1つ目は、クラスタノード208、ブースタノード210、およびストレージノード212が通信可能になるように、すべてのノード208、210、212を互いに接続する通信ネットワーク220である。
2つ目は、さまざまなノード208、210、および212において設けられたすべてのノードマネージャ209を接続するように提供される管理ネットワーク224である。モジュラーコンピューティングシステム全体の制御を可能にするフロントエンド230が、管理ネットワーク224に取り付けられている。フロントエンド230もまた、ノードマネージャ209を含む。このノードマネージャ209は、他のノードマネージャ209への実際の通信を行なう。
異なるモジュールを結合して1つのシステムとするために、図1を参照して説明したモジュラーコンピューティング抽象化層(MCAL)が設けられる。MCALは、通信機能および管理機能を提供する。Par Tec Cluster Competence Center社によるPara Stationを使用すれば、本明細書で説明する機能および特性を有するMCALを実現するための基盤を形成することができる。
MCALは、個々のノード上のノードマネージャ209によって実現され、モジュール内での通信(モジュール内通信と呼ぶ)と、モジュール間の通信(モジュール間通信と呼ぶ)とを可能にする。そのために、ノードマネージャは、それぞれのファブリックにインターフェースを提供する。例えば、システム全体に対してファブリックが1つの場合もあるし、または、モジュール毎にファブリックが特化されている場合もある(例えば、クラスタモジュール202にはインフィニバンド、ブースタモジュール204にはインテルOmni−Pathファブリック、など)。イーサネット、10G、ギガビット、または共有メモリ通信など、他のインターコネクトも可能である。ノードマネージャ309は、如何なる種類の通信を用いてもよく、可用性、アプリケーションプログラムによる指示、性能、またはコストなどの要素に基づいて、特定の通信方法を選択する。
共有メモリ通信および共有の仮想アドレス空間通信が採用されてもよい。これらは、2つ以上のプロセスが通信するための非常に高速かつ効率的な方法を提供する。
ノードマネージャ209は、一括してノード管理を提供する。ノード管理は、個々のノードを対象とする。例えば、クラスタモジュール202におけるクラスタノード208、ブースタモジュール204におけるブースタノード210、ストレージモジュール206におけるストレージノード212などである。
さらに、ノードマネージャ209は、到達可能性、レイテンシまたは物理的配置などの要因に応じて、特定のノードを選択する。これは、実行中のアプリケーションに完全に透過的に行なわれ得る。ノードマネージャ209は、システム全体についての情報を収集およびやり取りし、各ノードおよび各インターコネクトの状態を絶えず最新の状態に維持している。これにより、ノードマネージャ309は、ノード1つ当たり利用可能なCPUの数、実行中のサービス、利用可能なストレージ、インターコネクト帯域幅、空きメモリ、温度、システムクロック速度などの、各ノードおよび各インターコネクトの特定の特性について、常時通知される。
ノードマネージャによって実施されるもう一つの機能は、モジュール管理である。モジュール管理は、ノード管理に類似しており、特定のモジュールについてのノード管理を含み得るが、モジュールに特有の側面を考慮する。モジュール管理は、モジュールが他のモジュールと通信するために用いるインターフェースノード(設けられる場合)の状態など、モジュールに特有の側面に焦点を当てる。ノードと同様に、ノードマネージャ309は、モジュールの利用増大を可能にするために、モジュールの状態を監視する。
リソース管理は、ノードマネージャ209がモジュラーコンピューティングシステム200において行なうもう一つのタスクである。リソース管理の一部として、ノードマネージャ209は、オフロード機構を実現する。すなわち、例えばクラスタモジュール202上で実行中のプロセスは、ブースタモジュール204中のいくつかのブースタノード210を必要とし得る。そのような場合には、ノードマネージャは、タスクを並列して実行するために、選択されたブースタノード210上にプロセスを生成することができる。
統合制御は、ノードマネージャによって実施されるもう一つの機能局面である。統合制御は、ノードマネージャが、管理機能から収集した情報を用いて通信を制御すること(およびその逆)を意味する。このように、通信機能と管理機能とは別個のものではなく、システム性能全体をさらに最適化するために統合されたものである。
すべてのモジュールにおけるすべてのノードのすべての異なる局面、ならびにすべてのインターコネクト、モジュール内通信、およびモジュール間通信のステータスについてのノードマネージャ209の知識を用いて、システムを作動させる。これにより、システムの挙動の変更、および、システム上で実行中のアプリケーションの要求の変更に対する動的な調整が可能になる。
統合制御は、実際のシステム状態およびアプリケーション要求を考慮するだけでなく、次に起こるモジュールのリクエストまたはインターコネクト使用の予測も行なう。
ノードマネージャ209はハードウェアで実現されてもよく、またはソフトウェアで実現されてもよく、例えば、それぞれのノード上で実行されるデーモンプロセスとして実現されてもよい。ノードマネージャ209は、モジュールおよびシステム全体を大域的に見るために、絶えず情報を収集する。システム上で実行中のアプリケーションは、管理機能と通信することによって、または個々のノードマネージャ209と直接通信することによって、この情報を活用することができる。これは、特定のインターフェースによって実現される。この特定のインターフェースは、ハードウェアであってもよいし、API(アプリケーションプログラミングインターフェース)であってもよい。
ノードマネージャ209の通信トラフィックは、モジュール内およびモジュール間通信から厳密に分離されている。これにより、モジュール内およびモジュール間通信は、管理機能によって中断されることなく高速で実行される。さらに、このような分離によって、システムセキュリティを高めることができる。
実際の通信ネットワーク220の使用は、ノードマネージャ209によって制御される。ノードマネージャ209は、この機能をメッセージパッシングインターフェース(MPI)を介してアプリケーションに提供する。
ノードマネージャ209は、管理ネットワーク224を用いて互いに通信する。管理ネットワーク224は、モジュール内およびモジュール間通信に用いられる物理ネットワーク(ここでは、通信ネットワーク220と称する)と同じ物理ネットワークであってもよいし、異なる物理ネットワークであってもよい。例えば、モジュール内およびモジュール間通信は、インフィニバンド、ミリネットなどであってもよく、管理ネットワークは、ノードマネージャ209を接続するイーサネットによって形成されてもよい。
システムには、管理タスクまたは制御機能がシステムを作動させることを可能にするフロントエンド230を提供するための特殊ノードが含まれてもよい。フロントエンドが通信ネットワーク220に接続されることは必要ではないが、通信ネットワーク220へだけ接続されている。例えばワークステーションコンピュータ、パーソナルコンピュータ(PC)、ラップトップコンピュータ、または任意のスマートコンピューティングデバイスによって形成され得るフロントエンドノードを介して、モジュラーコンピューティングシステム200は管理され得る。モジュラーコンピューティングシステム200上で実行中のアプリケーションは、スケジュール、開始、停止、および監視され得る。これは、バッチ処理によって行なわれ得る。すなわち、手動による介入なく、したがって非対話方式で、モジュラーコンピューティングシステム200上で一連のジョブを実行することによって行なわれ得る。
手動による介入なくモジュラーコンピューティングシステム200上で一連のジョブを実行することに加えて、ノードマネージャ309は、対話型コンピューティングを提供し得る。対話型コンピューティングでは、モジュラーコンピューティングシステム200上で実行中のアプリケーションが、その実行中に人からの入力を受け付ける。この入力は、ワークステーションコンピュータ、パーソナルコンピュータ(PC)、ラップトップコンピュータ、または任意のスマートコンピューティングデバイスを介して提供され得る。そのようなシナリオでは、例えばラップトップコンピュータを介してモジュラーコンピューティングシステム200にアクセスし、ラップトップコンピュータがモジュラーコンピューティングシステム200の計算能力を有しているかのように見せることができる。これは、即時または現在進行中であるとユーザが感じるような時間枠内での応答が必要なリアルタイムのアプリケーションに非常に有用である。また、膨大な量の構造化データ、半構造化データ、および非構造化データを情報のマイニングのためにアクセス可能にするビッグデータアプリケーションにおいても、そのような配列を利用することができる。これは、計算能力およびストレージを提供するための基礎となるリソースとしてモジュラーコンピューティングシステム200を有するクラウドコンピューティングサービスにも当てはまる。
図3は、本発明に従うモジュラーコンピューティングシステム300の第2の実施形態を示す。モジュラーコンピューティングシステム300は、クラスタモジュール302と、ブースタモジュール304と、ストレージモジュール306とを含む。
クラスタモジュール302は、複数のクラスタノード310(CN)を含む。各クラスタノード310上には、ノードマネージャ309(NM)が設けられる。ノードマネージャ309(NM)は、他のノードマネージャ309と協働して、モジュラーコンピューティングシステム300に通信機能および管理機能を提供する。クラスタノード310は、クラスタインターコネクト312を介して互いに接続されている。
ブースタモジュール304は、複数のブースタノード320(BN)を含む。各ブースタノード320上には、ノードマネージャ309が設けられる。ノードマネージャ309は、他のノードマネージャ309と協働して、モジュラーコンピューティングシステム300に通信機能および管理機能を提供する。ブースタノード320は、ブースタインターコネクト322を介して互いに接続されている。
ストレージモジュール306は、複数のストレージノード330(SN)を含む。各ストレージノード330上には、ノードマネージャ309が設けられる。ノードマネージャ309は、他のノードマネージャ309と協働して、モジュラーコンピューティングシステム300に通信機能および管理機能を提供する。ストレージノード330は、ストレージインターコネクト332を介して互いに接続されている。
クラスタノードは、汎用マイクロプロセッサ(例えば、インテルXeonプロセッサ)、メモリ、インターフェース(例えば、ネットワークカード)を有するコンピュータによって形成され得る。ブースタノードは、GPUまたはメニーコアプロセッサ、メモリ、および、インターフェース(例えば、ネットワークカード)を備える処理システムによって形成され得る。ストレージノードは、RAM(ランダムアクセスメモリ)、不揮発性メモリ(例えば、フラッシュメモリ)、SSD(ソリッドステートディスク)、ハードディスクなどであり得るメモリを含む。さらに、ストレージノードは、ノードコントローラ(例えば、マイクロプロセッサ)、およびインターフェース(例えば、ネットワークカード)を含む。
クラスタモジュール302は、クラスタインターコネクト312とストレージインターコネクト332とを接続するインターフェースノード340を介して、ストレージモジュール306と通信可能である。ストレージモジュール306は、ストレージインターコネクト332とブースタインターコネクト322とを接続するインターフェースノード342を介して、ブースタモジュール304と通信可能である。ブースタモジュール304は、ブースタインターコネクト322とクラスタインターコネクト312とを接続するインターフェースノード344を介して、クラスタモジュール302と通信可能である。
クラスタモジュール302は、例えばインフィニバンドインターコネクトを使用する。一方、ブースタモジュール304は、インターフェースノード344を介してインフィニバンドインターコネクトに接続されたインテルOmni−Pathファブリックを使用する。性能およびスループットを向上させるために、各インターフェースノードは複数のノードによって形成されてもよい。同じことが、他のタイプのモジュールについても当てはまる。
さまざまなノード310、310、312において設けられたすべてのノードマネージャ309は、同じ通信インフラストラクチャを使用する。モジュラーコンピューティングシステム全体の制御を可能にするフロントエンド350が、クラスタインターコネクト312に取り付けられている。フロントエンド350もまた、ノードマネージャ309を含む。このノードマネージャ309は、他のノードマネージャ309への実際の通信を行なう。
異なるモジュールを結合して1つのシステムとするために、図1を参照して説明したモジュラーコンピューティング抽象化層(MCAL)が設けられる。MCALは、通信機能および管理機能を提供する。Par Tec Cluster Competence Center社によるPara Stationを使用すれば、以下で説明する機能および特性を有するMCALを実現するための基盤を形成することができる。
MCALは、各ノードにおいてノードマネージャ309によって実現される。プロセス間の通信のために、提供される如何なる種類の通信リンクを用いてもよい。
前述のように、ノードマネージャ309はノード管理も提供する。ノード管理は、個々のノードを対象とする。例えば、クラスタモジュール302におけるクラスタノード310、ブースタモジュール304におけるブースタノード320、ストレージモジュール306におけるストレージノード330などである。また、ノードマネージャ309は、到達可能性、レイテンシ、または物理的配置などの要因に応じて、特定のノードを選択することもできる。これは、実行中のアプリケーションに完全に透過的に行なわれ得る。ノードマネージャ309は、常にシステム全体を見渡し、各ノードおよび各インターコネクトの状態を絶えず最新の状態に維持している。ノードマネージャ309は、ノード1つ当たり利用可能なCPUの数、実行中のサービス、利用可能なストレージ、インターコネクト帯域幅、空きメモリ、温度、システムクロック速度などの、各ノードおよび各インターコネクトの特定の特性について、常時、互いに通知し合う。
ノードマネージャ309が実施するもう一つの機能は、モジュール管理である。モジュール管理は、ノード管理に類似しており、特定のモジュールについてのノード管理を含み得るが、モジュールに特有の側面を考慮する。モジュール管理は、モジュールが他のモジュールと通信するために用いるインターフェースノード(設けられる場合)の状態など、モジュールに特有の側面に焦点を当てる。
ノードマネージャ309は、プロセス管理も実施する。実行中のアプリケーションの各々は、複数の個々のプロセスに分割される。複数の個々のプロセスは、開始、分散、および監視する必要がある。同時に、リソースを割り当てる必要がある。これは、プロセスが計算能力およびストレージを必要とすることに対応する。ノードマネージャ309は、プロセスとその要件との間の依存を認識および制御するように構成されている。これに基づいて、ノードマネージャ309は、ブースタモジュール304またはクラスタモジュール302の場合にはノード上にプロセスを作成し、または、ストレージモジュール306の場合にはストレージを割り当てる。プロセスは監視され、依存プロセスはグループとして扱われる。これにより、並列タスクのうちのいずれか1つで発生するエラーに迅速に応答することが可能である。したがって、プロセスを速やかに再開させることができ、その結果、実行中のアプリケーションの全体の遅延を最小限に抑えることができる。
リソース管理は、ノードマネージャ309がモジュラーコンピューティングシステム300において実施するもう一つのタスクである。リソース管理の一部として、ノードマネージャ309は、オフロード機構を実現する。すなわち、例えばクラスタモジュール302上で実行中のプロセスは、ブースタモジュール304中のいくつかのブースタノード320を必要とし得る。そのような場合には、ノードマネージャ309は、タスクを並列して実行するために、選択されたブースタノード320上にプロセスを生成する。
オフロードの一部として、1つのブースタ上で実行されるように作成されるプロセスは、1つだけでなく複数であってもよい。複数のプロセスは、ホストプロセッサの介入を必要とせずに、モジュール通信ファブリックを用いて互いに直接通信する。
また、リソース管理は、例えば異なるプロセス間の接続数を減少させることによって、メモリ消費を低減することも保証する。これは、必要な時にのみ実際に確立するオンデマンド接続を用いることによって行なわれる。これにより、接続1つ当たりのメモリ消費が劇的に低減される。したがって、ノードなどのリソースは仮想的に扱われるだけでなく、仮想割り当ては物理ネットワークにも適用される。
リソースを割り当てる際に、ノードマネージャ309は、1つのプロセスのリクエストを考慮するだけでなく、他のプロセスのリクエストも考慮する。これにより、統合制御に基づいて通信インフラストラクチャの変更に柔軟に応答することができる。
統合制御は、ノードマネージャ309によって提供されるもう一つの機能局面である。統合制御は、ノードマネージャが、管理機能から収集した情報を用いて通信を制御すること(およびその逆)を意味する。このように、通信機能と管理機能とは別個のものではなく、システム性能全体をさらに最適化するために統合されたものである。
すべてのモジュールにおけるすべてのノードのすべての異なる局面、ならびにすべてのインターコネクト、モジュール内通信、およびモジュール間通信のステータスについてのノードマネージャの知識を用いて、システムを作動させる。これにより、システムの挙動の変更、および、システム上で実行中のアプリケーションの要求の変更に対する動的な調整が可能になる。
統合制御は、実際のシステム状態およびアプリケーション要求を考慮するだけでなく、次に起こるモジュールのリクエストまたはインターコネクト使用の予測も行なう。システム状態の情報は、ノードの動的な割り当てのために用いられる。これは、フィードバックループ登録システムの割り当て決定の広範な影響を用いてリソースの割り当てが行なわれることを含む。その結果、将来の割り当てが相応に調整される。また、システムは、自己学習の方法で、そのような情報を記憶することによって将来のケースの割り当て決定を向上させる。
アプリケーションの主要部分が通常はクラスタモジュール302で開始されるとしても、ノードマネージャは、クラスタモジュール302またはブースタモジュール304上でアプリケーションのどの部分を実行させるかを特定する。決定の根拠は、例えば、実行中のコード性能の監視結果をアプリケーションコード自体で示すものである。これにより、アプリケーションのコンピューティング中に割り当てを調整することができる。
ノードマネージャ309はハードウェアで実現されてもよく、またはソフトウェアで実現されてもよく、例えば、それぞれのノード上で実行されるデーモンプロセスとして実現されてもよい。ノードマネージャ309は、モジュールおよびシステム全体を大域的に見るために、絶えず情報を収集する。システム上で実行中のアプリケーションは、管理機能と通信することによって、または個々のノードマネージャ309と直接通信することによって、この情報を活用することができる。これは特定のインターフェースによって実現される。この特定のインターフェースは、ハードウェアであってもよいし、API(アプリケーションプログラミングインターフェース)であってもよい。
ノードマネージャの通信トラフィックは、モジュール内およびモジュール間通信から厳密に分離されている。これにより、モジュール内およびモジュール間通信は、管理機能によって中断されることなく高速で実行される。さらに、このような分離によって、システムセキュリティを高めることができる。
実際の通信ネットワークの使用は、ノードマネージャ309によって制御される。ノードマネージャ309は、この機能をメッセージパッシングインターフェース(MPI)を介してアプリケーションに提供する。ノードマネージャ309は、管理ネットワーク(図示せず)を用いる。管理ネットワーク(図示せず)は、モジュール内およびモジュール間通信に用いられる物理ネットワークと同じ物理ネットワークであってもよいし、異なる物理ネットワークであってもよい。例えば、モジュール内およびモジュール間通信は、インフィニバンド、ミリネットなどであってもよく、管理ネットワーク(図示せず)は、ノードマネージャ309を接続するイーサネットによって形成されてもよい。
システムには、管理タスクまたは制御機能がシステムを作動させることを可能にするフロントエンドを提供するための特殊ノードが含まれてもよい。フロントエンド350が通信ネットワークに接続されることは必要ではないが、通信ネットワークへだけ接続されている。例えばワークステーションコンピュータ、パーソナルコンピュータ(PC)、ラップトップコンピュータ、または任意のスマートコンピューティングデバイスによって形成され得るフロントエンド350ノードを介して、モジュラーコンピューティングシステム300は管理され得る。モジュラーコンピューティングシステム300上で実行中のアプリケーションは、スケジュール、開始、停止、および監視され得る。これは、バッチ処理によって行なわれ得る。すなわち、手動による介入なく、したがって非対話方式で、モジュラーコンピューティングシステム300上で一連のジョブを実行することによって行なわれ得る。
手動による介入なくモジュラーコンピューティングシステム300上で一連のジョブを実行することに加えて、ノードマネージャは、対話型コンピューティングを提供し得る。対話型コンピューティングでは、モジュラーコンピューティングシステム300上で実行中のアプリケーションが、その実行中に人からの入力を受け付ける。この入力は、ワークステーションコンピュータ、パーソナルコンピュータ(PC)、ラップトップコンピュータ、または任意のスマートコンピューティングデバイスを介して提供され得る。そのようなシナリオでは、例えばラップトップコンピュータを介してモジュラーコンピューティングシステム300にアクセスし、ラップトップコンピュータがモジュラーコンピューティングシステム300の計算能力を有しているかのように見せることができる。これは、即時または現在進行中であるとユーザが感じるような時間枠内での応答が必要なリアルタイムのアプリケーションに非常に有用である。また、膨大な量の構造化データ、半構造化データ、および非構造化データを情報のマイニングのためにアクセス可能にするビッグデータアプリケーションにおいても、そのような配列を利用することができる。これは、計算能力およびストレージを提供するための基礎となるリソースとしてモジュラーコンピューティングシステム300を有するクラウドコンピューティングサービスにも当てはまる。

Claims (11)

  1. アプリケーションプログラムの計算を行なうためのモジュラーコンピューティングシステムであって、
    異なるモジュールを備え、各モジュールは複数のノードを含み、
    前記モジュラーコンピューティングシステムは、前記複数のノードに分散されたモジュラーコンピューティング抽象化層をさらに備え、
    前記モジュラーコンピューティング抽象化層は、前記異なるモジュールの前記ノードのためにモジュール内およびモジュール間通信ならびに管理機能を提供する、モジュラーコンピューティングシステム。
  2. 前記異なるモジュールは、少なくとも、クラスタモジュール、ブースタモジュール、およびストレージモジュールによって形成されていることを特徴とする、請求項1に記載のモジュラーコンピューティングシステム。
  3. 前記モジュラーコンピューティング抽象化層は、前記ノード内に設けられたノードマネージャによって実現されることを特徴とする、請求項1または2に記載のモジュラーコンピューティングシステム。
  4. 前記ノードマネージャは、管理ネットワークを介して互いに通信することを特徴とする、請求項3に記載のモジュラーコンピューティングシステム。
  5. 前記複数のノードは、通信ネットワークを介して通信することを特徴とする、前述の請求項のうちのいずれかに記載のモジュラーコンピューティングシステム。
  6. 前記通信ネットワークは、共有メモリ通信を用いて実現されることを特徴とする、請求項5に記載のモジュラーコンピューティングシステム。
  7. ノードマネージャ間の通信は、モジュール間の通信から分離されている、請求項3に記載のモジュラーコンピューティングシステム。
  8. 前記ノードマネージャは、前記ノードマネージャの各々が各ノードおよび前記ノード間の各インターコネクトのステータスについての情報のセットを維持するように情報をやり取りする、請求項3に記載のモジュラーコンピューティングシステム。
  9. 前記情報のセットに応じて前記ノードにリソースを割り当てることによって前記システムの動作を動的に調整するように前記情報のセットが用いられる、請求項8に記載のモジュラーコンピューティングシステム。
  10. アプリケーションプログラムの計算を行なうためのモジュラーコンピューティングシステムを管理するための方法であって、前記モジュラーコンピューティングシステムは、異なるモジュールを備え、各モジュールは複数のノードを含み、前記モジュラーコンピューティングシステムは、前記複数のノードに分散されたモジュラーコンピューティング抽象化層を備え、前記方法は、
    前記モジュラーコンピューティング抽象化層を用いて、前記異なるモジュールの前記ノードのためにノード内およびノード間通信ならびに管理機能を提供するステップを含む、方法。
  11. ノードマネージャをさらに備え、前記方法はさらに、
    前記ノードマネージャが、前記ノードのステータスについての情報を収集し、前記収集されたステータスの情報に応じて、前記ノードにリソースを割り当てるステップをさらに含む、請求項10に記載のモジュラーコンピューティングシステムを管理するための方法。
JP2019518274A 2016-10-05 2017-10-05 高性能のコンピューティングシステムおよび方法 Active JP7066694B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022001010A JP7405876B2 (ja) 2016-10-05 2022-01-06 高性能のコンピューティングシステムおよび方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16192430 2016-10-05
EP16192430.3 2016-10-05
PCT/EP2017/075375 WO2018065530A1 (en) 2016-10-05 2017-10-05 High performance computing system and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022001010A Division JP7405876B2 (ja) 2016-10-05 2022-01-06 高性能のコンピューティングシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2019533249A true JP2019533249A (ja) 2019-11-14
JP7066694B2 JP7066694B2 (ja) 2022-05-13

Family

ID=57083209

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019518274A Active JP7066694B2 (ja) 2016-10-05 2017-10-05 高性能のコンピューティングシステムおよび方法
JP2022001010A Active JP7405876B2 (ja) 2016-10-05 2022-01-06 高性能のコンピューティングシステムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022001010A Active JP7405876B2 (ja) 2016-10-05 2022-01-06 高性能のコンピューティングシステムおよび方法

Country Status (18)

Country Link
US (1) US11494245B2 (ja)
EP (2) EP3523723B8 (ja)
JP (2) JP7066694B2 (ja)
KR (2) KR102326474B1 (ja)
CN (1) CN109791509B (ja)
CA (1) CA3035459C (ja)
CY (1) CY1124626T1 (ja)
DK (1) DK3523723T3 (ja)
ES (1) ES2886491T3 (ja)
HR (1) HRP20211436T1 (ja)
HU (1) HUE056042T2 (ja)
LT (1) LT3523723T (ja)
PL (1) PL3523723T3 (ja)
PT (1) PT3523723T (ja)
RS (1) RS62402B1 (ja)
RU (1) RU2733058C1 (ja)
SI (1) SI3523723T1 (ja)
WO (1) WO2018065530A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111656323A (zh) 2018-01-23 2020-09-11 派泰克集群能力中心有限公司 应用运行时确定的异构计算资源的动态分配
US11315013B2 (en) * 2018-04-23 2022-04-26 EMC IP Holding Company LLC Implementing parameter server in networking infrastructure for high-performance computing
KR102338729B1 (ko) * 2019-03-11 2021-12-14 서울대학교산학협력단 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램
WO2020184982A1 (ko) * 2019-03-11 2020-09-17 서울대학교산학협력단 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램
KR102231358B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템
KR102231357B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 소프트웨어 정의 서버 배포 스케줄링 방법
KR102231359B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법
KR102378817B1 (ko) 2020-09-25 2022-03-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스의 네트워크 격리를 위한 동적 클러스터 구성 방법 및 시스템
KR102413924B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 프로세스 그룹 관리 방법 및 그 시스템
KR102413923B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 전력효율을 위한 로드 밸런싱 방법 및 그 시스템
KR102413922B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템
KR102627514B1 (ko) 2021-08-13 2024-01-23 주식회사 이노그리드 메타버스를 위한 고성능 클라우드 서비스 시스템 및 방법
KR102573439B1 (ko) 2021-11-10 2023-09-04 주식회사 이노그리드 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법
KR20230068055A (ko) 2021-11-10 2023-05-17 주식회사 이노그리드 Arm 프로세서 컴퓨팅 노드 기반의 보드형 고성능 클라우드 시스템 및 운영방법
KR20230068477A (ko) 2021-11-10 2023-05-18 주식회사 이노그리드 보드형 컴퓨팅 노드들을 이용한 고성능 클라우드 분리 운영 방법 및 그 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048330A (ja) * 2010-08-25 2012-03-08 Nippon Telegr & Teleph Corp <Ntt> クラスタシステムおよびソフトウェアデプロイ方法
JP2013515991A (ja) * 2009-12-24 2013-05-09 インターナショナル・ビジネス・マシーンズ・コーポレーション アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム
JP2013539881A (ja) * 2010-10-13 2013-10-28 パルテック・クラスター・コンペテンス・センター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
JP2016012347A (ja) * 2014-06-27 2016-01-21 富士通株式会社 分散型コンピュータシステムでアプリケーションを実行する方法、リソースマネジャ、及び分散型コンピュータシステム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627694B2 (en) 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US7058858B2 (en) * 2001-04-23 2006-06-06 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US7257638B2 (en) 2001-12-20 2007-08-14 Microsoft Corporation Distributing network applications
US7302609B2 (en) * 2003-03-12 2007-11-27 Vladimir Matena Method and apparatus for executing applications on a distributed computer system
US7516221B2 (en) * 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
US20050080982A1 (en) * 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US7685319B2 (en) * 2004-09-28 2010-03-23 Cray Canada Corporation Low latency communication via memory windows
EP1715405A1 (en) 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US7819345B2 (en) * 2007-09-17 2010-10-26 Shoap Stephen D Method and system for fluid transmission along significant distances
US9163618B2 (en) * 2008-06-24 2015-10-20 Agilent Technologies, Inc. Automated conversion between SFC and HPLC
CN102742251A (zh) * 2011-08-11 2012-10-17 华为技术有限公司 一种实现对称多处理系统的节点聚合系统
US9203900B2 (en) * 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
KR20130088512A (ko) 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
JP5884578B2 (ja) 2012-03-16 2016-03-15 富士通株式会社 アクセラレータ管理装置、アクセラレータ管理方法および入出力装置
US9742877B2 (en) 2012-12-04 2017-08-22 International Business Machines Corporation Clustering support across geographical boundaries
US9298490B2 (en) * 2012-12-20 2016-03-29 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
CN103207814B (zh) * 2012-12-27 2016-10-19 北京仿真中心 一种去中心化的跨集群资源管理与任务调度系统与调度方法
EP3031268B1 (en) * 2013-08-09 2023-10-04 Telefonaktiebolaget LM Ericsson (publ) Resource allocation for mobile terminal configured for dual connectivity
US9521089B2 (en) * 2014-08-30 2016-12-13 International Business Machines Corporation Multi-layer QoS management in a distributed computing environment
US10409810B2 (en) * 2015-05-08 2019-09-10 International Business Machines Corporation Generating multilingual queries

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013515991A (ja) * 2009-12-24 2013-05-09 インターナショナル・ビジネス・マシーンズ・コーポレーション アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム
JP2012048330A (ja) * 2010-08-25 2012-03-08 Nippon Telegr & Teleph Corp <Ntt> クラスタシステムおよびソフトウェアデプロイ方法
JP2013539881A (ja) * 2010-10-13 2013-10-28 パルテック・クラスター・コンペテンス・センター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
JP2016012347A (ja) * 2014-06-27 2016-01-21 富士通株式会社 分散型コンピュータシステムでアプリケーションを実行する方法、リソースマネジャ、及び分散型コンピュータシステム

Also Published As

Publication number Publication date
PL3523723T3 (pl) 2021-12-20
CY1124626T1 (el) 2022-07-22
RU2733058C1 (ru) 2020-09-29
US11494245B2 (en) 2022-11-08
KR102326474B1 (ko) 2021-11-15
EP3523723A1 (en) 2019-08-14
US20190243694A1 (en) 2019-08-08
ES2886491T3 (es) 2021-12-20
HRP20211436T1 (hr) 2021-12-10
CN109791509B (zh) 2023-11-28
EP3523723B1 (en) 2021-06-16
LT3523723T (lt) 2021-10-11
CA3035459A1 (en) 2018-04-12
CN109791509A (zh) 2019-05-21
WO2018065530A1 (en) 2018-04-12
EP3944084A1 (en) 2022-01-26
KR20210136179A (ko) 2021-11-16
RS62402B1 (sr) 2021-10-29
EP3523723B8 (en) 2021-07-28
HUE056042T2 (hu) 2022-01-28
CA3035459C (en) 2023-02-21
JP7405876B2 (ja) 2023-12-26
SI3523723T1 (sl) 2021-11-30
JP7066694B2 (ja) 2022-05-13
DK3523723T3 (da) 2021-09-20
JP2022050541A (ja) 2022-03-30
KR102464616B1 (ko) 2022-11-09
KR20190058619A (ko) 2019-05-29
PT3523723T (pt) 2021-09-20

Similar Documents

Publication Publication Date Title
JP7405876B2 (ja) 高性能のコンピューティングシステムおよび方法
US11934883B2 (en) Computer cluster arrangement for processing a computation task and method for operation thereof
Shiekh et al. A load-balanced hybrid heuristic for allocation of batch of tasks in cloud computing environment
Volovich et al. Deployment of parallel computing in a hybrid high-performance cluster based on virtualization technologies
EP3963449A1 (en) Apparatus and method to dynamically optimize parallel computations
Li et al. Resources-conscious asynchronous high-speed data transfer in multicore systems: Design, optimizations, and evaluation
Kaur et al. Parallel job scheduling using grey wolf optimization algorithm for heterogeneous multi-cluster environment
US20230089925A1 (en) Assigning jobs to heterogeneous graphics processing units
Pasricha et al. Analytical parallel approach to evaluate cluster based strassen’s matrix multiplication
Zanella et al. A Hierarchical Approach for Resource Management in Heterogeneous Systems
Liu et al. Joint load-balancing and energy-aware virtual machine placement for network-on-chip systems
Liu et al. I/O scheduling and performance analysis on multi‐core platforms
Microsystem Providing QoS with Virtual Private Machines

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190807

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220106

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220106

C11 Written invitation by the commissioner to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C11

Effective date: 20220118

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220215

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220427

R150 Certificate of patent or registration of utility model

Ref document number: 7066694

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150