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

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

Info

Publication number
JP7405876B2
JP7405876B2 JP2022001010A JP2022001010A JP7405876B2 JP 7405876 B2 JP7405876 B2 JP 7405876B2 JP 2022001010 A JP2022001010 A JP 2022001010A JP 2022001010 A JP2022001010 A JP 2022001010A JP 7405876 B2 JP7405876 B2 JP 7405876B2
Authority
JP
Japan
Prior art keywords
nodes
node
modular computing
computing system
module
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.)
Active
Application number
JP2022001010A
Other languages
English (en)
Other versions
JP2022050541A (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 AG
Original Assignee
Partec AG
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 AG filed Critical Partec AG
Publication of JP2022050541A publication Critical patent/JP2022050541A/ja
Application granted granted Critical
Publication of JP7405876B2 publication Critical patent/JP7405876B2/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/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/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/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/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/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)

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 (15)

  1. アプリケーションプログラムの計算を行なうためのモジュラーコンピューティングシステムであって、
    前記モジュラーコンピューティングシステムは、少なくともクラスタモジュールとブースタモジュールとによって形成される異なるモジュールを備え、各モジュールは複数のノードを含み、
    前記モジュラーコンピューティングシステムは、アプリケーション層が前記モジュラーコンピューティングシステムのリソースにアクセスすることを可能にするモジュラーコンピューティング抽象化層をさらに備え、前記モジュラーコンピューティング抽象化層は、前記複数のノードに分散され、前記異なるモジュールの前記ノードのためにモジュール内およびモジュール間通信ならびに管理機能を提供し、
    前記管理機能は、ノード管理、モジュール管理、プロセス管理、およびリソース管理を提供し、
    前記モジュラーコンピューティング抽象化層は、ノード管理のために仮想ノードの概念を採用し、前記仮想ノードは実際のハードウェアを表し、前記モジュラーコンピューティング抽象化層は前記仮想ノードと物理ノードとの間を動的にマッピングするように適合される、モジュラーコンピューティングシステム。
  2. 前記異なるモジュールはさらに、少なくとも、ストレージモジュールによって形成されていることを特徴とする、請求項1に記載のモジュラーコンピューティングシステム。
  3. 前記モジュラーコンピューティング抽象化層は、前記ノード内に設けられたノードマネージャによって実現されることを特徴とする、請求項1または2に記載のモジュラーコンピューティングシステム。
  4. 前記ノードマネージャは、管理ネットワークを介して互いに通信することを特徴とする、請求項3に記載のモジュラーコンピューティングシステム。
  5. 前記複数のノードは、通信ネットワークを介して通信することを特徴とする、請求項1~請求項4のいずれか1項に記載のモジュラーコンピューティングシステム。
  6. 前記通信ネットワークは、共有メモリ通信を用いて実現されることを特徴とする、請求項5に記載のモジュラーコンピューティングシステム。
  7. ノードマネージャ間の通信は、モジュール間の通信から分離されている、請求項3に記載のモジュラーコンピューティングシステム。
  8. 前記ノードマネージャは、前記ノードマネージャの各々が各ノードおよび前記ノード間の各インターコネクトのステータスについての情報のセットを維持するように情報をやり取りし、好ましくは、
    前記情報のセットに応じて前記ノードにリソースを割り当てることによって前記モジュラーコンピューティングシステムの動作を動的に調整するように前記情報のセットが用いられる、請求項3に記載のモジュラーコンピューティングシステム。
  9. 前記モジュラーコンピューティング抽象化層は、1つ以上のブースタノード、または、ニューロモーフィックノード、データ解析ノード、グラフィックスノード、もしくは量子コンピューティングノードを含むさらに特定的なノードを、それぞれのモジュールから割り当てるように適合されている、請求項1~請求項8のいずれか1項に記載のモジュラーコンピューティングシステム。
  10. 前記ノードの動的な割り当ては、将来の割り当てが相応に調整されるように、フィードバックループ登録システムの割り当て決定の広範な影響を用いてリソースの前記割り当てが行なわれることを含む、請求項1~請求項9のいずれか1項に記載のモジュラーコンピューティングシステム。
  11. 前記リソース管理は、必要な時にのみ実際に確立するオンデマンド接続を用いることにより、異なるプロセス間の接続数を減少させるように適合されている、請求項1~請求項10のいずれか1項に記載のモジュラーコンピューティングシステム。
  12. 前記リソース管理は、仮想割り当てを物理ネットワークに適用するように適合されている、請求項1~請求項11のいずれか1項に記載のモジュラーコンピューティングシステム。
  13. 前記リソース管理は、ノードが故障している場合またはノードが前記モジュラーコンピューティングシステムに追加された場合に、前記仮想ノードと前記物理ノードとの間のマッピングを変更するように適合されている、請求項1~請求項12のいずれか1項に記載のモジュラーコンピューティングシステム。
  14. 請求項1~請求項13のいずれか1項に記載のアプリケーションプログラムの計算を行なうためのモジュラーコンピューティングシステムを管理するための方法であって、前記モジュラーコンピューティングシステムは、異なるモジュールを備え、各モジュールは複数のノードを含み、前記モジュラーコンピューティングシステムは、前記複数のノードに分散されたモジュラーコンピューティング抽象化層を備え、前記方法は、
    前記モジュラーコンピューティング抽象化層を用いて、前記異なるモジュールの前記ノードのためにノード内およびノード間通信ならびに管理機能を提供するステップと、前記仮想ノードと前記物理ノードとの間を動的にマッピングするステップを含む、方法。
  15. ノードマネージャをさらに備え、前記方法はさらに、 前記ノードマネージャが、前記ノードのステータスについての情報を収集し、前記収集したステータスの情報に応じて、前記ノードにリソースを割り当てるステップを含む、請求項14に記載のモジュラーコンピューティングシステムを管理するための方法。
JP2022001010A 2016-10-05 2022-01-06 高性能のコンピューティングシステムおよび方法 Active JP7405876B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP16192430 2016-10-05
EP16192430.3 2016-10-05
JP2019518274A JP7066694B2 (ja) 2016-10-05 2017-10-05 高性能のコンピューティングシステムおよび方法
PCT/EP2017/075375 WO2018065530A1 (en) 2016-10-05 2017-10-05 High performance computing system and method

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2022050541A JP2022050541A (ja) 2022-03-30
JP7405876B2 true JP7405876B2 (ja) 2023-12-26

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 Before (1)

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

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 (6)

* 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 インターナショナル・ビジネス・マシーンズ・コーポレーション アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム
JP2013196206A (ja) 2012-03-16 2013-09-30 Fujitsu Ltd アクセラレータ管理装置、アクセラレータ管理方法および入出力装置
JP2013539881A (ja) 2010-10-13 2013-10-28 パルテック・クラスター・コンペテンス・センター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
US20140181806A1 (en) 2012-12-20 2014-06-26 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
JP2016012347A (ja) 2014-06-27 2016-01-21 富士通株式会社 分散型コンピュータシステムでアプリケーションを実行する方法、リソースマネジャ、及び分散型コンピュータシステム

Family Cites Families (20)

* 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 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
US9742877B2 (en) 2012-12-04 2017-08-22 International Business Machines Corporation Clustering support across geographical boundaries
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 (6)

* 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 パルテック・クラスター・コンペテンス・センター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
JP2013196206A (ja) 2012-03-16 2013-09-30 Fujitsu Ltd アクセラレータ管理装置、アクセラレータ管理方法および入出力装置
US20140181806A1 (en) 2012-12-20 2014-06-26 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
JP2016012347A (ja) 2014-06-27 2016-01-21 富士通株式会社 分散型コンピュータシステムでアプリケーションを実行する方法、リソースマネジャ、及び分散型コンピュータシステム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
EICKER NORBERT ET AL,The DEEP Project An alternative approach to heterogeneous cluster-computing in the many-core Era,CONCURRENCY AND COMPUTATION:PRACTICE AND EXPERIENCE,2015年07月27日,2394-2411,[令和5年2月8日検索],インターネット<URL:https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.3562>
EICKER NORBERT ET AL,The DEEP Project Pursuing Cluster-Computing in the Many-Core Era,INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING,米国,IEEE,2013年10月01日,885-892,[令和5年2月8日検索],インターネット<URL:https://ieeexplore.ieee.org/document/6687429>
田中 宏明,山本 怜,大野 和彦,GPGPUフレームワークMESI-CUDAにおけるデータ再利用性を高めるスケジューラ,情報処理学会 研究報告 ハイパフォーマンスコンピューティング(HPC) 2016-HPC-155,日本,情報処理学会,2016年08月01日,1-7,[令和5年2月8日検索],インターネット<URL:https://ipsj.ixsq.nii.ac.jp/ej/index.php?action=pages_view_main&active_action=repository_action_common_download&item_id=174122&item_no=1&attribute_id=1&file_no=1&page_id=13&block_id=8>

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
SI3523723T1 (sl) 2021-11-30
JP7066694B2 (ja) 2022-05-13
DK3523723T3 (da) 2021-09-20
JP2019533249A (ja) 2019-11-14
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) 高性能のコンピューティングシステムおよび方法
Rashid et al. Distributed cloud computing and distributed parallel computing: A review
JP6433554B2 (ja) 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
KR102253582B1 (ko) Dram 기반 프로세싱 장치를 위한 확장 아키텍처
Fan Job scheduling in high performance computing
Petrosyan et al. Serverless high-performance computing over cloud
Zarrin et al. ElCore: Dynamic elastic resource management and discovery for future large-scale manycore enabled distributed systems
Myint et al. A framework of using mobile agent to achieve efficient load balancing in cluster
Shiekh et al. A load-balanced hybrid heuristic for allocation of batch of tasks in cloud computing environment
Sharma et al. A review of cloud computing scheduling algorithms
Volovich et al. Deployment of parallel computing in a hybrid high-performance cluster based on virtualization technologies
Thakur et al. Load balancing approaches: recent computing trends
WO2020221799A1 (en) Apparatus and method to dynamically optimize parallel computations
Kaur et al. Parallel job scheduling using grey wolf optimization algorithm for heterogeneous multi-cluster environment
Sugiarto et al. Task graph mapping of general purpose applications on a neuromorphic platform
Pathak et al. An efficient scheduling policy for load balancing model for computational grid system
US20230089925A1 (en) Assigning jobs to heterogeneous graphics processing units
Liu et al. Joint load-balancing and energy-aware virtual machine placement for network-on-chip systems
Zanella et al. A Hierarchical Approach for Resource Management in Heterogeneous Systems
Zarrin et al. Decentralized resource discovery and management for future manycore systems
Marques et al. Harnessing Cloud Computing to Power Up HPC Applications: The BRICS CloudHPC Project
Gulia et al. Analysis and review of load balancing in grid computing using artificial bee colony
Abawajy et al. Time/space sharing distributed job scheduling policy in a workstation cluster environment
Shahabanath et al. K-TIER and Selective Backfilling Approach for Parallel Workload Scheduling In Cloud
Patil et al. Comparison of cluster scheduling mechanism using workload and system parameters

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230428

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231214

R150 Certificate of patent or registration of utility model

Ref document number: 7405876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150