(58)【調査した分野】(Int.Cl.,DB名)
前記ユーザ定義リソース設定は、前記シミュレーションジョブを実行するための並列プロセスの数を含み、並列プロセスの異なる数が、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定に含まれ、
前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブの実行を表す前記性能統計量の各々は、前記シミュレーションジョブ全体又は前記シミュレーションジョブの指定された部分を実行するのに要した時間を含み、
前記アラートジェネレータは、
実行するのに要したそれぞれの前記時間の比較に基づいて、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、
前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブのうち、実行するのに短い方の前記時間を要した実行済みシミュレーションジョブの前記並列プロセスの数を、前記アラートにおいて示す
よう構成されている、請求項1に記載のシステム。
前記ユーザ定義リソース設定は、1つの並列プロセス当たりのスレッドの数をさらに含み、1つの並列プロセス当たりのスレッドの異なる数が、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定に含まれ、
前記アラートジェネレータは、前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブのうち、実行するのに短い方の前記時間を要した実行済みシミュレーションジョブの前記並列プロセスの数と前記1つの並列プロセス当たりのスレッドの数とを、前記アラートにおいて示すよう構成されている、請求項4に記載のシステム。
前記アラートジェネレータは、前記第1の実行済みシミュレーションジョブと確認された前記第2の実行済みシミュレーションジョブとの間の、前記性能変数についての性能の尺度における差異を、性能向上量として定量化し、性能向上量の順に、前記候補アラートをランク付けし、上位n個のランク付けされた前記候補アラートの各候補アラートを前記システムユーザに通知することにより、アラートを生成するよう構成されている、請求項6に記載のシステム。
前記アラートジェネレータは、指定された前記シミュレーションジョブと、指定された前記シミュレーションジョブに類似すると判定された前記1つ以上の実行済みシミュレーションジョブの各実行済みシミュレーションジョブと、の間の類似性のレベルを、当該実行済みシミュレーションジョブの値が、予め規定されたマージン内で、指定された前記シミュレーションジョブについての値と合致したジョブ特性パラメータ及び/又はユーザ定義リソース設定の数に基づいて、定量化するよう構成されており、
前記アラートジェネレータは、指定された前記シミュレーションジョブと、リソース設定及び性能向上量が記憶されている前記実行済みシミュレーションジョブと、の間の定量化された前記類似性のレベルに基づいて、候補アラートに重み付けを付与し、付与された前記重み付けにより重み付けされた性能向上量の順に、前記候補アラートをランク付けし、上位n個のランク付けされた前記候補アラートの各候補アラートを前記システムユーザに通知することにより、アラートを生成するよう構成されている、請求項3又は6に記載のシステム。
前記アラートジェネレータは、生成された前記アラートを前記ジョブスケジューラに送信するよう構成されており、前記ジョブスケジューラは、前記アラートにおいて識別された異なるユーザ定義リソース設定を、前記システムユーザにより送信される次のシミュレーションジョブについてのデフォルトとして設定するよう構成されている、請求項1に記載のシステム。
前記性能統計量メモリは、指定された前記シミュレーションジョブが完了すると、指定された前記シミュレーションジョブについて実行済みシミュレーションジョブとして、指定された前記シミュレーションジョブの特性、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定、及び、指定された前記シミュレーションジョブの実行を表す、前記性能モニタにより生成された前記性能統計量を記憶するよう構成されている、請求項1に記載のシステム。
指定された前記シミュレーションジョブの前記特性が、前記性能統計量メモリ内の実行済みシミュレーションジョブの特性と同じであり、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定と、該実行済みシミュレーションジョブについてのユーザ定義リソース設定と、が同じであると、前記システムが判定した場合、前記システムは、前記性能統計量を集約して各性能変数について平均値を生成し、前記アラートジェネレータによる他の実行済みシミュレーションジョブとの比較のための性能統計量として、前記平均値を記憶する、請求項10に記載のシステム。
指定された前記シミュレーションジョブの前記特性が、前記性能統計量メモリ内の実行済みシミュレーションジョブの特性と同じであり、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定と、該実行済みシミュレーションジョブについてのユーザ定義リソース設定と、が異なると、前記システムが判定した場合、前記システムは、指定された前記シミュレーションジョブの前記性能統計量と、該実行済みシミュレーションジョブの性能統計量と、をリンクする、請求項10又は11に記載のシステム。
【発明の概要】
【発明が解決しようとする課題】
【0012】
上記アプローチは、ユーザが、アプリケーションドメインとHPCリソースの特性との両方の深い知識を有することを必要とする。これは、専門家でないユーザが、そのようなHPCリソースを効率的に使用することを難しくする。
【課題を解決するための手段】
【0013】
実施形態は、シミュレーションジョブを実行するためのシステムであって、
システムユーザにより送信されたジョブリクエストを受信するよう構成されているジョブスケジューラであって、前記ジョブリクエストは、シミュレーションジョブと、該シミュレーションジョブについてのユーザ定義リソース設定(user-defined resource settings)と、を指定する、ジョブスケジューラと、
前記ジョブスケジューラにより命令されるようにシミュレーションジョブを実行するよう構成されているコンピューティングハードウェアリソースであって、前記ジョブスケジューラは、前記ユーザ定義リソース設定に従って、指定された前記シミュレーションジョブを実行するように前記コンピューティングハードウェアリソースに命令するよう構成されている、コンピューティングハードウェアリソースと、
前記コンピューティングハードウェアリソースによる指定された前記シミュレーションジョブの実行をモニタリングし、モニタリングされている前記実行を表す性能統計量を生成するよう構成されている性能モニタと、
複数の実行済みシミュレーションジョブの各実行済みシミュレーションジョブについて、当該実行済みシミュレーションジョブの特性、当該実行済みシミュレーションジョブについてのユーザ定義リソース設定、及び当該実行済みシミュレーションジョブの実行を表す性能統計量を記憶するよう構成されている性能統計量メモリと、
アラートジェネレータであって、
指定された前記シミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定し、
判定された前記1つ以上の実行済みシミュレーションジョブの中から、第1の実行済みシミュレーションジョブであって、記憶されている前記特性が、第2の実行済みシミュレーションジョブの記憶されている前記特性と同じであり、前記ユーザ定義リソース設定のうちの1つ以上のユーザ定義リソース設定が、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとの間で異なる、第1の実行済みシミュレーションジョブを識別し、
前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、
向上されている性能統計量を有するとして識別された前記第1の実行済みシミュレーションジョブ又は前記第2の実行済みシミュレーションジョブの前記1つ以上のユーザ定義リソース設定を示す、前記システムユーザに対するアラートを生成する
よう構成されているアラートジェネレータと、
を有する、システムを含む。
【0014】
有利なことに、実施形態は、ユーザ定義リソース設定を変更することにより性能向上が得られ得るという、システムユーザに対するアラートを発する。アラートジェネレータは、実装に応じて、指定されたシミュレーションジョブの実行中及び実行後の両方で動作可能であり、したがって、システムユーザは、指定されたシミュレーションジョブの実行中に、又は、シミュレーションジョブが一連のシミュレーションジョブにおける1つである場合には、一連のシミュレーションジョブにおけるその後のシミュレーションジョブの実行を向上させるために実行後に、リソース設定を変更することができる。
【0015】
実施形態は、向上されたアプリケーション効率性及びコンピューティングハードウェアリソース使用を可能にする。システムは、過去のシミュレーションジョブにおける向上された性能を同程度に実現している、リソース設定における差異をハイライトしたアラートを、ユーザに出力する。アラートジェネレータにより出力される、リソース設定における差異を実現することは、コンピューティングハードウェアリソースが、ユーザの経験のレベルにかかわらず全てのユーザにとって最適な方法で使用されていることを確実にする。すなわち、システムは、性能統計量メモリに過去のデータを記憶し、その過去のデータは、リソース設定を定義する際に、システムユーザの経験の欠如を補う。これを行う際、システムはまた、最適な使用のためにコンピューティングハードウェアリソースをモニタリングするための自動化された機構を提供する。
【0016】
性能統計量メモリに、過去の性能統計量及び関連付けられたジョブ特性並びにジョブリソース設定情報を記憶することにより、アラートジェネレータは、専門家でない場合があるシステムユーザに情報を与えるアラートを生成することができ、したがって、システムユーザは、最良の構成をもって、現在のシミュレーションジョブ及び/又は将来のシミュレーションジョブを実行することができる。実行されているシミュレーションジョブに類似するシミュレーションを実行した経験をほとんど又は全くない有さないユーザは、ユーザ定義リソース設定が性能を向上させるように適応され得るかどうかを決定する際に、類似するジョブの過去の実行の記憶されている知識から恩恵を受けることができる。これは、システム管理又は性能最適化チームからのいかなる入力も必要とすることなく、達成される。
【0017】
性能統計量メモリの使用はまた、性能透過性を増大させ、アプリケーション性能及び最適化技術の向上された情報共有を可能にする。
【0018】
ユーザ定義リソース設定は、ジョブスケジューラが、シミュレーションジョブを実行するようにコンピューティングハードウェアリソースをスケジューリングする(すなわち、コンピューティングハードウェアリソースに命令する)際の、コンピューティングハードウェアリソースの選択及び使用を決定する。ユーザ定義リソース設定は、単にリソース設定と呼ばれることもある。ユーザ定義リソース設定は、ジョブスケジューラにおいてデフォルト値を有することがあり、したがって、ユーザ定義可能なリソース設定と呼ばれることもある。
【0019】
指定されたシミュレーションジョブに類似すると判定される実行済みシミュレーションジョブは、指定されたシミュレーションジョブと同じユーザ定義リソース設定を有する実行済みシミュレーションジョブに限定され得る。そのような実施形態において、第1の実行済みシミュレーションジョブに対して第2の実行済みシミュレーションジョブにおいて向上されている性能統計量が判定される。
【0020】
ジョブスケジューラ、性能モニタ、及びアラートジェネレータの各々は、メモリに接続されるプロセッサ(例えば、CPU)であり得る。メモリは、処理命令と、処理入力、処理出力、及び処理中間形態と、を記憶する。
【0021】
任意的に、指定されたシミュレーションジョブの特性が取得されてもよく、指定されたシミュレーションジョブに類似すると判定される実行済みシミュレーションジョブは、指定されたシミュレーションジョブと同じジョブ特性を有する実行済みシミュレーションジョブに限定されてもよい。
【0022】
任意的に、
前記ユーザ定義リソース設定は、複数の個々の設定の各個々の設定の値を含み、
指定された前記シミュレーションジョブと前記実行済みシミュレーションジョブの各実行済みシミュレーションジョブとは、シミュレーティングアプリケーション入力に従ってシミュレーションモデルを実行するシミュレーティングアプリケーションを含み、
前記実行済みシミュレーションジョブの記憶されている前記特性は、前記シミュレーティングアプリケーションを表す複数のジョブ特性パラメータの各ジョブ特性パラメータの値、前記シミュレーションモデル、及び前記シミュレーティングアプリケーション入力を含み、
前記アラートジェネレータは、
指定された前記シミュレーションジョブについての前記複数のジョブ特性パラメータの各ジョブ特性パラメータの値を取得することにより、指定された前記シミュレーションジョブの特性を取得し、
前記複数のジョブ特性パラメータの各ジョブ特性パラメータのそれぞれの値の比較と、それぞれの前記個々の設定の各個々の設定の値の比較と、に基づいて、実行済みシミュレーションジョブが、指定された前記シミュレーションジョブに類似するか否かを判定する
よう構成される。
【0023】
有利なことに、そのような実施形態は、類似する、したがって、同等な過去に実行されたシミュレーションジョブを判定するための自動化されたプロシージャを形式化する。そのような形式化は、処理の点で効率的であり、また、関連する過去のシミュレーションジョブにおける変更されたリソース設定が確認されたときに、アラートが発されることを確実にする。
【0024】
シミュレーションモデルは、1つのアルゴリズム又は一連のリンクされたアルゴリズム、及び、入力をシミュレーション結果に変換する他の処理命令である。シミュレーティングアプリケーションは、特定のシミュレーションモデルにひも付けられることもあるし、シミュレーティングアプリケーションは、汎用的であり、複数のシミュレーションモデルのうちの1つを実行できることもある。シミュレーションモデルは、それ自体シミュレーティングアプリケーションへの入力であることもある。
【0025】
シミュレーティングアプリケーション入力は、例えば、シミュレーションのどれだけの回数の反復が実行されるかと、構成の特定の側面の詳細レベルと、ドメイン固有のオプションと、を決定することができる。シミュレーティングアプリケーション入力は、アプリケーションの内部にあり、どのように動作するかをシミュレーティングアプリケーションに命令する。
【0026】
さらに、前記アラートジェネレータは、
指定された前記シミュレーションジョブについての前記ジョブ特性パラメータ及び/又はユーザ定義リソース設定の各々の値を、前記実行済みシミュレーションジョブの各実行済みシミュレーションジョブの同じジョブ特性パラメータ及び/又はユーザ定義リソース設定の値と比較することにより、指定された前記シミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定し、
前記実行済みシミュレーションジョブについての予め規定された数又は比率の値が、同じジョブ特性評価及び/又はユーザ定義リソース設定について、予め規定されたマージン内で、指定された前記シミュレーションジョブについての値と合致した場合、前記実行済みシミュレーションジョブが、指定された前記シミュレーションジョブに類似すると判定する
よう構成されてもよい。
【0027】
有利なことに、そのような実施形態は、その実装に応じて、例えば、システム設計時に、類似性の観念(notion)が調整されることを可能にする。異なる値が合致であるか否かを判定する際に、いくつかのジョブ特性パラメータにおいて、他のジョブ特性パラメータよりも大きな許容範囲が存在してもよい。さらに、そのような実施形態は、2つのシミュレーションジョブ間の類似性を定量化するための基礎を提供する。
【0028】
任意的に、
前記ユーザ定義リソース設定は、前記シミュレーションジョブを実行するための並列プロセスの数を含み、並列プロセスの異なる数が、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定に含まれ、
前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブの実行を表す前記性能統計量の各々は、前記シミュレーションジョブ全体又は前記シミュレーションジョブの指定された部分を実行するのに要した時間を含み、
前記アラートジェネレータは、
実行するのに要したそれぞれの前記時間の比較に基づいて、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、
前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブのうち、実行するのに短い方の前記時間を要した実行済みシミュレーションジョブの前記並列プロセスの数を、前記アラートにおいて示す
よう構成される。
【0029】
そのような実施形態は、指定されたシミュレーションジョブの実行が並列化されるプロセスの数において向上がなされ得るかどうかを判定するために、類似するシミュレーションジョブの過去の実行に関する性能統計量が利用されることを可能にする。さらに、そのような向上がなされ得る場合、指定されたシミュレーションジョブの実行の途中で、又は、システムユーザによる次の類似するシミュレーションジョブの実行の前に、変更を実施できるように、システムユーザにアラートされる。ここで、シミュレーションジョブは、しばしば、一連のそのようなジョブのうちの1つであることに留意されたい。
【0030】
例えば、比較される性能統計量は、実行するための時間、すなわち、シミュレーションジョブの開始から完了までに経過した時間である。
【0031】
任意的に、
前記ユーザ定義リソース設定は、1つの並列プロセス当たりのスレッドの数をさらに含み、1つの並列プロセス当たりのスレッドの異なる数が、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定に含まれ、
前記アラートジェネレータは、前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブのうち、実行するのに短い方の前記時間を要した実行済みシミュレーションジョブの前記並列プロセスの数と前記1つの並列プロセス当たりのスレッドの数とを、前記アラートにおいて示すよう構成される。
【0032】
そのような実施形態は、指定されたシミュレーションジョブの実行が並列化される1つのプロセス当たりのスレッドの数において向上がなされ得るかどうかを判定するために、類似するシミュレーションジョブの過去の実行に関する性能統計量が利用されることを可能にする。さらに、そのような向上がなされ得る場合、指定されたシミュレーションジョブの実行の途中で、又は、システムユーザによる次の類似するシミュレーションジョブの実行の前に、変更を実施できるように、システムユーザにアラートされる。ここで、シミュレーションジョブは、しばしば、一連のそのようなジョブのうちの1つであることに留意されたい。
【0033】
任意的に、
前記ユーザ定義リソース設定は、前記シミュレーションジョブにおいて生じるI/O操作のためのファイルシステムの選択を含み、I/O操作のための異なるファイルシステムが、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定において選択され、
モニタリングされている前記実行を表す前記性能統計量と、前記実行済みシミュレーションジョブの実行を表す前記性能統計量と、の各々は、前記シミュレーションジョブ全体又は前記シミュレーションジョブの指定された部分において生じたI/O操作を完了するのに要した時間を含み、
前記アラートジェネレータは、
I/O操作を完了するのに要したそれぞれの前記時間の比較に基づいて、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとから、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方と比較して向上されている性能統計量を有する実行済みシミュレーションジョブを識別し、
前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうち、I/O操作を完了するのに短い方の前記時間を要した前記実行済みシミュレーションジョブのI/O操作のためのファイルシステムを、前記アラートにおいて示す
よう構成される。
【0034】
そのような実施形態は、指定されたシミュレーションジョブにおけるI/O操作のために使用されるファイルシステムにおいて向上がなされ得るかどうかを判定するために、類似するシミュレーションジョブの過去の実行に関する性能統計量が利用されることを可能にする。さらに、そのような向上がなされ得る場合、指定されたシミュレーションジョブの実行の途中で、又は、システムユーザによる次の類似するシミュレーションジョブの実行の前に、変更を実施できるように、システムユーザにアラートされる。ここで、シミュレーションジョブは、しばしば、一連のそのようなジョブのうちの1つであることに留意されたい。
【0035】
任意的に、
各性能統計量は、前記シミュレーションジョブの実行の側面の性能の尺度を示す性能変数の値であり、
前記アラートジェネレータは、
指定された前記シミュレーションジョブに類似すると判定された前記実行済みシミュレーションジョブの各実行済みシミュレーションジョブについて、前記第1の実行済みシミュレーションジョブとして識別することにより、複数の候補アラートを識別し、
記憶されている前記特性が、類似すると判定された前記実行済みシミュレーションジョブについての記憶されている前記特性と同じである実行済みシミュレーションジョブが存在するかどうかを判定し、
存在する場合、前記実行済みシミュレーションジョブのうち、同じ記憶されている特性を有するとともに、各性能変数についての性能の最良の尺度を示す値を有する実行済みシミュレーションジョブを、前記第2の実行済みシミュレーションジョブとして確認し、
予め規定されたマッピングを使用して、前記性能変数を、該性能変数に影響を及ぼす1つ以上のリソース設定にマッピングし、
マッピングされた前記1つ以上のリソース設定の値が、確認された前記第2の実行済みシミュレーションジョブと指定された前記シミュレーションジョブとの間で異なる場合、前記性能変数、確認された前記第2の実行済みシミュレーションジョブのマッピングされた前記1つ以上のリソース設定、及びリソース設定における差異を、候補アラートとして記憶する
よう構成され、
前記アラートジェネレータは、さらに、記憶されている前記候補アラートからアラートを選択することにより、前記システムユーザに対するアラートを生成するよう構成される。
【0036】
各性能統計量は、シミュレーションジョブの実行の側面の性能の尺度を示す性能変数の値である。向上されたという観念が、アラートジェネレータにおいて予め規定されるので、各性能変数について、性能の向上された尺度が、相対的に大きい又は相対的に小さい値により示されるかが、予め規定される。性能の尺度に対する値のマッピングがより複雑である性能変数が存在し、値により示される性能の尺度を確立するためのマッピング又は式が、アラートジェネレータにより予め規定され記憶されることがあり得る。
【0037】
さらに、前記アラートジェネレータは、前記第1の実行済みシミュレーションジョブと確認された前記第2の実行済みシミュレーションジョブとの間の、前記性能変数についての性能の尺度における差異を、性能向上量として定量化し、性能向上量の順に、前記候補アラートをランク付けし、上位n個のランク付けされた前記候補アラートの各候補アラートを前記システムユーザに通知することにより、アラートを生成するよう構成されてもよい。
【0038】
有利なことに、そのような実施形態は、多くの候補アラートが存在するときに、アラートを優先順位付けするための機構を提供する。実行されたシミュレーションの数が増大するにつれて、指定されたシミュレーションジョブとの比較のために性能統計量メモリにおいて性能統計量及びリソース設定が利用可能である異なるシミュレーションの数も増大する。したがって、候補アラートの数も増大し得る。性能に対してより大きな影響を及ぼす可能性がより高い潜在的なリソース設定を、システムユーザに提供することは重要であり、したがって、上述したランク付けシステムが実装される。
【0039】
いくつかの実施形態において、
前記アラートジェネレータは、指定された前記シミュレーションジョブと、指定された前記シミュレーションジョブに類似すると判定された前記1つ以上の実行済みシミュレーションジョブの各実行済みシミュレーションジョブと、の間の類似性のレベルを、当該実行済みシミュレーションジョブの値が、予め規定されたマージン内で、指定された前記シミュレーションジョブについての値と合致したジョブ特性パラメータ及び/又はユーザ定義リソース設定の数に基づいて、定量化するよう構成され、
前記アラートジェネレータは、さらに、指定された前記シミュレーションジョブと、リソース設定及び性能向上量が記憶されている前記実行済みシミュレーションジョブと、の間の定量化された前記類似性のレベルに基づいて、候補アラートに重み付けを付与し、付与された前記重み付けにより重み付けされた性能向上量の順に、前記候補アラートをランク付けし、上位n個のランク付けされた前記候補アラートの各候補アラートを前記システムユーザに通知することにより、アラートを生成するよう構成される。
【0040】
ランク付けのさらなる発展形として、類似性を効果的に適量化する能力は、指定されたシミュレーションと、相対的に向上されている性能統計量が性能統計量メモリに記録されている実行済みシミュレーションと、の間の相関性の尺度を提供する。この相関性の尺度は、性能向上を加減し、したがって、指定されたシミュレーションジョブに対する適用可能性又は妥当性、及び性能向上の潜在的な程度が、ランク付けプロセスにおいて考慮される。
【0041】
任意的に、前記アラートジェネレータは、生成された前記アラートを前記ジョブスケジューラに送信するよう構成され、前記ジョブスケジューラは、前記アラートにおいて識別された異なるユーザ定義リソース設定を、前記システムユーザにより送信される次のシミュレーションジョブについてのデフォルトとして設定するよう構成される。
【0042】
各ユーザ定義リソース設定は、変数の設定値である。例えば、変数は、プロセス間通信のためにどの通信ライブラリを使用するかであり得、値は、複数のそのようなライブラリからの1つのライブラリの選択である。変数は、どれだけの数のプロセスを使用するかであり得、値は、選択された値である。変数は、どのプロセッサを使用するかであり得、値は、選択された1つのプロセッサ又は複数のプロセッサを識別する。変数は、I/O操作のためにどのファイルシステムを使用するかであり得、値は、複数の利用可能なファイルシステムからの選択された1つのファイルシステムを識別する。
【0043】
デフォルト設定を許可するか否かと、システムがデフォルトを設定することを許可する設定と、デフォルトが、ユーザにより以前に定義されたリソース設定に取って代わることが許可されるか否かと、を決定するためのシステムユーザ設定可能なオプションが存在してもよい。シミュレーションジョブが、しばしば、一連のシミュレーションジョブのうちの1つとして生じることを考慮して、デフォルトとして差異を自動的に実現するシステムは、システムユーザによる次の実行についての性能向上を実現するための機構を提供する。
【0044】
性能統計量及びユーザ定義リソース設定が性能統計量メモリに記憶されている実行済みシミュレーションジョブは、システムにより実行されたシミュレーションジョブであることがある。
【0045】
任意的に、前記性能統計量メモリは、指定された前記シミュレーションジョブが完了すると、指定された前記シミュレーションジョブについて実行済みシミュレーションジョブとして、指定された前記シミュレーションジョブの特性、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定、及び、指定された前記シミュレーションジョブの実行を表す、前記性能モニタにより生成された前記性能統計量を記憶するよう構成される。
【0046】
有利なことに、指定されたシミュレーションジョブは、性能統計量が性能統計量メモリに記憶されることに拡張され、したがって、将来のシミュレーションジョブについてアラートを生成するシステムの能力を向上させる。
【0047】
さらに、指定された前記シミュレーションジョブの前記特性が、前記性能統計量メモリ内の実行済みシミュレーションジョブの特性と同じであり、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定と、該実行済みシミュレーションジョブについてのユーザ定義リソース設定と、が同じであると、前記システムが判定した場合、前記システムは、前記性能統計量を集約して各性能変数について平均値を生成し、前記アラートジェネレータによる他の実行済みシミュレーションジョブとの比較のための性能統計量として、前記平均値を記憶する。
【0048】
システムに付与される機能は、複数のコンポーネントのうちのいずれかにより実行され得る。一例として、性能統計量メモリは、上記機能を実行するためのコントローラ機能を有する。代替として、上記機能は、性能モニタにより実行されてもよい。
【0049】
さらに、指定された前記シミュレーションジョブの前記特性が、前記性能統計量メモリ内の実行済みシミュレーションジョブの特性と同じであり、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定と、該実行済みシミュレーションジョブについてのユーザ定義リソース設定と、が異なると、前記システムが判定した場合、前記システムは、指定された前記シミュレーションジョブの前記性能統計量と、該実行済みシミュレーションジョブの性能統計量と、をリンクする。
【0050】
新たな実行が、過去の実行済みジョブと同じジョブ特性を有するが、異なるユーザ定義リソース設定を有する(例えば、ジョブが、異なる数のプロセスを使用する又は異なるファイルシステムへのI/Oを実行する)場合、新たな性能統計量及びジョブ情報が、過去の実行済みジョブについての性能統計量及びジョブ情報にリンクされるが、これらは、異なる設定を使用して生成されたので、性能統計量は集約されない。これらのリンクを作成することにより、ジョブ依頼設定を変更することによりアプリケーション性能にどのように影響を及ぼすかの像を描くことが可能である。これが、
図11に示されており、
図11において、ある範囲の異なるプロセス数で実行された同じシミュレーション問題についての性能情報が組み合わされている。
【発明を実施するための形態】
【0052】
図4のシステムは、コンピューティングハードウェアリソース20と、それらコンピューティングハードウェアリソースのためのコントローラ10又は管理システムと、のシステムである。コンピューティングハードウェアリソース20は、シミュレーションジョブを実行するよう適合され、HPC(高性能コンピューティング)リソースであり得る。コンピューティングハードウェアリソース20は、揮発性(非永続的)及び不揮発性(永続的/ストレージ)の両方のメモリ、プロセッサ、及びデータI/O装置ハードウェアコンポーネントを含む。コンピューティングハードウェアリソース20は、相互接続され、シミュレーションを実行するためのシミュレーティングアプリケーションを含むソフトウェアにアクセスすることができる。コンピューティングハードウェアリソース20は、ジョブスケジューラ12の命令の下で動作し、ジョブスケジューラ12は、どのリソースがどのシミュレーションジョブをいつ実行するかを決定する。コンピューティングハードウェアリソースは、例えば、例えばインフラストラクチャアズアサービスといったクラウドコンピューティングインフラストラクチャであり得る。
【0053】
ジョブスケジューラ12は、システムユーザからジョブリクエストを受信する。アラートジェネレータ18は、システムユーザにアラートを出力する。特に、ジョブスケジューラ12及び性能モニタ14は、コンピューティングハードウェアリソース20と直接インタラクトするが、アラートジェネレータ18又は性能統計量メモリ16とコンピューティングハードウェアリソース20との間の直接インタラクションも生じることがある。
【0054】
シミュレーションジョブは、システムユーザによりジョブスケジューラ12に送信されたコマンドのセットであるジョブリクエストにより指定され(すなわち、リクエストされ)、ジョブスケジューラ12は、HPCワークロードマネージャ又はバッチスケジューラでもあってよい。シミュレーションジョブは、前処理、メインシミュレーションの実行、及び後処理等の、ワークフローの異なる段階を実行する1つ以上のアプリケーションからなり得る。
【0055】
シミュレーションジョブは、コンピューティングハードウェアリソースにより実行されシミュレーティングアプリケーション入力に従ってシミュレーションモデルを実行するシミュレーティングアプリケーションを含む。シミュレーティングアプリケーション入力は、例えば、シミュレーションのどれだけの回数の反復が実行されるかと、構成の特定の側面の詳細レベルと、ドメイン固有のオプションと、を決定することができる。シミュレーティングアプリケーション入力は、アプリケーションの内部にあり、どのように動作するかをシミュレーティングアプリケーションに命令する。シミュレーティングアプリケーション入力は、ユーザ定義リソース設定とは別個のものであり、ユーザ定義リソース設定は、ジョブスケジューラ12が、シミュレーションジョブを実行するようにコンピューティングハードウェアリソース20をスケジューリングする(すなわち、コンピューティングハードウェアリソース20に命令する)際の、コンピューティングハードウェアリソースの選択及び使用を決定する。ジョブリクエストは、シミュレーションジョブを指定し、その仕様は、少なくとも、シミュレーティングアプリケーション、シミュレーションモデル(このシミュレーションモデルが、シミュレーティングアプリケーションにおけるデフォルトである場合を除く)、及びユーザ定義リソース設定(例えば、プロセスの数、1つのプロセス当たりのスレッドの数、プロセス間通信ライブラリ、I/O操作のためのファイルシステム)を列挙する。ジョブリクエストは、どのように動作するかをシミュレーティングアプリケーションに命令するためのシミュレーティングアプリケーション入力を指定することもできる。
【0056】
プロセスは、コンピュータプログラム又はアプリケーションの実行である。これは、プログラムコード、関連付けられたヒープメモリ及びスタックメモリ、並びにコンピュータプログラムのインスタンスについての実行状態を含む。コンピューティングハードウェアリソース20のシステム上での並列実行の1つの方法は、異なるデータ片に対して類似する命令を実行する(すなわち、同じモデルを実行する)複数のプロセスを実行することによるものである。プロセス間の連携は、MPI(メッセージパッシングインタフェース)等のプロセス間通信ライブラリを使用することにより達成される。
【0057】
プロセスは、システム上での並列処理の別のソースであるスレッドと呼ばれる複数の独立した「ストランド」を含み得る。スレッドは、1つのプロセスの一部であるので、したがって、これらのスレッドは、プロセスのヒープデータを共用して、同じデータに対する協調を可能にする。スレッドはまた、スレッド自身のスタックを用いて、必要とされるときに独立した実行を可能にするプライベートデータを有することができる。
【0058】
ジョブスケジューラ12は、システムユーザから、(ジョブスクリプトであってもよいしジョブスクリプトを含んでもよい)ジョブリクエストを受信するよう構成されている。例えば、ジョブスケジューラ12が、ジョブリクエストの形成のためにシステムユーザによりアクセス可能なインタフェースを提供すること、又は、システムユーザが、アドレスにジョブリクエストを送信し又は特定の物理アドレスにおいてジョブリクエストを記憶させ、そのようにして、ジョブが、ジョブスケジューラ12により受信されること、があり得る。ジョブスケジューラ12は、ジョブリクエストをパーシングして関連情報を抽出する。
【0059】
ジョブスケジューラ12の正確な機能は、実装に固有である。ジョブスケジューラ12は、シミュレーションジョブのキューを保持し、ジョブリクエストに基づいて、各シミュレーションジョブのために必要とされるコンピューティングハードウェアリソース20を決定すると、ジョブスケジューラ12は、必要とされるコンピューティングハードウェアリソース20が利用可能になったときに、キューからのジョブを実行するようにコンピューティングハードウェアリソース20に命令する。例えば、キューが、先入れ先出しに基づいて動作されること、又は、優先順位付けの何らかの他のシステムが動作すること、があり得る。
【0060】
性能モニタ14は、コンピューティングハードウェアリソース20による、指定されたシミュレーションジョブの実行をモニタリングし、モニタリングされている実行を表す性能統計量を生成するよう構成されている。例えば、性能モニタ14は、通信時間、計算時間、及びI/O時間等の、ジョブ内の異なる段階の実行の時間を測定することができる。性能モニタ14は、プロファイリングツール及びトレーシングツールを使用して、性能統計量を収集することができる。
【0061】
プロファイリングツールは、シミュレーションジョブの実行中の性能の要約統計量(性能統計量)を収集することにより、アプリケーション性能解析を実行する。生成される性能統計量は、次のうちの1つ以上を含み得る:ルーチンにおける時間、ルーチンの数、プロセス間通信の呼び出し(invocations)、及び、アプリケーションにおいて呼び出された関数の呼び出しツリー。
【0062】
トレーシングツールは、実行イベントがいつ及びどこで発生したかの時系列の配列(chronology)を記録することにより、アプリケーション性能解析を実行する。生成される性能統計量は、関数又はループにいつ入ったか及び関数又はループからいつ出たかや、通信メッセージがいつ送信又は受信されたか、を含み得る。
【0063】
アラートジェネレータ18及びジョブスケジューラ12の両方が、ワークロードマネージャ装置又はシステムコントローラ、すなわち、システムのコンピューティングハードウェアリソース20に対する制御機能又は管理機能を実行するコンピューティングデバイス、により実行され得る機能である。コンピューティングデバイスは、プロセッサ、メモリ、ネットワーク接続性、入力機構(マウス、キーボードを介する直接的なもの、及び/又は、ネットワーク若しくはインターネット接続を介するもの)、出力機構(ディスプレイを介する直接的なもの、及び/又は、ネットワーク若しくはインターネット接続を介するもの)を有することができる。
【0064】
アラートジェネレータ18は、指定されたシミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定するよう構成されている。実行済みシミュレーションジョブは、過去に実行が生じたシミュレーションジョブであるので、過去の実行済みシミュレーションジョブと呼ばれることもある。性能統計量メモリ16は、複数の実行済みシミュレーションジョブの各々について、当該実行済みシミュレーションジョブの特性、当該実行済みシミュレーションジョブについてのユーザ定義リソース設定、及び、当該実行済みシミュレーションジョブの実行を表す性能統計量を記憶する。
【0065】
類似性の判定は、単にユーザ定義リソース設定に基づいてもよいし、ユーザ定義リソース設定が合致した場合にのみ又は類似するとみなされる場合にのみ、シミュレーションジョブの特性にも基づいて、2つのシミュレーションジョブが類似すると判定されることに制約されてもよい。ユーザ定義リソース設定は、複数の個々の設定の各個々の設定の値を含み得、したがって、類似性は、指定されたシミュレーションジョブと実行済みシミュレーションジョブとの各個別の設定のそれぞれの値を比較することにより、判定される。
【0066】
特性は、指定されたシミュレーションジョブ及び過去の実行済みシミュレーションジョブを表すために使用される。特性は、類似性判定の基礎を形成する。例えば、実行済みシミュレーションジョブの記憶される特性は、シミュレーティングアプリケーションを表す複数のパラメータの各パラメータの値、シミュレーションモデル、及びシミュレーティングアプリケーション入力を含む。複数のパラメータは、シミュレーティングアプリケーションを識別する値と、任意的に、ビルド番号、使用されたシミュレーションモデルを識別する値、及び特定のシミュレーティングアプリケーション入力をそれぞれ表す1つ以上の値と、を含み得る。アラートジェネレータ18は、比較したがって類似性判定の基礎を形成するために、指定されたシミュレーションジョブ、すなわち、モニタリングされているシミュレーションジョブの比較可能な特性を取得するよう構成されている。アラートジェネレータ18は、性能統計量メモリ16に特性が記憶されている複数の実行済みシミュレーションジョブの各実行済みシミュレーションジョブの特性を、取得された特性評価と値ごとに比較することにより、指定されたシミュレーションジョブに類似する1つ以上のシミュレーションジョブを見つけることができる。実行済みシミュレーションジョブについての予め規定された数又は割合の値が、同じジョブ特性パラメータについて、予め規定されたマージン内で、指定されたシミュレーションジョブについての値と合致した場合、アラートジェネレータ18は、その実行済みシミュレーションジョブが、指定されたシミュレーションジョブに類似すると判定する。予め規定されたマージンは、パラメータごとに異なり得る。
【0067】
アラートジェネレータ18は、(そのパラメータについての予め規定されたマージン内で)合致した値の数(ユーザ定義ソース設定値のみ、又は、ユーザ定義リソース設定値及び特性値の両方)に基づき、任意的に、合致の近さ(closeness)にも基づいて、2つのジョブ間の類似性を定量化することができる。類似性量は、第1に、類似性閾値との比較のために使用され得、ここで、類似性閾値を超える類似性量は、類似性の判定を生じさせ、任意的に第2に、システムユーザにどの情報を出力するかを決定するために、候補アラートをランク付けする際に使用され得る。
【0068】
アラートジェネレータ18はまた、第1の実行済みシミュレーションジョブであって、記憶されている特性が、第2の実行済みシミュレーションジョブの記憶されている特性と同じであり、ユーザ定義リソース設定が第1の実行済みシミュレーションジョブと第2の実行済みシミュレーションジョブとの間で異なる、第1の実行済みシミュレーションジョブを識別し、第1の実行済みシミュレーションジョブと第2の実行済みシミュレーションジョブとのうちの他方に対して、第1の実行済みシミュレーションジョブと第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定するよう構成されている。比較される特定の性能統計量は、実装に依存する。なぜならば、性能統計量は、シミュレーションの異なる側面の点で且つ可変の詳細レベルで収集され得るからである。システムは、この点において設定可能であり得る。
【0069】
各性能統計量は、シミュレーションジョブの実行の側面の性能の尺度を示す性能変数の値である。向上されたという観念が、アラートジェネレータ18において予め規定されるので、各性能変数について、性能の向上された尺度が、相対的に大きい又は相対的に小さい値により示されるかが、予め規定される。性能の尺度に対する値のマッピングがより複雑である性能変数が存在し、値により示される性能の尺度を確立するためのマッピング又は式が、アラートジェネレータ18により予め規定され記憶されることがあり得る。
【0070】
アラートジェネレータ18はまた、第1の実行済みシミュレーションジョブのリソース設定と第2の実行済みシミュレーションジョブのリソース設定との間の差異を識別するよう構成されている。アラートジェネレータ18は、指定されたシミュレーションジョブのリソース設定を、向上されている性能統計量を有すると判定された実行済みシミュレーションジョブの記憶されているリソース設定と比較するよう構成されている。向上されている性能統計量の性能変数を、性能変数に影響を及ぼす1つ以上のリソース設定に関連付けるマッピングが記憶されることがあり得る。リソース設定における差異を識別することは、向上されている性能統計量の性能変数にマッピングされているリソース設定を、リソース設定の2つのセットにおいて比較し、1つが存在するときに差異を認識することを含む。
【0071】
アラートジェネレータ18は、向上されている(すなわち、相対的により良い)性能統計量を有するとして識別された第1の実行済みシミュレーションジョブ又は第2の実行済みシミュレーションジョブの1つ以上のユーザ定義リソース設定を示す、システムユーザに対するアラートを生成するよう構成されている。アラートは、ユーザ端末のディスプレイ上の、情報を詳細に示すフレームであり得る。代替的に、アラートは、ノイズ又は何らかの他の形態の出力を含んでもよい。アラートは、何らかの他の方法でシステムユーザに送信される電子メール又はメッセージであってもよい。アラートは、リソース設定における確認された差異を示す。差異のインジケーションは、単に、実行済みシミュレーションジョブの該当する(すなわち、異なるとして確認された)ユーザ定義ランタイム設定を、システムユーザに通知することであり得る。さらに、指定されたシミュレーションジョブの該当するユーザ定義ランタイム設定が、アラートに含められてもよい。さらに、性能変数に応じた、パーセンテージとして表現され得る、第1の実行済みシミュレーションジョブと第2の実行済みシミュレーションジョブとの間の性能の尺度における向上が、アラートにおいて示され得る。
【0072】
図5は、本発明を具現化し又は本発明の一実施形態に含まれ、一実施形態の方法を実施するために使用され得る、システムコントローラ、HPCワークロードマネージャ、又はコンピューティングハードウェアリソースマネージャ等のコンピューティングデバイスのブロック図である。コンピューティングデバイスは、プロセッサ993及びメモリ994を有する。任意的に、コンピューティングデバイスは、例えば、本発明の実施形態の他のコンピューティングデバイスといった他のコンピューティングデバイスと通信するためのネットワークインタフェース997も含む。
【0073】
例えば、一実施形態は、協調して動作するそのようなコンピューティングデバイス群のネットワークを含み得る。任意的に、コンピューティングデバイスは、キーボード及びマウス等の1つ以上の入力機構996及び1つ以上のモニタ等のディスプレイユニット995も含む。これらのコンポーネントは、バス992を介して互いに接続可能である。
【0074】
メモリ994は、コンピュータ読み取り可能な媒体を含み得る。コンピュータ読み取り可能な媒体という用語は、コンピュータ実行可能な命令を運ぶ又はデータ構造を記憶するよう構成された1つの媒体又は複数の媒体(例えば、集中データベース若しくは分散データベース並びに/又は関連するキャッシュ及びサーバ)を指し得る。コンピュータ実行可能な命令は、例えば、汎用コンピュータ、特殊目的コンピュータ、又は特殊目的処理デバイス(例えば、1つ以上のプロセッサ)によりアクセス可能であり、これらに1つ以上の機能又は動作を実行させる命令及びデータを含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語も、マシンにより実行され、マシンに本開示の方法のうちの任意の1つ以上を実行させる命令のセットを記憶する、符号化する、又は運ぶことができる任意の媒体を含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されるものではないと解釈され得る。限定ではなく例として、そのようなコンピュータ読み取り可能な媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、コンパクトディスク読み取り専用メモリ(CD−ROM)又は他の光ディスクストレージ、磁気ディスクストレージ又は他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)を含む非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。
【0075】
プロセッサ993は、コンピューティングデバイスを制御し、例えば、本明細書及び請求項に記載のジョブスケジューラ、性能モニタ、性能統計量メモリ、アラートジェネレータ、及び他のコンポーネントの様々な異なる機能を実装するようにメモリに記憶されたコードを実行する等の処理動作を実行するよう構成される。メモリ994は、プロセッサ993により読み書きされているデータを記憶する。本明細書で言及されているように、プロセッサは、マイクロプロセッサ、中央処理装置等といった1つ以上の汎用処理デバイスを含み得る。プロセッサは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は、他の命令セットを実装しているプロセッサ若しくは命令セットの組合せを実装しているプロセッサを含み得る。プロセッサはまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ等といった1つ以上の特殊目的処理デバイスを含み得る。1つ以上の実施形態において、プロセッサは、本明細書に記載の動作及びステップを実行するための命令を実行するよう構成される。
【0076】
ディスプレイユニット995は、コンピューティングデバイスにより記憶されたデータの表現を表示することができ、ユーザとコンピューティングデバイスに記憶されているプログラム及びデータとの間のインタラクションを可能にするカーソル及びダイアログボックス並びにスクリーンも表示することができる。入力機構996は、ユーザが、コンピューティングデバイスにデータ及び命令を入力することを可能にし得る。
【0077】
ネットワークインタフェース(ネットワークI/F)997は、インターネット等のネットワークに接続され得るものであり、ネットワークを介して他のそのようなコンピューティングデバイスに接続可能である。ネットワークI/F997は、ネットワークを介した他の装置から/へのデータ入力/出力を制御することができる。マイクロフォン、スピーカ、プリンタ、電力供給ユニット、ファン、ケース、スキャナ、トラッカボール等といった他の周辺デバイスも、コンピューティングデバイスに含められ得る。
【0078】
図4のジョブスケジューラ12は、メモリ994に記憶されている処理命令(プログラム)を実行し、ネットワークI/F997を介してシステムユーザ(すなわち、ユーザ端末)とデータを交換する(すなわち、ジョブリクエストを受信する)プロセッサ993(又は複数のプロセッサ)であり得る。詳細には、プロセッサ993は、例えば、インターネット又は何らかの他のネットワーク接続を介してシステムに接続されたユーザ端末におけるシステムユーザから、ネットワークI/Fを介して、ジョブリクエストを受信し、受信されたジョブリクエストを、コンピューティングハードウェアリソース用の命令に変換するための処理命令を実行する。さらに、プロセッサ993は、接続された記憶ユニットに、ジョブリクエスト又はジョブリクエストから抽出された情報を記憶し、且つ/又は、受信されたジョブリクエストによりリクエストされたシミュレーションジョブを実行するように、ネットワークI/F997を介して命令をコンピューティングハードウェアリソース20に送信するための処理命令を実行することができる。
【0079】
図4の性能モニタ14は、メモリ994に記憶されている処理命令(プログラム)を実行し、ネットワークI/F997を介してデータを交換するプロセッサ993(又は複数のプロセッサ)であり得る。詳細には、プロセッサ993は、コンピューティングハードウェアリソースから、ネットワークI/Fを介して、シミュレーションジョブの実行を表す情報を受信し、受信された情報から性能統計量を生成するための処理命令を実行する。プロセッサ993は、ネットワークI/Fを介して、コンピューティングハードウェアリソースを直接モニタリングすることができる。さらに、プロセッサ993は、接続された記憶ユニットに、性能統計量を記憶し、且つ/又は、記憶のために、生成された性能統計量を性能統計量メモリ16に送信し、類似する実行済みシミュレーションジョブの性能統計量との比較のために、生成された性能統計量をアラートジェネレータ18に送信するための処理命令を実行することができる。
【0080】
図4の性能統計量メモリ16は、データを記憶し、ネットワークI/F997を介してデータを交換するメモリ994であり得る。詳細には、メモリ994は、記憶のために、性能モニタ14から、性能統計量を受信し、記憶のために、ジョブスケジューラ12から、指定されたシミュレーションジョブの特性を受信し、記憶のために、ジョブスケジューラ12から、指定されたシミュレーションジョブについてのユーザ定義リソース設定を受信する。性能統計量メモリ16はまた、指定されたシミュレーションジョブに類似するシミュレーションジョブに関する情報について、アラートジェネレータ18から、クエリを受信し、指定されたシミュレーションジョブに類似するシミュレーションジョブについて、性能統計量、シミュレーションジョブの特性、及びユーザ定義リソース設定をもってクエリに応答するよう構成されているプロセッサ993を含み得る。さらに、プロセッサ993は、処理のために、クエリ結果をアラートジェネレータ18に送信するための処理命令を実行することができる。
【0081】
図4のアラートジェネレータ18は、メモリ994に記憶されている処理命令(プログラム)を実行し、ネットワークI/F997を介してデータを交換するプロセッサ993(又は複数のプロセッサ)であり得る。詳細には、プロセッサ993は、ジョブスケジューラ12から、指定されたシミュレーションジョブに関する情報を受信し、この情報を使用して、指定されたシミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定するための処理命令を実行する。プロセッサ993はまた、互いとの比較のために、類似すると判定された実行済みシミュレーションジョブと、類似すると判定された実行済みシミュレーションジョブと合致したジョブ特性を有する実行済みシミュレーションジョブと、に関する性能統計量及びユーザ定義リソース設定を受信し、判定された1つ以上の実行済みシミュレーションジョブの中から、第1の実行済みシミュレーションジョブであって、記憶されている特性が、第2の実行済みシミュレーションジョブの記憶されている特性と同じであり、ユーザ定義リソース設定のうちの1つ以上のユーザ定義リソース設定が第1の実行済みシミュレーションジョブと第2の実行済みシミュレーションジョブとの間で異なる、第1の実行済みシミュレーションジョブを識別し、第1の実行済みシミュレーションジョブと第2の実行済みシミュレーションジョブとのうちの他方に対して、第1の実行済みシミュレーションジョブと第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定するための処理命令を実行する。プロセッサ993はまた、ユーザ定義リソース設定における確認された差異を示す、システムユーザに対するアラートを生成するための処理命令を実行する。さらに、プロセッサ993は、ネットワークI/F997を介して、生成されたアラートをシステムユーザに送信するための処理命令を実行することができる。
【0082】
本発明を具現化する方法は、
図5に示されるコンピューティングデバイス等のコンピューティングデバイス上で実行され得る。そのようなコンピューティングデバイスは、
図5に示される全てのコンポーネントを有する必要はなく、これらのコンポーネントのサブセットから構成されてもよい。本発明を具現化する方法は、ネットワークを介して1つ以上のデータ記憶サーバと通信する単一のコンピューティングデバイスにより実行され得る。コンピューティングデバイスは、生成されたアラート及び/又は性能統計量を記憶するデータストレージ自体であってもよい。
【0083】
本発明を具現化する方法は、互いと協調して動作する複数のコンピューティングデバイスにより実行されてもよい。複数のコンピューティングデバイスのうちの1つ以上は、生成されたアラートの少なくとも一部を記憶するデータ記憶サーバであってもよい。
【0084】
図6は、一実施形態における情報のフローを示している。ユーザは、シミュレーションジョブをジョブスケジューラ12に送信する。シミュレーションジョブは、ジョブ依頼スクリプトにより指定され、シミュレーティングアプリケーション上で動作するシミュレーション入力ファイルを含む。ジョブスケジューラは、シミュレーションジョブを実行するようにHPCリソース(コンピューティングハードウェアリソースの例)に命令する。この実行、すなわち、HPCリソースによるシミュレーティングアプリケーションの実行が、性能モニタによりモニタリングされ、性能モニタは、HPCリソースからアプリケーション性能データを取得する。このアプリケーション性能データは、性能統計量の例であり、(指定されたシミュレーションジョブの特性及びユーザ定義リソース設定を含む)ジョブ情報、及び、任意的に、システムメッセージ又はログファイル等の任意の他の関連情報とともに、性能統計量メモリ16に記憶される。これは、ジョブについての性能の全体像(holistic picture)をもたらす。
【0085】
次いで、ジョブの性能が、アラートジェネレータ18により解析され、他の類似するジョブの性能と比較されて、例えば、類似するシミュレーションジョブがユーザによりリクエストされる次のときに性能を向上させ得るユーザ定義リソース設定における変化が識別される。類似するジョブが見つけられると、同じように特性評価されたが異なるユーザ定義リソース設定を有する実行済みシミュレーションジョブを見つけて、ユーザ定義リソース設定を変更することにより性能のより良い尺度を達成できることを、同じように特性評価されたジョブについての性能統計量が示すかどうかを確認するために、類似するジョブがチェックされる。これは、ユーザ定義リソース設定を変更することにより性能のより良い尺度を得ることができるという、ユーザに対するアラートになる。
【0086】
図7は、一実施形態のフィードバックループを示している。ユーザリクエストは、ジョブリクエストをジョブスケジューラ12に送信する。ジョブスケジューラ12は、ジョブモニタリング及びスケジューリングエンジンであり得る。ジョブスケジューラ12は、実行のために、ジョブリクエストにより指定されたシミュレーションジョブをHPCリソース20に送信する。性能モニタリングエンジン14であり得る性能モニタ14は、実行に関するデータを収集し、性能統計量を生成する。アラートジェネレータ18の機能は、性能類似性検索エンジン181と、レコメンデーション順序付け及びユーザフィードバックエンジン182と、に分割される。性能類似性検索エンジン181は、指定されたシミュレーションジョブに類似するジョブに関する性能統計量及び他のジョブ情報と、類似すると判定された実行済みシミュレーションジョブと合致したジョブ特性を有する実行済みシミュレーションジョブと、について、性能統計量メモリ16にクエリする。レコメンデーション順序付け及びユーザフィードバックエンジン182は、性能統計量及び他のジョブ情報を解析し、アラート(レコメンデーション)を生成し、アラート(レコメンデーション)をユーザに出力する。次いで、ユーザは、指定されたシミュレーションジョブの実行中に又は今度の類似するシミュレーションジョブにおいて、変更されたユーザ定義リソース設定を実施することができる。
【0087】
各段階における機能が、以下でより詳細に説明される。
【0088】
図8は、一実施形態における動作のフローを示すフローチャートである。
【0089】
ステップS101〜ステップS105は、ジョブスケジューラ12の機能の例である。
【0090】
ステップS101において、シミュレーションジョブリクエストが、システムユーザから、ジョブスケジューラ12により受信される。ユーザが、HPCリソース上でアプリケーションを実行するためのシミュレーションジョブリクエストを送信すると、ステップS102において、ジョブ依頼スクリプトと入力及びデータファイルとが、パーシング及び解析される。ステップS103において、シミュレーションジョブを特性評価しユーザにより送信されたユーザ定義リソース設定を記録するための関連情報が、アプリケーション性能データ記憶部16(性能統計量メモリ16とも呼ばれる)に記憶される。このようにして、シグネチャが、各ジョブについて作成され得る。この情報及びシグネチャを有することにより、同じように特性評価されたシミュレーションジョブについて、ジョブを識別してリンクすることが可能である。
【0091】
図9は、シミュレーションジョブの特性を識別するために各ジョブリクエストから記憶される情報のタイプを示している。これは、シミュレーションジョブの特性を含み、これは、例えば、シミュレーションについての入力及びデータファイルのコピーと、シミュレーションを実行するために使用されるアプリケーションに関する詳細と、を含む。記憶される情報はまた、ユーザ定義リソース設定(ジョブ依頼設定と呼ばれることもある)を含み、これは、例えば、使用されるプロセス及びスレッドの数、I/O操作のために使用されるファイルシステム、及び他のジョブ設定を含む。
【0092】
ステップS104において、シミュレーションジョブが、(HPCワークロードバッチスケジューラであり得る、)スケジューリングのためにキューされ、ステップS105において、必要とされるハードウェアリソースが利用可能になったときに、シミュレーションジョブが、平常の通りに実行される。
【0093】
ステップS106〜ステップS108は、性能モニタ14の機能の例である。
【0094】
各シミュレーションジョブの性能が、モニタリングされ解析される。これは、定期的な性能スナップショットが得られる実行中と、アプリケーション性能の全体像が利用可能であるときであるジョブ実行の終了の際と、の両方で生じ得る。性能に関するこの情報(性能統計量)が、性能統計量に変換され、ステップS103において記憶された他のジョブ情報に関連付けられて、アプリケーション性能データ記憶部16に記憶される。
【0095】
モニタリングされる性能情報の例が、
図10A及び
図10Bに示されている。これは、計算、通信、及びI/O操作に費やされた時間等の、高レベルでのアプリケーション性能詳細を含み、以下のようなより深い情報も含み得る:
−CPU、キャッシュ、及びメモリの使用率;
−上位の時間(top time)を費やした通信ルーチン及びメッセージサイズ並びにこれらの通信について達成された転送速度;
−ファイル読み取り及びファイル書き込みアクセスパターン(すなわち、I/Oサイズ、関与したプロセス、及びI/Oコスト)等のI/O統計量;
−CPU速度;メモリ使用可能性及び速度;ネットワークエラーカウンタ及び接続性;並びに、ディスクスペース及び健全性等の、実行時におけるシステムログ情報(これらも性能統計量メモリ16に記憶され得る)。
【0096】
性能モニタ14は、モニタリングされている性能情報を使用して、性能統計量メモリに記憶するための性能統計量を生成するよう構成されている。いくつかの場合において、性能統計量は、単に、性能情報から抽出され、性能統計量メモリ16に直接的に記憶され得る。他の場合において、性能モニタ14は、記憶のために、性能情報からの要素を性能統計量に変換するための記憶されている処理命令を実行することができる。例として、ステップS106において、リソース使用統計量が記憶される。ステップS107において、性能解析データが記憶される。これらの両方が、性能統計量の例である。
【0097】
任意的に、性能情報と性能統計量を生成するための処理命令とは、既存の性能解析プロファイリングツール及びトレーシングツールによりもたらされてもよいし。性能モニタ14は、複数の性能解析ツールからの性能情報を統合し、これらのツールから性能統計量メモリ16への、性能統計量としての性能情報の転送を調整することができる。
【0098】
ジョブが、シミュレーションジョブの特性により、性能統計量メモリ16において識別されるので、ステップS108において、性能モニタ14は、同じシミュレーション問題についての実行(すなわち、同じ特性のシミュレーションジョブを有する実行)を見つけ、2つ(以上)のシミュレーションジョブについて性能統計量メモリに記憶されている性能統計量をリンク又は集約する。
【0099】
メモリに追加される新たな実行が、アプリケーション性能データ記憶部内の過去の実行済みジョブと同じ特性及び同じユーザ定義リソース設定を有する場合、新たな性能統計量が、すでに存在している性能統計量と集約され、したがって、集約された性能統計量は、同じユーザ定義リソース設定を有する同じシミュレーションの実行がどのように実行され得るかのより正確な予測因子になる。
【0100】
新たな実行が、過去の実行済みジョブと同じジョブ特性を有するが、異なるユーザ定義リソース設定を有する(例えば、ジョブが、異なる数のプロセスを使用する又は異なるファイルシステムへのI/Oを実行する)場合、新たな性能統計量及びジョブ情報が、過去の実行済みジョブについての性能統計量及びジョブ情報にリンクされるが、これらは、異なる設定を使用して生成されたので、性能統計量は集約されない。これらのリンクを作成することにより、ジョブ依頼設定を変更することによりアプリケーション性能にどのように影響を及ぼすかの像を描くことが可能である。これは、アラートジェネレータが、向上されている性能統計量を見つけるのを助ける。これが、
図11に示されており、
図11において、ある範囲の異なるプロセス数で実行された同じシミュレーション問題についての性能情報が組み合わされている。
【0101】
ステップS109〜ステップS117は、アラートジェネレータ18の機能の例である。
【0102】
指定されたシミュレーションジョブの性能統計量及びジョブ情報が記憶された後(この方法は、指定されたシミュレーションジョブの実行中又は実行後に実行され得るので、全ての性能統計量が記憶されているわけではないことに留意されたい)、ステップS109及びステップS110において、アラートジェネレータ18は、性能統計量メモリ16にクエリして、ユーザジョブと類似するユーザ定義リソース設定及び/又はジョブ特性を有する過去の実行済みシミュレーションジョブ(同じシステムユーザからのものであることもあるし別のシステムユーザからのものであることもある)を見つける。アラートジェネレータ18は、クエリを使用して、性能統計量メモリ16の内容をフィルタリングし、現在の指定されたシミュレーションジョブに関連するエントリのみを見つける。見つけられたエントリは、現在の指定されたシミュレーションジョブとの類似性のレベルに基づいて、重み付けされ得、ここで、最も近いエントリには、最も高い重みが与えられる。
【0103】
図12は、メモリ16における、指定されたシミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定するプロセスの例を示している。指定されたシミュレーションジョブのユーザ定義リソース設定及びジョブ特性が、このプロシージャに対する入力として与えられる。次いで、メモリ16がクエリされて、類似するユーザ定義リソース設定又はジョブ特性を有する過去の実行済みシミュレーションジョブが見つけられ、その合致したジョブのサマリ及び類似性格付けが、出力として返される。
【0104】
ステップS111において、アラートジェネレータ18が、性能統計量メモリ16にクエリして、類似すると判定された実行済みジョブの性能統計量と、リンクされている性能統計量(すなわち、異なるユーザ定義リソース設定を使用して実行された同じジョブ特性についてのエントリ)と、を識別することにより、これらの類似するジョブが解析される。性能の向上をもたらすリンクされているエントリに関して、そのエントリについてのジョブ依頼設定が、ユーザのジョブの性能を向上させる方法についてユーザにアラートするための、可能な候補設定のマトリックスに追加される。
【0105】
図13は、リンクされているジョブを識別し、性能向上マトリックスに投入するプロシージャを示している。
【0106】
図12から、ジョブB及びジョブDが、指定されたシミュレーションジョブとの何らかの類似性を有するとして識別されたことが分かる。
図13において、ジョブB1〜ジョブB3がジョブBにリンクされていることが分かる。ここで、リンクは、シミュレーションジョブが同じように特性評価されたことを表す。アラートジェネレータ18は、次いで、ジョブB1〜ジョブB3と比較されるジョブBについての性能統計量及びユーザ定義リソース設定を解析し、差異を識別する。向上している性能統計量が識別されたときに、性能統計量に影響を及ぼした可能性がある1つ以上のユーザ定義リソース設定が、その性能統計量にマッピングされるように、マッピングが記憶され得、次いで、アラートジェネレータは、マッピングされたユーザ定義リソース設定を比較して、差異を見出すことができる。同じプロシージャが、ジョブDと、リンクされているジョブD1及びジョブD2と、に対して実行される。ステップS112において、向上されている性能統計量とこれらの性能統計量にマッピングされたユーザ定義リソース設定における差異とが、候補アラートとして、性能向上マトリックスに追加される。
【0107】
ステップS113において、アラートジェネレータは、各候補アラートにより表される、ユーザ定義リソース設定における変更が指定されたシミュレーションジョブについて有する可能性がある性能の向上を定量化する処理を実行する。この決定の入力及び出力が、
図14に示されており、以下の通りである:
入力:
指定されたシミュレーションジョブとデータ記憶部において見つけられた各過去のジョブとの間の定量化された類似性;及び
性能向上マトリックスにおける各候補アラートについての性能向上ファクタ。このファクタは、リンクされているジョブがリンクされた先の(指定されたシミュレーションジョブに類似すると判定された)ジョブの性能における同じ性能変数に対してユーザ定義リソース設定が使用された、リンクされているジョブの該当する性能変数の性能向上である。
出力:
ユーザジョブに適用されたときの各設定により与えられる予測される性能向上。
【0108】
単純な例において、性能向上ファクタは重み付けで乗算されることがあり得る。この重み付けは、指定されたシミュレーションジョブと、候補アラートが導出された元となるジョブにリンクされている類似するジョブと、の間の類似性の定量化に比例する。
【0109】
別の例において、システムは、これらの入力を使用する計算を実施し、各設定をユーザジョブに適用する予測される性能のベクトルを生成することができる。このようなベクトルを生成するために、存在するデータの量と、このような計算を実行するために利用可能な計算リソースと、結果をユーザに返す際に必要とされる詳細レベル又は時間制約と、の間のトレードオフに基づいて、異なるアルゴリズムが選択され得る。この計算を実行するためのサンプルの式が、以下の式(1)に示される:
【数1】
【0110】
この式において、P(A,s)は、設定sを使用するジョブAの予測される性能である。これは、性能向上マトリックスにおける、設定sを使用した各過去のジョブの性能P(j,s)から、ジョブAとのその類似性r(A,j)を減算したものを合計することにより、計算される。この設定を使用した過去のジョブの数で除算することにより上記合計を平均することが、必要とされる性能を与える。
【0111】
候補アラートの何らかのランク付けが、システムユーザに提示する1つ以上のアラートを選択するために、実行されることがあり得る。
【0112】
ステップS114は、任意的なスケーリングステップである。スケーリングは、指定されたシミュレーションジョブの実行をモニタリングすることにより取得された性能統計量を使用して、候補アラートの各々が性能の尺度に対して及ぼし得る影響度を判定することができる(ここで、尺度は、時間と直接的に同一視されてもよいし、他の性能考慮事項を組み込んでもよい)。例えば、候補アラートは、ファイルシステムを変更することがI/O操作の性能を50%だけ向上させる、ということを予測することができる。しかしながら、I/O操作が、シミュレーションジョブの時間の10%しか占めない場合、ファイルシステムを変更することはI/O操作に対してしか影響を及ぼさないので、スケーリングされた性能向上は5%である。予測される性能向上の計算は、ユーザアプリケーションの性能をすでに考慮しているかもしれないので、これは任意的なステップである。
【0113】
次いで、ステップS115において、候補アラートが、(ステップS114においてスケーリングされ且つ/又はステップS113において計算された)性能向上量の順にランク付けされ、ステップS115において、最高性能向上量を有する候補アラートが、ユーザへの提示のために選択される。例えば、上位n個であってもよいし、システムユーザに提示される候補アラートについて満たされなければならない閾性能向上量が存在してもよい。
【0114】
ステップS116において、アラートが、ユーザへの提示のために準備される。アラートは、選択されたアラートにより表される、ユーザ定義リソース設定における差異に関連付けられた性能向上量をユーザに通知するとともに、ユーザ定義リソース設定(すなわち、向上されている性能統計量を生じさせる、リンクされているジョブのユーザ定義リソース設定)における必要とされる変更をハイライトしたレコメンデーションの形で提示され得る。
【0115】
次いで、ステップS117において、選択された候補アラートが、テキスト形式又はグラフィカル形式で、ユーザに提示される。提示される各候補アラートは、レコメンデーションを適用することからの予測される性能向上量と、レコメンデーションを実施するために必要とされる変更に関する詳細と、を含む。任意的に、ジョブスケジューラ12は、提示されたアラートにおいて識別されたユーザ定義リソース設定を、システムユーザによりリクエストされる次のシミュレーションジョブについてのデフォルトとして設定する。そのようなデフォルトの設定は、システムユーザにより、オン及びオフに切り替えられ得る。
【0117】
システムユーザは、デフォルトファイルシステムに対して32個のプロセスを使用して、シミュレーション問題を実行する。このジョブについての実行時間は、
図15に示されるように、70時間ユニットである。
【0118】
ジョブスケジューラ12は、入力ファイル及びジョブ依頼スクリプトをパーシング及び解析し、この情報を性能統計量メモリ16に記憶する。この段階により記憶されるデータが、
図16に示されている。この具体例において、ジョブ依頼設定は、ユーザ定義リソース設定の例であり、シミュレーション問題及びアプリケーション詳細は、ジョブ特性の例である。ジョブ特性及びユーザ定義リソース設定は、集合的にジョブ情報と呼ばれることがある。
【0119】
性能モニタ14は、ジョブの実行をモニタリングし、性能統計量を生成する。生成された性能統計量は、性能統計量メモリ16に記憶され、ジョブスケジューラ12によりすでにキャプチャされているジョブ情報に関連付けられる。
図17は、記憶される性能統計量の表現を示している。これは、実行時間の高レベルブレークダウンと、計算、通信、及びI/O操作に関するより詳細な性能情報と、を含む。この高レベル情報から、通信が、実行時間の91%を占める実行を支配していることが明らかである。
【0120】
性能統計量メモリ16には、
図18に示されるような他のジョブがすでに投入されている。メモリ内のジョブBは、(
図16の)指定されたジョブと同じアプリケーションA1に関するものであるが、わずかに異なる入力ファイル設定I2を有する。ジョブBにリンクされているジョブは、これが、ある範囲のプロセス数及び異なる通信ライブラリについての性能情報を提供する、ジョブの性能検討セット(performance study set)であることを示している。リンクされているジョブは、ジョブBと同じジョブ特性を有する。ジョブCは、ジョブBとは異なるアプリケーションA4を使用し、異なるシミュレーション問題I4を解いている。このジョブは、リンクされているジョブを有さない。最後に、データ記憶部内のジョブDは、ジョブBと同じ依頼設定S1及びアプリケーション詳細A1に関するものであるが、異なるシミュレーション入力ファイルI1を有する。このジョブは、半分の数のプロセスがテストされたリンクされているジョブと、異なるファイルシステムがI/O操作のために使用されたリンクされているジョブと、を有する。
【0121】
各リンクされているジョブについて、当該リンクされているジョブがリンクされた先のジョブとは異なる性能変数の値と、この性能変数にマッピングされたユーザ定義リソース設定における変更と、が記憶される。
【0122】
アラートジェネレータ18の性能類似性検索エンジン181は、指定されたジョブとの、性能統計量メモリ内の各過去のジョブの類似性を見出す。これから、
図19に示されるように、類似性ベクトルが返される。0より大きい類似性重み付けを有する全ての過去の実行済みシミュレーションジョブについて、そのリンクされているジョブの各々を通じた検索が実行される。指定されたジョブに類似すると判定されたジョブに対して向上性能をもたらすあらゆるリンクされているジョブが、性能向上マトリックスにおけるエントリとして追加される。
【0123】
類似性重み付け及び性能向上マトリックスが使用されて、性能変数の向上された値をもたらす各設定変更について性能向上量が計算される。
図20は、サンプルの式(1)を使用した計算の結果を示している。同じ設定変更が、(類似すると判定された異なるジョブにリンクされている)2つのリンクされているジョブにおいて実施される場合、アラートジェネレータは、式(1)を使用して、性能の向上を表す2つの別々の値を、単一の性能向上量に集約する。これは、使用されるプロセスの数が半分にされた場合、ユーザジョブの性能が74%だけ向上することを予測し、通信ライブラリが変更された場合、ユーザジョブの性能が38%だけ向上することを予測し、異なるファイルシステムが使用された場合、ユーザジョブの性能が10%だけ向上することを予測している。
【0124】
最後に、アラートジェネレータ18のレコメンデーション順序付け及びユーザフィードバックエンジン182は、
図21に示されるように、性能向上量の順に、予測される性能の計算の出力をソートする。これらのレコメンデーションは、
図22に示されるように、テキスト出力を介して、アラートとしてユーザにフィードバックされる、又は、
図23及び
図24に示されるように、グラフィカル出力を介して、アラートとしてユーザにフィードバックされる。
【0125】
以上の実施形態に関し、さらに以下の付記を開示する。
【0126】
(付記1)
シミュレーションジョブを実行するためのシステムであって、
システムユーザにより送信されたジョブリクエストを受信するよう構成されているジョブスケジューラであって、前記ジョブリクエストは、シミュレーションジョブと、該シミュレーションジョブについてのユーザ定義リソース設定と、を指定する、ジョブスケジューラと、
前記ジョブスケジューラにより命令されるようにシミュレーションジョブを実行するよう構成されているコンピューティングハードウェアリソースであって、前記ジョブスケジューラは、前記ユーザ定義リソース設定に従って、指定された前記シミュレーションジョブを実行するように前記コンピューティングハードウェアリソースに命令するよう構成されている、コンピューティングハードウェアリソースと、
前記コンピューティングハードウェアリソースによる指定された前記シミュレーションジョブの実行をモニタリングし、モニタリングされている前記実行を表す性能統計量を生成するよう構成されている性能モニタと、
複数の実行済みシミュレーションジョブの各実行済みシミュレーションジョブについて、当該実行済みシミュレーションジョブの特性、当該実行済みシミュレーションジョブについてのユーザ定義リソース設定、及び当該実行済みシミュレーションジョブの実行を表す性能統計量を記憶するよう構成されている性能統計量メモリと、
アラートジェネレータであって、
指定された前記シミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定し、
判定された前記1つ以上の実行済みシミュレーションジョブの中から、第1の実行済みシミュレーションジョブであって、記憶されている前記特性が、第2の実行済みシミュレーションジョブの記憶されている前記特性と同じであり、前記ユーザ定義リソース設定のうちの1つ以上のユーザ定義リソース設定が、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとの間で異なる、第1の実行済みシミュレーションジョブを識別し、
前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、
向上されている性能統計量を有するとして識別された前記第1の実行済みシミュレーションジョブ又は前記第2の実行済みシミュレーションジョブの前記1つ以上のユーザ定義リソース設定を示す、前記システムユーザに対するアラートを生成する
よう構成されているアラートジェネレータと、
を有する、システム。
【0127】
(付記2)
前記ユーザ定義リソース設定は、複数の個々の設定の各個々の設定の値を含み、
指定された前記シミュレーションジョブと前記実行済みシミュレーションジョブの各実行済みシミュレーションジョブとは、シミュレーティングアプリケーション入力に従ってシミュレーションモデルを実行するシミュレーティングアプリケーションを含み、
前記実行済みシミュレーションジョブの記憶されている前記特性は、前記シミュレーティングアプリケーションを表す複数のジョブ特性パラメータの各ジョブ特性パラメータの値、前記シミュレーションモデル、及び前記シミュレーティングアプリケーション入力を含み、
前記アラートジェネレータは、
指定された前記シミュレーションジョブについての前記複数のジョブ特性パラメータの各ジョブ特性パラメータの値を取得することにより、指定された前記シミュレーションジョブの特性を取得し、
前記複数のジョブ特性パラメータの各ジョブ特性パラメータのそれぞれの値の比較と、それぞれの前記個々の設定の各個々の設定の値の比較と、に基づいて、実行済みシミュレーションジョブが、指定された前記シミュレーションジョブに類似するか否かを判定する
よう構成されている、付記1に記載のシステム。
【0128】
(付記3)
前記アラートジェネレータは、
指定された前記シミュレーションジョブについての前記ジョブ特性パラメータ及び/又はユーザ定義リソース設定の各々の値を、前記実行済みシミュレーションジョブの各実行済みシミュレーションジョブの同じジョブ特性パラメータ及び/又はユーザ定義リソース設定の値と比較することにより、指定された前記シミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定し、
前記実行済みシミュレーションジョブについての予め規定された数又は比率の値が、同じジョブ特性評価及び/又はユーザ定義リソース設定について、予め規定されたマージン内で、指定された前記シミュレーションジョブについての値と合致した場合、前記実行済みシミュレーションジョブが、指定された前記シミュレーションジョブに類似すると判定する
よう構成されている、付記2に記載のシステム。
【0129】
(付記4)
前記ユーザ定義リソース設定は、前記シミュレーションジョブを実行するための並列プロセスの数を含み、並列プロセスの異なる数が、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定に含まれ、
前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブの実行を表す前記性能統計量の各々は、前記シミュレーションジョブ全体又は前記シミュレーションジョブの指定された部分を実行するのに要した時間を含み、
前記アラートジェネレータは、
実行するのに要したそれぞれの前記時間の比較に基づいて、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、
前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブのうち、実行するのに短い方の前記時間を要した実行済みシミュレーションジョブの前記並列プロセスの数を、前記アラートにおいて示す
よう構成されている、付記1に記載のシステム。
【0130】
(付記5)
前記ユーザ定義リソース設定は、1つの並列プロセス当たりのスレッドの数をさらに含み、1つの並列プロセス当たりのスレッドの異なる数が、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定に含まれ、
前記アラートジェネレータは、前記第1の実行済みシミュレーションジョブ及び前記第2の実行済みシミュレーションジョブのうち、実行するのに短い方の前記時間を要した実行済みシミュレーションジョブの前記並列プロセスの数と前記1つの並列プロセス当たりのスレッドの数とを、前記アラートにおいて示すよう構成されている、付記4に記載のシステム。
【0131】
(付記6)
前記ユーザ定義リソース設定は、前記シミュレーションジョブにおいて生じるI/O操作のためのファイルシステムの選択を含み、I/O操作のための異なるファイルシステムが、前記第1の実行済みシミュレーションジョブのユーザ定義リソース設定及び前記第2の実行済みシミュレーションジョブのユーザ定義リソース設定において選択され、
モニタリングされている前記実行を表す前記性能統計量と、前記実行済みシミュレーションジョブの実行を表す前記性能統計量と、の各々は、前記シミュレーションジョブ全体又は前記シミュレーションジョブの指定された部分において生じたI/O操作を完了するのに要した時間を含み、
前記アラートジェネレータは、
I/O操作を完了するのに要したそれぞれの前記時間の比較に基づいて、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとから、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方と比較して向上されている性能統計量を有する実行済みシミュレーションジョブを識別し、
前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうち、I/O操作を完了するのに短い方の前記時間を要した前記実行済みシミュレーションジョブのI/O操作のためのファイルシステムを、前記アラートにおいて示す
よう構成されている、付記1に記載のシステム。
【0132】
(付記7)
各性能統計量は、前記シミュレーションジョブの実行の側面の性能の尺度を示す性能変数の値であり、
前記アラートジェネレータは、
指定された前記シミュレーションジョブに類似すると判定された前記実行済みシミュレーションジョブの各実行済みシミュレーションジョブについて、前記第1の実行済みシミュレーションジョブとして識別することにより、複数の候補アラートを識別し、
前記第1の実行済みシミュレーションジョブと同じ記憶されている特性を有するとともに、前記同じ記憶されている特性を有する他の実行済みシミュレーションジョブの中で性能の最良の尺度を示す値を有する実行済みシミュレーションジョブを、各性能変数についての前記第2の実行済みシミュレーションジョブとして確認し、
予め規定されたマッピングを使用して、前記性能変数を、該性能変数に影響を及ぼす1つ以上のリソース設定にマッピングし、
マッピングされた前記1つ以上のリソース設定の値が、確認された前記第2の実行済みシミュレーションジョブと指定された前記シミュレーションジョブとの間で異なる場合、前記性能変数、確認された前記第2の実行済みシミュレーションジョブのマッピングされた前記1つ以上のリソース設定、及びリソース設定における差異を、候補アラートとして記憶する
よう構成されており、
前記アラートジェネレータは、さらに、記憶されている前記候補アラートからアラートを選択することにより、前記システムユーザに対するアラートを生成するよう構成されている、付記1に記載のシステム。
【0133】
(付記8)
前記アラートジェネレータは、前記第1の実行済みシミュレーションジョブと確認された前記第2の実行済みシミュレーションジョブとの間の、前記性能変数についての性能の尺度における差異を、性能向上量として定量化し、性能向上量の順に、前記候補アラートをランク付けし、上位n個のランク付けされた前記候補アラートの各候補アラートを前記システムユーザに通知することにより、アラートを生成するよう構成されている、付記7に記載のシステム。
【0134】
(付記9)
前記アラートジェネレータは、指定された前記シミュレーションジョブと、指定された前記シミュレーションジョブに類似すると判定された前記1つ以上の実行済みシミュレーションジョブの各実行済みシミュレーションジョブと、の間の類似性のレベルを、当該実行済みシミュレーションジョブの値が、予め規定されたマージン内で、指定された前記シミュレーションジョブについての値と合致したジョブ特性パラメータ及び/又はユーザ定義リソース設定の数に基づいて、定量化するよう構成されており、
前記アラートジェネレータは、指定された前記シミュレーションジョブと、リソース設定及び性能向上量が記憶されている前記実行済みシミュレーションジョブと、の間の定量化された前記類似性のレベルに基づいて、候補アラートに重み付けを付与し、付与された前記重み付けにより重み付けされた性能向上量の順に、前記候補アラートをランク付けし、上位n個のランク付けされた前記候補アラートの各候補アラートを前記システムユーザに通知することにより、アラートを生成するよう構成されている、付記3又は7に記載のシステム。
【0135】
(付記10)
前記アラートジェネレータは、生成された前記アラートを前記ジョブスケジューラに送信するよう構成されており、前記ジョブスケジューラは、前記アラートにおいて識別された異なるユーザ定義リソース設定を、前記システムユーザにより送信される次のシミュレーションジョブについてのデフォルトとして設定するよう構成されている、付記1に記載のシステム。
【0136】
(付記11)
前記性能統計量メモリは、指定された前記シミュレーションジョブが完了すると、指定された前記シミュレーションジョブについて実行済みシミュレーションジョブとして、指定された前記シミュレーションジョブの特性、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定、及び、指定された前記シミュレーションジョブの実行を表す、前記性能モニタにより生成された前記性能統計量を記憶するよう構成されている、付記1に記載のシステム。
【0137】
(付記12)
指定された前記シミュレーションジョブの前記特性が、前記性能統計量メモリ内の実行済みシミュレーションジョブの特性と同じであり、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定と、該実行済みシミュレーションジョブについてのユーザ定義リソース設定と、が同じであると、前記システムが判定した場合、前記システムは、前記性能統計量を集約して各性能変数について平均値を生成し、前記アラートジェネレータによる他の実行済みシミュレーションジョブとの比較のための性能統計量として、前記平均値を記憶する、付記11に記載のシステム。
【0138】
(付記13)
指定された前記シミュレーションジョブの前記特性が、前記性能統計量メモリ内の実行済みシミュレーションジョブの特性と同じであり、指定された前記シミュレーションジョブについての前記ユーザ定義リソース設定と、該実行済みシミュレーションジョブについてのユーザ定義リソース設定と、が異なると、前記システムが判定した場合、前記システムは、指定された前記シミュレーションジョブの前記性能統計量と、該実行済みシミュレーションジョブの性能統計量と、をリンクする、付記11又は12に記載のシステム。
【0139】
(付記14)
コンピューティングハードウェアリソース上でのシミュレーションジョブの実行を制御するためのコンピューティングハードウェアリソースコントローラであって、
システムユーザにより送信されたジョブリクエストを受信するよう構成されているジョブスケジューラであって、前記ジョブリクエストは、シミュレーションジョブと、該シミュレーションジョブについてのユーザ定義リソース設定と、を指定し、前記ジョブスケジューラは、前記ユーザ定義リソース設定に従って、指定された前記シミュレーションジョブを実行するように前記コンピューティングハードウェアリソースに命令するよう構成されている、ジョブスケジューラと、
前記コンピューティングハードウェアリソースによる指定された前記シミュレーションジョブの実行をモニタリングし、モニタリングされている前記実行を表す性能統計量を生成するよう構成されている性能モニタと、
複数の実行済みシミュレーションジョブの各実行済みシミュレーションジョブについて、当該実行済みシミュレーションジョブの特性、当該実行済みシミュレーションジョブについてのユーザ定義リソース設定、及び当該実行済みシミュレーションジョブの実行を表す性能統計量を記憶するよう構成されている性能統計量メモリと、
アラートジェネレータであって、指定された前記シミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定し、判定された前記1つ以上の実行済みシミュレーションジョブの中から、第1の実行済みシミュレーションジョブであって、記憶されている前記特性が、第2の実行済みシミュレーションジョブの記憶されている前記特性と同じであり、前記ユーザ定義リソース設定のうちの1つ以上のユーザ定義リソース設定が、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとの間で異なる、第1の実行済みシミュレーションジョブを識別し、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、向上されている性能統計量を有するとして識別された前記第1の実行済みシミュレーションジョブ又は前記第2の実行済みシミュレーションジョブの前記1つ以上のユーザ定義リソース設定を示す、前記システムユーザに対するアラートを生成するよう構成されているアラートジェネレータと、
を有する、コンピューティングハードウェアリソースコントローラ。
【0140】
(付記15)
コンピューティングハードウェアリソース上でのシミュレーションジョブの実行を制御するための、コンピュータにより実施される方法であって、
システムユーザにより送信されたジョブリクエストを受信するステップであって、前記ジョブリクエストは、シミュレーションジョブと、該シミュレーションジョブについてのユーザ定義リソース設定と、を指定する、ステップと、
前記ユーザ定義リソース設定に従って、指定された前記シミュレーションジョブを実行するように前記コンピューティングハードウェアリソースに命令するステップと、
前記コンピューティングハードウェアリソースによる指定された前記シミュレーションジョブの実行をモニタリングし、モニタリングされている前記実行を表す性能統計量を生成するステップと、
複数の実行済みシミュレーションジョブの各実行済みシミュレーションジョブについて、当該実行済みシミュレーションジョブの特性、当該実行済みシミュレーションジョブについてのユーザ定義リソース設定、及び当該実行済みシミュレーションジョブの実行を表す性能統計量を記憶するステップと、
指定された前記シミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定し、判定された前記1つ以上の実行済みシミュレーションジョブの中から、第1の実行済みシミュレーションジョブであって、記憶されている前記特性が、第2の実行済みシミュレーションジョブの記憶されている前記特性と同じであり、前記ユーザ定義リソース設定のうちの1つ以上のユーザ定義リソース設定が、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとの間で異なる、第1の実行済みシミュレーションジョブを識別し、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、向上されている性能統計量を有するとして識別された前記第1の実行済みシミュレーションジョブ又は前記第2の実行済みシミュレーションジョブの前記1つ以上のユーザ定義リソース設定を示す、前記システムユーザに対するアラートを生成するステップと、
を含む、方法。
【0141】
(付記16)
コンピューティングデバイスにより実行されたときに、前記コンピューティングデバイスに、
システムユーザにより送信されたジョブリクエストを受信するステップであって、前記ジョブリクエストは、シミュレーションジョブと、該シミュレーションジョブについてのユーザ定義リソース設定と、を指定する、ステップと、
前記ユーザ定義リソース設定に従って、指定された前記シミュレーションジョブを実行するようにコンピューティングハードウェアリソースに命令するステップと、
前記コンピューティングハードウェアリソースによる指定された前記シミュレーションジョブの実行をモニタリングし、モニタリングされている前記実行を表す性能統計量を生成するステップと、
複数の実行済みシミュレーションジョブの各実行済みシミュレーションジョブについて、当該実行済みシミュレーションジョブの特性、当該実行済みシミュレーションジョブについてのユーザ定義リソース設定、及び当該実行済みシミュレーションジョブの実行を表す性能統計量を記憶するステップと、
指定された前記シミュレーションジョブに類似する1つ以上の実行済みシミュレーションジョブを判定し、判定された前記1つ以上の実行済みシミュレーションジョブの中から、第1の実行済みシミュレーションジョブであって、記憶されている前記特性が、第2の実行済みシミュレーションジョブの記憶されている前記特性と同じであり、前記ユーザ定義リソース設定のうちの1つ以上のユーザ定義リソース設定が、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとの間で異なる、第1の実行済みシミュレーションジョブを識別し、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの他方に対して、前記第1の実行済みシミュレーションジョブと前記第2の実行済みシミュレーションジョブとのうちの一方において向上されている性能統計量を判定し、向上されている性能統計量を有するとして識別された前記第1の実行済みシミュレーションジョブ又は前記第2の実行済みシミュレーションジョブの前記1つ以上のユーザ定義リソース設定を示す、前記システムユーザに対するアラートを生成するステップと、
を含む方法を実行させる、コンピュータプログラム。
【0142】
(付記17)
付記16に記載のコンピュータプログラムを記憶している記憶媒体。