(57)【要約】【課題】スケジューラにより複数の処理リソースに対してジョブを割り当てるシステムにおいて、実装容易の手法で、ジョブが割り当てられた処理リソースの温度上昇を推定できるようにする。【解決手段】ジョブ生成部１００は、ソースプログラムから、複数の処理リースのいずれかにより実行されるジョブを生成する。ジョブ生成部１００は、ジョブの生成に際して、該ジョブを実行することによる処理リソースの発熱量を示しうる指標値を推定可能とするジョブ特性情報を算出してジョブに付属させる。【選択図】図１
2011022940.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムから、複数の処理リースのいずれかにより実行されるジョブを生成するジョブ生成部であって、前記ジョブの生成に際して、該ジョブを実行することによる処理リソースの発熱量を示しうる指標値を推定可能とするジョブ特性情報を算出して前記ジョブに付属させる前記ジョブ生成部を備えたことを特徴とする情報処理装置。
【請求項２】
前記ジョブ特性情報は、当該ジョブを実行する際の処理リソースにおける演算器の稼働率を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ジョブ特性情報は、処理リソースに備えられ、該処理リソースと、該処理リソースによるジョブの実行中に前記処理リソースとの間でデータ伝送を行う外部装置とを接続するインタフェースの稼働率を含むことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記外部装置は、主記憶装置を含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記外部装置は、主記憶装置以外の周辺装置をさらに含むことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記複数の処理リソースに対してジョブの割当てを行うスケジューラをさらに備え、
該スケジューラは、
ジョブが割り当てられた処理リソースに対して、前記ジョブに付属された前記ジョブ特性情報を用いて該ジョブに対応する前記指標値を推定する推定部と、
前記複数の処理リース毎に、前記推定部が得た前記指標値を累積して累積指標値を得る累積部と、
該累積部により得られた前記複数の処理リソースの前記累積指標値に基づいてジョブの割当てを実行する割当実行部とを有することを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記推定部は、ジョブが割り当てられた処理リソースの特性に基づき、前記ジョブに付属された前記ジョブ特性情報を補正してから前記指標値を推定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記推定部は、複数の項目が含まれる前記ジョブ特性情報に対して、前記複数の項目ごとに補正を行うことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記推定部は、前記指標値として、当該処理リソースのトランジスタジャンクション温度の変化量を推定することを特徴とする請求項６から８のいずれか１項に記載の情報処理装置。
【請求項１０】
ソースプログラムから、複数の処理リースのいずれかにより実行されるジョブを生成する際に、該ジョブを実行することによる処理リソースの発熱量を示しうる指標値を推定可能とするジョブ特性情報を算出して前記ジョブに付属させる工程を有することを特徴とする情報処理方法。
【請求項１１】
前記ジョブ特性情報は、当該ジョブを実行する際の処理リソースにおける演算器の稼働率を含むことを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
前記ジョブ特性情報は、処理リソースに備えられ、該処理リソースと、該処理リソースによるジョブの実行中に前記処理リソースとの間でデータ伝送を行う外部装置とを接続するインタフェースの稼働率を含むことを特徴とする請求項１０または１１に記載の情報処理方法。
【請求項１３】
前記外部装置は、主記憶装置を含むことを特徴とする請求項１２に記載の情報処理方法。
【請求項１４】
前記外部装置は、主記憶装置以外の周辺装置をさらに含むことを特徴とする請求項１３に記載の情報処理方法。
【請求項１５】
前記複数の処理リソースに対してジョブの割当てを行うスケジューリング工程をさらに有し、
該スケジューリング工程は、
ジョブが割り当てられた処理リソースに対して、前記ジョブに付属された前記ジョブ特性情報を用いて該ジョブに対応する前記指標値を推定する推定工程と、
前記複数の処理リース毎に、前記推定工程により得られたた前記指標値を累積して累積指標値を得る累積工程と、
該累積工程により得られた前記複数の処理リソースの前記累積指標値に基づいてジョブの割当てを実行する割当実行工程とを有することを特徴とする請求項１０から１４のいずれか１項に記載の情報処理方法。
【請求項１６】
前記推定工程は、ジョブが割り当てられた処理リソースの特性に基づき、前記ジョブに付属された前記ジョブ特性情報を補正してから前記指標値を推定することを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
前記推定工程は、複数の項目が含まれる前記ジョブ特性情報に対して、前記複数の項目ごとに補正を行うことを特徴とする請求項１６に記載の情報処理方法。
【請求項１８】
前記推定工程は、前記指標値として、当該処理リソースのトランジスタジャンクション温度の変化量を推定することを特徴とする請求項１５から１７のいずれか１項に記載の情報処理方法。
【請求項１９】
ソースプログラムから、複数の処理リースのいずれかにより実行されるジョブを生成する際に、該ジョブを実行することによる処理リソースの発熱量を示しうる指標値を推定可能とするジョブ特性情報を算出して前記ジョブに付属させる処理をコンピュータに実行せしめることを特徴とするプログラム。
【請求項２０】
前記複数の処理リソースに対してジョブの割当てを行うスケジューリング処理をさらにコンピュータに実行せしめ、
前記スケジューリング処理は、
ジョブが割り当てられた処理リソースに対して、前記ジョブに付属された前記ジョブ特性情報を用いて該ジョブに対応する前記指標値を推定する推定処理と、
前記複数の処理リース毎に、前記推定処理により得られた前記指標値を累積して累積指標値を得る累積処理と、
該累積処理により得られた前記複数の処理リソースの前記累積指標値に基づいてジョブの割当てを実行する割当実行処理とを含むことを特徴とする請求項１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術、具体的には、複数の処理リソースに対してジョブを割り当てる技術に関する。
【背景技術】
【０００２】
近年、ＣＰＵチップなどの計算資源は処理能力が向上し、計算資源として用いられるＬＳＩの発熱も増える一方である。発熱による温度上昇は、ＬＳＩ自身と、ＬＳＩ近傍の電子部品の寿命を縮めてしまうという問題がある。
【０００３】
複数の処理リソースを備えたスーパーコンピュータやマルチプロセッサシステムなどにおいて、これらの複数の処理リソースへのジョブの割当て（スケジューリングともいう）に工夫することによりこの問題を軽減する試みがなされている。
【０００４】
例えば、特許文献１には、複数のＰＥ（プロセッサ・エレメント）により構成された並列計算機システムにおいて、温度センサにより各ＰＥの温度を夫々監視し、新たなジョブを温度の最も低いＰＥに割り当てる手法が開示されている。この手法によれば、複数のＰＥの温度上昇を均一化できると考えられているが、昨今の並列計算機システムでは、複数個のＰＥを小面積チップに内蔵しているため、個々のＰＥの温度を検知する温度センサを配置することが困難である。
【０００５】
また、特許文献２には、スケジューラにより、ジョブ処理に伴うＰＥの温度上昇を推定し、推定結果に基づいてジョブを割り当てる手法が開示されている。この手法によれば、温度センサを必要とすることに起因する特許文献１の手法の上記問題点を解消できるとされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−１６５３１号公報
【特許文献２】特開２００４−２４０６６９号公報
【非特許文献】
【０００７】
【非特許文献１】Ｍ．Ｓ．Ｆｌｏｙｄ，Ｓ．Ｇｈｉａｓｉ，Ｔ．Ｗ．Ｋｅｅｌｅｒ，Ｋ．Ｒａｊａｍａｎｉ，Ｆ．Ｌ．Ｒａｗｓｏｎ，Ｊ．Ｃ．Ｒｕｂｉｏ，Ｍ．Ｓ．Ｗａｒｅ，"Ｓｙｓｙｔｅｍ  ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ  ｓｕｐｐｏｒｔ  ｉｎ  ｔｈｅ  ＩＢＭ  ＰＯＷＥＲ６  ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ"，ＩＢＭ  Ｊ．Ｒｅｓ．＆Ｄｅｖ．５１，Ｎｏ．６（２００７），ｐｐ．７３９
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献２による手法は、スケジューラによりＰＥの温度上昇を推定できることを前提としている。しかし、特許文献２には、温度上昇の推定手法について具体的な記述が無く、該特許文献の記載から、たとえ当業者といえども、いかにして温度上昇を推定するかの示唆を得ることが困難である。
【０００９】
たとえば、特許文献２には、一つの形態として、スケジューラはタイマに基づき定期的に温度上昇を推定する記述がある。この形態では、スケジューラは、既に割り当てたジョブの処理中に該ジョブを処理するＰＥのその時点の温度上昇分を推定するケースが生じうる。スケジューラは、通常、各ＰＥの現在の負荷残量を知ることができる。しかし、温度センサ無しの構成で負荷残量のみで任意の時点での温度上昇を推定することは、負荷残量からどのように温度上昇を推定する手法が明示されなければ、スケジューラの実装が困難であると考えられる。
【課題を解決するための手段】
【００１０】
本発明の一つの態様は、ソースプログラムから、複数の処理リースのいずれかにより実行されるジョブを生成するジョブ生成部を備えた情報処理装置である。上記ジョブ生成部は、ジョブの生成に際して、該ジョブを実行することによる処理リソースの発熱量を示しうる指標値を推定可能とするジョブ特性情報を算出してジョブに付属させる。
【００１１】
なお、上記態様の情報処理装置をシステムや方法、またはコンピュータを該情報処理装置として動作せしめるプログラムに置き換えて表現したものも、本発明の態様としては有効である。
【発明の効果】
【００１２】
本発明にかかる技術によれば、スケジューラにより複数の処理リソースに対してジョブを割り当てるシステムにおいて、実装容易の手法で、ジョブが割り当てられた処理リソースの温度上昇を推定できる。
【図面の簡単な説明】
【００１３】
【図１】本発明にかかる技術の原理を説明するためのジョブ生成部の模式図である。
【図２】本発明の実施の形態にかかる計算機システムを示す図である。
【図３】図２に示す計算機システムにおけるコンパイラの処理の流れを示すフローチャートである。
【図４】図２に示す計算機システムにおけるスケジューラによるプロセッサの温度変化分の推定を説明するための図である。
【発明を実施するための形態】
【００１４】
以下の説明に用いられる図面に、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、プロセッサ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリに記録されたまたはロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。また、分かりやすいように、これらの図面において、本発明の技術を説明するために必要なもののみを示す。
【００１５】
本発明の具体的な実施の形態を説明する前に、まず、本発明にかかる技術の原理を説明する。
図１は、本発明にかかる技術によるジョブ生成部１００を示す模式図である。ジョブ生成部１００は、ソースプログラムから、複数の処理リソースのいずれかにより処理されるジョブを生成する。ジョブの生成に際して、ジョブ生成部１００は、該ジョブを実行することによる処理リソースの発熱量を示しうる指標値を推定可能とするジョブ特性情報を算出してジョブに付属させる。図１に示すように、ジョブ生成部１００から出力されるジョブは、ジョブ本体とジョブ特性情報を含む。
【００１６】
本発明の技術によれば、ソースプログラムからジョブを生成する際に、すなわちコンパイルする際に上記指標値を推定可能とするジョブ特性情報を算出してジョブに付属させることにより、のちに、該ジョブを複数の処理リソースに割り当てるときに、スケジューラがジョブ特性情報に基づいて指標値を推定できる。この指標値は、該ジョブを実行することによる処理リソースの発熱量を示すことができるものであるため、該ジョブを実行することに伴う処理リソースの温度上昇なども算出できる。
【００１７】
また、ジョブを生成する際に上記ジョブ特性情報を取得するので、実装が容易である。
【００１８】
上述した原理を踏まえて、本発明の実施の形態について説明する。
図２は、本発明の実施の形態にかかる計算機システム２００を示す。計算機システム２００は、ソースプログラムを格納するソース格納部２１０と、コンパイラ２２０と、スケジューラ２３０と、演算部２４０と、主記憶装置２５０と、周辺装置２６０を備える。
【００１９】
主記憶装置２５０は、メインメモリとも呼ばれる。周辺装置２６０については、その一例としてハードディスクを挙げることができる。
【００２０】
コンパイラ２２０は、ソース格納部２１０に格納されたソースプログラムから演算部２４０におけるいずれかのプロセッサ２４１により処理されるジョブを生成して、主記憶装置２５０に格納する。本実施の形態において、コンパイラ２２０は、ジョブの生成に際して、当該ジョブを実行することによりプロセッサの発熱量を示しうる指標値を推定するために必要なジョブ特性情報を算出してジョブに付属させる。指標値とジョブ特性情報の詳細については後述する。
【００２１】
演算部２４０は、複数のプロセッサ２４１を有し、これらのプロセッサ２４１は、複数の演算器を有し、ＳＩＭＤ演算（ＳＩＭＤ：Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）演算とＳＩＳＤ演算（ＳＩＳＤ：Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）に対応可能である。
【００２２】
スケジューラ２３０は、コンパイラ２２０により生成して主記憶装置２５０に格納したジョブを演算部２４０のいずれかのプロセッサ２４１に割り当てる処理を担い、推定部２３１と、累積部２３２と、ヒストリバッファ２３３と、割当実行部２３４を有する。
【００２３】
割当実行部２３４は、ジョブの割当てを実行し、該ジョブを演算部２４０のいずれかのプロセッサ２４１に割り当てる。
【００２４】
推定部２３１は、割当対象のジョブから該ジョブに付属されたジョブ特性情報を読み出して保持しておき、該ジョブが割り当てられたプロセッサ２４１によるこのジョブの実行完了時に、当該プロセッサ２４１がこのジョブを処理することに伴う発熱量を示しうる指標値を推定する。
【００２５】
累積部２３２は、複数のプロセッサ２４１毎に、上記指標値を累積加算して累積指標値を得てヒストリバッファ２３３に出力する。具体的には、累積部２３２は、推定部２３１により指標値が推定される度に、ヒストリバッファ２３３に格納された、該ジョブが割り当てられたプロセッサ２４１の今までの累積指標値に、推定部２３１により推定した指標値を加算して新たな累積指標値を得てヒストリバッファ２３３を更新する。
【００２６】
ヒストリバッファ２３３は、プロセッサ２４１毎に、累積部２３２が算出した累積指標値を格納する。
【００２７】
割当実行部２３４は、今回のジョブの割当てに際して、ヒストリバッファ２３３を参照し、累積指標値が最も小さいプロセッサ２４１にジョブを割り当てる。割当実行部２３４は、いずれのプロセッサ２４１にジョブを割り当てたかを推定部２３１に通知する。
【００２８】
プロセッサ２４１は、割り当てられたジョブを実行し、該ジョブの実行が終了したときには、ジョブ終了信号をスケジューラ２３０に出力する。スケジューラ２３０の割当実行部２３４は、いずれかのプロセッサ２４１からジョブ終了信号を受信すると、該ジョブ終了信号を推定部２３１に出力する。
【００２９】
本実施の形態の計算機システム２００において用いられる上記ジョブ特性情報、指標値、および推定部２３１による指標値の推定の詳細を説明するために、まず、プロセッサがジョブを処理する際の発熱量について説明する。
【００３０】
プロセッサの発熱量を左右する要因は、下記の２つが考えられる。
１．プロセッサに備えられた演算器の稼働率。
２．プロセッサが主記憶装置および周辺装置に接続するインタフェース（以下単にインタフェースという）の稼動率。
【００３１】
＜演算器の稼動率について＞
プロセッサにおける演算器の稼働部分が多いほど、プロセッサは多くの発熱をする。これは、演算器の稼動率が高くなると、トランジスタの容量の充放電によって電力消費が多くなり、発熱量が増えるからである。
【００３２】
また、近年確立されたＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）という技術があり、この技術は、プロセッサ内の動作しない部分のクロックをオフにするか、プロセッサ内の動作しない部分の動作周波数と電圧を下げる技術である。
【００３３】
従って、トランジスタの充放電以外の理由でも、演算器の稼働率が高いほど、プロセッサの発熱量が高くなる。
【００３４】
＜インタフェースの稼動率について＞
近年、プロセッサにおいて、インタフェース部分は多くの電力を消費する。プロセッサ内に、高速に動作するインタフェースが搭載されており、この部分の電力消費が大きいほどプロセッサの発熱量も大きくなり、インタフェースの稼働率次第で、プロセッサの発熱量は大きく変わる。
【００３５】
なお、非特許文献１に記載されたように、インタフェースの稼働率は、「データを通過させないので、インタフェースを止める」という命令により制御可能である。
【００３６】
以上の説明を踏まえて、コンパイラ２２０によるジョブ特性情報の算出を説明する。
【００３７】
コンパイラ２２０は、ソースプログラムをコンパイルしてジョブを生成する際に、該ジョブを処理するプロセッサの演算器稼働率と、インタフェース稼働率の２つの視点からジョブ特性情報を算出する。
【００３８】
＜演算器稼働率について＞
プロセッサの演算器の稼働率は、該プロセッサにおける複数の演算器をいかに並列に使用するかで決まる。コンパイラ２２０は、ソースプログラムをコンパイルする際に行う並列化は、下記の２つが含まれる。
（１）第１の粒度の並列化：ソースプログラムのサブルーチンやブロックによる並列化。
（２）第２の粒度の並列化：ソースプログラムのループレベルの並列化。
【００３９】
第１の粒度の並列化は、スレッドレベルの並列化であり、この並列化において、コンパイラ２２０は、ソースプログラムをプロセッサで実行する処理単位に分解してスレッドを生成する。このスレッドは、ジョブに該当する。
【００４０】
第２の粒度の並列化、ソースプログラムのループ処理を解析し、ＳＩＭＤ演算器に割り当てる演算を決定する。１つのスレッドにおけるこの演算の数は、プロセッサの演算器の稼働率に影響を与える。
【００４１】
本実施の形態において、コンパイラ２２０は、スレッド毎の、ＳＩＭＤ演算器に割り当てた演算の総数をカウントする。この総数は、以下ＳＩＭＤ演算数ＥｘｅｃＳＮという。
【００４２】
なお、ＳＩＭＤ演算器に割り当てられなかった演算、すなわちＳＩＳＤ演算についても、コンパイラ２２０は、その総数をカウントする。この総数は、以下ＳＩＳＤ演算数ＥｘｅｃＮという。
【００４３】
＜インタフェース稼働率について＞
コンパイラ２２０は、ジョブ毎に、下記２つの転送サイズを求める。
（１）該ジョブを実行する際に行うメモリアクセスの転送サイズ。以下メモリアクセス転送サイズＳｉＭＥＭという。なお、ここでいうメモリアクセスは、主記憶装置２５０へのアクセスを意味する。
（２）該ジョブを実行する際に周辺装置２６０との間に行うデータ転送（Ｉ／Ｏ転送）のサイズ。以下Ｉ／Ｏ転送サイズＳｉＩＯという。
【００４４】
コンパイラ２２０は、コンパイルに際して、ソースプログラム中のメモリアクセスのサイズを認識した上でメモリアクセスの命令列（Ｌｏａｄ命令、Ｓｔｏｒｅ命令など）を生成するので、メモリアクセス転送サイズＳｉＭＥＭを算出することができる。
【００４５】
同様に、コンパイラ２２０は、コンパイルに際して、ソースプログラム中のＩ／Ｏ転送のサイズを認識した上でＩ／Ｏ転送の命令列（Ｉ／Ｏリード命令、Ｉ／Ｏライト命令など）を生成するので、Ｉ／Ｏ転送サイズＳｉＩＯを算出することができる。
【００４６】
図３は、コンパイラ２２０が、コンパイル時においてジョブ特性情報を算出する処理の流れを示すフローチャートである。コンパイラ２２０は、コンパイルに当たって、まずソースプログラムに対して字句解析、構文解析などの解析を行う（Ｓ１０）。そして、ステップＳ１０の解析結果に基づいて第１の粒度の並列化と第２の並列化を行ってスレッドを生成する（Ｓ１２）。コンパイラ２２０は、ステップＳ１０で生成したスレッド毎に、ＳＩＭＤ演算数ＥｘｅｃＳＮを算出する（Ｓ１４）。なお、ＳＩＭＤ演算数ＥｘｅｃＳＮは、命令数ではなく、ＳＩＭＤ演算器に割り当てた演算の数の総和である。
【００４７】
コンパイラ２２０は、さらに、スレッド毎に、ＳＩＭＤ演算器に割り当てなかったＳＩＳＤ演算数ＥｘｅｃＮ、メモリアクセス転送サイズＳｉＭＥＭ、Ｉ／Ｏ転送サイズＳｉＩＯも算出する（Ｓ１６、Ｓ１８、Ｓ２０）。
【００４８】
コンパイラ２２０は、ステップＳ１８で算出したメモリアクセス転送サイズＳｉＭＥＭと、ステップＳ２０で算出したＩ／Ｏ転送サイズＳｉＩＯに対して、夫々の対応するアーキテクチャに応じて決定される係数を夫々乗算することにより補正する（Ｓ２２）。なお、アーキテクチャは、プロセッサ、メモリ、Ｉ／Ｏなどの計算機システムの構成要素を意味する。上記係数は、当該計算機システム上で指標値測定用のジョブを実行して発熱量を実測することにより決めてもよいし、計算機システムの各構成要素の仕様から経験的に決めてもよい。
【００４９】
コンパイラ２２０は、上記において得られたＳＩＭＤ演算数ＥｘｅｃＳＮ、ＳＩＳＤ演算数ＥｘｅｃＮ、補正後のメモリアクセス転送サイズＳｉＭＥＭ、補正後のＩ／Ｏ転送サイズＳｉＩＯをジョブ特性情報として当該スレッドに付属させて、主記憶装置２５０に出力する（Ｓ２４、Ｓ２６）。
【００５０】
次に、スケジューラ２３０における推定部２３１が、ジョブが割り当てられたプロセッサ２４１によるこのジョブの処理に伴う発熱量を示しうる指標値を推定する処理について説明する。
【００５１】
本実施の形態において、推定部２３１は、上記指標値として、プロセッサのＬＳＩジャンクション温度Ｔｊ（ＬＳＩ内のトランジスタ素子のチャネル部分の温度）の変化分を用いる。以下の説明において、この変化分を「ΔＴｊ／ΔＳ」で表記する。Ｓは、当該ジョブを実行した期間であり、以下実行期間という。「ΔＴｊ／ΔＳ」は、Ｓの期間におけるＴｊの変化分を意味する。なお、以下の説明において、すべての「ΔＸ／ΔＳ」の表記は、Ｓの期間における変数Ｘの変化分を意味する。
【００５２】
ΔＴｊ／ΔＳの算出に当たり、推定部２３１は、まず、当該ジョブのジョブ特性情報を読み出して、下記の式（１）に従って、該ジョブを処理するプロセッサの電力消費Ｐを算出する。
P＝α×ExecSN＋β×ExecN＋γ×SiMEM＋δ×SiIO        （１）
【００５３】
式（１）において、α、β、γ、δは、プロセッサの仕様によって決まる係数であり、予め推定部２３１に設定されている。プロセッサの仕様が異なれば、同じジョブを処理しても発熱量が異なるため、これらの係数でジョブ特性情報を補正することにより、プロセッサの発熱量乃至温度上昇をより正確に求めることができる。
【００５４】
なお、この補正がスケジューラ２３０において行われるのは、コンパイラ２２０が、通常、システムにおけるプロセッサの仕様を知らないためである。なぜならば、一般的な計算機システムにおいて、コンパイラが個々のシステムに合わせて設計されることはないからである。
【００５５】
図４を参照して、プロセッサがジョブａを実行した後に、引き続きジョブｂを実行したときのＬＳＩのΔＴｊ／ΔＳの算出を説明する。なお、ジョブａとジョブｂの実行期間をΔＳａとΔＳｂでそれぞれ表記する。
【００５６】
ＬＳＩのジャンクション温度Ｔｊは、下記の式（２）により表わすことができる。
Tj[℃]＝θ[℃／W]×P「W」＋Ta（℃）        （２）
【００５７】
式（２）において、θは熱抵抗値であり、ＬＳＩの実装が決まれば静的に決まる。Ｔａは、雰囲気温度と呼ばれ、設置場所と冷却能力が決まれば、静的に決まる。Ｐは、ジョブを実行したときのプロセッサの消費電力であり、本実施の形態では、推定部２３１により式（１）に従ってジョブ特性情報から算出される。
【００５８】
ジョブａの実行完了後に、引き続きジョブｂを実行した際に、ジョブｂの実行開始から実行完了までのΔＴｊ／ΔＳについて、式（２）から導出される下記の式（３）を用いて求めることできる。
ΔTj/ΔS=P×Δθ/ΔＳ＋θ×ΔP/ΔS＋ΔTa/ΔS      （３）
【００５９】
熱抵抗値θと、雰囲気温度Ｔａは変化しないので、式（３）は下記の式（４）になる。
ΔTj/ΔS=θ×ΔP/ΔS        （４）
【００６０】
さらに、ΔＳが微小である場合には、「ΔＰ／ΔＳ」を「Ｐｂ−Ｐａ」／ｔｂで近似できるので、この近似によって、式（４）から下記の式（５）を得ることができる。
ΔTj/ΔS=（Ｐｂ−Ｐａ）／ｔｂ        （５）
なお、ＰａとＰｂは、ジョブａとジョブｂにそれぞれ対応する電力消費である。
【００６１】
式（５）に式（１）を導入すると、下記の式（６）を得ることができる。
ΔTj/ΔS＝(ExecSNb−ExecSNa)×θ×(α＋β＋γ＋δ)／ｔｂ        （６）
【００６２】
このように、プロセッサがあるプログラムｂを実行した場合、実行期間における温度変化分は、上記の式（６）により算出できる。
【００６３】
本実施の形態において、推定部２３１は、ジョブが割り当てられ、該ジョブが割り当てられたプロセッサ２４１による当該ジョブの処理完了時に、式（６）に従って当該プロセッサ２４１のジャンクション温度Ｔｊの変化分ΔＴｊ／ΔＳを算出する。
【００６４】
累積部２３２は、推定部２３１が算出したΔＴｊ／ΔＳを当該プロセッサについて累積加算して累積指標値を得てヒストリバッファ２３３に格納させる。
【００６５】
そして、割当実行部２３４は、ジョブを割り当てる際に、ヒストリバッファ２３３に格納された各プロセッサの累積指標値を参照し、累積指標値が最も小さいプロセッサにジョブを割り当てる。
【００６６】
このように、本実施の形態において、ジョブをコンパイルする際に、ジョブ特性情報を算出してジョブに付属させることにより、のちに、スケジューラは、ジョブの割当てをするときに、付属されたジョブ特性情報に基づいて、処理リソースが該ジョブを実行することによる該処理リソースの発熱量を推定できる。また、ジョブを生成する際にジョブ特性情報を取得するので、実装が容易である。
【００６７】
また、前述したように、特許文献２には、タイマに基づき定期的に温度上昇を推定する記載がある。そのため、スケジューラは、既に割り当てられたジョブの処理中に該ジョブを処理するＰＥのその時点の温度上昇分を推定するケースが生じる。温度上昇の推定は、ジョブの割当てのためであり、特許文献２に記載されたように定期的に温度上昇を推定するのでは、推定した結果をどのように次のジョブの割当てに使用するかなど、手法の有効性に関わる点が不明である。
【００６８】
これに対して、本実施の形態においては、ジョブの実行が完了するまでの温度上昇分を推定しているので、推定結果を確実にジョブの割当てに生かすことができる。
【００６９】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７０】
例えば、上記において、推定部２３１と累積部２３２を別々の構成要素として説明しているが、代わりに、１つの構成要素で推定部２３１と累積部２３２の機能を共に担うようにしてもよい。
【００７１】
また、プロセッサ２４１からのジョブ完了通知信号は、割当実行部２３４により推定部２３１に転送されるようにしているが、このジョブ完了通知信号は、推定部２３１に直接出力されるようにしてもよい。
【符号の説明】
【００７２】
１００  ジョブ生成部
２００  計算機システム
２１０  ソース格納部
２２０  コンパイラ
２３０  スケジューラ
２３１  推定部
２３２  累積部
２３３  ヒストリバッファ
２３４  割当実行部
２４０  演算部
２４１  プロセッサ
２５０  主記憶装置
２６０  周辺装置
【図１】
2011022940.tif 000003
【図２】
2011022940.tif 000004
【図３】
2011022940.tif 000005
【図４】
2011022940.tif 000006