JPWO2014033941A1 - 計算機システムおよび計算機システムの制御方法 - Google Patents

計算機システムおよび計算機システムの制御方法 Download PDF

Info

Publication number
JPWO2014033941A1
JPWO2014033941A1 JP2014532705A JP2014532705A JPWO2014033941A1 JP WO2014033941 A1 JPWO2014033941 A1 JP WO2014033941A1 JP 2014532705 A JP2014532705 A JP 2014532705A JP 2014532705 A JP2014532705 A JP 2014532705A JP WO2014033941 A1 JPWO2014033941 A1 JP WO2014033941A1
Authority
JP
Japan
Prior art keywords
calculation
computer system
error
unit
processor
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.)
Pending
Application number
JP2014532705A
Other languages
English (en)
Inventor
真生 濱本
真生 濱本
山岡 雅直
雅直 山岡
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2014033941A1 publication Critical patent/JPWO2014033941A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Power Sources (AREA)

Abstract

従来、計算機システムにおいては計算誤りに耐性があるアプリケーションの計算においても、計算誤りを正確に訂正していたため、低電力化や高速化のために電源電圧や動作周波数を大きく変動させられない課題があった。本発明では、第1プロセッサと第2プロセッサとを備える計算機システムで、第1プロセッサは、動作周波数または動作電圧の少なくとも一方が可変であり、第2プロセッサで動作する検出モジュールが第1プロセッサのエラーを検出し、第2プロセッサで動作する決定モジュールが第1プロセッサの動作周波数または動作電圧の少なくとも一方を決定することで、上述の課題を解決する。

Description

本発明は、計算機システムに関し、特に電源電圧または動作周波数の制御に関する。
近年、大規模データを用いた認識処理や探索処理など大きな計算量が必要なアプリケーションの台頭が予想され、計算機の性能向上や低電力化が要求されている。しかしながら、計算機を構成する半導体スイッチ素子はその微細化に伴って静的及び動的な特性ばらつきが増大しており、従来のワーストケースベース設計では将来において計算機性能向上が困難となっている。
特許文献1には、回路のクリティカルパスがアクティブになることは稀であることを利用し、エラー特性に基づいて電源電圧や周波数などを設定する技術が開示されている。特許文献1に開示の技術では、エラーが検知された場合、再計算などにより正しい値に訂正される。
特開2006−520952号公報
例えば学習処理や認識処理では10.012や10.125などの計算値よりも、これがヒトであるか否かを識別できる方が重要であり、多少の計算誤りが直ちにアプリケーションを破綻させるほどの影響を与えない場合がある。特に反復的な計算によって計算結果を平衡状態に収束させ解を得る計算手法では、計算誤りによる誤差は反復によって消えるため計算誤りに対する耐性が非常に高い特徴がある。すなわち、エラーには重要度があり、この重要度の基準はアプリケーションごとに異なる。しかし、特許文献1に記載の技術のアプローチはエラーを均一の重要度として扱うために、重要度の低いエラーに対してまで正確に再計算するため、電源電圧や動作周波数などを変動させる幅を大きくできない問題があった。
そこで、本発明では、電源電圧や動作周波数などを変動させる幅を大きくする技術を提供することを目的とする。
本発明では、第1プロセッサと第2プロセッサとを備える計算機システムで、第1プロセッサは、動作周波数または動作電圧の少なくとも一方が可変であり、第2プロセッサで動作する検出モジュールが第1プロセッサのエラーを検出し、第2プロセッサで動作する決定モジュールが第1プロセッサの動作周波数または動作電圧の少なくとも一方を決定することで、上述の課題を解決する。
電源電圧や周波数などを変動させる幅を大きく設定可能となる。
本発明の実施例である計算機システムの機能ブロック図である。 プログラム102が有する情報の例である。 本発明の実施例である計算機システムのハードウェア構成の例を示す図である。 計算ユニット321における電源電圧および動作周波数の制御領域の例を示す図である。 計算機システム100のシステム動作フローチャートの例である。 メイン計算処理情報205へ誤り検出処理情報220と補正処理情報230を挿入する処理の例を示す図である。 計算機システム100の計算動作フローチャートの例である。 誤り検出処理S702からログ出力処理S711までに対応するフローチャートの例である。 反復収束計算の反復回数iにおける計算結果Xの推移の例を示す図である。 本発明の実施例である計算機システム1001のシステム構成図である。
以下、実施例を図面を用いて説明する。
本実施例では、アプリケーションが要求する信頼性に応じた低電力あるいは高速な計算を可能とする計算機システムの例を説明する。図1は、本発明の実施例である計算機システム100の機能ブロック図である。
計算機システム100は、入力されたプログラム102と入力データ104に対して、計算結果106を出力するシステムであり、マスタノード110と、1つ以上のワーカノード120と、データバス130とを有する。
マスタノード110は、誤り耐性情報取得部111、計算割当て部112、誤り検出/補正方法設定部113、FV変更決定手段設定部114、および誤り記録管理部115を有する。マスタノード110は、実行対象となるプログラム102から、解くべき対象となる計算処理の情報と、計算誤りの検出手段および補正手段に関する誤り耐性情報とを取得し、これらをワーカノード120へ割当てる機能を有する。また、マスタノード110は、ワーカノード120が計算処理を実行中には、バリア同期処理などの並列処理における基本的な計算制御を行う機能を有する。
誤り耐性情報取得部111は、プログラム102からアプリケーションのメイン計算処理情報205と、その計算処理における計算誤り耐性情報201とを取得する。プログラム102に含まれる情報の例を図2に示す。プログラム102は、メイン計算処理情報205と、その計算処理における計算誤り耐性情報201とを含む。メイン計算処理情報205は、アプリケーションが解くべき対象となる計算処理のプログラムである。計算誤り耐性情報201は、アプリケーションが有する計算誤りに対する耐性に関する情報である。
計算誤り耐性情報201は、誤り許容処理情報210、誤り検出処理情報220、誤り補正処理情報230、許容可能誤り頻度情報240、およびFV制御処理情報250を含む。
誤り許容処理情報210は、メイン計算処理情報205の内の計算誤りに耐性がある計算処理部分を示す情報である。計算誤りに耐性がある計算処理部分の多くはfor文などで記述される繰り返し計算であるため、プログラマはディレクティブなどによって当該部分を指定することができる。
誤り検出処理情報220は、誤り許容処理情報210に示された計算処理部分における致命的な計算誤りを検出するための誤り検出処理の情報である。以下、前記誤り検出処理によって検出された致命的な計算誤りをユーザ定義エラーと表現する。誤り補正処理情報230は、ユーザ定義エラーが検出された計算結果を補正するための誤り補正処理の情報である。
許容可能誤り頻度情報240は、アプリケーションが許容可能なユーザ定義エラーの頻度の情報である。例としては、所定計算ステップ期間あたりに発生するユーザ定義エラーの回数などがある。
FV制御処理情報250は、ワーカノード120の計算部121の動作周波数または電源電圧の少なくともいずれかの制御処理の情報である。例としては、許容可能誤り頻度情報240と計算中に検出されたユーザ定義エラーの頻度に基づいて動作周波数または電源電圧、あるいはその両方を制御する手段がある。制御対象はFV制御処理情報250に含まれる動作モード設定情報によって決定され、低電力モードであれば動作周波数を一定にして電源電圧を制御し、高速処理モードであれば、電源電圧を一定にして動作周波数を制御し、バランス動作モードであれば電力が一定となるように電源電圧を下げて動作周波数を上げるなどの制御を行うことが可能である。
計算処理割当て部112は、各ワーカノード120に対して、各ワーカノードが担当する計算処理を割り当てる。誤り検出/補正手段設定部113は、各ワーカノード120の誤り検出部122へ誤り検出処理情報220を割り当て、各ワーカノード120の誤り補正部123へ誤り補正処理情報230を割り当てる。FV変更決定手段設定部114は、各ワーカノード120のFV変更決定部124へFV制御処理情報250を割り当てる。誤り記録管理部115は、各ワーカノード120の誤り検出部122で検出されたユーザ定義エラーの発生状況を記録する。
ワーカノード120は、計算部121、誤り検出部122、誤り補正部123、FV変更決定部124、およびFV制御部125を有する。
計算部121は、計算処理割当て部112から割り当てられた計算処理を行う。計算部121は、計算に必要なデータを、ストレージ装置340から、データバス130を介して入力データ104から、または他のワーカノード120から得て計算し、その計算結果161を誤り検出部122へ出力する。
誤り検出部122は、検出処理情報220の内、誤り検出/補正手段設定部113によって割当てられた情報を用いて、計算部121の計算結果における致命的な計算誤りであるユーザ定義エラーを検出する。ユーザ定義エラーを検出した場合、誤り検出部122は、計算部121への再計算要求164や、誤り補正部123への計算結果に対する補正要求166を出力する。また、誤り検出部122は、ユーザ定義エラーが発生したことをFV変更決定部124へユーザ定義エラー発生通知168によって通知し、さらにマスタノード110の誤り記録管理部115へユーザ定義エラー発生に関するエラーログ情報165を出力する。
誤り補正部123は、誤り補正処理情報230の内、誤り検出/補正手段設定部113によって割当てられた情報を用いて、計算部121の計算結果161を誤り検出部122からの補正要求166に基づいて補正する。誤り補正部123は、補正された計算結果167をデータバス130へ出力する。
FV変更決定部124は、FV制御処理情報250の内、FV変更決定手段設定部114によって割当てられた情報と、誤り検出部122からのユーザ定義エラー発生通知168とに基づいて、計算部121の動作周波数または電源電圧の少なくともいずれかを変更することを決定する。FV変更決定部124は、変更を決定した場合、FV制御部125へ動作周波数および電源電圧の設定量169を出力する。
FV制御部125は、FV変更決定部124からの設定量169に基づいて、計算部121の動作周波数および電源電圧を設定する。データバス130は、マスタノード110、1つ以上のワーカノード120、さらにその他の外部装置を繋ぐための通信路である。
図3に、計算機システム100のハードウェア構成の例を示す。計算機システム100は、計算ノード310と、少なくとも一つの計算ノード320と、ネットワーク330と、ストレージ装置340とを有する。
計算ノード310は、図1に示したマスタノード110の機能を実現する計算ノードであり、計算ユニット311、メモリユニット313、通信ユニット314、およびバス315を備える。計算ノード310は、情報処理装置であり、例えばサーバ装置である。
計算ユニット311は、メモリユニット313からプログラムを読み出し計算を行うユニットであり、中央処理装置(CPU)などで実現される。メモリユニット313は、プログラムやデータを記憶するユニットであり、DRAMなどで実現される。通信ユニット314は、ネットワーク330を介したノード間通信を行うためのユニットである。バス315は、計算ユニット311、メモリユニット313などノード内のユニット間でデータ通信するための通信路である。
計算ノード320は、図1に示したワーカノード120の機能を実現する計算ノードであり、計算ユニット321、補助計算ユニット322、メモリユニット313、通信ユニット314、およびバス315を備える。計算ノード320は、計算ユニット321やメモリユニット313を複数個備えていても良い。計算ノード320は、情報処理装置であり、例えばサーバ装置である。
計算ユニット321は、図1に示した計算部121とFV制御部125の機能を実現する計算ユニットであり、その電源電圧および動作周波数が外部から設定可能である。図4に、計算ユニット321における電源電圧および動作周波数の制御領域の例を示す。計算機ユニット321は、CPU410とFV制御部420とを有する。CPU410は、命令フェッチ処理411、命令デコード処理412、演算処理413、および書き戻し処理414を行う処理ブロックから構成される。ここで、CPU410では、特に、演算処理413を行う浮動小数点演算(FPU)ユニット415やデータ並列演算(SIMD)ユニット416などのプログラムの制御に関わらないデータを計算する演算ユニットおよび記憶ユニットの電源電圧または動作周波数を、FV制御部420によって設定量168に従い設定できる。メモリアドレスやポインタ計算などプログラムの制御に関わる計算にエラーが生じた場合、計算ユニット321がハングアップするなどの障害が生じる可能性がある。そのため、このように電源電圧または動作周波数を制御するユニットを限定することで、動作周波数を一定にしたまま電源電圧を低減するなど、CPU410の動作を不安定にする操作を行った際に、計算ユニット321がハングアップすることを回避できる。
補助計算ユニット322は、CPUなどで実現されるプログラマブルな計算ユニットであり、図1に示した誤り検出部122、誤り補正部123、およびFV変更決定部124の機能を実現する。補助計算ユニット322は、簡単な処理しか行わないため、計算ユニット321に比べて処理性能が小さな計算ユニットで実現可能である。また、補助計算ユニット322を用いて、電源電圧や動作周波数の制御が行われるプロセッサと別のプロセッサで誤り検出部122、誤り補正部123、およびFV変更決定部124の機能を実現することで、電源電圧や動作周波数の制御によって計算機システム100の動作が不安定になることを防ぐことができるので、より大きく電源電圧や動作周波数を変動させる制御を可能にできる。この補助計算ユニット322の使用は、計算ユニット321で電源電圧または動作周波数を制御する部分を限定しない場合には、計算機システム100の動作の安定化に特に有効である。
ネットワーク330は、計算ノード310と、1つ以上の計算ノード320と、ストレージ装置340とを繋ぐネットワークであり、ネットワークスイッチなどで構成される。ストレージ装置340は、プログラム102や、計算機システム100が演算に用いるデータを格納するために用いられる。
次に、計算機システム100の動作を説明する。図5に計算機システム100の動作フローチャートを示す。
マスタノード110は、まず、計算誤り耐性情報の有無判定のステップS501にて、プログラム102が計算誤り耐性情報201を有しているかを確認する。プログラム102が計算誤り耐性情報201を有していない場合、マスタノード110は、通常の並列計算機システムと同様にメイン計算処理情報205を分割して各ワーカノード120の計算ユニット321へ割当て(ステップS510)、計算を実行し(ステップS511)、結果出力を行う(ステップS521)。
プログラム102が計算誤り耐性情報201を有している場合、マスタノード110は、計算誤り耐性情報201を取得し(ステップS502)、図6のように誤り検出処理情報220と補正処理情報230をメイン計算処理情報205の処理ステップへ挿入する(ステップS503)。図6では、誤り許容処理情報210に示される計算部分におけるn番目の計算処理とn+1番目の計算処理の間に誤り検出処理と誤り補正処理を挿入する例を示している。ここで、n番目の計算処理とは、例えばK−meansクラスタリングアルゴリズムなどでは、クラスタ中心位置の座標更新のための計算における反復回数n回目の計算処理に該当する。ステップS503の操作は、計算ユニット321の計算結果を、補助計算ユニット322を介して出力するように設定することに相当する。なお、誤り検出処理情報220と誤り補正処理情報230の挿入位置はメイン計算処理情報205内部にディレクティブなどで指示されている。ステップS504において、マスタノード110は、各ワーカノード120の計算ユニット321へメイン計算処理情報205の処理を分割して割当て、さらに各ワーカノード120の補助計算ユニット322へ誤り検出処理情報220、誤り補正処理情報230およびFV制御処理情報250を割り当てる。
計算機システム100は、ステップS505では、ステップS504でワーカノード120へ割り当てた計算処理を実行し、ステップS521にてその計算結果を出力する。
以下、ステップS505の計算実行における計算機システム100の動作を図7のフローチャートを用いて詳細に説明する。なお、メイン計算処理情報205としてK−meansクラスタリングアルゴリズムなどの反復型収束計算が与えられていることを例に説明する。
ワーカノード120の計算ユニット321が、マスタノード110から計算実行開始の通知を受け取ると、計算ユニット321で実行されている計算部121は、割り当てられた計算処理を実行し、計算結果を補助計算ユニット322で実行されている誤り検出部122へ送信する(ステップS701)。次に、補助計算ユニット322で実行されている誤り検出部122は、送信された計算ユニット321で実行されている計算部121の計算結果に対し、誤り検出処理を行い(ステップS702)、エラーが検出されたならば、誤り補正部123による誤り補正処理(ステップS710)とログ出力処理(ステップS711)が行われる。
ここで、誤り検出処理S702からログ出力処理S711までの処理の例を図8および図9を用いて詳細に説明する。図8は、誤り検出処理S702からログ出力処理S711までに対応するフローチャートである。図9は、反復回数iにおける計算結果Xの値の変遷を曲線911によって示しており、反復計算の計算結果Xが反復回数iの増大に従って振動しながら収束する例を示している。ここでは本発明にかかる誤り検出処理情報220の例として、反復回数i回目の計算結果と反復回数i−1回目の計算結果との差分の絶対値を計算誤りの判定基準に用いるアルゴリズム(以下、誤り検出アルゴリズムと称する)の概要を最初に説明し、その後、図8のフローチャートを説明する。以下、反復回数i回目の計算ユニット321で実行される計算部121の計算結果をX(i)と表現として説明する。
図9において、|ΔX(i−2)|は反復回数i−2における計算結果Xの変化量912に該当し、|ΔX(i−1)|は反復回数i−1における計算結果Xの変化量913に該当し、|ΔX(i)|は反復回数iにおける計算結果Xの変化量914に該当する。誤り検出部122で実行される本実施例にかかる誤り検出アルゴリズムでは、計算結果Xは反復回数iの増加に伴って収束することを前提に、計算結果Xの変化量に対し、過去の変化量の情報に基づいて上限値を設定することを特徴とする。具体的には次の式(1)および式(2)によって上限値が設定される。

|ΔX(i)|<ΔXmax・・・式(1)
ΔXmax=MAX(α・|ΔX(i-1)|,β・|ΔX(i-2)|)・・・式(2)

ここで、ΔXmaxは、式(2)で示されるように、反復回数i−1における変化量913のα倍と、反復回数i−2における変化量912のβ倍とのうち、大きい方の値である。αおよびβはユーザが設定する値であり、ゼロ以上の実数である。即ち、反復回数iにおける変化量914の上限値は、反復回数i−1における変化量913のα倍と、反復回数i−2における変化量912のβ倍とのうち、大きい方の値とする。この上限値設定によって制限されるΔX(i)の値域は、例えば、値域921で表現され、|ΔX(i)|が前記上限値を超えた場合(あるいはΔX(i)が値域921の範囲外となった場合とも表現できる)、ユーザ定義エラーが発生したとしてカウントされる。
ここで、反復回数i−1と反復回数i−2の2つの結果を用いているのは、例えば、反復回数i−1に計算誤りが生じて|ΔX(i−1)|が非常に小さな値となった場合、|ΔX(i)|の上限値も非常に小さくなってしまい、計算の収束に掛かる時間が伸びてしまう。そこで、2回以上続けて大きな計算誤りが生じる確率は小さいことを前提に、|ΔX(i−2)|を用いてより大きな値を上限値として採用することで前記課題を解決する。なお、より収束時間を安定にするために式(1)にさらに|ΔX(i−3)|を導入するなど、条件を追加することも可能である。|ΔX(1)|におけるΔXmaxはユーザが設定してもよいし、変数Xの型が取りえる最大値としてもよい。
以上に説明した誤り検出アルゴリズムにより、アプリケーションへ大きな影響を与える計算誤りを回避することが可能となる。
次に、図8のフローチャートを説明する。補助計算ユニット322で実行される誤り検出部122は、計算結果X(i)受信すると、反復回数iの値を更新する(ステップS800)。その後、誤り検出部122は、計算ユニット321で実行される計算部121の反復回数i−1での計算結果X(i−1)と反復回数iでの計算結果X(i)の差分の絶対値である|ΔX(i)|を算出し(ステップS801)、|ΔX(i)|が式(1)に示した変化量の上限値を超えていないかをチェックする(ステップS802)。なお、ステップS802の分岐は、ステップS703の分岐に対応する。ステップS802において式(1)の条件を満たさない場合には、誤り検出部121は、ユーザ定義エラーが発生したと判定する。また、FV変更決定部124ではユーザ定義エラー発生回数が更新され(ステップS810)、後述のようにその頻度が求められる。
誤り補正処理(ステップS710)では、補助計算ユニット322で実行されている誤り補正部167は、ステップS802の比較において|ΔX(i)|が上限値を超えていた場合は、X(i−1)+ΔXmaxまたはX(i−1)−ΔXmaxのいずれかX(i)に近い値を補正後のX(i)の値として採用する。その後、誤り補正部167はログ出力処理(ステップS711)を行い、マスタノード110の誤り記録管理部115へユーザ定義エラー発生の状況と補正前後の値などのエラーログ情報165を送信する。以上が誤り検出処理S702からログ出力処理S711までの処理の例である。これによりアプリケーションが要求する精度を維持しつつ、計算誤りを許容することが可能となるため、従来技術よりも電源電圧および動作周波数を変動させる幅を大きく設定することができ、より大きな低電力化や高速化が可能となる。
FV変更決定処理(ステップS712)では、FV変更決定部124は、誤り検出処理(ステップS702)において発生したユーザ定義エラーの頻度をモニタリングし、ユーザ定義エラー発生頻度と許容可能誤り頻度情報240とFV制御処理情報250の動作モード設定情報に基づいて、計算ユニット321の動作周波数または電源電圧を制御するか否かを決定する。動作周波数または電源電圧を変更する場合には、FV変更決定部124は、計算ユニット321のFV制御部125へ動作周波数または電源電圧の設定量169を送信する(S714)。ユーザ定義エラー発生頻度の定義としては、例えばステップS702の誤り検出処理N(Nは1以上の整数)回当たりに発生したユーザ定義エラーの検出回数などがあり、これが許容可能誤り頻度情報240を上回った場合、電源電圧を上昇させる又は動作周波数を低減させる設定量169を送信する。一方、観測したユーザ定義エラー発生頻度が許容可能誤り頻度情報240を下回った場合、FV変更決定部124は、電源電圧を低減させる、または動作周波数を上昇させる設定量169を送信する。これにより、計算機システム100は、より低電力に、またはより高速に、処理をすることが可能になる。
その後、ワーカノード120は、計算結果を他のワーカノード120へ送信し、マスタノード110へ計算結果の収束状況情報と計算完了を通知し、マスタノード110は、同期処理を行う(ステップS715)。マスタノード110は、計算結果の収束判定を行い、計算結果が収束したと判定した場合、計算を終了する(ステップS716)。
以上が、本実施例にかかるステップS505での計算処理の動作例である。
以上に示した動作によって本実施例に係る計算機システム100は、電源電圧や周波数などを変動させる幅を従来技術より大きく設定することができ、より大きな低電力化や高速化が可能となる。
本実施例では、実施例1に示した計算機システム100よりもさらにプログラミングが容易な実施例として、計算機システム1001を説明する。
計算機システム1001は、計算機システム100においてプログラム102に含まれていた計算誤り耐性情報201における誤り検出処理情報220、誤り補正処理情報230、およびFV制御処理情報250のうち、良く使われる処理パタンをテンプレート化(またはライブラリ化とも表現できる)し、API(Application Program Interface)としてプログラマに提供することを特徴とする。本特徴によりプログラマは利用したい処理パタンを選択し、そのパラメータを指定することで計算機システム100の機能を利用することが可能となる。
図10は、実施例2における計算機システム1001の構成図の例である。計算機システム1001は、エラー忘却型計算テンプレート1020と計算機システム100とを有し、プログラム1010を入力として計算を実行する。エラー忘却型計算テンプレート1020は誤り検出処理1021、誤り補正処理1022、およびFV制御処理1023を有する。
誤り検出処理1021は、例えば、実施例1において説明した誤り検出処理情報220の処理であり、この場合は式(2)のα、βをパラメータとして設定できる。誤り補正処理1022は、例えば、実施例1において説明した誤り補正処理情報230の処理であり、その他にもロールバックによる再計算などがある。誤り補正処理1022は、これら補正処理モードをパラメータとして設定できる。FV制御処理1023は、例えば、実施例1において説明したFV制御処理情報250の処理などであり、許容誤り頻度情報240や低電力化のための制御をするか、高速化のための制御をするかなどを指定する動作モード設定情報をパラメータとして設定できる。
プログラム1010は、メイン計算処理情報205、誤り許容処理情報210、およびパラメータ情報1011を有する。パラメータ情報1011は、エラー忘却型計算テンプレート1020の誤り検出処理1021、誤り補正処理1022、およびFV制御処理1023のパラメータであり、APIの引数としてシステムに入力される。
計算機システム1001は、エラー忘却型計算テンプレート1020、パラメータ情報1011、および誤り許容処理情報210を用いて計算誤り耐性情報201を作成し、さらにメイン計算処理情報205を加えて、計算機システム100へプログラム102として入力する。
以上により、計算機システム1001は、従来技術よりも電源電圧および動作周波数を変動させる幅を大きく設定することができ、より大きな低電力化や高速化が可能となると共に、実施例1に示した計算機システム100よりもさらに高いプログラム容易性を実現できる。
100:計算機システム、102:プログラム、104:入力データ、106:計算結果、110:マスタノード、111:誤り耐性情報取得部、112:計算割当て部、113:誤り検出/補正方法設定部、114:FV変更決定手段設定部、115:誤り記録管理部、120:ワーカノード、121:計算部、122:誤り検出部、123:誤り補正部、124:FV変更決定部、125:FV制御部、130:データバス130、310:計算ノード、311:計算ユニット、313:メモリユニット、314:通信ユニット、315:バス、320:計算ノード、321:計算ユニット、322:補助計算ユニット、330:ネットワーク、340:ストレージ装置。

Claims (12)

  1. 第1プロセッサと第2プロセッサとを備える計算機システムの制御方法であって、
    前記第1プロセッサは、動作周波数または動作電圧の少なくとも一方が可変であり、
    前記第2プロセッサで動作する検出モジュールが前記第1プロセッサのエラーを検出し、
    前記第2プロセッサで動作する決定モジュールが前記第1プロセッサの動作周波数または動作電圧の少なくとも一方を決定することを特徴とする計算機システムの制御方法。
  2. 請求項1に記載の計算機システムの制御方法において、
    前記決定モジュールが前記第1プロセッサの動作周波数または動作電圧の少なくとも一方を決定する際に、
    前記検出モジュールが検出する前記エラーの頻度に基づいて、前記決定モジュールが前記第1プロセッサの動作周波数または動作電圧の少なくとも一方を決定することを特徴とする計算機システムの制御方法。
  3. 請求項2に記載の計算機システムの制御方法において、
    前記頻度は、前記検出モジュールが前記エラーの検出処理を行った回数当りに発生した前記エラーの検出回数であることを特徴とする計算機システムの制御方法。
  4. 請求項1に記載の計算機システムの制御方法において、
    前記計算機システムは、
    前記第1プロセッサおよび前記第2プロセッサを含む第1情報処理装置と、
    前記第1情報処理装置に前記エラーの検出条件を送信する第2情報処理装置とを備えることを特徴とする計算機システムの制御方法。
  5. 請求項4に記載の計算機システムの制御方法において、
    前記第2情報処理装置は、前記計算機システムに投入されるプログラムから前記検出条件を抽出することを特徴とする計算機システムの制御方法。
  6. 請求項4に記載の計算機システムの制御方法において、
    前記第1情報処理装置および前記第2情報処理装置は、サーバ装置であることを特徴とする計算機システムの制御方法。
  7. 第1プロセッサと第2プロセッサとを備える計算機システムであって、
    前記第1プロセッサは、動作周波数または動作電圧の少なくとも一方が可変であり、
    前記第2プロセッサで動作する検出モジュールが前記第1プロセッサのエラーを検出し、
    前記第2プロセッサで動作する決定モジュールが前記第1プロセッサの動作周波数または動作電圧の少なくとも一方を決定することを特徴とする計算機システム。
  8. 請求項7に記載の計算機システムにおいて、
    前記検出モジュールが検出する前記エラーの頻度に基づいて、前記決定モジュールが前記第1プロセッサの動作周波数または動作電圧の少なくとも一方を決定することを特徴とする計算機システム。
  9. 請求項8に記載の計算機システムにおいて、
    前記頻度は、前記検出モジュールが前記エラーの検出処理を行った回数当りに発生した前記エラーの検出回数であることを特徴とする計算機システム。
  10. 請求項7に記載の計算機システムにおいて、
    前記計算機システムは、
    前記第1プロセッサおよび前記第2プロセッサを含む第1情報処理装置と、
    前記第1情報処理装置に前記エラーの検出条件を送信する第2情報処理装置とを備えることを特徴とする計算機システム。
  11. 請求項10に記載の計算機システムにおいて、
    前記第2情報処理装置は、前記計算機システムに投入されるプログラムから前記検出条件を抽出することを特徴とする計算機システム。
  12. 請求項10に記載の計算機システムにおいて、
    前記第1情報処理装置および前記第2情報処理装置は、サーバ装置であることを特徴とする計算機システム。
JP2014532705A 2012-09-03 2012-09-03 計算機システムおよび計算機システムの制御方法 Pending JPWO2014033941A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/072292 WO2014033941A1 (ja) 2012-09-03 2012-09-03 計算機システムおよび計算機システムの制御方法

Publications (1)

Publication Number Publication Date
JPWO2014033941A1 true JPWO2014033941A1 (ja) 2016-08-08

Family

ID=50182787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014532705A Pending JPWO2014033941A1 (ja) 2012-09-03 2012-09-03 計算機システムおよび計算機システムの制御方法

Country Status (3)

Country Link
US (1) US20150212570A1 (ja)
JP (1) JPWO2014033941A1 (ja)
WO (1) WO2014033941A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015222321A1 (de) * 2015-11-12 2017-05-18 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Mehrkernprozessors

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287592A (ja) * 2007-05-18 2008-11-27 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサ制御装置とその制御方法
JP2008544355A (ja) * 2005-06-13 2008-12-04 インテル・コーポレーション 誤りに基づく電源制御
JP2009025964A (ja) * 2007-07-18 2009-02-05 Kawasaki Microelectronics Kk 消費電力の制御方法
JP2009510618A (ja) * 2005-09-28 2009-03-12 インテル コーポレイション 多コア・プロセッサによる信頼できるコンピューティング
JP2011022957A (ja) * 2009-07-21 2011-02-03 Nec Corp 電圧監視システムおよび電圧監視方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512842B2 (en) * 2005-08-29 2009-03-31 Searete Llc Multi-voltage synchronous systems
US8214662B2 (en) * 2007-04-09 2012-07-03 Panasonic Corporation Multiprocessor control unit, control method performed by the same, and integrated circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544355A (ja) * 2005-06-13 2008-12-04 インテル・コーポレーション 誤りに基づく電源制御
JP2009510618A (ja) * 2005-09-28 2009-03-12 インテル コーポレイション 多コア・プロセッサによる信頼できるコンピューティング
JP2008287592A (ja) * 2007-05-18 2008-11-27 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサ制御装置とその制御方法
JP2009025964A (ja) * 2007-07-18 2009-02-05 Kawasaki Microelectronics Kk 消費電力の制御方法
JP2011022957A (ja) * 2009-07-21 2011-02-03 Nec Corp 電圧監視システムおよび電圧監視方法

Also Published As

Publication number Publication date
US20150212570A1 (en) 2015-07-30
WO2014033941A1 (ja) 2014-03-06

Similar Documents

Publication Publication Date Title
Das et al. Adaptive stream processing using dynamic batch sizing
US9176569B2 (en) Apparatus and method for dynamically adjusting frequency of central processing unit
US9658832B2 (en) Multi-factor entropy sourcing for random number generators
KR102415867B1 (ko) 메모리 셀의 결함을 제거하기 위한 메모리 시스템 및 그의 동작 방법
CN103440167A (zh) Hadoop多作业环境下自学习反馈的任务调度方法
US20130125116A1 (en) Method and Device for Adjusting Virtual Resource and Computer Readable Storage Medium
US20190042534A1 (en) Signal pathways in multi-tile processors
US20130007516A1 (en) Adaptive voltage scaling based on the results of forward error correction processing
JP2009193385A (ja) コンピュータシステム
JP2021022373A (ja) 負荷を均衡化するための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム
JP5521644B2 (ja) ハイブリッド並列処理システム、方法、及びプログラム
CN111522811A (zh) 数据库的处理方法及装置、存储介质、终端
WO2014033941A1 (ja) 計算機システムおよび計算機システムの制御方法
US20210208923A1 (en) Method and apparatus for handling memory failure, electronic device and storage medium
JP2017034307A (ja) 情報収集管理装置、方法、及び情報収集システム
WO2016087002A1 (en) Voltage regulator mechanism, electronic device, method and computer program
JP2010237901A (ja) 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム
KR101984261B1 (ko) 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체
US7975185B2 (en) Method and management system for configuring an information system
US9639565B2 (en) Transaction support using intrusive hash tables
JP5500301B2 (ja) 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム
CN114143196A (zh) 实例配置更新方法、装置、设备、存储介质及程序产品
CN107908502B (zh) 一种基于大型系统拓扑结构的容错节点分配方法
KR20170037724A (ko) 복합화력발전기 공급능력 연산 장치, 시스템 및 방법
JP2021043725A (ja) 計算システム、計算方法及びプログラム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160809