JP2015118705A - コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システム - Google Patents

コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システム Download PDF

Info

Publication number
JP2015118705A
JP2015118705A JP2014249650A JP2014249650A JP2015118705A JP 2015118705 A JP2015118705 A JP 2015118705A JP 2014249650 A JP2014249650 A JP 2014249650A JP 2014249650 A JP2014249650 A JP 2014249650A JP 2015118705 A JP2015118705 A JP 2015118705A
Authority
JP
Japan
Prior art keywords
job
execution
computer system
configuration
resource manager
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
JP2014249650A
Other languages
English (en)
Other versions
JP6409543B2 (ja
Inventor
デン ベルジェ・スヴェン ヴァン
Sven Van Den Berghe
デン ベルジェ・スヴェン ヴァン
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2015118705A publication Critical patent/JP2015118705A/ja
Application granted granted Critical
Publication of JP6409543B2 publication Critical patent/JP6409543B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • 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
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/10Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
    • 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

Abstract

【課題】コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システムを提供する。
【解決手段】複数の異なる許容される構成を有するコンピュータ・システムにおいてジョブを実行する方法であって:ジョブを受領する段階と;前記ジョブの一つまたは複数の代表的なサンプルを同定する段階と;実験フェーズにおいて前記一つまたは複数の代表的なサンプルを実行する段階であって、当該または各代表的なサンプルは、前記コンピュータ・クラスターのそれぞれの異なる許容される構成を用いて実行される、段階と;前記一つまたは複数の代表的なサンプルの実行中に各構成における実行速度および使用されるエネルギーを含む実行データを収集する段階と;実行速度およびエネルギー使用を考慮に入れて前記ジョブについての好適な構成を選択する段階と;完了フェーズにおいて、前記ジョブの残りを前記好適な構成を用いて実行する段階とを含む、方法。
【選択図】図2

Description

本願は、高性能コンピュータ・システム(HPCシステム)のようなコンピュータ・システムにおける、エネルギーを意識したスケジューリングに関する
本発明は、コンピュータ・システムにおけるエネルギー消費に、たとえば大規模コンピュータ・クラスター、特に高性能コンピューティング(HPC)システム上で走るプログラムによって消費されるエネルギーの量を扱う。HPCクラスターは、一緒に結合され、一つの大きなモノリシック・アプリケーションを実行するために使用されうる多数の準独立なコンピュータ(ノード)からなる。アプリケーション(または他のジョブ)はいくつかの通信するタスクに分割され、それらのタスクが資源マネージャによってノードに割り当てられる。
図1は、本発明に関連するHPCクラスターの諸部分の概略図である。ノードは相互接続によってリンクされて示されており、一緒になってHPC資源502を形成する。資源マネージャ501がこのクラスターを制御し、ノードによって実行されるアプリケーションまたは他のタスクのようなジョブは資源マネージャに供給される。なお、ノードの例は、プロセッサのコア、プロセッサ、特定用途向け集積回路、ブレードまたは他のサーバーまたは他の任意の準独立なコンピュータを含む。
資源マネージャは、HPCシステムの効率的な運用を受け持ち、ノード(および簡単のため図示していない他の任意の資源)を含む資源が要求に対してサービスを与えることを保証する。支配的なサービス要求は一般に、できるだけ速くアプリケーションを完了させることであるが、ノードはハイエンド・コンピュータであってもよく、大量のエネルギーを使うことがあるので、できるだけエネルギーの使用を少なくするという副次的な要求の重要性が高まりつつある。コンピュータ・ノードは、エネルギーを減らすために使用できる多様な機構をもつが、これらは通例、計算性能の代償を伴う。
クラスター中のサーバー(またはノード)は、資源マネージャによって集団的に管理される。資源マネージャの役割は、たとえば一群のタスクが最短時間で完了するまたは特定のタスクがある時刻までに終了するといった適切なサービス品質指標が達成されるよう、サーバーの間でタスクを割り当てることである。資源マネージャは、サーバー集合上での資源の利用可能性の知識に依拠する洗練されたアルゴリズムおよびヒューリスティクスを使う。資源は、プロセッサ時間、サーバー・メモリ、ネットワーク帯域幅またはソフトウェア・ライセンスの利用可能性を含むことができる。資源マネージャはまた、クラスターができるだけ効率的に使用されることを保証する。特に大きなHPCクラスターについて、効率性の指標の一つは、使用するエネルギーの量である。
サーバーのコアをなすマイクロプロセッサの機能の向上は増大したエネルギー使用につながる。しかしながら、現代のマイクロプロセッサ設計は、最高性能が要求されないときに電力消費を減らす能力をももつ。これは、電圧および周波数のスケーリングまたはマイクロプロセッサの不使用のセクションをオフにするなど多様な技法を通じて達成される。この機能は、資源マネージャがクラスターの電力消費を減らすことができるよう、オペレーティング・システムを通じて、資源マネージャにとって利用可能にされる。だが、電力消費の節減は、クラスター上で実行中のアプリケーションの性能を維持する必要性に対して、バランスを取る必要がある。
アプリケーションの全体的な性能は、いくつかの要因に依存する。計算性能は多くのHPCアプリケーションにおいて重要であり、そうしたアプリケーションは「計算バウンド」であると言われる。いくつかのアプリケーションはメモリへのデータの読み書きまたはノード間のデータ通信のような他の因子によって支配される。そうしたアプリケーションは「IO(入出力)バウンド」であると言われる。計算バウンドのアプリケーションの性能は、ノードをエネルギー節約状態に入れることによって悪影響を受けるが、IOバウンドのアプリケーションは性能への影響を最小限にしてノードをエネルギー節約状態にすることができる。資源マネージャは、その制御下にあるアプリケーションが計算バウンドであるかIOバウンドであるかを知るすべがなく、よってどんなアプリケーションも安全にエネルギー節約モードにすることはできない。
米国特許出願公開第20120216205号 米国特許出願公開第20090100437号
多くの資源マネージャは、ジョブのエネルギー節約モードを設定する能力をHPCクラスターのユーザーに対して呈する。しかしながら、この機能は常にうまく使われるわけではない。ユーザーは、(たとえば使用される他の資源に加えて使用されるエネルギーに対して課金されるのでない限り)エネルギーを節約しようとする動機がないことがあるからである。また、ユーザーは自分のアプリケーションの実行性能を低下させることを望まないであろう(つまり、解が出るまでの時間を最小にしたい)。よって、性能〔パフォーマンス〕が影響を受けないことが保証される場合に資源マネージャが自動的にエネルギー節約モードを適用することが望ましい。
以前に提出されたジョブに依拠しないエネルギーを意識した実行を提供することが望ましい。
本発明のある側面のある実施形態によれば、複数の異なる許容される構成を有するコンピュータ・システムにおいてジョブを実行する方法であって:ジョブを受領する段階と;ジョブの一つまたは複数の代表的なサンプルを同定する段階と;前記一つまたは複数の代表的なサンプルを実験フェーズにおいて実行する段階であって、(単一の代表的なサンプルがある場合)当該または(二つ以上ある場合)各代表的なサンプルは、前記コンピュータ・クラスターのそれぞれの異なる許容される構成を用いて実行される、段階と;前記一つまたは複数の代表的なサンプルの実行中の各構成における実行速度および使用されるエネルギーを含む実行データを収集し、実行速度およびエネルギー使用を考慮に入れて前記ジョブについての好適な構成を選択する段階と;前記ジョブの残りの部分を完了フェーズにおいて前記好適な構成を用いて実行する段階とを含む方法が提供される。
このように、発明実施形態は、前記アプリケーションまたは他のジョブの少なくとも一つの代表的なサンプルを使い、前記代表的なサンプルは、前記ジョブの一部(前記ジョブの全体より少ない部分)であり、そのエネルギー使用特性はジョブ全体のエネルギー使用特性に対応する。エネルギー使用特性は、ジョブ全体についてのエネルギー使用特性と同じであってもよく(代表的なサンプルとジョブ全体のサイズの違いは斟酌して)、あるいは異なることが許容されるが指定された範囲内、たとえば全体的なエネルギー使用および/またはエネルギー「スパイク」の数、継続時間およびサイズなどといった一つまたは複数のエネルギー使用パラメータの点で10%または5%の偏差以内であるのでもよい。
ジョブは二つのフェーズにおいて実行される。たとえば1から15個までの間の代表的なサンプルのそれぞれが、コンピュータ・システムのいくつかの異なる構成のそれぞれを用いて実行される実験フェーズと、選択された構成を使っての完了フェーズである。以下では複数の代表的なサンプルが想定されることがあるが、当業者は、特定の実施形態の技術的な要求に関して不適切でない限り、代表的なサンプルは単数でも複数でもよいことを理解するであろう。単一の代表的なサンプルはより迅速な結果を与える可能性が高い一方、より多くのサンプルは、特にそれらが異なっていれば、複雑な実行のためのより好適な構成を与えることを許容しうる。
ひとたび当該または各代表的サンプルが、それぞれの許容される構成を用いて実行されたら(あるいはそれらのサンプルの実行の間に)、実行速度およびエネルギー使用を含む収集された実行データに基づいて好適な構成が選択される。
本発明の実施形態は、好適な構成での実行を許容し、該好適な構成は、許容される構成の別のものでの実行に比べてエネルギーの節約を達成する傾向がある。
発明実施形態は、資源マネージャまたはコンピュータ・システムにおける他の匹敵する機能が、アプリケーションの属性についての情報を、該アプリケーションが提出されるときに、取得し、それにより該アプリケーションの実行中にエネルギーを節約できるようにすることを、好ましくは計算性能への影響なしに、許容することができる。実験フェーズは、ジョブが提出されるたびに毎回実行されることができる。
「エネルギーを意識する(energy-aware)」資源マネージャの現状技術は、特許文献1および2に代表される。これらの文献は、以前に提出されたジョブの性能特性と、クラスターをエネルギー節約モードにすることの、所与の性能特性をもつジョブに対する効果の計算モデルとのデータベースをもつ資源マネージャ機能を記載している。資源マネージャがジョブを以前に提出されたものとして同定できる場合、資源マネージャは記録された特性を使って、性能に影響しない最良のエネルギー構成を計算する。
従来技術が対処していない問題は、再提出されたジョブが以前の提出と同じ性能特性をもつという保証がないということである。資源マネージャは、アプリケーションの外からは、エネルギー効率のためには最適設定がどのようなものであるかを知ることができない。同じアプリケーションが以前に提出されていたことがありうるとしても、資源マネージャには見えないが、エネルギー使用特性に影響する変化があるかもしれない。そうした変化は、コードへの修正、異なる解法アルゴリズムの選択、計算ノードへの負荷の異なるマッピング、問題サイズへの変更または有効にされるオプションへの変更を含む。これらの変更のすべては、アプリケーションのエネルギー使用特性や、構成と計算性能との間の相互作用に影響することがあり、よってアプリケーションについての過去の経験は現在の初期化ファイルでの現在のアプリケーションの実行に対する信頼できるガイドとはならない。
本発明のHPC実施形態は、HPCクラスターおよび他のシステム上でのコンピュータ・ジョブの、必ずしも性能に影響しないエネルギー節約モードのような好適な構成での実行を許容する。これは、クラスターに提出されたジョブの特性の同定を使う。HPCジョブの特性は、提出から提出へと非常に可変的であり、以前に提出されたジョブの知識を使うことは、信頼できないことがあり、発明実施形態によれば、すべてのジョブの特性が提出時に個々に決定される。
代表的なサンプルは、いかなる好適な仕方で決定されてもよい。ある代替では、ジョブは、同じ実行可能形式の、異なる入力をもつサブジョブ・アレイの形で受領され、代表的なサンプルは、前記サブジョブ・アレイのあるセレクションのみとして同定される。こうして、ジョブの一つの形は、同じ実行可能形式(アプリケーションまたは他のジョブの実行可能な形)について異なる入力値をもつ大きなグループにおいて提出されてもよい。入力だけが変わるので、代表的な例は単に、入力値のセレクションとして取られることができる。たとえば、当該または各代表的なサンプルは、同じ実行可能形式における入力の約1%から形成されてもよいし、あるいは各代表的なサンプルは入力値の一つのセットのみに関わってもよい。
このサブジョブ・アレイの代替では、ジョブ提出言語またはジョブ記述言語(コンピュータ管理システムにどのタスクをどの順序で実行すべきかを伝えるために使われる)における構造体がサブジョブ・アレイを指示してもよく、あるいは同じ実行可能形式の繰り返される呼び出しを同定するために提出スクリプトがパースされることもできる。いずれの場合にも、資源マネージャまたは等価な機能が該検出を実行できる。
第二の代替では、ジョブは、反復する入れ替わる(interchanging)サブジョブのリンクされたシーケンスの形で受領される。ここで、各サブジョブは、二回以上現われ、代表的なサンプルはシーケンス中の初期の入れ替わるサブジョブである。この場合、代表的なサンプルの数は少なくともサブジョブの数に等しいべきである。
いくつかのタスクは、二つ以上のジョブを一緒に結合し、一つのジョブの出力が次のジョブの入力をなす。入れ替わり(interchanging)は、交互(alternation)または異なる方式であってもよい。これらの状況において、シーケンス中の初期のサブジョブは、完了フェーズを実行するのに十分な実行データが得られるまで情報を集めるよう実行されてもよい。有利には、各サブジョブはアプリケーションであり、各アプリケーションについて一つで、二つ以上の好適な構成が選択される。
この場合、ジョブの型、よって代表的なサンプルの型の決定は、ループ構造のようなジョブ記述言語中の構造体から生起することができる。
第三の代替では、ジョブは巡回的であり、ジョブ内で諸サイクルが認識され、ジョブの一つまたは複数のサイクルが、当該または各代表的なサンプルとして同定される。
多くのアプリケーションはよく定義された巡回的な性質をもち、それはプログラマーまたはユーザーによって事前に同定されていてもよいし、ジョブ記述言語を吟味することによって推定されてもよいし、あるいは実行中に同定されてもよい。
第四の代替では、ジョブは、メイン・ジョブと、該メイン・ジョブに対応するエネルギー使用特性をもつ該メイン・ジョブの一つまたは複数のプローブ・バージョンの形のサブジョブとを含み;該サブジョブが、実験フェーズにおいて実行される代表的なサンプルとして同定され、メイン・ジョブは完了フェーズで実行される。こうして、(コンパイルされた実行可能なプログラムを受け、たとえばジョブ記述言語を使ってデータおよびパラメータを入力し得る)ユーザーまたは(ジョブについてのコードへのアクセスをもつことがあり、よってたとえばジョブ内の諸サイクルを同定できる)プログラマーは、エネルギーを節約するようコンピュータ・システムを構成するのを補助するよう、メイン・アプリケーションの短いプローブ・バージョンを供給することができる。
実行速度およびエネルギー使用を考慮に入れる好適な構成の選択は、いかなる好適な仕方でなされてもよい。
たとえば、コンピュータ・システムの各構成が異なるエネルギー使用特性をもち、問題のジョブについて異なる仕方で計算性能に影響する場合、好適な構成は、最低のエネルギー使用および実行を完了するための受け容れ可能な時間をもつ構成でありうる。
あるいはまた、エネルギー使用における指定された節約についての実行時間の受け容れ可能な増加に対する許容値が設定されてもよく、それにより、好適な構成は、よりエネルギー効率的でない構成に関して実行時間を増大させてもよい。
好適な構成の決定は、他の代表的なサンプルおよび他の構成の実行からのデータに対する追加または代替として、デフォルト構成からの実行データを比較の目的で考慮に入れてもよい。デフォルト構成は、一般的な事前設定されたデフォルト構成であってもよく、たとえばジョブの型に依存してもよい。構成は、好適な構成を与えるのに十分な実行データが得られたらすぐに選ばれてもよい(すなわち、実験フェーズと実行データの収集とは並列に実行されてもよい)。あるいは実行データの集合全体が考慮されてもよい。
上述した代替のすべてについて、異なる構成は、コンピュータ・クラスターにおける次のもののうち一つまたは複数における変化を含んでいてもよい:適用される電圧、サイクル周波数(クロック速度)、アクティブ化されるコンピューティング資源の量。
本方法は、上記の代替の任意のものまたは全部をカバーするために代表的なサンプルを同定しようとする試みを含んでいてもよい。たとえば、代表的なサンプルがプログラマーまたはユーザーによって事前に同定されている場合、同定段階は代表的なサンプルの単純な入力であってもよい。代表的なサンプルの事前同定された集合がない場合、代表的なサンプルを同定するためにジョブ記述言語をパース(parse)する段階があってもよい。以前の同定方法が利用可能でないまたは不成功である場合、代表的なサンプルは実行中に同定されてもよい。
ある実施形態では、代表的なサンプルは、ジョブ中の事前同定があるかどうかをチェックすることによって同定される。これがうまくいかない場合には、ジョブ記述(または提出)言語をパースし、それでもうまくいかない場合には、実行中の同定を試みる。
このように、有利には、(必要であれば)ジョブ記述言語から代表的なサンプルを同定するために、ジョブが受領されるときにジョブ記述言語がパースされる。追加的または代替的に、実験フェーズの前に、代表的なサンプルを同定するために使用されるデフォルト構成フェーズにおいてジョブ実行が始まってもよい。
当業者は、このことおよび一般的なコンテキストから、本稿で言及する方法段階が、定義の順序とは異なる順序で実行されて、それでいて好ましい結果を生じることがあることを理解するであろう。
本技法が効果的であるためには、代表的なサンプルは全体的なアプリケーションの小さな割合、たとえばジョブ全体の2%以下、あるいはより好ましくはジョブ全体の1%以下をなすべきである。いずれにせよ、代表的なサンプルの全実行時間は全体的な実行時間の20%未満を、より好ましくは10%未満をなすことが期待される。
発明実施形態によれば、実験フェーズおよび完了フェーズは、ジョブが提出されるたびに実行される。好ましくは、本方法はさらに、完了フェーズの間にその後の実行データを収集し、その後の実行データが上記好適な構成がもはや適切でないことを示す場合には実験フェーズに戻ることを含む。あるいはまた、実行は適応された実験フェーズに戻ってもよい(たとえば、入れ替わるサブジョブでは、一つ以外の他のジョブがまだ好適な構成で実行中である場合、一つのサブジョブが実験フェーズに再入するだけでよい)。他の状況では、実行はデフォルト構成に変わってもよい。
コンピュータ・システムは、コンピュータ・クラスターであっても、あるいは別の構造を有していてもよい。クラスターの場合、ジョブは、いくつかのタスクに分割される少なくとも一つのアプリケーションからなっていてもよく、それらのタスクは資源マネージャによってコンピュータ・クラスターのノードに割り当てられてもよい。
本発明の第二の側面のある実施形態では、コンピューティング・ジョブを実行するようコンピュータ・システムにおいてコンピューティング資源を管理する資源マネージャが提供される。本資源マネージャは:資源にジョブを割り当て、コンピュータ・システムの異なる構成を生成するようコンピュータ・システムの動作を制御するよう構成された制御モジュールと;ジョブの代表的なサンプルを同定し、コンピュータ・システムの前記異なる構成を記憶し、実験フェーズにおいて前記代表的なサンプルの実行を許容するよう、制御モジュールに前記ジョブをコンピュータ・システム内の諸資源に割り当てるよう要求するよう構成されたエネルギー最適化器であって、各代表的なサンプルはコンピュータ・システムの各異なる構成をもって実行される、エネルギー最適化器と;前記代表的なサンプルの実行中の各構成における実行速度および使用されるエネルギーを含む実行データを収集するよう構成されているモニタリング・モジュールとを有しており、前記エネルギー最適化器は、実行速度およびエネルギー使用を考慮に入れて前記ジョブについての好適な構成を選択し、前記制御モジュールに、前記アプリケーションの残りの部分を、前記好適な構成をもって完了フェーズにおいて実行するよう要求するよう構成されている。
本発明のあるさらなる側面のある実施形態では、相互接続によって一緒に結合されてクラスターを形成するノードまたはサーバーと、上記のような資源マネージャとを有する高性能コンピュータ・システムが提供される。
本発明のこれらの側面は、上記でより詳細に述べた方法側面の個々の特徴およびサブ特徴を含んでいてもよい。このように、上述した好ましい方法特徴は、エネルギー最適化器または資源マネージャ全般の向上した機能の点で資源マネージャに適用されてもよい。
資源マネージャ自身は、ソフトウェア、ハードウェア、ミドルウェアにおいて、特定用途向け集積回路(ASIC)として、あるいは他の任意の形で、実装されてもよい。
単に例として、付属の図面が参照される。
コンピュータ・クラスターの概略図である。 発明実施形態に基づく方法の一般的な実施形態の概略図である。 発明実施形態に基づくサブジョブ・アレイの処理のフローチャートである。 発明実施形態に基づく、入れ替わる一連のサブジョブからなる結合されたジョブの処理の流れ図である。 発明実施形態に基づく巡回的なジョブの処理の流れ図である。 事前同定されたプローブの処理の流れ図である。 資源マネージャの概略図である。 代表的なサンプルの同定を概観において示すフローチャートである。
図2は、部分1、2、3などから構成され、長さXをもって示されるジョブの実行を示している。ステップS10では、ジョブの代表的なサンプルが同定され、部分1、2、3などとして、長さYをもって示される。XはYよりずっと大きく、これら代表的なサンプルは一緒になっても全体的なジョブ長さのかなり小さな割合をなす。単一の代表的なサンプルがあるのでもよい。各代表的なサンプルは、ステップS20において、コンピュータ・システムのいくつかの異なる構成のそれぞれにおいて実行される。さまざまな構成はa、b、cとして示され、それぞれはエネルギー使用を変化させうるいくつかの特徴を含んでいてもよく、実行されている実際のジョブに依存する実行速度に対する付随的影響をもつことがある。ステップS30では、実行データが収集される。こうして、代表的なサンプル1について、構成a、b、cのそれぞれにおいて結果が与えられ、サンプル2および3についても同様である。これは、好適と思われる構成の選択を許容する。
先述したように、ステップS20における代表的なサンプルの実行、ステップS30における実行データの収集およびステップS40における構成の選択は、逐次的に、あるいは部分的もしくは完全に並列に実行されてもよい。そのため、すべての結果が準備される前に構成が選ばれることもある。これはたとえば、所定の基準または基準の集合に従って好適である構成が、すべての構成がすべての代表的なサンプルを用いて試験される前に見出される場合に起こりうる。その場合、実験フェーズは好適な構成が見出されるまで続けられるだけでもよく、よって必ずしも実験フェーズは完了しなくてもよい。ステップS50では、ジョブの残りの部分が、選ばれた構成を使って実行される。たとえば結合されたジョブの要求を満たすため、二つ以上の構成が選ばれてもよいことを注意しておくべきである。
アプリケーションが実行されるコンピュータ・ハードウェアは、全体的なシステムのエネルギー使用に影響するいくつかの異なる構成オプションをもつことがある。たとえば、たいていの現代のハードウェアは、サイクル周波数への変更を許容し、周波数を下げるとエネルギー使用も減る。現代のハードウェアは計算状態への変更も許容し、たとえば集積回路の一部をオフにしてエネルギーを節約できる。説明の目的で、ここでは少数の(たとえば5ないし15個未満、たとえば10個の)離散的な構成があり、それぞれが異なるエネルギー使用特性をもち、異なる仕方で計算性能に影響できるとする。資源マネージャは、これらの許容される構成のリストをもち、発明実施形態におけるタスクは、各アプリケーションについて最適の構成を、該アプリケーションが提出される際に選択できる。
最適な構成は、ジョブの実行を完了するための時間に対する受け容れ可能な影響で最低のエネルギー使用をもつ構成であってもよい。(通例、これはそのジョブにかかる時間が最低であるということだが、資源マネージャまたはユーザーのいずれかによって設定される、エネルギー使用における指定された節約について、他の構成またはデフォルトの構成に比べての、実行時間の受け容れ可能な増大に対する許容度があることもある。)
上記で論じたように、資源マネージャは、アプリケーションの外からは、エネルギー効率のために最適な設定が何であるかを知ることができない。他方、ひとたび構成オプションのセットが選ばれたら、アプリケーションのその実行のエネルギー性能特性は本質的には決定される。
いくつかの発明実施形態の中核は、特定の提出されたアプリケーションおよび諸構成オプションについて、その提出されたジョブを使って最良の解決策を見出すよう実験することによって、資源マネージャが能動的に最適な設定を決定することを提案するというものである。資源マネージャは、提出されたジョブの小さなセクション(代表的なサンプルまたはプローブ)を、エネルギー構成設定のすべてを使って実行する。
特定のジョブについて最適な構成を見出すために、実行統計が収集され、解析される。この最適な設定は、提出されたジョブの残りの部分(圧倒的に最大の部分)を実行するために使用される。代表的なサンプルはジョブ全体の約1%であってもよい。このプロセスは、好ましくは、資源マネージャに提出される一つ一つのジョブについて、ジョブが提出されるたびに実行される。
最適な構成を見出すために実験することは、関連技術において知られているが、それはジョブ全体のレベルで適用されていた。ジョブが提出され、数回、完了まで実行されるのである。本願の一つの新規な側面は、実験が、提出されたジョブの部分的な実行を使って行なわれるということである。HPC発明実施形態は、HPCジョブが長い時間にわたって実行されることおよびHPCジョブが同じタスクを同じ性能特性をもって多数回繰り返すことという二つの観察を活用することに基づいていると見なすことができる。これらの複製を抽出し、その若干を最適構成を見出すために使うことは、全体的な実行時間に対してほとんどまたは全く代償なしに可能である。
いくつかの実施形態における全体的なプロセスは次のようなものである。
・資源マネージャが、実行すべきジョブを受け取る。このジョブは一つまたは複数のアプリケーションを初期化ファイルとともに有する。
・資源マネージャは後述する技法の一つを使って好適なプローブを同定する。プローブとは、全体的なジョブのエネルギー使用特性を表わす、全体的なジョブの小さなセクションである。よって、ここでは、プローブは代表的なサンプルとも称される。
・資源マネージャは、許容される構成のそれぞれと取り合わせたプローブのそれぞれを実行し、提出されたジョブの残りの部分のために使用すべき最良の構成を決定する。
プローブ実行は通例、ジョブ実行を前に進める。よって、このプロセスは必ずしも無駄にされる計算資源やジョブ終了までの時間の増大を生じることにはならない。
〈代替的な代表的なサンプル〉
以下の諸セクションは、種々の状況において使用されうる代表的なサンプルおよびその同定法のさらなる詳細を与える。
〈代替1:サブジョブ・アレイ〉
HPCジョブは、同じ実行可能形式を異なる入力値をもって実行させる、大きな諸グループにおいて提出されることができる。これを行なう理由は、可能な解の範囲を調査することである。すなわち、天気予報では入力条件の小さな変化に対する感度を試験し、工学では一組のパラメータの最適な組み合わせを見出す。これらのグループまたは「サブジョブ・アレイ」においては、同じ実行可能形式が、ほとんど同一の初期値を用いて多数回実行される。したがって、アルゴリズム選択および問題サイズが同じとなるので、アレイ内で提出されるすべてのサブジョブについての実行特性は非常に似通っているであろうと安全に想定できる。結果として、各メンバー・ジョブの実行時間は非常に似通っているであろう。サブジョブ・アレイが合理的な数、たとえば50ないし100のメンバーをもつ場合、資源マネージャは、その特定の実行可能形式および構成についての最適な設定を見出すために、アレイのメンバーのいくつかの実験的な実行を使うことができる。すなわち、メンバー・ジョブの最初の若干数(プローブ)について設定を変えて、最もエネルギー効率のよい構成を見出し、その構成を残っているメンバー・ジョブすべてに適用することができる。
図3は、このプロセスを例解している。ジョブが受領され、資源マネージャは、そのジョブがサブジョブ・アレイであることを検出する(100)。(しばしば、ジョブ提出言語にはアレイを示す特殊な構造体がある。あるいは、提出スクリプトがパースされて、同じ実行可能形式の反復される呼び出しが同定されることができる。)上述したように、資源マネージャは、エネルギー使用のために性能をトレードする機械構成のリストを保持している。資源マネージャは、このリストを通じて、機械構成のそれぞれについて各メンバー・ジョブを提出することを逐次反復する(101および102)。実行の終わりに、実行統計が記録される(103)。プローブ実行を通じたすべての構成の試験に続いて、資源マネージャは結果を解析して、そのサブジョブ・アレイについての最適な機械構成、たとえば最短実行時間に近い最小エネルギー使用をもつ構成を同定する(104)。次いで、資源マネージャは、同定された最適構成を使って残りのメンバー・ジョブを提出する(105)。
〈アルゴリズム2:結合されたまたは入れ替わるサブジョブ〉
いくつかのHPCジョブは二つのアプリケーションを一緒に結合し、一方の出力が他方の入力になる。これらはしばしば、結合されたアプリケーションの実行が交互に起こる逐次反復式または時間進行(time marching)方式の一部として結合される。すなわち、AおよびBと称される二つの結合されたアプリケーションが与えられるとき、結合されたジョブの実行は、これら二つのアプリケーションの、たとえば順序ABABABABA……での繰り返される実行に関わる。ひとたび資源マネージャが、提出されたジョブが結合されたアプリケーションに関わることを検出したら、実験的な実行が、結合されたアプリケーションのメンバーについての最適なシステム構成を決定することが可能である(よって、Aの実行およびBの実行がプローブとなる)。アプリケーションAおよびBが異なり、よって各アプリケーションの異なる設定が最適実行のために必要とされることがありうることを注意しておく。しかしながら、結合されたアプリケーションは固定した問題を解くので、問題サイズおよびアルゴリズム選択のような性能に関する特性の多くは一定のままであり、よって初期の実験の結果は有効なままである。ただし、場合によっては、結合されたアプリケーションの一方または両方が実行を通じて発達するにつれ、(モデル化されるシステムの物理的な属性とともに)性能特性が変化する。これは、資源マネージャが実行を通じて実行時間およびエネルギー使用をモニタリングする必要があり、メンバー・アプリケーションのいずれかが(初期の実験フェーズの間に得られる)期待される値から逸脱する場合には、資源マネージャが実験フェーズを再実行して現在の最良の値のセットを決定する必要があることを意味する。
実験フェーズの間、資源マネージャは、結合された諸アプリケーション(諸サブジョブまたは諸メンバー・ジョブ)をユーザーによって要求されたシーケンスで実行することを続ける。変更がされるのは、システム構成設定に対してだけであり、該設定は、最適な設定を見出すために諸メンバー・アプリケーションについて十分な情報が集まるまで、諸メンバー・ジョブが実行されるにつれて変えられていく。
例解目的のため、結合されたジョブを、二つのサブジョブ(AおよびB)の交互交替であると考えてきたが、この方式が、いくらでも多くのサブジョブが逐次的に実行される(たとえば、ABCDABCDABCD…またはたとえばAABBCDACDBBBのような変化する順序で)場合に拡張できることは明らかである。実験フェーズはそれでも有効である。
図4は、結合されたアプリケーションのためのプロセスを示している。ジョブが受領され、資源マネージャによって、結合された諸アプリケーションとして識別される(200)(これは、ループ構造のようなジョブ記述言語における構造体からであってもよい)。資源マネージャは、それらのサブジョブを諸プローブとして使って実験モードで当該ジョブの実行を開始する(201)。各サブジョブは、各エネルギー構成を用いて試験され、性能データが資源マネージャによって記録される(203)。ひとたびあるサブジョブ型についてすべての可能な構成が試験されたら、そのサブジョブ型について最適な構成が選択され(204)、残りの実行はその構成を用いて実行される(205)。資源データは性能データをモニタリングし(206)、期待される最適値からの(設定された許容範囲を超えた)逸脱がある場合には(207)、そのジョブサブ型について実験モードに再びはいる(208)。
〈代替3:逐次反復試験――巡回的なジョブ〉
ほとんどすべてのHPCアプリケーションはよく定義された巡回的な性質をもつ。(たとえば時間を通じて)多数のステップのそれぞれについて同じ(または同様の)計算を繰り返したり、あるいはより高い精度に結果を洗練させながら一連の計算を繰り返したりするのである。
資源マネージャがアプリケーション内のサイクルを同定できるいくつかの方法がある。それには以下のものが含まれる。
・サイクルの開始および終了のプログラマーまたはユーザーによる同定。それが資源マネージャに送り返される。
・MPI通信プリミティブのようなライブラリによって提供される方法への呼び出しの反復されるシーケンスから、資源マネージャが推定する。(たとえば、グローバルな待ちまたはグローバルな総和がサイクルの終わりにしばしば現われる。)
・あるサイクル中に種々の資源が使われるにつれて変化する、アプリケーションの電力使用プロファイルを解析することによって、資源マネージャが推定する。(たとえば、サイクルは、ネットワーク電力使用を増加させる通信フェーズを含むことがある。)
・サイクルの間に変化する資源の使用レベルから、資源マネージャが推定する。たとえば、サイクルの結果が不揮発性記憶に保存される際、I/Oが増加する一方、CPU使用が減少することがある。
アプリケーションは、通例、多数の実行サイクルをもち、よってひとたび資源マネージャが信頼できる仕方でサイクルを同定できたら、資源マネージャは実験技法を適用して当該ハードウェアのための最適なエネルギー構成を見出すことができる。実行サイクルがプローブとなる。すなわち、資源マネージャは、アプリケーションについてのエネルギー構成を変え、複数サイクルを通じて走らされる実行を監視し、実行統計を記録することができる。ひとたび資源マネージャのリストにあるすべての構成についてこれがなされたら、最適な構成が、アプリケーションの実行の残りの部分について適用されることができる。アプリケーション計算が進行するにつれて特性が変わることがあるので、資源マネージャは性能をモニタリングし、必要であれば改めて最適化する。
サイクルの実行時間は短くてもよく、資源マネージャ動作の粒度(たとえばエネルギー構成変化への応答時間)は単一サイクルよりずっと大きくてもよいことを注意しておく。したがって、正確なデータを与えるためには、単一の構成をもつ個々の実験はいくつかのサイクル(アプリケーションおよびコンピュータ・システムに依存する)にわたって走らされる必要がある。
図5はこのプロセスを例解している。ジョブが受領され、資源マネージャによってモノリシックな実行可能形式として識別される(300)。(これは、ジョブ記述言語の、結合されているとしてまたはサブジョブ・アレイとして同定できる構造の欠如からであってもよい。)資源マネージャは、デフォルト構成を使って当該ジョブの実行を開始し、その実行を観察して、上記で論じた技法の一つを使ってサイクルを識別する(301)。ひとたびサイクルが信頼できる形で同定できたら、各サイクルは各エネルギー構成を用いて試験され(302、303)、資源マネージャによって性能データが記録される(304)。ひとたびすべての構成が試験されたら、最適な構成が選択され(305)、残りのサイクルはその構成(306)を用いて走らされる。資源データは性能データをモニタリングし(307)、期待される最適値からの(設定された許容範囲を超えた)逸脱があれば(308)、実験モードに再びはいる(309)。
〈代替4:サンプル実行可能形式〉
ユーザーは、メイン実行可能形式と同じエネルギー使用特性をもつことが保証される、メイン・アプリケーションの一つまたは複数の短い、低資源使用の「プローブ」バージョンを供給することによって、資源マネージャが効率的な実験フェーズを実行することを助けることができる。たとえば、供給されるプローブ実行可能形式は、少数のサイクルを走らせるよう構成されることができる。資源マネージャは、これらのプローブを使って、メイン・アプリケーションを実行する前に、最適な構成を見出すことができる。
図6は、このプロセスを例解している。ジョブが受領され、資源マネージャは、そのジョブがユーザーによって同定されたプローブをもつことを検出する(400)。資源マネージャはプローブを抽出する(401)。上記のように、資源マネージャは、エネルギー使用のために性能をトレードする機械構成のリストを保持している。資源マネージャは、このリストを通じて逐次反復し、各プローブを、各機械構成について実行する(402および403)。実行の終わりに、実行統計が記録される(404)。次いで、資源マネージャは、最適な機械構成、たとえば最短の実行時間に近い最小のエネルギー使用をもつ構成を同定する(405)。次いで、資源マネージャは、同定された最適な構成を使って残りのジョブを実行する(406)。
〈システム構成〉
図7は、資源マネージャ(501)がHPCコンピュータ(502)に資源を割り当てることを担う例示的なシステム構成を示している。資源マネージャは、タスク(ジョブの一部)をHPC資源に割り当てることができ、またCPUの電圧および周波数のような、資源の動作の諸側面を制御することもできる(503)。資源マネージャのうち関心対象となる部分は、ジョブをコンピューティング資源に割り当て、コンピューティング資源の構成を設定するコントロール(504)と、代表的なサンプルの実行中の各構成における実行速度および使用されるエネルギーを含む実行データを収集するモニタ(506)と、本発明の主たる新たなコンポーネントであるエネルギー最適化器(509)とである。資源についての一般的なデータ(505)が、資源要求(508)とともにコントロールに入力される。エネルギー最適化器(509)は、部分511として示されているジョブの代表的なサンプルを同定し、HPC資源の、エネルギー使用に関係する許容される構成(510)を記憶する。
最適化器は、代表的なサンプルを同定し、最良の構成を見出すプロセスを制御する。最適化器は、エネルギー使用についてのモニタからのデータおよび(必要な場合には)サンプルを同定しサンプルの開始と終了を検出するために使われる任意のさらなるデータを受領することによってこれを行なう。最適化器は、前記コントロールによって規定される構成変化の要求を定式化する。よって、最適化器は、前記コンピュータ・システムとインターフェースをもつよう前記モニタおよびコントロールを使ってプロセス適応構成全体を制御する。
資源マネージャは、タスク割り当ておよびシステム設定(503)をHPC資源に送る。
このように、HPC資源の構成のリストをもって初期化されているエネルギー最適化器(509)は、この情報を、プローブの指定または同定と組み合わせて、最適化実験プロセスを駆動する。
エネルギー最適化器(509)は、前記コントロール(504)に対して最適なエネルギー構成を提案する。この構成は、ジョブの諸プローブの実験的実行の間に改めてスコアされた実行統計を解析することによって決定される。解析は、プローブが最小エネルギーを使用するような構成を見出すことであることができる。
図8は、代表的なサンプルが上記で挙げた諸代替のカテゴリーの一つまたは同じ同定方法を許容する別のカテゴリーに属する場合に、代表的なサンプルが同定されうる方法のある実施形態を示している。ステップS60では、代表的なサンプルが、たとえばサブジョブ・アレイまたはサイクルまたはプローブ・バージョンの形で事前同定されているかどうかの第一のチェックがある。事前同定は、代表的なサンプルのいかなる型のものであってもよく、ユーザーによって入力されてもよいし、あるいはジョブ記述構造体に基づいていてもよい。
代表的なサンプルが事前同定されている場合、方法は、ステップS120において、実験フェーズおよび完了フェーズの方法論に進む。事前同定がなければ、S70においてジョブ記述言語がパースされ、ステップS80においてパースによって代表的なサンプルが同定される場合、ステップS120において実験フェーズおよび完了フェーズの方法論が使用される。パースは、代表的なサンプルの多くの異なる型を同定するために使用されることができる。
パース段のあとでもまだ代表的なサンプルが同定されていない場合には、ステップS90においてジョブはデフォルトの構成をもって実行を開始し、ステップS100において、代表的なサンプルが該実行から同定されてもよい。その場合、S120において実験および完了フェーズの方法論に進む。そうでない場合には、ジョブはデフォルトの構成をもって実行を続ける。
〈発明実施形態の要約〉
現代の高性能コンピュータ(HPC)システムおよび他のコンピュータ・システムは大量のエネルギーを使うが、コストおよび社会的責任の理由から、使用エネルギーを減らす必要がある。HPCクラスターのコンポーネント・コンピュータはそのエネルギー消費を減らす能力をもつが、それは全部ではないがいくつかの型のジョブについては低下した性能という代償を伴う。HPCクラスター資源マネージャは、エネルギー保存モードで実行されるときに性能を失わない(または受け容れ可能な性能損失をもつ)ようなジョブを同定することができれば、性能を維持しつつ、エネルギーを節約できる。発明実施形態は、資源マネージャがあらゆる提出されるジョブの短いセクション(プローブ)を可能な諸構成に対して試験し、特定のジョブについて最適な構成を選択することを提案することによって、好適なジョブを同定する。HPCおよび他のコンピュータ・システム・ジョブは規則的な実行パターンをもち、よってプローブが存在する。発明実施形態は、いくつかの異なるプローブ型を同定する。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の異なる許容されるハードウェア構成を有するコンピュータ・システムにおいてジョブを実行する方法であって、当該方法は:
実行のために提出されたジョブを受領する段階と;
前記ジョブの一つまたは複数の代表的なサンプルを同定する段階であって、当該または各代表的なサンプルは前記ジョブの一部である、段階と;
前記ジョブが部分的に実行される実験フェーズおよび前記ジョブの残りが実行される完了フェーズの二つのフェーズにおいて前記ジョブを実行する段階とを含み、
前記実験フェーズでは、当該または各代表的なサンプルは、前記コンピュータ・システムのそれぞれの異なる許容されるハードウェア構成を用いて実行され;
前記一つまたは複数の代表的なサンプルの実行中に各ハードウェア構成における実行速度および使用されるエネルギーを含む実行データが収集され、実行速度およびエネルギー使用を考慮に入れて前記ジョブについての好適なハードウェア構成が選択され;
前記完了フェーズでは、前記ジョブの残りが前記好適なハードウェア構成を用いて実行される、
方法。
(付記2)
前記ジョブが、同じ実行可能形式の、異なる入力をもつサブジョブ・アレイの形で受領され、前記一つまたは複数の代表的なサンプルは、前記サブジョブ・アレイのあるセレクションのみとして同定される、付記1記載の方法。
(付記3)
前記ジョブが、反復する入れ替わるサブジョブのリンクされたシーケンスの形で受領され、各サブジョブは二回以上現われ、前記代表的なサンプルは前記シーケンス中の最初のいくつかのサブジョブである、付記1記載の方法。
(付記4)
各サブジョブはアプリケーションであり、各アプリケーションについて一つで、二つ以上の好適なハードウェア構成が選択される、付記3記載の方法。
(付記5)
前記ジョブが巡回的であり、前記ジョブ内で諸サイクルが認識され、前記ジョブの一つまたは複数のサイクルが、当該または各代表的なサンプルとして同定される、付記1記載の方法。
(付記6)
代表的なサンプルが、前記ジョブ内の事前同定を調べることによって同定され、これが成功しない場合には、前記ジョブ記述言語をパースし、それでも成功しない場合には実行中の同定を試みる、付記5記載の方法。
(付記7)
前記ジョブが、メイン・ジョブと、該メイン・ジョブに対応するエネルギー使用特性をもつ該メイン・ジョブの一つまたは複数のプローブ・バージョンの形のサブジョブとを含み;該サブジョブが、前記実験フェーズにおいて実行される前記一つまたは複数の代表的なサンプルとして同定され、前記メイン・ジョブは前記完了フェーズにおいて実行される、付記1記載の方法。
(付記8)
前記コンピュータ・システムの各ハードウェア構成が異なるエネルギー使用特性をもち、計算性能に対して異なる影響をもち、好適なハードウェア構成は、実行を完了するための最低のエネルギー使用および受け容れ可能な時間をもつハードウェア構成である、付記1ないし7のうちいずれか一項記載の方法。
(付記9)
前記異なるハードウェア構成は、前記コンピュータ・システムにおける、適用される電圧、サイクル周波数、アクティブ化されるコンピューティング資源の量のうち一つまたは複数における変化を含む、付記1ないし8のうちいずれか一項記載の方法。
(付記10)
前記ジョブが受領されるときに、ジョブ言語がパースされて、前記記述ジョブ言語から前記一つまたは複数の代表的なサンプルを同定する、または、前記実験フェーズの前に、前記一つまたは複数の代表的なサンプルを同定するために使用されるデフォルト・ハードウェア構成フェーズにおいてジョブ実行が始まる、付記1ないし9のうちいずれか一項記載の方法。
(付記11)
当該または各代表的なサンプルがジョブ全体の3%以下、好ましくは1%以下をなす、付記1ないし10のうちいずれか一項記載の方法。
(付記12)
前記実験フェーズおよび前記完了フェーズは、ジョブが提出されるたびに実行され、好ましくは、さらに、前記完了フェーズの間にその後の実行データを収集し、その後の実行データが前記好適なハードウェア構成がもはや適切でないことを示す場合には前記実験フェーズまたは適応された実験フェーズに戻ることを含む、付記1ないし11のうちいずれか一項記載の方法。
(付記13)
前記実験フェーズが、前記ハードウェア構成の全部が試験され終わるまでまたは好適なハードウェア構成が見出されるまで継続する、付記1ないし12のうちいずれか一項記載の方法。
(付記14)
前記コンピュータ・システムはコンピュータ・クラスターを含み、前記ジョブは、いくつかのタスクに分割される少なくとも一つのアプリケーションからなり、それらのタスクは資源マネージャによって前記コンピュータ・クラスターのノードに割り当てられる、付記1ないし13のうちいずれか一項記載の方法。
(付記15)
実行のために提出されたコンピューティング・ジョブを実行するようコンピュータ・システムにおいてコンピューティング資源を管理する資源マネージャであって、当該資源マネージャは:
資源にジョブを割り当て、前記コンピュータ・システムの異なるハードウェア構成を生成するよう前記コンピュータ・システムの動作を制御するよう構成された制御モジュールであって、前記制御モジュールはまた、前記ジョブが部分的に実行される実験フェーズおよび前記ジョブの残りが実行される完了フェーズの二つのフェーズにおいて前記ジョブの実行を許容するよう構成されている、制御モジュールと;
前記ジョブの一つまたは複数の代表的なサンプルを同定し、前記コンピュータ・システムの前記異なるハードウェア構成を記憶し、前記実験フェーズにおいて前記一つまたは複数の代表的なサンプルの実行を許容するよう、前記制御モジュールに、前記ジョブを前記コンピュータ・システム内の諸資源に割り当てるよう要求するよう構成されたエネルギー最適化器であって、当該または各代表的なサンプルは前記ジョブの一部であり、当該または各代表的なサンプルは前記コンピュータ・システムの各異なるハードウェア構成をもって実行される、エネルギー最適化器と;
前記一つまたは複数の代表的なサンプルの実行中の各ハードウェア構成における実行速度および使用されるエネルギーを含む実行データを収集するよう構成されているモニタリング・モジュールとを有しており、
前記エネルギー最適化器は、実行速度およびエネルギー使用を考慮に入れて前記ジョブについての好適なハードウェア構成を選択し、前記制御モジュールに、前記アプリケーションの残りを、前記好適なハードウェア構成をもって前記完了フェーズにおいて実行するよう要求するよう構成されている、
資源マネージャ。
(付記16)
相互接続によって一緒に結合されてクラスターを形成するノードと、付記15記載の資源マネージャとを有する高性能コンピュータ(HPC)・システム。
100 ジョブ・アレイを受領
101 全構成が試験済み?
102 次の構成でジョブを実行
103 実行統計を記録
104 最良の構成を選択
105 残りのジョブを実行

200 結合ジョブを受領
201 AおよびBについて全構成が試験済み?
202 次の構成でA、Bを実行
203 実行統計を記録
204 A、Bについて最良の構成を選択
205 シミュレーションの次のステップを実行(A,B,…)
206 実行時間およびエネルギーを記録
207 実行時間、エネルギーが不変?
208 構成を再試験

300 ジョブを受領
301 サイクルを同定
302 サイクルについて全構成が試験済み?
303 あるサイクルにわたりある構成で実行
304 実行統計を記録
305 最良の構成を選択
306 シミュレーションの残りを実行
307 サイクル実行時間およびエネルギーを記録
308 実行時間、エネルギーが不変?
309 構成を再試験

400 ジョブを受領
401 プローブを抽出
402 全プローブについて全構成が試験済み?
403 プローブをある構成で実行
404 実行統計を記録
405 最良の構成を選択
406 ジョブを実行

501 資源マネージャ
502 ノード
505 資源についての一般的データ
510 エネルギー節減のための許容される構成
501 資源マネージャ
509 エネルギー最適化器
506 モニタ
504 コントロール
503 タスク割り当て、システム設定
502 HPC資源
511 代表的なサンプル
508 資源要求
507 ジョブ指定

S10 ジョブの代表的なサンプルを同定
S20 各代表的なサンプルを異なる各構成で実行
S30 実行データを収集
S40 構成を選択
S50 ジョブの残りを実行

S60 代表的なサンプル(例:ジョブ・アレイまたはサイクルまたはプローブ・バージョン)が事前同定されているか?
S70 ジョブ記述言語を解析
S80 代表的なサンプル(例:サイクルまたは入れ替わり現われるサブジョブまたはサブジョブのアレイ)が同定されているか?
S90 デフォルト構成でジョブを実行開始
S100 代表的なサンプルが実行から同定される
S110 デフォルト構成で実行を継続
S120 実験フェーズおよび完了フェーズの方法論を使って実行

Claims (16)

  1. 複数の異なる許容されるハードウェア構成を有するコンピュータ・システムにおいてジョブを実行する方法であって、当該方法は:
    実行のために提出されたジョブを受領する段階と;
    前記ジョブの一つまたは複数の代表的なサンプルを同定する段階であって、当該または各代表的なサンプルは前記ジョブの一部である、段階と;
    前記ジョブが部分的に実行される実験フェーズおよび前記ジョブの残りが実行される完了フェーズの二つのフェーズにおいて前記ジョブを実行する段階とを含み、
    前記実験フェーズでは、当該または各代表的なサンプルは、前記コンピュータ・システムのそれぞれの異なる許容されるハードウェア構成を用いて実行され;
    前記一つまたは複数の代表的なサンプルの実行中に各ハードウェア構成における実行速度および使用されるエネルギーを含む実行データが収集され、実行速度およびエネルギー使用を考慮に入れて前記ジョブについての好適なハードウェア構成が選択され;
    前記完了フェーズでは、前記ジョブの残りが前記好適なハードウェア構成を用いて実行される、
    方法。
  2. 前記ジョブが、同じ実行可能形式の、異なる入力をもつサブジョブ・アレイの形で受領され、前記一つまたは複数の代表的なサンプルは、前記サブジョブ・アレイのあるセレクションのみとして同定される、請求項1記載の方法。
  3. 前記ジョブが、反復する入れ替わるサブジョブのリンクされたシーケンスの形で受領され、各サブジョブは二回以上現われ、前記代表的なサンプルは前記シーケンス中の最初のいくつかのサブジョブである、請求項1記載の方法。
  4. 各サブジョブはアプリケーションであり、各アプリケーションについて一つで、二つ以上の好適なハードウェア構成が選択される、請求項3記載の方法。
  5. 前記ジョブが巡回的であり、前記ジョブ内で諸サイクルが認識され、前記ジョブの一つまたは複数のサイクルが、当該または各代表的なサンプルとして同定される、請求項1記載の方法。
  6. 代表的なサンプルが、前記ジョブ内の事前同定を調べることによって同定され、これが成功しない場合には、前記ジョブ記述言語をパースし、それでも成功しない場合には実行中の同定を試みる、請求項5記載の方法。
  7. 前記ジョブが、メイン・ジョブと、該メイン・ジョブに対応するエネルギー使用特性をもつ該メイン・ジョブの一つまたは複数のプローブ・バージョンの形のサブジョブとを含み;該サブジョブが、前記実験フェーズにおいて実行される前記一つまたは複数の代表的なサンプルとして同定され、前記メイン・ジョブは前記完了フェーズにおいて実行される、請求項1記載の方法。
  8. 前記コンピュータ・システムの各ハードウェア構成が異なるエネルギー使用特性をもち、計算性能に対して異なる影響をもち、好適なハードウェア構成は、実行を完了するための最低のエネルギー使用および受け容れ可能な時間をもつハードウェア構成である、請求項1ないし7のうちいずれか一項記載の方法。
  9. 前記異なるハードウェア構成は、前記コンピュータ・システムにおける、適用される電圧、サイクル周波数、アクティブ化されるコンピューティング資源の量のうち一つまたは複数における変化を含む、請求項1ないし8のうちいずれか一項記載の方法。
  10. 前記ジョブが受領されるときに、ジョブ言語がパースされて、前記記述ジョブ言語から前記一つまたは複数の代表的なサンプルを同定する、または、前記実験フェーズの前に、前記一つまたは複数の代表的なサンプルを同定するために使用されるデフォルト・ハードウェア構成フェーズにおいてジョブ実行が始まる、請求項1ないし9のうちいずれか一項記載の方法。
  11. 当該または各代表的なサンプルがジョブ全体の3%以下、好ましくは1%以下をなす、請求項1ないし10のうちいずれか一項記載の方法。
  12. 前記実験フェーズおよび前記完了フェーズは、ジョブが提出されるたびに実行され、好ましくは、さらに、前記完了フェーズの間にその後の実行データを収集し、その後の実行データが前記好適なハードウェア構成がもはや適切でないことを示す場合には前記実験フェーズまたは適応された実験フェーズに戻ることを含む、請求項1ないし11のうちいずれか一項記載の方法。
  13. 前記実験フェーズが、前記ハードウェア構成の全部が試験され終わるまでまたは好適なハードウェア構成が見出されるまで継続する、請求項1ないし12のうちいずれか一項記載の方法。
  14. 前記コンピュータ・システムはコンピュータ・クラスターを含み、前記ジョブは、いくつかのタスクに分割される少なくとも一つのアプリケーションからなり、それらのタスクは資源マネージャによって前記コンピュータ・クラスターのノードに割り当てられる、請求項1ないし13のうちいずれか一項記載の方法。
  15. 実行のために提出されたコンピューティング・ジョブを実行するようコンピュータ・システムにおいてコンピューティング資源を管理する資源マネージャであって、当該資源マネージャは:
    資源にジョブを割り当て、前記コンピュータ・システムの異なるハードウェア構成を生成するよう前記コンピュータ・システムの動作を制御するよう構成された制御モジュールであって、前記制御モジュールはまた、前記ジョブが部分的に実行される実験フェーズおよび前記ジョブの残りが実行される完了フェーズの二つのフェーズにおいて前記ジョブの実行を許容するよう構成されている、制御モジュールと;
    前記ジョブの一つまたは複数の代表的なサンプルを同定し、前記コンピュータ・システムの前記異なるハードウェア構成を記憶し、前記実験フェーズにおいて前記一つまたは複数の代表的なサンプルの実行を許容するよう、前記制御モジュールに、前記ジョブを前記コンピュータ・システム内の諸資源に割り当てるよう要求するよう構成されたエネルギー最適化器であって、当該または各代表的なサンプルは前記ジョブの一部であり、当該または各代表的なサンプルは前記コンピュータ・システムの各異なるハードウェア構成をもって実行される、エネルギー最適化器と;
    前記一つまたは複数の代表的なサンプルの実行中の各ハードウェア構成における実行速度および使用されるエネルギーを含む実行データを収集するよう構成されているモニタリング・モジュールとを有しており、
    前記エネルギー最適化器は、実行速度およびエネルギー使用を考慮に入れて前記ジョブについての好適なハードウェア構成を選択し、前記制御モジュールに、前記アプリケーションの残りを、前記好適なハードウェア構成をもって前記完了フェーズにおいて実行するよう要求するよう構成されている、
    資源マネージャ。
  16. 相互接続によって一緒に結合されてクラスターを形成するノードと、請求項15記載の資源マネージャとを有する高性能コンピュータ(HPC)・システム。
JP2014249650A 2013-12-16 2014-12-10 コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システム Active JP6409543B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13197559.1 2013-12-16
EP13197559.1A EP2884391B1 (en) 2013-12-16 2013-12-16 A method of executing a job in a computer system, a resource manager and a high performance computer system

Publications (2)

Publication Number Publication Date
JP2015118705A true JP2015118705A (ja) 2015-06-25
JP6409543B2 JP6409543B2 (ja) 2018-10-24

Family

ID=49841515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014249650A Active JP6409543B2 (ja) 2013-12-16 2014-12-10 コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システム

Country Status (3)

Country Link
US (1) US9870274B2 (ja)
EP (1) EP2884391B1 (ja)
JP (1) JP6409543B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402227B1 (en) * 2016-08-31 2019-09-03 Amazon Technologies, Inc. Task-level optimization with compute environments
JP6792159B2 (ja) * 2017-01-25 2020-11-25 富士通株式会社 並列処理パラメータ決定プログラム、並列処理パラメータ決定方法、および並列処理管理装置
US11132681B2 (en) 2018-07-06 2021-09-28 At&T Intellectual Property I, L.P. Services for entity trust conveyances
US10802872B2 (en) * 2018-09-12 2020-10-13 At&T Intellectual Property I, L.P. Task delegation and cooperation for automated assistants
US11481186B2 (en) 2018-10-25 2022-10-25 At&T Intellectual Property I, L.P. Automated assistant context and protocol
US10515005B1 (en) * 2018-12-20 2019-12-24 Atlassian Pty Ltd Systems and methods for testing source code
US11256547B2 (en) 2019-05-31 2022-02-22 Altair Engineering, Inc. Efficient allocation of cloud computing resources to job requests
US11765039B2 (en) * 2020-08-13 2023-09-19 Grass Valley Canada System and method for optimizing deployment of a processing function in a media production workflow

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208922A (ja) * 2004-01-22 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> グリッドシステムにおけるジョブ割付方法、グリッド仲介装置及びリソース計算機
US20070143765A1 (en) * 2005-12-21 2007-06-21 International Business Machines Corporation Method and system for scheduling of jobs
JP2007272653A (ja) * 2006-03-31 2007-10-18 Nec Corp ジョブスケジューリング装置およびジョブスケジューリング方法
US20090106008A1 (en) * 2007-10-18 2009-04-23 Michael John Branson Performance sampling in distributed systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125701A1 (en) 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US8555283B2 (en) 2007-10-12 2013-10-08 Oracle America, Inc. Temperature-aware and energy-aware scheduling in a computer system
US8612984B2 (en) 2010-04-28 2013-12-17 International Business Machines Corporation Energy-aware job scheduling for cluster environments
US9495139B2 (en) * 2011-04-11 2016-11-15 University Of Florida Research Foundation, Inc. Elastic computing
US8689220B2 (en) 2011-11-30 2014-04-01 International Business Machines Corporation Job scheduling to balance energy consumption and schedule performance
US9953054B2 (en) * 2013-04-22 2018-04-24 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system
US9529641B2 (en) 2013-08-26 2016-12-27 Cisco Technology, Inc. Data center thermal model

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208922A (ja) * 2004-01-22 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> グリッドシステムにおけるジョブ割付方法、グリッド仲介装置及びリソース計算機
US20070143765A1 (en) * 2005-12-21 2007-06-21 International Business Machines Corporation Method and system for scheduling of jobs
JP2007272653A (ja) * 2006-03-31 2007-10-18 Nec Corp ジョブスケジューリング装置およびジョブスケジューリング方法
US20090106008A1 (en) * 2007-10-18 2009-04-23 Michael John Branson Performance sampling in distributed systems

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ANANTA TIWARI ET AL.: "Auto-tuning for Energy Usage in Scientific Applications", PROCEEDINGS OF EUROPEAN CONFERENCE ON PARALLEL PROCESSING 2011 (EURO-PAR 2011) : PARALLEL PROCESSIN, JPN6018025323, 2011, pages all 10 pages *
ANANTA TIWARI, JEFFREY K. HOLLINGSWORTH: "Online Adaptive Code Generation and Tuning", PROCEEDINGS OF 2011 IEEE INTERNATIONAL PARALLEL & DISTRIBUTED PROCESSING SYMPOSIUM, JPN6018025321, 16 May 2011 (2011-05-16), pages Pages:879-892 *
I-HSIN CHUNG, JEFFREY K. HOLLINGSWORTH: "A Case Study Using Automatic Performance Tuning for Large-Scale Scientific Programs", PROCEEDINGS OF 15TH IEEE INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE DISTRIBUTED COMPUTING, JPN6018025320, 19 June 2006 (2006-06-19), pages Pages:45-56 *
SEBASTIAN GOTZ ET AL.: "Architecture and Mechanisms of Energy Auto-Tuning", SUSTAINABLE ICTS AND MANAGEMENT SYSTEMS FOR GREEN COMPUTING, JPN6018025322, 2012 *

Also Published As

Publication number Publication date
EP2884391A1 (en) 2015-06-17
US9870274B2 (en) 2018-01-16
EP2884391B1 (en) 2017-08-30
JP6409543B2 (ja) 2018-10-24
US20150169383A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
JP6409543B2 (ja) コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システム
Ananthanarayanan et al. Effective straggler mitigation: Attack of the clones
Cheng et al. Improving performance of heterogeneous mapreduce clusters with adaptive task tuning
US10423451B2 (en) Opportunistically scheduling and adjusting time slices
Sarood et al. Maximizing throughput of overprovisioned hpc data centers under a strict power budget
JP6219512B2 (ja) 仮想ハドゥープマネジャ
EP2259184B1 (en) Multi-core scheduling for parallel queries
Soualhia et al. Task scheduling in big data platforms: a systematic literature review
CN108701060A (zh) 用于计算系统自动调整的方法
Cheng et al. Towards energy efficiency in heterogeneous hadoop clusters by adaptive task assignment
Wang et al. eSplash: Efficient speculation in large scale heterogeneous computing systems
Huang et al. Novel heuristic speculative execution strategies in heterogeneous distributed environments
US9614728B2 (en) Identifying network communication patterns
Yu et al. System-wide trade-off modeling of performance, power, and resilience on petascale systems
JP6477260B2 (ja) アプリケーションを実行する方法及びリソースマネジャ
da Rosa Righi et al. Joint‐analysis of performance and energy consumption when enabling cloud elasticity for synchronous HPC applications
Wang et al. A model driven approach towards improving the performance of apache spark applications
US9052952B1 (en) Adaptive backup model for optimizing backup performance
Liu et al. A case of system-wide power management for scientific applications
Wang et al. A dynamic resource allocation framework for apache spark applications
Ngoko et al. Reducing the number of comatose servers: automatic tuning as an opportunistic cloud-service
US20230004440A1 (en) Allocating of computing resources for applications
Elahi et al. A generic execution management framework for scientific applications
Le Merrer et al. Application-aware adaptive partitioning for graph processing systems
Xhafa Xhafa A hyper-heuristic for adaptive scheduling in computational grids

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180817

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180910

R150 Certificate of patent or registration of utility model

Ref document number: 6409543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150