(57)【要約】      （修正有）【課題】計算ノードへアクセラレータを動的に割当てる高性能クラスタ技術を提供する。【解決手段】コンピュータクラスタ構成、およびコンピュータクラスタ構成を動作させるための方法であって、クラスタＣとブースタ群ＢＧとを含むコンピュータクラスタ構成は、計算ノードＣＮを含み、それらは特定の計算タスクをブースタＢに動的にアウトソーシングする。計算ノードＣＮへのブースタＢの割当は、実行時に動的に行なわれる。【選択図】図２
2019057303.tif 000002
【特許請求の範囲】
【請求項１】
計算タスクを処理するためのコンピュータクラスタ構成であって、
複数の計算ノード（ＣＮ）を含み、それらの各々は通信インフラストラクチャ（ＩＮ）とインターフェイス接続し、それらの少なくとも２つは、前記計算タスクの少なくとも第１の部分を共同で計算するよう構成されており、前記コンピュータクラスタ構成はさらに、
前記計算タスクの少なくとも第２の部分を計算するよう構成された少なくとも１つのブースタ（Ｂ）を含み、各ブースタ（Ｂ）は前記通信インフラストラクチャ（ＩＮ）とインターフェイス接続しており、前記コンピュータクラスタ構成はさらに、
前記計算タスクの前記第２の部分の計算のために、少なくとも１つのブースタ（Ｂ）を前記複数の計算ノード（ＣＮ）のうちの少なくとも１つに割当てるよう構成されたリソースマネージャ（ＲＭ）を含み、割当は、予め定められた割当メトリックの関数として達成される、コンピュータクラスタ構成。
【請求項２】
前記予め定められた割当メトリックは、メトリック特定技術の群のうちの少なくとも１つに従って形成され、前記群は、時相論理、割当マトリックス、割当テーブル、確率関数、および費用関数を含む、請求項１に記載のコンピュータクラスタ構成。
【請求項３】
前記予め定められた割当メトリックは、割当パラメータの群のうちの少なくとも１つの関数として特定され、前記群は、リソース情報、費用情報、複雑性情報、拡張性情報、計算ログ記録、コンパイラ情報、優先度情報、およびタイムスタンプを含む、前述の請求項のいずれかに記載のコンピュータクラスタ構成。
【請求項４】
前記複数の計算ノード（ＣＮ）のうちの１つへの少なくとも１つのブースタ（Ｂ）の前記割当は、信号の群のうちの少なくとも１つをトリガし、前記群は、遠隔手続呼出、パラメータ引渡し、データ伝送を含む、前述の請求項のいずれかに記載のコンピュータクラスタ構成。
【請求項５】
各計算ノード（ＣＮ）および各ブースタ（Ｂ）はそれぞれ、インターフェーシングユニット（ＩＵ１；ＩＵ２）を介して、前記通信インフラストラクチャ（ＩＮ）とインターフェイス接続している、前述の請求項のいずれかに記載のコンピュータクラスタ構成。
【請求項６】
前記インターフェーシングユニット（ＩＵ１；ＩＵ２）は、構成要素の群のうちの少なくとも１つを含み、前記群は、仮想インターフェイス、スタブ、ソケット、ネットワークコントローラ、およびネットワーク装置を含む、請求項５に記載のコンピュータクラスタ構成。
【請求項７】
前記通信インフラストラクチャ（ＩＮ）は、構成要素の群のうちの少なくとも１つを含み、前記群は、バス、通信リンク、切替ユニット、ルータ、および高速ネットワークを含む、前述の請求項のいずれかに記載のコンピュータクラスタ構成。
【請求項８】
各計算ノード（ＣＮ）は、構成要素の群のうちの少なくとも１つを含み、前記群は、マルチコアプロセッサ、クラスタ、コンピュータ、ワークステーション、および汎用プロセッサを含む、前述の請求項のいずれかに記載のコンピュータクラスタ構成。
【請求項９】
前記少なくとも１つのブースタ（Ｂ）は、構成要素の群のうちの少なくとも１つを含み、前記群は、メニーコアプロセッサ、スカラープロセッサ、コプロセッサ、図形処理ユニット、メニーコアプロセッサのクラスタ、およびモノリシックプロセッサを含む、前述の請求項のいずれかに記載のコンピュータクラスタ構成。
【請求項１０】
前記リソースマネージャ（ＲＭ）は、前記計算タスクの少なくとも一部の計算中、前記予め定められた割当メトリックを更新するよう構成されている、前述の請求項のいずれかに記載のコンピュータクラスタ構成。
【請求項１１】
計算タスクを処理するためのコンピュータクラスタ構成、特に請求項１〜１０の少なくとも１つに記載のコンピュータクラスタを動作させるための方法であって、
前記複数の計算ノード（ＣＮ）のうちの少なくとも２つによって、前記計算タスクの少なくとも第１の部分を計算するステップ（１００）を含み、各計算ノード（ＣＮ）は通信インフラストラクチャ（ＩＮ）とインターフェイス接続しており、前記方法はさらに、
少なくとも１つのブースタ（Ｂ）によって、前記計算タスクの少なくとも第２の部分を計算するステップ（１０１）を含み、各ブースタ（Ｂ）は前記通信インフラストラクチャ（ＩＮ）とインターフェイス接続しており、前記方法はさらに、
前記計算タスクの前記第２の部分の計算のために、リソースマネージャ（ＲＭ）によって、少なくとも１つのブースタ（Ｂ）を前記複数の計算ノード（ＣＮ）のうちの１つに割当てるステップ（１０２）を含み、前記割当は、予め定められた割当メトリックの関数として達成される、方法。
【請求項１２】
請求項１１の記載の方法を達成するために構成された、コンピュータプログラム製品。
【請求項１３】
請求項１２に記載の前記コンピュータプログラム製品を格納するための、コンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータクラスタ構成に向けられている。特にそれは、拡張可能な計算タスクおよび複雑な計算タスクを処理するための計算ノードの適用について、リソース管理が改良されたコンピュータクラスタ構成に関する。それは特に、計算タスクを処理するためのコンピュータクラスタ構成、およびコンピュータクラスタ構成を動作させるための方法に向けられている。この発明に従ったコンピュータクラスタ構成は加速機能性を用いており、それは計算ノードが所与の計算タスクを達成することを支援する。この発明はさらに、方法を達成するために構成されたコンピュータプログラム製品、およびコンピュータプログラム製品を格納するためのコンピュータ読取可能媒体に向けられている。
【背景技術】
【０００２】
高リソース要件の計算をアウトソーシングするために計算ノードに密接に結合された少なくとも１つのプロセッサおよびアクセラレータを含む計算ノードを備えるコンピュータクラスタ構成が、当該技術分野で公知である。計算ノードにアクセラレータを密接に結合することは、静的割当をもたらし、アクセラレータのサブスクリプションの過剰または不足につながる。これは、リソースの欠如につながる場合があり、またはリソースの過剰供給につながる場合がある。計算ノードへのアクセラレータのそのような静的割当はまた、アクセラレータが故障した場合に耐故障性を提供しない。
【０００３】
ホセ  デュアト（Jose Duato）、ラファエル  メイヨー（Rafael Mayo）らによる「rCUDA：高性能クラスタにおけるＧＰＵベースのアクセラレータの個数の削減」（rCUDA: reducing the number of GPU-based accelerators in high performance clusters）という
出版物（高性能コンピューティングおよびシミュレーション（High Performance Computing and Simulation：ＨＰＣＳ）についての国際会議、発行日：２０１０年６月２８日〜
２０１０年７月２日、第２２４〜２３１頁）は、高性能クラスタにおける遠隔ＧＰＵ加速を可能にし、このためクラスタに設置されるアクセラレータの個数の減少を可能にする、フレームワークについて記載している。これは、エネルギ、取得、保守、およびスペースの節約につながり得る。
【０００４】
エルサレム（Jerusalem）のヘブライ大学（Hebrew University）コンピュータサイエンス学部のアムノン  バラク（Amnon Barak）らによる「多数のＧＰＵ装置を有するクラス
タ上でのＯｐｅｎＣＬベースの異種計算用パッケージ」（A package for open CL based heterogeneous computing on clusters with many GPU devices）という出版物は、多数
のＧＰＵ装置を有するクラスタ上でＯｐｅｎＭＰ、Ｃ＋＋、未修正ＯｐｅｎＣＬアプリケーションを実行するためのパッケージについて記載している。また、１つのホスティングノード上のアプリケーションがクラスタ幅の装置を透過的に利用することを可能にする、ＯｐｅｎＣＬ仕様の実現およびＯｐｅｎＭＰ  ＡＰＩの拡張が提供される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図１は、従来技術に従ったコンピュータクラスタ構成を示す。このコンピュータクラスタ構成はいくつかの計算ノードＣＮを含み、それらは相互接続されて計算タスクを共同で計算する。各計算ノードＣＮは、アクセラレータＡｃｃと密接に結合されている。図１から明らかなように、計算ノードＣＮは、マイクロプロセッサ、たとえば中央処理装置ＣＰＵとともに計算ノードＣＮ上に事実上一体化されたアクセラレータユニットＡＣＣを含む。上述のように、計算ノードＣＮへのアクセラレータＡｃｃの固定結合は、計算タスクに
依存して、アクセラレータＡｃｃのサブスクリプションの過剰または不足につながる。また、アクセラレータＡｃｃのうちの１つが故障した場合に、耐故障性が提供されない。図１に従った公知のコンピュータクラスタ構成では、計算ノードＣＮはインフラストラクチャを通して互いに通信し、アクセラレータＡｃｃは情報を直接交換しないが、データ交換のために計算ノードＣＮがインフラストラクチャＩＮとインターフェイス接続することを必要とする。
【０００６】
このため、本発明の目的は、アクセラレータと計算ノードとの間のデータ交換に関する通信の柔軟性と、アクセラレータのうちのいずれかおよび各々への計算ノードの直接アクセスとを可能にするコンピュータクラスタ構成を提供することである。また、この発明の目的は、実行時に計算ノードへのアクセラレータの動的結合を提供することである。
【０００７】
これらの目的は、特許請求項１に従った特徴を有するコンピュータクラスタ構成によって解決される。
【課題を解決するための手段】
【０００８】
したがって、計算タスクを処理するためのコンピュータクラスタ構成が提供され、このコンピュータクラスタ構成は、
複数の計算ノードを含み、それらの各々は通信インフラストラクチャとインターフェイス接続し、それらの少なくとも２つは、計算タスクの少なくとも第１の部分を共同で計算するよう構成されており、コンピュータクラスタ構成はさらに、
計算タスクの少なくとも第２の部分を計算するよう構成された少なくとも１つのブースタを含み、各ブースタは通信インフラストラクチャとインターフェイス接続しており、コンピュータクラスタ構成はさらに、
計算タスクの第２の部分の計算のために、少なくとも１つのブースタを複数の計算ノードのうちの少なくとも１つに割当てるよう構成されたリソースマネージャを含み、割当は、予め定められた割当メトリックの関数として達成される。
【０００９】
このコンピュータクラスタ構成では、個々のブースタによって加速機能性が提供されている。上述のコンピュータクラスタ構成は、算出ノードとも呼ばれ得る計算ノードへのそれらのブースタの緩い結合を可能にする。このため、計算ノードによる、ここではブースタの形をしたアクセラレータの共有が実現可能である。計算ノードへのブースタの割当のために、リソースマネージャモジュールまたはリソースマネージャノードの形をしたリソースマネージャが提供されてもよい。リソースマネージャは、計算タスクの処理の開始時に静的割当を確立してもよい。これに代えて、またはこれに加えて、それは、実行時、すなわち計算タスクの処理中に、動的割当を確立してもよい。
【００１０】
リソースマネージャは、少なくとも１つの計算ノードから少なくとも１つのブースタに計算タスクの一部をアウトソーシングするために、割当情報を計算ノードに提供するよう構成されている。リソースマネージャは、特定のハードウェアユニット、仮想ユニットとして実現されてもよく、またはそれらのうちのいずれかの複合物であってもよい。特に、リソースマネージャは、マイクロプロセッサ、ハードウェアコンポーネント、仮想化ハードウェアコンポーネント、またはデーモンのいずれか１つによって形成されてもよい。また、リソースマネージャの一部がシステムを通して分布され、通信インフラストラクチャを介して通信してもよい。
【００１１】
ブースタ間の通信は、ネットワークプロトコルを通して達成される。このため、ブースタ割当は、アプリケーションニーズの関数として、すなわちある特定の計算タスクの処理に依存して行なわれる。ブースタが故障した場合の耐故障性が提供され、また拡張性が培われる。拡張性は漸進的システム開発のサポートによって可能となる。なぜなら、ブース
タが計算ノードとは独立して提供されているためである。このため、計算ノードの数と提供されたブースタの数とは異なっていてもよい。これにより、ハードウェアリソースを提供する上で最大の柔軟性が確立される。また、すべての計算ノードは同じ成長能力を共有する。
【００１２】
計算タスクは、アルゴリズム、ソースコード、バイナリコードによって定義されてもよく、また、それらのうちのいずれかの複合物であってもよい。計算タスクはたとえばシミュレーションであってもよく、それはコンピュータクラスタ構成によって計算されるべきものである。また、計算タスクは、サブタスクとも呼ばれるサブ問題をいくつか含んでいてもよく、それらは全体で計算タスク全体を表わしている。計算タスクをいくつかの部分に、たとえば計算タスクの少なくとも第１の部分および計算タスクの少なくとも第２の部分に分割することが可能である。また、コンピュータクラスタ構成は、計算タスクの部分同士を並行してまたは連続して解くことも可能である。
【００１３】
各計算ノードは、相互接続子とも呼ばれる通信インフラストラクチャとインターフェイス接続している。同様に、各ブースタは通信インフラストラクチャとインターフェイス接続している。このため、計算ノードおよびブースタは、通信インフラストラクチャによって相互作用する。したがって、各計算ノードは、ある計算ノードからあるブースタへとデータを交換する間、さらに別の通信ノードを伴う必要なく、通信インフラストラクチャを通して各ブースタと通信する。これにより、ブースタへの計算ノードの動的割当が確立され、計算ノードは計算タスクの少なくとも一部を処理し、また、計算ノードは１つの計算ノードから１つのブースタへの情報の通過のために必要とはされない。したがって、従来技術で通常実現されているような中間計算ノードを必要とすることなく、ブースタを通信インフラストラクチャに直接結合することが可能である。
【００１４】
ブースタと計算ノードとの間の割当を達成するために、ある特定の１組の規則が必要とされる。したがって、割当メトリックが提供され、それはどのブースタをどの計算ノードと結合するか決めるための基準として機能する。割当メトリックはリソースマネージャによって管理されてもよい。割当メトリックを管理するということは、少なくとも１つのさらに指定される計算ノードに割当てられる少なくとも１つのブースタを指定する規則を確立し、更新することを指す。このため、実行時に割当メトリックを更新することが可能である。そのような割当規則は、コンピュータクラスタ構成の、特にブースタの作業負荷を検出する負荷バランシングの関数として作り出されてもよい。また、ブースタの計算能力を検出し、さらに計算タスク要件を検出して、選択されたブースタを割当てることが可能であり、それは要求される能力を計算ノードに提供する。計算ノードへのブースタの初期割当を決定するために、割当メトリックは予め定められているが、実行時に変更されてもよい。このため、計算タスクの処理の開始時には静的割当が提供され、実行時には動的割当が提供される。
【００１５】
この発明の一実施例では、定められた割当メトリックは、メトリック特定技術の群のうちの少なくとも１つに従って形成され、群は、時相論理、割当マトリックス、割当テーブル、確率関数、および費用関数を含む。このため、ブースタを割当てるために、時間依存性を考慮してもよい。ブースタに対して時間的順序が定義され、それは、ある特定のブースタが、さらに別のブースタが計算タスクの少なくとも一部を解くことができない場合に、常にある計算ノードに割当てられることを確実にする、という場合があり得る。このため、ブースタ間の階層を、それらの割当のために考慮してもよい。割当メトリックは計算ノードの識別を指定してもよく、また、割当可能な互換性のあるブースタの識別を定義してもよい。確立関数は、たとえば、ある特定のブースタがある計算タスクを計算できなかった場合、さらに別のブースタがある特定の確率で同じ計算タスクを解くかもしれない、ということを表わしてもよい。また、費用関数は、要求されるリソース能力の評価のため
に、さらにブースタの提供される計算能力の評価のために適用されてもよい。こうして、ある要件の計算タスクが適切なブースタに転送可能となる。
【００１６】
計算ログ記録とも呼ばれる計算履歴も、動的割当のために適用されてもよい。このため、計算タスクは、少なくとも１つの第１のブースタにおいて計算し、応答時間を記録し、さらに少なくとも１つのさらに別のブースタにおいて同じ計算タスクを処理し、応答時間を記録することによって、実験的に評価可能である。このため、ブースタの能力は記録され、実験的に評価され、それにより、要求される能力およびそれらの提供される能力の関数として計算ノードに割当てられ得る。特定の計算タスクは優先度情報を含んでいてもよく、それは、この特定の計算タスクをどのくらい至急に計算しなければならないかを示す。また、特定の計算ノードが優先度を提供する場合もあってもよく、それは、ある計算タスクの、またはある計算タスクの少なくとも一部の処理が、他の計算ノードから生じている計算タスクの他の部分と比べてどのくらい至急かを示す。このため、計算タスクの単独の部分に関する優先度情報、および計算ノードを参照する優先度情報を提供することが可能である。
【００１７】
あるブースタがある計算ノードに一旦割当てられると、そのブースタはある計算タスクの特定の部分を処理する。これは、遠隔手続呼出、パラメータ引渡し、またはデータ伝送によって達成されてもよい。計算タスクの部分の複雑性は、パラメータ引渡しの関数として評価されてもよい。パラメータがマトリックスを含む場合、パラメータ引渡しの複雑性は、マトリックスの次元数によって評価可能である。
【００１８】
通信インフラストラクチャをインターフェイス接続するために、インターフェーシングユニットが提供されてもよく、それは１つの計算ノードと通信インフラストラクチャとの間に配置される。第１のインターフェーシングユニットとは異なるさらに別のインターフェーシングユニットが、ブースタと通信インフラストラクチャとの間に配置されてもよい。インターフェーシングユニットは計算ノードと異なっていてもよく、ブースタとも異なっている。インターフェーシングユニットはネットワーク機能性を提供するに過ぎず、計算タスクの一部を処理するよう構成されてはいない。インターフェーシングユニットは、計算タスクの管理および通信問題に関する機能性を提供するに過ぎない。それはたとえば、計算タスクを参照するデータのルーティングおよび伝送に関する機能性を提供するかもしれない。
【００１９】
また、加速は、少なくとも１つのブースタから少なくとも１つの計算ノードに計算タスクの少なくとも一部をアウトソーシングすることによって、逆に行なわれてもよい。このため、この発明の上述の局面に関し、制御および情報フローが逆にされる。
【００２０】
この発明の一局面によれば、予め定められた割当は、マトリックス特定技術の少なくとも１つの群に従って形成され、群は、時相論理、割当マトリックス、割当テーブル、確率関数、および費用関数を含む。これは、予め定められた割当メトリックが、形式的もしくは半形式的なモデルまたはデータタイプを用いて形成されてもよいという利点を提供し得る。
【００２１】
この発明のさらに別の局面によれば、予め定められた割当メトリックは、割当パラメータの群のうちの少なくとも１つの関数として特定され、群は、リソース情報、費用情報、複雑性情報、拡張性情報、計算ログ記録、コンパイラ情報、優先度情報、およびタイムスタンプを含む。これは、実行時、異なる実行時パラメータを考慮して、かつ特定の計算タスク特性に応答して、割当が動的に行なわれ得るという利点を提供し得る。
【００２２】
この発明のさらに別の局面によれば、複数の計算ノードのうちの１つへの少なくとも１
つのブースタの割当は、信号の群のうちの少なくとも１つをトリガし、群は、遠隔手続呼出、パラメータ引渡し、およびデータ伝送を含む。これは、計算タスクの少なくとも一部が１つの計算ノードから少なくとも１つのブースタに転送され得るという利点を提供し得る。
【００２３】
この発明のさらに別の局面によれば、各計算ノードおよび各ブースタはそれぞれ、インターフェーシングユニットを介して、通信インフラストラクチャとインターフェイス接続している。これは、中間計算ノードを必要とすることなく、データが通信インフラストラクチャを介して通信可能であるという利点を提供し得る。このため、ブースタを計算ノードと直接結合する必要はないものの、動的割当が達成される。
【００２４】
この発明のさらに別の局面によれば、インターフェーシングユニットは、構成要素の少なくとも１つの群を含み、群は、仮想インターフェイス、スタブ、ソケット、ネットワークコントローラ、およびネットワーク装置を含む。これは、計算ノードだけでなくブースタも通信およびインフラストラクチャに事実上接続可能であるという利点を提供し得る。また、既存の通信インフラストラクチャが容易にアクセスされ得る。
【００２５】
この発明のさらに別の局面によれば、通信およびインフラストラクチャは、構成要素の群のうちの少なくとも１つを含み、群は、バス、通信リンク、切替ユニット、ルータ、および高速ネットワークを含む。これは、既存の通信インフラストラクチャが使用可能であり、新しい通信インフラストラクチャが一般に利用可能なネットワーク装置によって作られ得るという利点を提供し得る。
【００２６】
この発明のさらに別の局面によれば、各計算ノードは、構成要素の群のうちの少なくとも１つを含み、群は、マルチコアプロセッサ、クラスタ、コンピュータ、ワークステーション、および汎用プロセッサを含む。これは、計算ノードが高度に拡張可能であるという利点を提供し得る。
【００２７】
この発明のさらに別の局面によれば、少なくとも１つのブースタは、構成要素の群のうちの少なくとも１つを含み、群は、メニーコアプロセッサ、スカラープロセッサ、コプロセッサ、図形処理ユニット、メニーコアプロセッサのクラスタ、およびモノリシックプロセッサを含む。これは、ブースタが高速で特定の問題を処理するよう実現されるという利点を提供し得る。
【００２８】
いくつかの計算タスクが同時に処理される必要があるため、計算ノードは通常、広範囲の制御ユニットを含むプロセッサを適用する。ブースタに適用されているプロセッサは通常、計算ノードのプロセッサと比べると、広範囲の算術論理演算ユニットと単純な制御構造とを備える。たとえば、単一命令複数データコンピュータとも呼ばれるＳＩＭＤが、ブースタに適用されてもよい。このため、計算ノードに適用されているプロセッサは、ブースタに適用されているプロセッサと比べると、それらのプロセッサ設計が異なっている。
【００２９】
この発明のさらに別の局面によれば、リソースマネージャは、計算タスクの少なくとも一部の計算中、前記予め定められた割当メトリックを更新するよう構成されている。これは、計算ノードへのブースタの割当が実行時に動的に行なわれ得るという利点を提供し得る。
【００３０】
目的はまた、特許請求項１１の特徴に従った、コンピュータクラスタ構成を動作させるための方法によっても解決される。
【００３１】
したがって、計算タスクを処理するために、コンピュータクラスタ構成を動作させるた
めの方法が提供され、この方法は、
複数の計算ノードのうちの少なくとも２つによって、計算タスクの少なくとも第１の部分を計算するステップを含み、各計算ノードは通信インフラストラクチャとインターフェイス接続しており、当該方法はさらに、
少なくとも１つのブースタによって、計算タスクの少なくとも第２の部分を計算するステップを含み、各ブースタは通信インフラストラクチャとインターフェイス接続しており、当該方法はさらに、
計算タスクの第２の部分の計算のために、リソースマネージャによって、少なくとも１つのブースタを複数の計算ノードのうちの１つに割当てるステップを含み、前記割当は、予め定められた割当メトリックの関数として達成される。
【００３２】
また、紹介された方法を達成するために構成された、コンピュータプログラム、およびコンピュータプログラム製品を格納するための、コンピュータ読取可能媒体が提供される。
【００３３】
ここで、この発明を、添付図面を参照して単なる例示として説明する。
【図面の簡単な説明】
【００３４】
【図１】従来技術に従ったコンピュータクラスタ構成を示す図である。
【図２】この発明の一局面に従ったコンピュータクラスタ構成の概略図である。
【図３】この発明のさらに別の一局面に従ったコンピュータクラスタ構成の概略図である。
【図４】この発明の一局面に従ったコンピュータクラスタ構成を動作させるための方法の概略図である。
【図５】この発明のさらに別の一局面に従ったコンピュータクラスタ構成を動作させるための方法の概略図である。
【図６】この発明のさらに別の一局面に従ったコンピュータクラスタ構成の制御フローの概略図である。
【図７】この発明のさらに別の一局面に従ったコンピュータクラスタ構成の逆加速を実現する制御フローの概略図である。
【図８】この発明のさらに別の一局面に従ったコンピュータクラスタ構成の制御フローの概略図である。
【図９】この発明の一局面に従ったコンピュータクラスタ構成のネットワークトポロジーの概略図である。
【発明を実施するための形態】
【００３５】
以下において、別段の指示がない限り、同じ概念のものを同じ参照符号で示す。
図２は、クラスタＣとブースタ群ＢＧとを含むコンピュータクラスタ構成を示す。本実施例では、クラスタは、ＣＮとも呼ばれる計算ノードを４つと、Ｂとも呼ばれるブースタを３つ含んでいる。計算ノードへのブースタの柔軟な結合は、いわゆる相互接続子といった通信インフラストラクチャＩＮによって確立されている。この種の通信インフラストラクチャＩＮは、たとえば、インフィニバンド（登録商標）を使用することによって実現可能である。このため、各ブースタＢは、計算ノードＣＮのいずれによっても共有可能である。また、クラスタレベルに対する仮想化が達成可能である。各ブースタ、またはブースタのうちの少なくとも一部が仮想化され、計算ノードにとって事実上利用可能になり得る。
【００３６】
本実施例では、計算タスクは計算ノードＣＮのうちの少なくとも１つによって処理され、計算タスクのうちの少なくとも一部は、ブースタＢのうちの少なくとも１つに転送されてもよい。ブースタＢは、特定の問題を計算し、特定の処理能力を提供するよう構成され
ている。このため、計算ノードＣＮのうちの１つからブースタＢに問題をアウトソーシングし、ブースタによって計算することが可能であり、結果が計算ノードに送り返されてもよい。計算ノードＣＮへのブースタＥＳＢの割当は、ＲＭとも呼ばれるリソースマネージャによって達成可能である。リソースマネージャは第１の割当を初期化し、これより先、計算ノードＣＮへのブースタＢの動的割当を確立する。
【００３７】
ブースタと計算ノードとの間の通信のために、ＡＰＩとも呼ばれるアプリケーションプログラミングインターフェイスが提供可能である。ブースタＢは、それぞれのＡＰＩ関数呼出を通して、計算ノードによって透過的に制御されてもよい。ＡＰＩは、ブースタの実際の固有プログラミングモデルを抽出し、強化する。また、ＡＰＩは、ブースタが故障した場合の耐故障性のための手段を提供してもよい。ＡＰＩ呼出に関与する通信プロトコルが、通信層の上に積層されてもよい。この発明の一局面に従った１組のＡＰＩ呼出の短い説明を以下に提供する。ここで、「アクセラレータ」というパラメータは、アドレス指定されるブースタを特定してもよい：
・aanInit (accelerator)
使用前にブースタを初期化する
・aanFinalize (accelerator)
使用後にブースタについての経理情報を解除する
・aanMemAlloc (address、size、accelerator)
参照されたブースタ上のメモリのサイズバイトを割当てる
割当てられた装置メモリのアドレスを戻す
・aanMemFree (address、accelerator)
参照されたブースタ上のアドレスで始まるメモリを解除する
・aanMemCpy (dst、src、size、direction、accelerator)
ｓｒｃからｄｓｔメモリアドレスにサイズバイトをコピーする
コピー動作の方向は、
（ｉ）  ブースタからホスト、
（ii）  ホストからブースタ
であってもよい
・aanKernelCreate (file_name、funct_name、kernel、accelerator)
参照されたブースタ上での実行のために、ファイルの名前（file_name）および関数の
名前（funct_name）によって定義されたカーネルを作成する
ハンドルをカーネルに戻す
・aanKernelSetArg (kernel、index、size、align、value)
カーネル実行のための引数を、引数リストにおけるその指標、サイズ、整列要件（align）、および値によって定義する
・aanKernelRun (kernel、grid_dim、block_dim）
acKernelCreate()への前回の呼出におけるカーネルに関連付けられたブースタ上でカーネル実行を開始する。スレッドの数は、ブロック毎のスレッドの数（block_dim）および
グリットにおけるブロックの数（grid_dim）によって決定される
・aanKernelFree (kernel)
カーネルに関連付けられたリソースを解除する
図３は、この発明の一局面に従ったさらに別のクラスタ構成を示す。図示されたコンピュータクラスタ構成は、特に高性能クラスタ技術のコンテキストにおいて、科学的計算タスクを計算するよう構成されている。科学的高性能クラスタアプリケーションコードのポートフォリオの特性のより綿密な分析により、エクサスケールの必要性を有する多くのコードが、一方では、エクサスケーリングによく適したコードブロックを含み、他方では、複雑過ぎてあまり拡張可能ではないそのようなコードブロックを含む、ということがわかっている。以下に、コードブロックのレベルにおいて、高度に拡張可能であることと複雑であることとを区別して、エクサスケールコードブロック（Exascale Code Blocks：ＥＣ
Ｂ）および複雑コードブロック（Complex Code Blocks：ＣＣＢ）の概念を紹介する。
【００３８】
明らかに、純粋に高度に拡張可能なコードはなく、厳密に複雑なコードもない。各コードは、高度に拡張可能な複雑な要素と、それほど拡張可能ではない複雑な要素とを有する。実際、両極端の間には連続体がある。興味深いことに、コードのそれほど拡張可能ではない多くの要素は、高度の拡張性を必要とせず、代わりに大きいローカルメモリを必要とする。また、すべての通信要素はより小さい並列処理下で高い利点を有することも明らかである。
【００３９】
メモリの相対量（すなわちメモリの相対量の取扱われる自由度、すなわちＥＣＢ対ＣＣＢの取扱われる自由度）、実行時間、および交換されるべきデータの点で、ＥＣＢとＣＣＢとの間の適切なバランスが与えられる、そのような問題について、それはそれ自体を特定のアーキテクチャ的解決策によってこの状況に適合させることを提案する。伝統的なクラスタコンピュータからなるこの解決策は、密接に接続されたブースタを有し、かつクラスタのネットワークを通してクラスタと接続されているエクサスケールブースタとともに、アプローチを行なう。この二元的アプローチは、純粋なエクサスケールシステムの予測される狭い応用分野を実質的に広げる可能性を有する。
【００４０】
アプリケーションコードの高度に拡張可能な部分またはＥＣＢは、動的にアクセスされる並列メニーコアアーキテクチャ上で実行され、一方、ＣＣＢは、洗練された動的リソース割当システムとともに接続性を含む好適な次元の伝統的なクラスタシステム上で実行される、粗いアーキテクチャモデルが出現する。
【００４１】
エクサスケールでのクラスタは、回復力および信頼性を保証するために、仮想化要素を必要とする。ローカルアクセラレータは原則として、システム全体に対する単純な見方を可能にし、特に極めて高いローカル帯域幅を利用できる一方、それらは絶対的に静的なハードウェア要素であり、ファーミングまたはマスタ−スレーブ並列化によく適している。このため、それらを仮想化ソフトウェア層に含めることは困難であろう。加えて、アクセラレータが故障した場合、耐故障性がなく、サブスクリプションの過剰または不足に対する耐性がないであろう。
【００４２】
クラスタの計算ノードＣＮは、標準的なクラスタ相互接続子、たとえばメラノックス・インフィニバンド（Mellanox InfiniBand）によって内部結合される。このネットワーク
は、ブースタ（ＥＳＢ）も含むよう拡張される。図面には、そのようなブースタが３つ図示されている。ＥＳＢは各々、特定の高速低遅延ネットワークによって接続された複数のメニーコアアクセラレータからなる。
【００４３】
ＥＳＢとのＣＮのこの接続は、非常に柔軟である。計算ノード間でのアクセラレータ能力の共有が可能になる。クラスタレベルでの仮想化はモデルによって妨げられず、完全なＥＳＢ並列処理が利用可能である。ＥＳＢのＣＮへの割当は、動的なリソースマネージャＲＭを介して進行する。開始時の静的割当は、実行時に動的になり得る。すべてのＣＮ−ＥＳＢ通信は、クラスタネットワークプロトコルを介して進行する。ＡＣ内通信は新しい解決策を必要とするであろう。ＥＳＢ割当はアプリケーションニーズに従うことができ、アクセラレータが故障した場合、耐故障性が保証され、一方、すべての計算ノードは同じ成長能力を共有する。
【００４４】
ブースタの算出要素として、インテルのメニーコアプロセッサであるナイツコーナ（Knight's Corner：ＫＣ）が適用されてもよい。ＫＣチップは５０を超えるコアからなり、
チップ毎に１テラフロップ／ｓを超えるＤＰ算出能力を提供するよう期待されている。要素が１万個の場合、１０ペタフロップ／ｓという全体性能が到達されるであろう。ＫＣの
前身であるナイツフェリープロセッサ（Knight's Ferry processor：ＫＦ）は、クラスタ−ブースタ（ＣＮ−ＥＳＰ）概念を研究するためにＰＣＩｅベースのパイロットシステムを作成するためにプロジェクトで使用されるであろう。
【００４５】
ＫＦの算出速度は現在の商品プロセッサを約１０倍上回っているため、ＥＳＢ内通信システムをそれに応じて次元化する必要がある。ＥＳＢの通信システムは、カード当たり少なくとも１テラビット／ｓ（二重）を要する。通信システムＥＸＴＯＬＬが、バスシステムの実現化例として使用されてもよく、それはカード当たり１．４４テラビット／ｓの通信速度を提供する。それは、カード当たり６つのリンクを提供する３ｄトポロジーを実現する。その単純さに関し、このトポロジーは、メニーコアアクセラレータに基づくブースタに適用可能であるようである。カットスルー・ルーティング用に２つの方向が確保されていても、ＥＸＴＯＬＬは、データレートに関する限り、ＰＣＩエクスプレスの性能を満たすことができる。遅延性は、ＡＳＩＣ実現化例に基づく場合、０．３μｓに達し得る。現在、ＥＸＴＯＬＬはＦＰＧＡによって実現される。
【００４６】
図４は、この発明に従ったコンピュータクラスタ構成を動作させるための方法の一局面を示すためのフロー図を示す。第１のステップ１００で、複数の計算ノードＣＮのうちの少なくとも２つによって、計算タスクの少なくとも第１の部分が計算され、各計算ノードＣＮは通信インフラストラクチャＩＮとインターフェイス接続している。また、ステップ１０１における、少なくとも１つのブースタＢによる、計算タスクの少なくとも第２の部分の計算が実行され、各ブースタＢは通信インフラストラクチャＩＮとインターフェイス接続している。また、ステップ１０２における、計算タスクの第２の部分の計算のための、リソースマネージャＲＭによる、複数の計算ノードＣＮのうちの１つへの少なくとも１つのブースタＢの割当が行なわれる。図４の右の矢印が示すように、制御フローはステップ１００に戻ってもよい。ステップ１０２で少なくとも１つのブースタＢを複数の計算ノードＣＮのうちの少なくとも１つに割当てた後で、割当を計算ノードＣＮに通信することが可能であり、それは伝送された割当をさらに別のアウトソーシングステップで使用する。このため、ステップ１０１において、計算タスクの少なくとも第２の部分の計算は、割当ステップ１０２の関数として行なわれる。
【００４７】
図５は、この発明の一局面に従ったコンピュータクラスタ構成を動作させるための方法を示すフロー図を示す。本実施例では、ステップ２０２における、複数の計算ノードＣＮのうちの１つへの少なくとも１つのブースタＢの割当の後で、計算タスクの少なくとも第２の部分を計算するステップ２０１が行なわれる。このため、特定のブースタＢを選択することが可能であり、ステップ２０２で確立された割当に基づいて、ブースタＢは、計算タスクの少なくとも第２の部分を計算する。これは、計算タスクの少なくとも第２の部分がリソースマネージャＲＭに転送され、それがブースタＢを計算タスクの第２の部分に割当てる場合に、利点となり得る。リソースマネージャＲＭは次に、計算ノードＣＮがブースタＢに直接接触する必要なく、計算タスクの第２の部分をブースタＢに伝送することができる。
【００４８】
図４および図５を参照して、当業者であれば、いずれのステップも繰返し、異なる順序で行なわれてもよく、さらに別のサブステップを含んでいてもよい、ということを理解するであろう。たとえば、ステップ１０１の前にステップ１０２を行なってもよく、それは、計算タスクの第１の部分の計算、１つの計算ノードへの１つのブースタの割当、そして最後に計算タスクの第２の部分の計算をもたらす。ステップ１０２は、計算タスクの計算された少なくとも第２の部分を計算ノードＣＮに戻すといったサブステップを含んでいてもよい。こうして、ブースタＢは、計算結果を計算ノードＣＮに戻す。計算ノードＣＮは、戻された値をさらに別の計算タスクの計算に用いてもよく、計算タスクの少なくともさらに別の部分をブースタＢのうちの少なくとも１つに再度転送してもよい。
【００４９】
図６は、この発明の一局面に従ったコンピュータクラスタ構成の制御フローのブロック図である。本実施例では、計算ノードＣＮは計算タスクを受取り、ブースタＢに、受取った計算タスクの少なくとも一部をアウトソーシングするよう要求する。したがって、リソースマネージャＲＭがアクセスされ、それは計算タスクの一部を選択されたブースタＢに転送する。ブースタＢは計算タスクの一部を計算して結果を戻し、それは最も右の矢印によって示されている。本実施例のさらに別の局面によれば、戻された値は計算ノードＣＮに返され得る。
【００５０】
図７は、この発明の一局面に従ったコンピュータクラスタ構成の逆加速を実現する制御フローのブロック図を示す。本実施例では、少なくとも１つの計算ノードＣＮを少なくとも１つのブースタＢに割当てることによって、少なくとも１つのブースタＢが計算している計算タスクの計算の加速が行なわれる。このため、制御および情報フローは、図６に示す実施例に関し、逆になっている。タスクの計算はしたがって、ブースタＢから少なくとも１つの計算ノードＣＮに計算タスクをアウトソーシングすることによって加速され得る。
【００５１】
図８は、この発明のさらに別の局面に従ったコンピュータクラスタ構成の制御フローのブロック図を示す。本実施例では、リソースマネージャＲＭは計算タスクの少なくとも一部をブースタＢに渡しておらず、計算ノードＣＮは、計算タスクの特定の少なくとも一部を計算するよう構成されているブースタＢのアドレスまたはさらに別の識別を要求する。リソースマネージャＲＭは、要求されたアドレスを計算ノードＣＮに戻す。計算ノードＣＮはここで、通信インフラストラクチャＩＮによってブースタＢに直接アクセスできる。本実施例では、通信インフラストラクチャＩＮは、インターフェーシングユニットを介してアクセスされる。計算ノードＣＮはインターフェーシングユニットＩＵ１によって通信インフラストラクチャＩＮにアクセスし、ブースタＢはインターフェーシングユニットＩＵ２によって通信インフラストラクチャＩＮとインターフェイス接続する。
【００５２】
さらに、リソースマネージャＲＭはブースタＢのリソース能力を評価するよう構成されており、割当、すなわち、各ブースタＢの評価されたリソース能力の関数としての、ブースタＢの選択を実行する。そうするために、リソースマネージャＲＭは割当メトリックにアクセスしてもよく、それはデータベースＤＢまたは任意の種類のデータソースに格納されていてもよい。リソースマネージャＲＭは割当メトリックを更新するよう構成されており、それはデータベース管理システムを使用して行なわれ得る。データベースＤＢは、任意の種類のストレージとして実現可能である。それは、たとえば、テーブル、レジスタ、またはキャッシュとして実現されてもよい。
【００５３】
図９は、この発明の一局面に従ったコンピュータクラスタ構成のネットワークトポロジーの概略図を示す。
【００５４】
一実施例では、計算ノードは、共通の第１の通信インフラストラクチャ、たとえば、中央の切替ユニットＳを有するスタートポロジーを共有している。さらに別の第２の通信インフラストラクチャが、計算ノードＣＮのブースタノードＢＮとの通信のために提供されている。第３の通信インフラストラクチャが、ブースタノードＢＮ間の通信のために提供されている。このため、ブースタノードＢＮ間の通信用の高速ネットワークインターフェイスが、特定のＢＮ−ＢＮ通信インターフェイスを用いて提供可能である。ＢＮ−ＢＮ通信インフラストラクチャは、３ｄトポロジーとして実現可能である。
【００５５】
さらに別の一実施例では、２つの通信インフラストラクチャが提供され、一方は計算ノードＣＮ間の通信用に、一方のさらに別の通信インフラストラクチャはブースタノードＢ
Ｎ間の通信用に提供される。双方の通信インフラストラクチャは、少なくとも１つの通信リンクによって、第１のネットワークから第２のネットワークへと、または第２のネットワークから第１のネットワークへと結合可能である。このため、選択された１つの計算ノードＣＮまたは選択された１つのブースタノードＢＮがそれぞれ他のネットワークと接続される。この図９では、切替ユニットＳを使用して、１つのブースタノードＢＮが計算ノードＣＮの通信インフラストラクチャと接続されている。
【００５６】
さらに別の一実施例では、ブースタ群ＢＧ自体が、計算ノードＣＮの通信インフラストラクチャに、または中間通信インフラストラクチャに接続されてもよい。
【００５７】
通信インフラストラクチャは概して、他の特性の中でも、それらのトポロジー、帯域幅、通信プロトコル、スループットおよびメッセージ交換の点で異なっていてもよい。１つのブースタＢは、たとえば、１〜１万個のブースタノードＢＮを含んでいてもよいが、この範囲に限定されない。リソースマネージャＲＭは概して、ブースタノードＢＮの一部を管理してもよく、したがってブースタノードＢＮの総数を区分化して、前記数のブースタノードＢＮからブースタＢを動的に形成してもよい。切替ユニットＳは、スイッチ、ルータ、または任意のネットワーク装置によって実現されてもよい。
【００５８】
当業者であれば、コンピュータクラスタ構成の構成要素のさらに別の構成を理解するであろう。たとえば、データベースＤＢは、コンピュータクラスタ構成のさらに別の構成要素、それぞれのノードによってアクセスされてもよい。図示された計算ノードＣＮおよび図示されたブースタ群ＢＧはそれぞれ、リソースマネージャＲＭおよび／または通信インフラストラクチャＩＮにアクセスする、さらに別の多くの計算ノードＣＮのうちの１つ、および多くのブースタ群ＢＧのうちの１つであってもよい。さらに、少なくとも１つのブースタＢから少なくとも１つの計算ノードに計算タスクの少なくとも一部をアウトソーシングすることによって、加速が逆に行なわれてもよい。
【図１】
2019057303.tif 000003
【図２】
2019057303.tif 000004
【図３】
2019057303.tif 000005
【図４】
2019057303.tif 000006
【図５】
2019057303.tif 000007
【図６】
2019057303.tif 000008
【図７】
2019057303.tif 000009
【図８】
2019057303.tif 000010
【図９】
2019057303.tif 000011
【手続補正書】
【提出日】平成30年11月13日(2018.11.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
計算タスクを処理するためのコンピュータクラスタであって、
複数の計算ノードと、複数のブースタと、リソースマネージャとを含み、複数の計算ノードおよび複数のブースタは各々、通信インフラストラクチャとインターフェイス接続しており、
リソースマネージャは、前記計算タスクの一部の計算のために、少なくとも１つのブースタを前記複数の計算ノードのうちの少なくとも１つに割当てるよう構成されており、
リソースマネージャはまた、前記少なくとも１つのブースタによって計算されているタスクの一部の計算を加速するために、少なくとも１つの計算ノードを少なくとも１つのブースタに割当てるよう構成されている、コンピュータクラスタ。
【請求項２】
リソースマネージャは、少なくとも１つの計算ノードへの少なくとも１つのブースタの前記割当を、予め定められた割当メトリックの関数を使用して行なうよう構成されており、割当は、計算タスクの処理の開始時は静的であり、計算タスクの処理中は動的割当である、請求項１に記載のコンピュータクラスタ。
【請求項３】
リソースマネージャは、特定の計算タスク特性に応答して動的割当を行なうよう構成されている、請求項２に記載のコンピュータクラスタ。
【請求項４】
前記予め定められた割当メトリックは、メトリック特定技術の群のうちの少なくとも１つに従って形成され、前記群は、時相論理、割当マトリックス、割当テーブル、確率関数、および費用関数を含む、請求項２または３に記載のコンピュータクラスタ。
【請求項５】
前記予め定められた割当メトリックは、割当パラメータの群のうちの少なくとも１つの関数として特定され、前記群は、リソース情報、費用情報、複雑性情報、拡張性情報、計算ログ記録、コンパイラ情報、優先度情報、およびタイムスタンプを含む、請求項２〜４のいずれか１項に記載のコンピュータクラスタ。
【請求項６】
前記複数の計算ノードのうちの１つへの少なくとも１つのブースタの前記割当は、信号の群のうちの少なくとも１つをトリガし、前記群は、遠隔手続呼出、パラメータ引渡し、データ伝送を含む、請求項１〜５のいずれか１項に記載のコンピュータクラスタ。
【請求項７】
各計算ノードおよび各ブースタはそれぞれ、インターフェーシングユニットを介して前記通信インフラストラクチャとインターフェイス接続している、請求項１〜６のいずれか１項に記載のコンピュータクラスタ。
【請求項８】
前記インターフェーシングユニットは、構成要素の群のうちの少なくとも１つを含み、前記群は、仮想インターフェイス、スタブ、ソケット、ネットワークコントローラ、およびネットワーク装置を含む、請求項７に記載のコンピュータクラスタ。
【請求項９】
前記通信インフラストラクチャは、構成要素の群のうちの少なくとも１つを含み、前記群は、バス、通信リンク、切替ユニット、ルータ、および高速ネットワークを含む、請求項１〜８のいずれか１項に記載のコンピュータクラスタ。
【請求項１０】
各計算ノードは、構成要素の群のうちの少なくとも１つを含み、前記群は、マルチコアプロセッサ、クラスタ、コンピュータ、ワークステーション、および汎用プロセッサを含む、請求項１〜９のいずれか１項に記載のコンピュータクラスタ。
【請求項１１】
前記少なくとも１つのブースタは、構成要素の群のうちの少なくとも１つを含み、前記群は、メニーコアプロセッサ、スカラープロセッサ、コプロセッサ、図形処理ユニット、メニーコアプロセッサのクラスタ、およびモノリシックプロセッサを含む、請求項１〜１０のいずれか１項に記載のコンピュータクラスタ。
【請求項１２】
前記リソースマネージャは、前記計算タスクの少なくとも一部の計算中、前記予め定められた割当メトリックを更新するよう構成されている、請求項２または３に記載のコンピュータクラスタ。
【請求項１３】
リソースマネージャは、複数のブースタの計算能力および計算ノードの計算タスク要件を検出し、選択された１つ以上のブースタの割当を行なって、要求される能力を計算ノードに提供するよう構成されている、請求項１〜１２のいずれか１項に記載のコンピュータクラスタ。
【請求項１４】
請求項１〜１３のいずれか１項に記載のコンピュータクラスタを動作させるための方法であって、
前記複数の計算ノードのうちの少なくとも２つによって、前記計算タスクの少なくとも第１の部分を計算するステップを含み、各計算ノードは通信インフラストラクチャ(ＩＮ）とインターフェイス接続しており、前記方法はさらに、
少なくとも１つのブースタによって、前記計算タスクの少なくとも第２の部分を計算するステップを含み、各ブースタは前記通信インフラストラクチャとインターフェイス接続しており、前記方法はさらに、
前記計算タスクの前記第２の部分の計算のために、リソースマネージャによって、少なくとも１つのブースタを前記複数の計算ノードのうちの１つに割当てるステップを含み、前記割当は、予め定められた割当メトリックの関数を使用して達成され、前記方法はさらに、
前記計算タスクの前記第２の部分の計算を加速するために、計算ノードのうちの少なくとも１つを前記少なくとも１つのブースタに割当てるステップを含む、方法。