(57)【要約】【課題】複数のジョブを複数のコプロセッサで並列して実行する場合に、複数のジョブの実行時間をより短縮することができる情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラムを提供する。【解決手段】ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する計測部１０と、計測部１０の計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する判定部２０とを含む。【選択図】図２０
2014170363.tif 000002
【特許請求の範囲】
【請求項１】
ジョブを実行する複数のコプロセッサの使用率と、前記コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、前記複数のコプロセッサと前記複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する計測部と、
前記計測部の計測結果にもとづいて、前記複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する判定部とを含む
ことを特徴とする情報処理装置。
【請求項２】
判定部は、計測部の計測結果にもとづいて、複数のインタフェースカードの中から、コプロセッサが入出力するデータを経由させるインタフェースカードを決定する
請求項１に記載の情報処理装置。
【請求項３】
計測部は、各コプロセッサと各インタフェースカード間の通信のレイテンシおよびスループットを計測し、計測結果を含む通信アフィニティ情報を生成する通信アフィニティ計測部と、各インタフェースカードのデータ転送量を計測し、計測結果を含む転送量情報を生成する転送量モニタ部と、各コプロセッサからコア使用率を取得し、コプロセッサ使用率情報に格納するコプロセッサ使用率モニタ部とを含み、
判定部は、前記計測部から計測結果として、前記通信アフィニティ情報、前記転送量情報および前記コプロセッサ使用率情報を取得する
請求項１または請求項２に記載の情報処理装置。
【請求項４】
計測部は、コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成するジョブプロファイル生成部を含み、
判定部は、ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータを経由させるインタフェースカードとを決定する際に、前記ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する
請求項２または請求項３に記載の情報処理装置。
【請求項５】
ジョブを実行する複数のコプロセッサの使用率と、前記コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、前記複数のコプロセッサと前記複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測し、
計測結果にもとづいて、前記複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する
ことを特徴とするジョブスケジューリング方法。
【請求項６】
コプロセッサの使用率と、インタフェースカードの使用率と、前記コプロセッサと前記インタフェースカード間の通信のレイテンシおよびスループットの計測結果にもとづいて、複数のインタフェースカードの中から、コプロセッサが入出力するデータを経由させるインタフェースカードを決定する
請求項５に記載のジョブスケジューリング方法。
【請求項７】
コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成し、
ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータを経由させるインタフェースカードとを決定する際に、前記ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する
請求項６に記載のジョブスケジューリング方法。
【請求項８】
コンピュータに、
ジョブを実行する複数のコプロセッサの使用率と、前記コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、前記複数のコプロセッサと前記複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する処理と、
計測結果にもとづいて、前記複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する処理とを実行させる
ためのジョブスケジューリングプログラム。
【請求項９】
コンピュータに、
コプロセッサの使用率と、インタフェースカードの使用率と、前記コプロセッサと前記インタフェースカード間の通信のレイテンシおよびスループットの計測結果にもとづいて、複数のインタフェースカードの中から、コプロセッサが入出力するデータを経由させるインタフェースカードを決定する処理を実行させる
請求項８に記載のジョブスケジューリングプログラム。
【請求項１０】
コンピュータに、
コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成する処理と、
ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータを経由させるインタフェースカードとを決定する際に、前記ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する処理とを実行させる
請求項９に記載のジョブスケジューリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のジョブのスケジューリングを行う情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラムに関する。
【背景技術】
【０００２】
ＧＰＧＰＵ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔｓ））に代表されるアクセラレータやコプロセッサと呼ばれる、コンピュータの演算能力を大幅に拡大するデバイスがコンピュータに複数搭載されて使われる場合がある。そのような場合、これらの複数のアクセラレータやコプロセッサを効率よく使うスケジューリング方式が求められる。
【０００３】
アクセラレータは、主に演算機能に焦点を置くため、アクセラレータからＩ／Ｆ（インタフェース）カードに対して直接Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）を発行させることは難しい。そこで、ＧＰＵ  Ｄｉｒｅｃｔと呼ばれる機能に代表されるような、コプロセッサやアクセラレータから直接Ｉ／Ｆカードを経由してＩ／Ｏ通信を行う機能を搭載した、コプロセッサやアクセラレータが登場しつつある。
【０００４】
複数のジョブを複数のコプロセッサで並列して実行する場合に用いられるスケジューリング方式として、例えば、特許文献１に記載されたスケジューリング方式がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第２０１１／０１７３１５５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されたスケジューリング方式では、主にコプロセッサの使用率のみに依存したスケジューリングが行われる。従って、特許文献１に記載されたスケジューリング方式では、Ｉ／Ｏ通信を行う機能を搭載した、コプロセッサやアクセラレータを使用した場合、Ｉ／Ｏ通信がボトルネックとなってパフォーマンスを落としてしまう可能性がある。
【０００７】
そこで、本発明は、複数のジョブを複数のコプロセッサで並列して実行する場合に、複数のジョブの実行時間をより短縮することができる情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明による情報処理装置は、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する計測部と、計測部の計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する判定部とを含むことを特徴とする。
【０００９】
本発明によるジョブスケジューリング方法は、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測し、計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定することを特徴とする。
【００１０】
本発明によるジョブスケジューリングプログラムは、コンピュータに、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する処理と、計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する処理とを実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数のジョブを複数のコプロセッサで並列して実行する場合に、複数のジョブの実行時間をより短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明による情報処理装置の第１の実施形態の構成を示すブロック図である。
【図２】スケジューリングの実行対象となるシステムの構成の一例を示すブロック図である。
【図３】ジョブキューの一例を示す説明図である。
【図４】ジョブの構成の一例を示す説明図である。
【図５】ジョブコンフィグの一例を示す説明図である。
【図６】ジョブコンフィグの記述例を示す説明図である。
【図７】Ｉ／Ｏアフィニティテーブルの一例を示す説明図である。
【図８】Ｉ／Ｏ転送量情報の一例を示す説明図である。
【図９】コプロセッサ使用率情報の一例を示す説明図である。
【図１０】ジョブプロファイルの一例を示す説明図である。
【図１１】Ｉ／Ｏアフィニティテーブル生成部の配置の一例を示すブロック図である。
【図１２】Ｉ／Ｏ転送量モニタの配置の一例を示すブロック図である。
【図１３】コプロセッサ使用率モニタの配置の一例を示すブロック図である。
【図１４】ジョブプロファイラの構成と配置の一例を示すブロック図である。
【図１５】Ｉ／Ｏアフィニティテーブルの生成処理を示すフローチャートである。
【図１６】Ｉ／Ｏ転送量モニタの動作の一例を示すフローチャートである。
【図１７】コプロセッサ使用率モニタの動作を示すフローチャートである。
【図１８】ジョブプロファイラの動作を示すフローチャートである。
【図１９】ディスパッチ判定部およびディスパッチ実行部の動作を示すフローチャートである。
【図２０】本発明による情報処理装置の最小構成を示すブロック図である。
【図２１】本発明による情報処理装置の他の最小構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
実施形態１．
以下、本発明の第１の実施形態を図面を参照して説明する。
【００１４】
図１は、本発明による情報処理装置の第１の実施形態の構成を示すブロック図である。
【００１５】
情報処理装置１００は、コプロセッサ（図示せず）とＩ／Ｆカード（図示せず）とを備えるパーソナルコンピュータ等の計算機である。情報処理装置１００は、ユーザによって自装置に投入される複数のジョブを、どのコプロセッサおよびＩ／Ｆカードで、どのような順番で実行すれば複数のジョブの実行時間の総和を短縮することができるかを判定する。そして、情報処理装置１００は、判定の結果にもとづいてジョブのスケジューリングを行い、ジョブをコプロセッサ上で実行する。
【００１６】
図１に示すように、情報処理装置１００は、ジョブキュー１０１と、ディスパッチ判定部１０２と、ディスパッチ実行部１０３と、Ｉ／Ｏアフィニティテーブル生成部１０４と、Ｉ／Ｏ転送量モニタ１０５と、コプロセッサ使用率モニタ１０６と、ジョブプロファイラ１０７とを含む。
【００１７】
ジョブキュー１０１は、自装置に投入されるジョブを一時的に格納しておくためのキューである。
【００１８】
ディスパッチ判定部１０２は、ジョブキュー１０１からジョブを取得して、取得したジョブをどのコプロセッサに割り当てるかを決定する。
【００１９】
ディスパッチ実行部１０３は、コプロセッサにジョブコマンドを出力する。それにより、ジョブコマンドに応じた処理がコプロセッサ上で実行される。
【００２０】
Ｉ／Ｏアフィニティテーブル生成部１０４は、Ｉ／Ｏアフィニティテーブルを生成する。Ｉ／Ｏアフィニティテーブルは、各コプロセッサと各Ｉ／Ｆカードの間のアフィニティ情報（以下、Ｉ／Ｏアフィニティ情報または通信アフィニティ情報という。）が格納されたテーブルである。Ｉ／Ｏアフィニティ情報は、各コプロセッサと各Ｉ／Ｆカードの間の通信におけるレイテンシとスループットとを示す情報である。Ｉ／Ｏアフィニティテーブルは、情報処理装置１００が備える記憶部（図示せず）等に格納される。
【００２１】
Ｉ／Ｏ転送量モニタ１０５は、各Ｉ／Ｆカードのデータ転送量を計測し、現在の各Ｉ／Ｆカードのデータ転送量を示すＩ／Ｏ転送量情報を生成する。Ｉ／Ｏ転送量情報は、情報処理装置１００が備える記憶部（図示せず）等に格納される。
【００２２】
コプロセッサ使用率モニタ１０６は、コプロセッサから、コプロセッサの使用率を示す情報を取得し、取得した情報をコプロセッサ使用率情報に格納する。コプロセッサ使用率情報は、情報処理装置１００が備える記憶部（図示せず）等に格納される。
【００２３】
ジョブプロファイラ１０７は、ジョブプロファイルを生成する。ジョブプロファイルは、自装置に投入されたジョブの特徴を記録するための情報である。ジョブプロファイルは、情報処理装置１００が備える記憶部（図示せず）等に格納される。
【００２４】
なお、ディスパッチ判定部１０２、ディスパッチ実行部１０３、Ｉ／Ｏアフィニティテーブル生成部１０４、Ｉ／Ｏ転送量モニタ１０５、コプロセッサ使用率モニタ１０６およびジョブプロファイラ１０７は、例えば、ジョブスケジューリングプログラムに従って動作するコンピュータによって実現される。この場合、ＣＰＵがジョブスケジューリングプログラムを読み込み、そのプログラムに従って、ディスパッチ判定部１０２、ディスパッチ実行部１０３、Ｉ／Ｏアフィニティテーブル生成部１０４、Ｉ／Ｏ転送量モニタ１０５、コプロセッサ使用率モニタ１０６およびジョブプロファイラ１０７として動作する。また、ディスパッチ判定部１０２、ディスパッチ実行部１０３、Ｉ／Ｏアフィニティテーブル生成部１０４、Ｉ／Ｏ転送量モニタ１０５、コプロセッサ使用率モニタ１０６およびジョブプロファイラ１０７が別々のハードウェアで実現されていてもよい。
【００２５】
ジョブキュー１０１は、情報処理装置１００が備えるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の記憶装置で実現される。
【００２６】
図２は、スケジューリングの実行対象となるシステムの構成の一例を示すブロック図である。
【００２７】
図２に示すシステムでは、ノード２００−１〜２００−ｎがスイッチ２６０を介して接続されている。各ノードは、ＣＰＵ、メモリ、Ｉ／Ｏなどを含む計算機である。図２に示す例では、各ノードは、ＣＰＵ２１１〜２１４と、コプロセッサ２１５〜２１８と、Ｉ／Ｆカード２１９〜２２２とを含む。以降、ＣＰＵ２１１〜２１４をホストと表現する場合がある。また、ホスト上で動作するＯＳをホストＯＳ、コプロセッサ上で動作するＯＳをコプロセッサＯＳと表現する。
【００２８】
本実施形態では、各ノードに、本発明によるジョブスケジューリングプログラム（以下、ジョブスケジューラという。）を適用する。つまり、ジョブスケジューラが、各ノードに組み込まれ、各ノードのホストＯＳ、コプロセッサＯＳ上で処理を実行する。具体的には、ＣＰＵとコプロセッサとが、当該プログラムに従って、ディスパッチ判定部１０２、ディスパッチ実行部１０３、Ｉ／Ｏアフィニティテーブル生成部１０４、Ｉ／Ｏ転送量モニタ１０５、コプロセッサ使用率モニタ１０６およびジョブプロファイラ１０７として動作する。ジョブキュー１０１は、各ノードが備えるＲＡＭ等の記憶装置で実現される。
【００２９】
なお、図２には、１つのスイッチが例示されているが、スイッチはいくつあってもよい。また、各ノードとスイッチとの接続構成は、図２に示す接続構成に限られない。また、図２には、４つのＣＰＵと、４つのコプロセッサと、４つのＩ／Ｆカードとが例示されているが、ＣＰＵ、コプロセッサ、Ｉ／Ｆカードはそれぞれいくつあってもよい。また、ＣＰＵ、コプロセッサ、Ｉ／Ｆカードの接続構成は、図２に示す接続構成に限られない。
【００３０】
コプロセッサ２１５〜２１８は、ＣＰＵ２１１〜２１４の演算機能を補う。コプロセッサ２１５〜２１８は、例えば、拡張カード、または、ノードのマザーボード上に実装されるチップである。コプロセッサは、一般的なＣＰＵの数倍から数十倍のコアから構成される。コプロセッサは、全コアを同時に動作させることで、ＣＰＵを単体で動作させる場合よりも、数倍から数十倍の演算能力を発揮する。コプロセッサ上では、ホストＯＳとは独立した、別のＯＳが動作する。従って、コプロセッサ２１５〜２１８は、ホストと対等な通信やジョブの実行を行うことができる。
【００３１】
Ｉ／Ｆカード２１９〜２２２は、ノード外部の他ノードやストレージと通信を行う。例えば、Ｉ／Ｆカード２１９〜２２２は、インフィニバンドＨＣＡ（Ｉｎｆｉｎｉｂａｎｄ  Ｈｏｓｔ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）カード、ギガビットイーサネット（登録商標）ＨＢＡ（Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）  Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）カード、１０ギガビットイーサネットＨＢＡ（１０Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ  ＨＢＡ）カードである。
【００３２】
スイッチ２６０は、ノード間を結合するためのスイッチング処理を行う。スイッチ２６０と各Ｉ／Ｆカードとは、Ｉ／Ｆカードがサポートするプロトコルと同一のプロトコルで接続される。例えば、Ｉ／Ｆカード２１９〜２２２がインフィニバンドＨＣＡカードである場合には、スイッチ２６０は、インフィニバンドスイッチであって、Ｉ／Ｆカード２１９〜２２２とスイッチ２６０とは、インフィニバンドプロトコルで接続される。この場合、各ノードは、インフィニバンドプロトコルで相互に通信を行う。
【００３３】
ジョブスケジューラは、各ノード上で独立に動作してノード内のジョブの調整を行う。なお、実際の運用では、複数ノードでクラスタ構成をとり、ノード間のバランスを調整するジョブスケジュールと、ノード内のジョブの調整を行うジョブスケジュールとを組み合わせることが想定される。本実施形態では、ノード間のバランスを調整するジョブスケジュールは、既存のジョブスケジューラが行うものとする。
【００３４】
なお、本実施形態では、ＣＰＵ間は、ＣＰＵバスで結合される。また、ＣＰＵ−コプロセッサ間およびＣＰＵ−Ｉ／Ｆカード間は、ＰＣＩエクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）（登録商標）などの標準のバスで結合される。なお、ＣＰＵ間、ＣＰＵ−コプロセッサ間およびＣＰＵ−Ｉ／Ｆカード間を結合するバスは、その他のバスであってもよい。
【００３５】
図３は、ジョブキュー１０１の一例を示す説明図である。図３に示すように、ジョブキュー１０１は、ＦＩＦO（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）構造のバッファであって、複数のジョブを投入順に記憶する。ジョブは、例えば、ユーザからの指示によってジョブキュー１０１に投入される。投入されたジョブは、投入された順にジョブキュー１０１から取り出され、ディスパッチ判定部１０２およびディスパッチ実行部１０３によってスケジューリングされる。
【００３６】
図４は、ジョブの構成の一例を示す説明図である。ジョブは、ジョブを実行するためのプログラムであるジョブバイナリと、そのジョブを実行する環境を示す情報であるジョブコンフィグとを含む。ジョブコンフィグは、ユーザによって、あらかじめ記述される。ユーザからの指示に応じて、ジョブコンフィグとジョブバイナリとが組み合わされたジョブが生成され、生成されたジョブがジョブキュー１０１に投入される。
【００３７】
図５は、ジョブコンフィグの一例を示す説明図である。ジョブコンフィグは、「ジョブ名」、「ジョブ実行名」、「実行ディレクトリ」、「実行時オプション」、「Ｉ／Ｏ通信有無」、および、「使用Ｉ／Ｆ指定オプション」を示す情報を含む。
【００３８】
「ジョブ名」は、ジョブの名前である。「ジョブ実行名」は、ジョブの実行ファイルの名前である。「実行ディレクトリ」は、実行ファイルを実行するディレクトリである。「Ｉ／Ｏ通信有無」は、Ｉ／Ｏ通信の有無を示す。「使用Ｉ／Ｆ指定オプション」は、使用するＩ／Ｆカードを指定するためのオプションである。
【００３９】
図６は、ジョブコンフィグの記述例を示す説明図である。図６に示す例では、「ジョブ名」として“ジョブＡ”が設定されている。「ジョブ実行名」として“ｊｏｂ．ｅｘｅ”が設定されている。「実行ディレクトリ」として“／ｔｍｐ”が設定されている。また、「実行時オプション」として“−Ａ  −ｔ  １０”が設定されている。「使用Ｉ／Ｆ指定オプション」として“−ｉ”が設定されている。“−ｉ”は、ジョブＡに対してＩ／Ｆカードの指定が可能であることを示す。「Ｉ／Ｏ通信有無」は、“あり（Ｔｒｕｅ）”に設定されている。
【００４０】
ディスパッチ実行部１０３が、Ｉ／Ｆカード２２１を指定して、図６に示すジョブＡを実行する場合、ディスパッチ実行部１０３は、「／ｔｍｐ／ｊｏｂ．ｅｘｅ  −Ａ  −ｔ  １０  −ｉ  ＩＦ３」というコマンドを、コプロセッサに出力する。なお、“−ｉ”の後には、指定するＩ／Ｆカードの識別子が設定される。ここで、“ＩＦ３”は、Ｉ／Ｆカード２２１を示す識別子である。
【００４１】
図７は、Ｉ／Ｏアフィニティテーブルの一例を示す説明図である。Ｉ／Ｏアフィニティテーブルは、使用Ｉ／Ｆカードと使用コプロセッサとの組み合わせごとのＩ／Ｏアフィニティ情報を示す。図７に示す“ｃｏｐｒｏ１”〜“ｃｏｐｒｏ４”は、それぞれ、コプロセッサ２１５〜２１８に相当する。“ｉｆ１”〜“ｉｆ４”は、Ｉ／Ｆカード２１９〜２２２に相当する。
【００４２】
図７（ａ）は、各コプロセッサから各Ｉ／Ｆカードを指定して通信を行った場合のレイテンシを示すテーブルである。図７（ｂ）は、各コプロセッサから各Ｉ／Ｆカードを指定して通信を行った場合のスループットを示すテーブルである。例えば、ｃｏｐｒｏ２（コプロセッサ２１６）からｉｆ２（Ｉ／Ｆカード２２０）を指定して通信を行った場合のレイテンシ、スループットは、それぞれ、２０ｎｓ、５０００ＭＢ／ｓである。
【００４３】
図８は、Ｉ／Ｏ転送量情報の一例を示す説明図である。Ｉ／Ｏ転送量情報は、各Ｉ／Ｆカードのデータ転送量を示す情報である。具体的には、Ｉ／Ｏ転送量情報は、各Ｉ／Ｆカードのデータ転送量を、最大転送量と、現在の転送量の情報とで表す。例えば、ｉｆ２（Ｉ／Ｆカード２２０）の最大転送量は５０００ＭＢ／ｓであって、現在の転送量は４５００ＭＢ／ｓである。
【００４４】
図９は、コプロセッサ使用率情報の一例を示す説明図である。コプロセッサ使用率情報は、各コプロセッサに複数あるコアのうち、使用中のコア数と、使用できる最大のコア数とを示す情報を含む。図９に示す例では、ｃｏｐｒｏ４（コプロセッサ２１８）は、最大コア数５０個のうち、１０個のコアが使用中である。つまり、ｃｏｐｒｏ４の使用率は、２０％（＝１０／５０）である。
【００４５】
図１０は、ジョブプロファイルの一例を示す説明図である。ジョブプロファイルは、ジョブ名ごとに一意な情報であって、ジョブの実行特性を表す情報を含む。図１０に示す例では、ジョブの実行特性を表す情報として、データ転送量（単位：ＭＢ）、Ｉ／Ｏ発行回数（単位：回）、ＣＰＵ時間（単位：秒・コア）が格納されている。ＣＰＵ時間は、Ｉ／Ｏで消費される時間以外の時間帯で、コプロセッサ上の１コアでジョブを実行した場合にかかる時間を表す。なお、“秒・コア”は、１コアあたりの秒数を表す単位である。例えば、ジョブＡは、Ｉ／Ｏ発行回数１０回で計３０００ＭＢのデータ転送を行い、Ｉ／Ｏ以外の演算を１コアのみで実行した場合に５２１秒かかる。
【００４６】
図１１は、Ｉ／Ｏアフィニティテーブル生成部１０４の配置の一例を示すブロック図である。
【００４７】
コプロセッサとＣＰＵとは、ハードウェア（ＨＷ）レイヤにおいて、バスを介して接続される。また、Ｉ／Ｆカード２１９〜２２２も同じバスに接続される。
【００４８】
コプロセッサＯＳ４２１は、システムソフトウェアレイヤにおいて、Ｉ／Ｆドライバ４２２を介してＨＷレイヤとのデータ送受信を行う。アプリケーションレイヤにおけるコプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１は、コプロセッサＯＳ４２１上で動作するプログラムである。コプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１は、Ｉ／Ｏアフィニティ計測部４０２と送受信部４０３とを含む。
【００４９】
ホストＯＳ４２３は、システムソフトウェアレイヤにおいて、Ｉ／Ｆドライバ４２４を介してＨＷレイヤとのデータ送受信を行う。アプリケーションレイヤにおけるホスト側Ｉ／Ｏアフィニティ計測プログラム４１１は、ホストＯＳ４２３上で動作するプログラムである。ホスト側Ｉ／Ｏアフィニティ計測プログラム４１１は、Ｉ／Ｏアフィニティ計測部４１３と送受信部４１４とを含む。
【００５０】
コプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１とホスト側Ｉ／Ｏアフィニティ計測プログラム４１１とは、Ｉ／Ｆカード２１９〜２２２を経由して相互に通信を行い、その通信におけるレイテンシやスループットを計測する。具体的には、送受信部４０３と送受信部４１４とが相互に通信を行い、Ｉ／Ｏアフィニティ計測部４０２とＩ／Ｏアフィニティ計測部４１３とがレイテンシやスループットを計測する。
【００５１】
Ｉ／Ｏアフィニティテーブル生成部１０４は、本実施形態では、ホスト側Ｉ／Ｏアフィニティ計測プログラム４１１に含まれ、ホスト側Ｉ／Ｏアフィニティ計測プログラム４１１の機能の一つとして動作する。Ｉ／Ｏアフィニティテーブル生成部１０４は、その計測結果からＩ／Ｏアフィニティテーブルを生成する。
【００５２】
図１２は、Ｉ／Ｏ転送量モニタ１０５の配置の一例を示すブロック図である。
【００５３】
図１２に示すように、本実施形態では、Ｉ／Ｏ転送量モニタ１０５を、ホストＯＳ４２３上に配置する。つまり、Ｉ／Ｏ転送量モニタ１０５は、ホストＯＳ４２３上で動作する。
【００５４】
Ｉ／Ｏ転送量モニタ１０５は、コプロセッサ上で動作するコプロセッサＩ／Ｏ転送量取得サービス５０１から、コプロセッサとＩ／Ｆカード間のデータ転送量を取得する。また、Ｉ／Ｏ転送量モニタ１０５は、ホストＩ／Ｏ転送量取得サービス５０２からコプロセッサを除くＣＰＵとＩ／Ｆカード間のデータ転送量を取得する。コプロセッサＩ／Ｏ転送量取得サービス５０１，ホストＩ／Ｏ転送量取得サービス５０２は、コプロセッサＯＳ４２１、ホストＯＳ４２３からデータ転送量を取得するプログラムである。
【００５５】
Ｉ／Ｏ転送量モニタ１０５は、コプロセッサＩ／Ｏ転送量取得サービス５０１，ホストＩ／Ｏ転送量取得サービス５０２から取得した情報をもとに、各Ｉ／ＦカードのＩ／Ｏ転送量情報を更新する。
【００５６】
図１３は、コプロセッサ使用率モニタ１０６の配置の一例を示すブロック図である。
【００５７】
図１３に示すように、本実施形態では、コプロセッサ使用率モニタ１０６を、ホストＯＳ４２３上に配置する。つまり、コプロセッサ使用率モニタ１０６は、ホストＯＳ４２３上で動作する。
【００５８】
コプロセッサ使用率モニタ１０６は、コプロセッサＯＳ４２１上で動作するコプロセッサ使用率取得サービス７０１からコプロセッサの使用率を取得し、コプロセッサ使用率情報を更新する。コプロセッサ使用率取得サービス７０１は、コプロセッサＯＳ４２１からコプロセッサのコアの使用率を取得するプログラムである。
【００５９】
図１４は、ジョブプロファイラ１０７の構成と配置の一例を示すブロック図である。
【００６０】
図１４に示すように、本実施形態では、ジョブプロファイラ１０７をコプロセッサＯＳ４２１上に配置する。つまり、ジョブプロファイラ１０７は、コプロセッサＯＳ４２１上で動作する。具体的には、ジョブプロファイラ１０７は、実行時間プロファイラ６０１と、通信プロファイラ６０２と、フックライブラリ６０３とを含むプログラム群である。
【００６１】
実行時間プロファイラ６０１は、ジョブバイナリのＣＰＵ時間を計測する。図１４に示すジョブバイナリ３０１は、ディスパッチ判定部１０２が、ジョブキュー１０１から取得したジョブに含まれるジョブバイナリである。
【００６２】
通信プロファイラ６０２は、ジョブのデータ転送量を計測する。
【００６３】
フックライブラリ６０３は、コプロセッサ上で動作する共有ライブラリである。フックライブラリ６０３は、ジョブバイナリ３０１と、ジョブバイナリ３０１が利用する共有ライブラリ６０６との間に入ってジョブ動作の監視を行う。これにより、通信プロファイラ６０２は、ジョブのデータ転送量を計測することができる。
【００６４】
フックライブラリ６０３は、ＡＰＩ６０４と、通信フック部６０５とを含む。
【００６５】
ＡＰＩ６０４は、ジョブバイナリ３０１に、ジョブプロファイラ１０７を共有ライブラリ６０６に見せかけるためのアプリケーションプログラムインタフェース（ＡＰＩ）である。
【００６６】
通信フック部６０５は、ＡＰＩ６０４を介してジョブバイナリ３０１のＩ／Ｏ通信をスヌープする（盗み見る）、つまり監視する。
【００６７】
図１５は、Ｉ／Ｏアフィニティテーブルの生成処理を示すフローチャートである。Ｉ／Ｏアフィニティテーブルの生成は、計算機の起動時に一度だけ実行される。つまり、Ｉ／Ｏアフィニティテーブル生成部１０４は、計算機の起動時に一度だけ起動される。
【００６８】
計算機が起動すると、コプロセッサＯＳ上にコプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１がロードされる（ステップＳ１０１）。ホストＯＳ上にもホスト側Ｉ／Ｏアフィニティ計測プログラム４１１がロードされる（ステップＳ１０２）。
【００６９】
両プログラムのロードが完了すると（ステップＳ１０３）、ホスト側Ｉ／Ｏアフィニティ計測プログラム４１１、コプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１は、Ｉ／Ｏアフィニティの計測を開始する。
【００７０】
ホスト側Ｉ／Ｏアフィニティ計測プログラム４１１、コプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１は、以降の処理（ステップＳ１０５〜Ｓ１０８の処理）を、全てのＩ／Ｆカード（Ｉ／Ｆカード２１９〜２２２）経由で行い、それぞれのＩ／Ｆカードを経由した場合のレイテンシ、スループットを計測する（ステップＳ１０４）。
【００７１】
まず、ホスト側Ｉ／Ｏアフィニティ計測プログラム４１１の送受信部４１４は、計測対象となるＩ／Ｆカードを経由させて、小さいサイズの通信パケットをコプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１に送る。すると、Ｉ／Ｏアフィニティ計測部４０２、４１３が、協調して転送時間を計測してレイテンシを計測する（ステップＳ１０５）。
【００７２】
次に、ホスト側Ｉ／Ｏアフィニティ計測プログラム４１１が、大きいサイズの通信パケットを、コプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１に送る。すると、Ｉ／Ｏアフィニティ計測部４０２、４１３が、協調して転送時間を計測してスループットを計測する（ステップＳ１０６）。
【００７３】
コプロセッサ側Ｉ／Ｏアフィニティ計測プログラム４０１は、逆方向のレイテンシ計測およびスループット計測、つまり、コプロセッサ側からホスト側への通信におけるレイテンシおよびスループットの計測を、ステップＳ１０５、Ｓ１０６の処理と同様に実行する（ステップＳ１０７、Ｓ１０８）。
【００７４】
全てのＩ／Ｆカードに対する計測が完了すると、Ｉ／Ｏアフィニティテーブル生成部１０４は、各Ｉ／Ｆカードから得られた計測結果を集計して、ホストとコプロセッサ間のＩ／Ｏアフィニティテーブルを更新し（ステップＳ１０９）、計測を完了する。
【００７５】
図１６は、Ｉ／Ｏ転送量モニタ１０５の動作の一例を示すフローチャートである。Ｉ／Ｏ転送量モニタ１０５は、数秒程度の短い間隔で定期的または間欠的に、データ転送量の計測を行う。
【００７６】
まず、Ｉ／Ｏ転送量モニタ１０５は、全てのコプロセッサ（コプロセッサ２１５〜２１８）上のコプロセッサＩ／Ｏ転送量取得サービス５０１から、コプロセッサから各Ｉ／Ｆカードに対するデータ転送量を示す情報を取得する（ステップＳ２０１、Ｓ２０２）。
【００７７】
次に、Ｉ／Ｏ転送量モニタ１０５は、ホストＩ／Ｏ転送量取得サービス５０２から、ホストから各Ｉ／Ｆカードに対するデータ転送量を示す情報を取得する（ステップＳ２０３）。
【００７８】
最後に、Ｉ／Ｏ転送量モニタ１０５は、ホストおよび各コプロセッサから取得した転送量情報が示すデータ転送量をＩ／Ｆカードごとに積算し、Ｉ／Ｆカードごとのデータ転送量の総計を求める。Ｉ／Ｏ転送量モニタ１０５は、算出結果をもとに、Ｉ／Ｏ転送量情報を更新する（ステップＳ２０４）。
【００７９】
図１７は、コプロセッサ使用率モニタ１０６の動作を示すフローチャートである。コプロセッサ使用率モニタ１０６は、コプロセッサのコア使用率の計測を数秒程度の短い間隔で定期的または間欠的に行う。
【００８０】
まず、コプロセッサ使用率モニタ１０６は、各コプロセッサのコプロセッサＯＳ４２１上で動作するコプロセッサ使用率取得サービス７０１から、コプロセッサ上のコアの使用率を示す情報を取得する（ステップＳ３０１、Ｓ３０２）。
【００８１】
コプロセッサ使用率モニタ１０６は、全てのコプロセッサ（コプロセッサ２１５〜２１８）から情報を取得したら、コプロセッサ使用率情報を更新する（ステップＳ３０３）。
【００８２】
図１８は、ジョブプロファイラ１０７の動作を示すフローチャートである。ジョブプロファイラ１０７は、コプロセッサ上でジョブが実行される度に、ジョブの実行時間計測、Ｉ／Ｏ計測を行う。
【００８３】
ジョブプロファイラ１０７のフックライブラリ６０３は、ジョブの実行時に共有ライブラリ６０６と共にリンクされる。実行時間プロファイラ６０１および通信プロファイラ６０２は、ジョブ実行時にジョブプロファイラ１０７によって起動される。
【００８４】
実行時間プロファイラ６０１は、起動すると、ジョブの実行時間のモニタを開始する（ステップＳ４０１）。また、通信プロファイラ６０２は、起動すると、Ｉ／Ｏ通信のモニタを開始する（ステップＳ４０２）。
【００８５】
ジョブが終了すると（ステップＳ４０３）、実行時間プロファイラ６０１は、ジョブの実行時間を集計する（ステップＳ４０４）。通信プロファイラ６０２は、ジョブによるデータ転送量、Ｉ／Ｏ転送回数を集計する（ステップＳ４０５）。
【００８６】
その後、ジョブプロファイラ１０７は、実行されたジョブのジョブプロファイルを更新する（ステップＳ４０６）。なお、同じジョブであっても、実行される度にＣＰＵ時間、データ転送量、Ｉ／Ｏ転送回数が変化する可能性がある。従って、本実施形態では、ジョブプロファイラ１０７は、あるジョブのジョブプロファイルを更新する際、過去数十回のＣＰＵ時間、データ転送量、Ｉ／Ｏ発行回数の平均を算出して、その結果をもとに更新する。
【００８７】
図１９は、ディスパッチ判定部１０２およびディスパッチ実行部１０３の動作を示すフローチャートである。
【００８８】
図１９に示す処理は、計算機が起動した後、ジョブキュー１０１にジョブが入っている間、繰り返し実行される（ステップＳ５０１）。
【００８９】
ディスパッチ判定部１０２は、ジョブキュー１０１からジョブを１つ取り出し（ステップＳ５０２）、ディスパッチ判定処理（ステップＳ５０３、Ｓ５０４の処理）を行う。
【００９０】
ディスパッチ判定部１０２は、最新のＩ／Ｏアフィニティテーブル、Ｉ／Ｏ転送量情報、コプロセッサ使用率情報、ジョブプロファイルを参照して、コプロセッサとＩ／Ｆカードとの全ての組み合わせについて、そのジョブの予想実行時間の計算を行う（ステップＳ５０３）。
【００９１】
コプロセッサｎ、Ｉ／Ｆカードｍを使用して、ジョブを実行した場合の予想実行時間は、以下の式により求めることができる。
【００９２】
ジョブの予想実行時間＝（ジョブのＣＰＵ時間）÷（コプロセッサｎの未使用コア数）+（ジョブのデータ転送量）÷（Ｉ／Ｆカードｍのスループット）+（ジョブのＩ／Ｏ発行回数）×（Ｉ／Ｆカードｍのレイテンシ）
【００９３】
ディスパッチ判定部１０２は、コプロセッサとＩ／Ｆカードとの全ての組み合わせについて上記の予想実行時間を求め、当該全ての組み合わせの中から予想実行時間が最短である組み合わせを選択する。
【００９４】
コプロセッサの使用率またはＩ／Ｏ帯域に空きがない状態でジョブが投入された場合、１つのジョブの実行時間が極端に長くなる可能性がある。そこで、ディスパッチ判定部１０２は、次の方法を用いて、１つのジョブの実行時間が極端に長くなることを回避する。なお、回避方法は、その他の方法であってもよい。
【００９５】
ディスパッチ判定部１０２は、上記の式で求めたコプロセッサとＩ／Ｆカードとの全ての組み合わせのジョブの予想実行時間のうち、最短のものが十分に短い場合（ステップＳ５０４のＹｅｓ）、ディスパッチ可能であると判断して次の処理に進む。そうでない場（ステップＳ５０４のＮｏ）、一定時間待ってからステップＳ５０３の処理に戻り、再度予想実行時間の計算を行う。算出した予想実行時間が十分に短いかどうかの判定は、例えば、その予想実行時間が理想的な条件下で行われた場合の最短の実行時間の２倍を超えていないかどうかで判定すればよい。ここで、理想的な条件下とは、コプロセッサの使用率とＩ／Ｏ帯域とが完全に空いている状態、つまりコプロセッサの使用率とＩ／Ｆカードの転送量とがともにゼロの状態を意味する。
【００９６】
ディスパッチ判定部１０２は、ジョブをディスパッチ可能であると判断した場合、使用する予定のコプロセッサ番号とＩ／Ｆカード番号の情報とともに、当該ジョブをディスパッチ実行部１０３に渡す。
【００９７】
ディスパッチ実行部１０３は、ジョブコンフィグの実行時オプションと使用Ｉ／Ｆ指定オプションから、最終的な実行時オプションを作成する（ステップＳ５０５）。例えば、ディスパッチ判定部１０２から受け取ったＩ／Ｆカード番号が“ＩＦ３”である場合、つまり、Ｉ／Ｆカード２２１を使用することがディスパッチ判定部１０２によって決定されている場合には、最終的な実行時オプションは“−Ａ  −ｔ  １０  −ｉ  ＩＦ３”となる。
【００９８】
その後、ディスパッチ実行部１０３は、選択されたコプロセッサにジョブバイナリを転送し、最終的な実行時オプションを指定して、コプロセッサにジョブを実行させる（ステップＳ５０６）。例えば、上記に示す実行時オプションを指定して、コプロセッサにジョブを実行させる場合には、以下のようなコマンドをコプロセッサに出力する。
【００９９】
／ｔｍｐ／ｊｏｂ．ｅｘｅ  −Ａ  −ｔ  １０  −ｉ  ＩＦ３
【０１００】
ディスパッチ判定部１０２およびディスパッチ実行部１０３は、ジョブが実行されると、ジョブの終了を待たずに、次のジョブに対する処理（ステップＳ５０２〜５０６の処理）を開始する。
【０１０１】
以上に説明したように、本実施形態では、複数のコプロセッサと複数のＩ／Ｆカード間のＩ／Ｏアフィニティ（レイテンシ、スループット）を事前に計測し、コプロセッサの使用率とＩ／Ｆカードの使用率とＩ／Ｏアフィニティとにもとづいてジョブスケジューリングを行う。それにより、Ｉ／Ｏ帯域やＩ／Ｏレイテンシがボトルネックとなってジョブ実行時間が延びることを防止することができる。従って、複数のジョブを複数のコプロセッサで並列して実行する計算機において、複数のジョブの実行時間をより短縮することができ、計算機のパフォーマンスを向上させることができる。
【０１０２】
また、本実施形態では、ジョブ実行時に使用するＩ／Ｆカードを指定することができる。従って、Ｉ／Ｏ帯域やＩ／Ｏレイテンシの条件が悪い条件下でジョブが実行されることを防ぐことができ、計算機のパフォーマンスを向上させることができる。
【０１０３】
また、本実施形態では、コプロセッサが実行したジョブの実行時間など、ジョブの特徴を示す情報をジョブプロファイルとして記録する。そして、コプロセッサの使用率とＩ／Ｆカードの使用率とＩ／Ｏアフィニティとジョブプロファイルとを用いて、最短の時間でジョブを実行できるコプロセッサとＩ／Ｆカードの組み合わせを選択する。それにより、複数のジョブの実行時間をさらに短縮することができる。
【０１０４】
また、本実施形態では、システムのＩ／Ｏアフィニティを起動時に計測する。それにより、ハードウェア構造に起因するＩ／Ｏ帯域やＩ／Ｏレイテンシのアフィニティのみならず、ドライバ等のソフトウェアに起因するアフィニティもスケジューリング条件に加えることができる。よって、ジョブ実行時間の見積もりの精度を向上させることができ、計算機のリソースを無駄なく使用することができる。
【０１０５】
図２０は、本発明による情報処理装置の最小構成を示すブロック図である。図２１は、本発明による情報処理装置の他の最小構成を示すブロック図である。
【０１０６】
図２０に示すように、情報処理装置（図１に示す情報処理装置１００に相当。）は、ジョブを実行する複数のコプロセッサの使用率と、コプロセッサが入出力するデータを経由する複数のインタフェースカードの使用率と、複数のコプロセッサと複数のインタフェースカード間の通信のレイテンシおよびスループットとを計測する計測部１０（図１に示す情報処理装置１００におけるＩ／Ｏアフィニティテーブル生成部１０４、Ｉ／Ｏ転送量モニタ１０５およびコプロセッサ使用率モニタ１０６に相当。）と、計測部１０の計測結果にもとづいて、複数のコプロセッサの中から、ジョブを実行させるコプロセッサを決定する判定部２０（図１に示す情報処理装置１００におけるディスパッチ判定部１０２およびディスパッチ実行部１０３に相当。）とを含む。
【０１０７】
そのような構成によれば、Ｉ／Ｏ帯域やＩ／Ｏレイテンシがボトルネックとなってジョブ実行時間が延びることを防止することができる。
【０１０８】
上記の実施形態には、以下のような情報処理装置も開示されている。
【０１０９】
（１）判定部２０は、計測部１０の計測結果にもとづいて、複数のインタフェースカードの中から、コプロセッサが入出力するデータを経由させるインタフェースカードを決定する情報処理装置。
【０１１０】
そのような構成によれば、Ｉ／Ｏ帯域やＩ／Ｏレイテンシの条件が悪い条件下でジョブが実行されることを防ぐことができ、計算機のパフォーマンスを向上させることができる。
【０１１１】
（２）図２１に示すように、計測部１０は、各コプロセッサと各インタフェースカード間の通信のレイテンシおよびスループットを計測し、計測結果を含む通信アフィニティ情報を生成するアフィニティ計測部１１（図１に示す情報処理装置１００におけるＩ／Ｏアフィニティテーブル生成部１０４に相当。）と、各インタフェースカードのデータ転送量を計測し、計測結果を含む転送量情報を生成する転送量監視部１２（図１に示す情報処理装置１００におけるＩ／Ｏ転送量モニタ１０５に相当。）と、各コプロセッサからコア使用率を取得し、コプロセッサ使用率情報に格納するコプロセッサ使用率監視部１３（図１に示す情報処理装置１００におけるコプロセッサ使用率モニタ１０６に相当。）とを含み、判定部２０は、計測部１０から計測結果として、通信アフィニティ情報、転送量情報およびコプロセッサ使用率情報を取得する情報処理装置。
【０１１２】
そのような構成によれば、コプロセッサの使用率とＩ／Ｆカードの使用率とＩ／Ｏアフィニティとをより正確に計測することができるので、複数のジョブの実行時間をより確実に短縮することができる。
【０１１３】
（３）図２１に示すように、計測部１０は、コプロセッサが実行したジョブの実行時間、データ転送量および入出力要求発行回数を計測し、計測結果を含むジョブプロファイルを生成するジョブプロファイル生成部１４（図１に示す情報処理装置１００におけるジョブプロファイラ１０７に相当。）を含み、判定部２０は、ジョブを実行させるコプロセッサと、コプロセッサが入出力するデータを経由させるインタフェースカードとを決定する際に、ジョブプロファイルを用いて、コプロセッサとインタフェースカードとの全ての組み合わせについて、実行対象のジョブの予想実行時間を算出し、予想実行時間が最短であるコプロセッサとインタフェースカードとの組み合わせを選択する情報処理装置。
【０１１４】
そのような構成によれば、最短の時間でジョブを実行できるコプロセッサとＩ／Ｆカードの組み合わせを選択することでき、複数のジョブの実行時間をさらに短縮することができる。また、ジョブ実行時間の見積もり精度を向上させることができ、計算機のリソースを無駄なく使用することができる。
【符号の説明】
【０１１５】
１０  計測部
１１  アフィニティ計測部
１２  転送量監視部
１３  コプロセッサ使用率監視部
１４  ジョブプロファイル生成部
２０  判定部
１００  情報処理装置
１０１  ジョブキュー
１０２  ディスパッチ判定部
１０３  ディスパッチ実行部
１０４  Ｉ／Ｏアフィニティテーブル生成部
１０５  Ｉ／Ｏ転送量モニタ
１０６  コプロセッサ使用率モニタ
１０７  ジョブプロファイラ
２００−１〜２００−ｎ  ノード
２１１〜２１４  ＣＰＵ
２１５〜２１８  コプロセッサ
２１９〜２２２  Ｉ／Ｆカード
３０１  ジョブバイナリ
４０１  コプロセッサ側Ｉ／Ｏアフィニティ計測プログラム
４０２、４１３  Ｉ／Ｏアフィニティ計測部
４０３、４１４  送受信部
４１１  ホスト側Ｉ／Ｏアフィニティ計測プログラム
４２１  コプロセッサＯＳ
４２２、４２４  Ｉ／Ｆドライバ
４２３  ホストＯＳ
５０１  コプロセッサＩ／Ｏ転送量取得サービス
５０２  ホストＩ／Ｏ転送量取得サービス
６０１  実行時間プロファイラ
６０２  通信プロファイラ
６０３  フックライブラリ
６０４  ＡＰＩ
６０５  通信フック部
６０６  共有ライブラリ
７０１  コプロセッサ使用率取得サービス
【図１】
2014170363.tif 000003
【図２】
2014170363.tif 000004
【図３】
2014170363.tif 000005
【図４】
2014170363.tif 000006
【図５】
2014170363.tif 000007
【図６】
2014170363.tif 000008
【図７】
2014170363.tif 000009
【図８】
2014170363.tif 000010
【図９】
2014170363.tif 000011
【図１０】
2014170363.tif 000012
【図１１】
2014170363.tif 000013
【図１２】
2014170363.tif 000014
【図１３】
2014170363.tif 000015
【図１４】
2014170363.tif 000016
【図１５】
2014170363.tif 000017
【図１６】
2014170363.tif 000018
【図１７】
2014170363.tif 000019
【図１８】
2014170363.tif 000020
【図１９】
2014170363.tif 000021
【図２０】
2014170363.tif 000022
【図２１】
2014170363.tif 000023