JP4659138B2 - 並列コンピュータにおける事前対応型電力管理 - Google Patents

並列コンピュータにおける事前対応型電力管理 Download PDF

Info

Publication number
JP4659138B2
JP4659138B2 JP2010520531A JP2010520531A JP4659138B2 JP 4659138 B2 JP4659138 B2 JP 4659138B2 JP 2010520531 A JP2010520531 A JP 2010520531A JP 2010520531 A JP2010520531 A JP 2010520531A JP 4659138 B2 JP4659138 B2 JP 4659138B2
Authority
JP
Japan
Prior art keywords
computer
node
power consumption
consumption rate
data communication
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.)
Expired - Fee Related
Application number
JP2010520531A
Other languages
English (en)
Other versions
JP2010537266A (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010537266A publication Critical patent/JP2010537266A/ja
Application granted granted Critical
Publication of JP4659138B2 publication Critical patent/JP4659138B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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

Description

本発明の技術分野は、データ処理であり、より具体的には、並列コンピュータにおける事前対応型電力管理の方法、装置および製品である。
1948年のEDVAC(Electronic Discrete Variable Automatic Computer:電子式離散変数自動計算機)コンピュータ・システムの開発は、コンピュータ時代の幕開けとしてしばしば言及される。それ以来、コンピュータ・システムは、極めて複雑なデバイスへと発展してきた。今日のコンピュータ・システムは、EDVACなどの初期のシステムに比べるとはるかに高性能化している。コンピュータ・システムは一般に、ハードウェアおよびソフトウェア・コンポーネント、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入力/出力デバイスなどの組み合わせを含む。半導体加工およびコンピュータ・アーキテクチャの進歩によってコンピュータの性能がより一層向上するに従い、ハードウェアの高度な性能を活かすべくコンピュータ・ソフトウェアがさらに高性能に発展してきた結果、わずか数年前に比べてはるかに強力な今日のコンピュータ・システムがもたらされた。
並列コンピューティングは、進歩を呈しているコンピュータ技術領域である。並列コンピューティングとは、より迅速に結果を得るために、(分割され、特別に適応させられた)同一のタスクを、複数のプロセッサ上で同時に実行することである。並列コンピューティングは、問題を解くプロセスは通常、多少の協調により同時に実施可能な小さな複数のタスクに分割することができるという事実に、基づいている。
並列コンピュータは、並列アルゴリズムを実行する。並列アルゴリズムは、多数の異なる処理デバイス上で同時に断片が実行されるように分割しておいて、最後にもう一度元通りに集約してデータ処理結果を得ることができる。一部のアルゴリズムは、容易に断片に分けられる。例えば、どの数が素数であるかを調べるために1から10万までの全ての数をチェックするというジョブの分割は、これらの数のサブセットを利用可能な各プロセッサへ割り当て、後に肯定的結果のリストを元通り集約することによって行うことができるであろう。本明細書では、並列プログラムの個々の断片を実行する複数の処理デバイスを、「計算ノード」と称する。並列コンピュータは、計算ノードのほか例えば入力/出力(I/O:input/output)ノードおよびサービス・ノードなどといったその他の処理ノードから成る。
並列アルゴリズムが有益であるのは、最近のプロセッサの機能の仕方に起因して、並列アルゴリズムを介する方が逐次(非並列)アルゴリズムを介するよりも迅速に、或る種の大規模なコンピューティング・タスクが実施されるためである。同じスループットであれば、単一の高速プロセッサを備えたコンピュータを構築することは、多数の低速プロセッサを備えたコンピュータを構築することよりもはるかに困難である。さらに、逐次プロセッサの潜在的な速度には、或る一定の理論的限界がある。その一方で、あらゆる並列アルゴリズムは逐次的部分を有しており、従って並列アルゴリズムには飽和点がある。その飽和点を過ぎると、さらに多くのプロセッサを追加してももはやスループットは得られず、ただオーバーヘッドおよびコストを増やすことになる。
並列アルゴリズムはさらに、並列コンピュータの各ノード間のデータ通信要件というもう1つの資源を最適化するように設計されている。並列プロセッサの通信には、共有メモリまたはメッセージ・パッシングの2つの方法がある。共有メモリ処理は、データに対する追加的なロックを必要とし、追加的なプロセッサ・サイクルおよびバス・サイクルのオーバーヘッドを与え、さらにはアルゴリズムの一部を逐次化するものである。
メッセージ・パッシング処理は、高速データ通信ネットワークおよびメッセージ・バッファを用いるものの、この通信により、データ通信ネットワーク上に転送オーバーヘッドが加わるほか、メッセージング・バッファ用の追加メモリの必要性とノード間のデータ通信における遅延とが加わる。並列コンピュータの設計には、通信オーバーヘッドが小さくなるように特別に設計されたデータ通信リンクが用いられているとはいえ、トラフィックの量を決めるのは、並列アルゴリズムである。
並列コンピュータ内のノード間のメッセージング・パッシングには、多数のデータ通信ネットワーク・アーキテクチャが使用されている。計算ノードは、例えば「トーラス」あるいは「メッシュ」としてネットワークに編成されるとよい。さらに計算ノードは、ツリーとしてネットワークに編成されてもよい。トーラス・ネットワークは、複数のノードを、ラップアラウンド・リンクを用いて3次元メッシュ状に接続する。このトーラス・ネットワークによって、全てのノードは各自の隣接する6個のノードに接続され、各ノードは、メッシュのx、y、z座標によってアドレス指定される。ツリー・ネットワークでは、ノードは一般にバイナリ・ツリーの状態に接続され、各ノードは、親と、2個の子とを有する(ただしハードウェア構成によっては、一部のノードがゼロ個あるいは1個の子しか有さない場合もある)。トーラス・ネットワークおよびツリー・ネットワークを用いるコンピュータでは、一般にこれら2つのネットワークは、別個のルーティング回路、別個の物理リンク、および別個のメッセージ・バッファを用いて互いに独立して実装される。
トーラス・ネットワークは、ポイント・ツー・ポイント動作に向いているが、ツリー・ネットワークは一般に、ポイント・ツー・ポイント通信では効率が悪い。一方、ツリー・ネットワークは、全ての計算ノードが同時に参加する或る特定の集団的動作すなわちメッセージ・パッシング動作に関しては、高帯域幅および低遅延をもたらす。
並列コンピュータは、ジョブの間ずっと同時に動作する何千という多数の計算ノードを有することもあるため、並列コンピュータによって大量の電力が消費され得る。電気供給者は一般に、或る顧客が特定の量すなわちピーク電力量を上回る量の電力を消費するとその後その顧客には通常よりも高い料率で請求を行う。並列コンピュータは、ジョブの間ずっと同時に動作する多数の計算ノードのために、ピーク電力量を超える消費を行うことが多い。従って、並列コンピュータにおける事前対応型電力管理に改善の余地があることが分かる。
並列コンピュータにおける事前対応型電力管理の方法、サービス・ノード、および製品が開示される。上記の並列コンピュータには、サービス・ノードと複数の計算ノードとが含まれ、サービス・ノードは、帯域外サービス・ネットワークを介して計算ノードに接続されており、各計算ノードは、コンピュータ・プロセッサと、コンピュータ・プロセッサに動作可能に連結されているコンピュータ・メモリとを含む。実施形態は、並列コンピュータ内の計算ノードの動作グループにてジョブを開始するユーザ命令を、サービス・ノードによって受信すること、ただし上記命令は、計算ノードの電力管理属性を含む;動作グループの計算ノードの電力管理属性に従って、動作グループの各計算ノードに関するコンピュータ・プロセッサ電力消費割合とコンピュータ・メモリ電力消費割合とを含んだ電力消費割合を、サービス・ノードによって設定すること;ならびに、サービス・ノードによって並列コンピュータの動作グループの計算ノードにてジョブを開始することを含む。
本発明の上述およびその他の特徴および利点は、添付の図面に示す本発明の例示的な実施形態のより詳細な以下の説明から、明らかになるであろう。図面では、同じ参照符号は、通常本発明の例示的な実施形態の同じ部分を表す。
本発明の実施形態による、並列コンピュータにおける事前対応型電力管理の例示的なシステムを示す図である。 本発明の実施形態による、並列コンピュータにおける事前対応型電力管理に有用な例示的な計算ノードのブロック図である。 本発明の実施形態による、並列コンピュータにおける事前対応型電力管理に有用な例示的なサービス・ノードを含んだ自動計算機のブロック図である。 図4のAは、本発明の実施形態による、並列コンピュータにおける事前対応型電力管理が可能なシステムに有用な例示的なポイント・ツー・ポイント・アダプタを示す図である。図4のBは、本発明の実施形態による、並列コンピュータにおける事前対応型電力管理が可能なシステムに有用な例示的なグローバル結合型ネットワーク・アダプタを示す図である。 本発明の実施形態による、並列コンピュータにおける事前対応型電力管理が可能なシステムに有用なポイント・ツー・ポイント動作向けに最適化された例示的なデータ通信ネットワークを示す線図である。 本発明の実施形態による、並列コンピュータにおける事前対応型電力管理が可能なシステムに有用な集合的動作向けに最適化された例示的なデータ通信ネットワークを示す線図である。 本発明の実施形態による、並列コンピュータにおける事前対応型電力管理の例示的な方法を示すフロー図である。 本発明の実施形態による、並列コンピュータにおける事前対応型電力管理のさらなる例示的な方法を示すフロー図である。
本発明の実施形態による、並列コンピュータにおける事前対応型電力管理の例示的な方法、装置およびコンピュータ製品を、図1から始まる添付図面に関連して説明する。図1は、本発明の実施形態による、並列コンピュータにおける事前対応型電力管理の例示的なシステムを示す。図1のシステムは、並列コンピュータ(100)と、データ・ストレージ・デバイス(118)の形をした、上記コンピュータ用の不揮発性メモリと、プリンタ(120)の形をした、上記コンピュータ用の出力デバイスと、コンピュータ端末(122)の形をした、上記コンピュータ用の入力/出力デバイスと、を含む。図1の例の並列コンピュータ(100)は、複数の計算ノード(102)を含む。
計算ノード(102)は、データ通信に向けて、いくつかの独立したデータ通信ネットワークによって連結されている。データ通信ネットワークとしては、高速イーサネット(R)ネットワーク(174)、ジョイント・テスト・アクション・グループ(「JTAG」:Joint Test Action Group)ネットワーク(104)、集団的動作向けに最適化されたグローバル結合型ネットワーク(106)、およびポイント・ツー・ポイント動作向けに最適化されたトーラス・ネットワーク(108)などが挙げられる。グローバル結合型ネットワーク(106)は、計算ノードをツリーとして編成するように計算ノードに接続された複数のデータ通信リンクを含むデータ通信ネットワークである。各データ通信ネットワークは、計算ノード(102)間のデータ通信リンクによって実現される。データ通信リンクは、並列コンピュータの計算ノード間に、並列動作のためのデータ通信を提供する。
さらに、並列コンピュータの計算ノード(102)は、計算ノードから成る少なくとも1つの動作グループ(132)に編成される。計算ノードの動作グループは、或るジョブの実行に参加する、並列コンピュータの全計算ノードのサブセットである。動作グループは、集団的並列動作に向けて構成されることもあり、あるいはポイント・ツー・ポイント動作に向けて構成されることもある。
集団的動作は、動作グループの計算ノード間のデータ通信を用いて実現される。集団的動作は、或る動作グループの全ての計算ノードが関与する機能である。集団的動作は、計算ノードの動作グループ内の全計算ノードによって一斉に、言い換えればほとんど同時に実行される、メッセージ・パッシング・コンピュータ・プログラム命令の動作である。上述のような動作グループは、並列コンピュータ(100)の全ての計算ノードを含んでもよいし、全ての計算ノードのサブセットを含んでもよい。集団的動作は、ポイント・ツー・ポイント動作を核として構築されることが多い。集団的動作では、動作グループ内の全計算ノード上の全プロセスが、マッチング引数を用いて同じ集団的動作を呼び出すことが必要である。「ブロードキャスト」は、動作グループの計算ノード間でデータを移動させる集団的動作の一例である。「リデュース(reduce)」動作は、動作グループの計算ノード間に分配されたデータに対し算術的または論理的関数を実行する集団的動作の一例である。動作グループは、例えばMPI「コミュニケータ」として実現されるとよい。
「MPI」とは、「Message Passing Interface:メッセージング・パッシング・インターフェース」を指しており、従来技術の並列通信ライブラリであって、並列コンピュータにおけるデータ通信用のコンピュータ・プログラム命令のモジュールである。本発明の実施形態によるシステムでの使用に向けて改善され得る先行技術の並列通信ライブラリの例としては、MPI、および「並列仮想マシン」(「PVM」:Parallel Virtual Machine)ライブラリなどがある。PVMは、テネシー大学、オークリッジ国立研究所、およびエモリー大学によって開発された。MPIは、MPI標準を定義しこれを維持管理する多数の組織からの代表者による開放グループであるMPIフォーラムによって、広められている。MPIは、本明細書記載の時点では、分散メモリ並列コンピュータにおいて並列プログラムを実行する計算ノード間の通信に関する事実上の標準である。本明細書では、説明を簡単にするために折々にMPI技術を用いるが、MPIをそのように用いることは、本発明の必要条件でも制限事項でもない。
一部の集団的動作は、動作グループ内の特定の計算ノードにて動作する単一の発信または受信プロセスを有する。例えば、「ブロードキャスト」集団的動作において、他の全ての計算ノードへデータを分配する計算ノードにおけるプロセスは、発信プロセスである。例えば、「ギャザ(gather)」動作において、他の計算ノードから全データを受信した計算ノードにおけるプロセスは、受信プロセスである。上述のような発信または受信プロセスが動作している計算ノードを、論理ルートと称する。
大部分の集団的動作は、4つの基本動作:ブロードキャスト、ギャザ、スキャタ(scatter)およびリデュースの、変形または組み合わせである。こうした集団的動作のためのインターフェースは、MPIフォーラムによって広められているMPI標準に定義されている。一方、集団的動作を実行するアルゴリズムについては、MPI標準に定義されていない。ブロードキャスト動作では、全てのプロセスが同一のルート・プロセスを指定し、そのルート・プロセスのバッファの内容が送信されることになる。ルート・プロセス以外のプロセスは、受信バッファを指定する。本動作の終了後、全てのバッファがルート・プロセスからのメッセージを含んでいる。
スキャタ動作では、論理ルートが、ルートにあるデータをセグメントに分割し、動作グループの各計算ノードに対し別個のセグメントを分配する。スキャタ動作では、一般に全てのプロセスが同一のreceive countを指定する。送信引数は、ルート・プロセスにとってのみ有意であり、ルート・プロセスのバッファには、所与のデータ型の、sendcountN個の要素が実際に含まれている。この場合Nは、計算ノードの所与のグループ内のプロセス数である。上述の送信バッファは、分割されて全プロセス(論理ルート上のプロセスも含む)に分散させられる。各々の計算ノードには、「ランク」と呼ばれる連続した識別子が割り当てられている。本動作の終了後、ルートは、ランクの小さい方から順に各プロセスへsendcount個ずつデータ要素を送信済みである。ランク0は、1番目のsendcount個のデータ要素を送信バッファから受信する。ランク1は、2番目のsendcount個のデータ要素を送信バッファから受信する、などである。
ギャザ動作は、多対1の集団的動作であって、スキャタ動作に関する記載の全く逆である。すなわちギャザは、或るデータ型の要素を、ランク付けされた複数の計算ノードからルート・ノードにある受信バッファへと集める、多対1の集団的動作である。
リデュース動作は、同様に多対1の集団的動作であって、2つのデータ要素に対して施される算術的または論理的関数が含まれる。全てのプロセスが、同一の「count」、ならびに同一の算術的または論理的関数を指定する。リダクション(reduction)終了後、全てのプロセスがcount個のデータ要素を、計算ノードの送信バッファからルート・プロセスへ送信済みである。リダクション動作では、対応する送信バッファ位置からのデータ要素は算術的あるいは論理的演算によってペアワイズで組み合わされ、ルート・プロセスの受信バッファにおいて単一の対応要素が得られるようにする。アプリケーションに固有のリダクション動作を、実行時に定義することができる。並列通信ライブラリが、定義済みの動作をサポートしているとよい。例えばMPIは、以下の定義済みリダクション動作を提供する:
MPI_MAX 最大値
MPI_MIN 最小値
MPI_SUM 和
MPI_PROD 積
MPI_LAND 論理積
MPI_BAND ビット単位の論理積
MPI_LOR 論理和
MPI_BOR ビット単位の論理和
MPI_LXOR 排他的論理和
MPI_BXOR ビット単位の排他的論理和
計算ノードに加え、並列コンピュータ(100)には、データ通信ネットワーク(174)のうちの1つを介して計算ノード(102)に連結されている入力/出力(「I/O」)ノード(110、114)が含まれる。I/Oノード(110、114)は、計算ノード(102)とI/Oデバイス(118、120、122)との間にI/Oサービスを提供する。I/Oノード(110、114)は、データ通信に向けて、ローカル・エリア・ネットワーク(「LAN」:local area network)(130)を介してI/Oデバイス(118、120、122)に接続されている。並列コンピュータ(100)はさらに、ネットワーク(104)のうちの1つを介して計算ノードに連結されているサービス・ノード(116)を含む。サービス・ノード(116)は、複数の計算ノードに共通するサービス、すなわち、計算ノードへプログラムをロードすること、計算ノードにてプログラム実行を開始すること、計算ノードにおけるプログラム動作の結果を取り出すこと、などを提供する。サービス・ノード(116)は、サービス・アプリケーション(124)を実行し、コンピュータ端末(122)上で動作するサービス・アプリケーション・インターフェース(126)を介してユーザ(128)と通信する。
本明細書において下記にさらに詳しく記載するように、図1のシステムは一般に、本発明の実施形態による並列コンピュータにおける事前対応型電力管理に向けて動作する。本発明の実施形態による並列コンピュータにおける電力管理は概して事前対応型と記載されているが、その理由は、並列コンピュータの先々の問題、必要性あるいは変化を予想した上で電力が管理されているからである。このような事前対応型管理は、並列コンピュータの先々の問題、必要性あるいは変化を予想しない電力管理である事後対応型電力管理とは、対照的である。図1のシステムは、以下のことが可能である:並列コンピュータ(100)内の計算ノード(102)の動作グループ(132)にてジョブを開始するユーザ(128)命令を、サービス・ノード(116)によって受信すること;動作グループ(132)の計算ノード(102)の電力管理属性に従って、動作グループ(132)の各計算ノード(102)に関するコンピュータ・プロセッサ電力消費割合とコンピュータ・メモリ電力消費割合とを含んだ電力消費割合を、サービス・ノード(116)によって設定すること;および、サービス・ノード(116)によって並列コンピュータ(100)の動作グループ(132)の計算ノード(102)にてジョブを開始すること。
並列コンピュータによって行われるジョブは、アプリケーションの実行のインスタンスである。そのようなアプリケーションには、動作グループの各計算ノードに向けたコンピュータ・プログラム命令が含まれる。故に、ジョブを行うことは、アプリケーションのコンピュータ・プログラム命令を実行することを含む。
上述のようなジョブを開始するユーザ命令には、計算ノードの電力管理属性が含まれる。電力管理属性は、動作グループの1つ以上の計算ノードの可変の電力消費機能を管理するためにサービス・ノードが使用するパラメータである。図1の例による標準的な計算ノードは、プロセッサの電力消費がジョブによって異なることに対処し、メモリの電力消費がジョブによって異なることに対処する。本発明の実施形態による電力管理属性は、並列コンピュータの或る動作グループ内の計算ノードに関する電力消費割合と、アイドル・サイクルの時間の長さとを含む。電力消費割合は、コンピュータ・プログラム命令実行中の計算ノードの電力消費を制御するためのパラメータである。電力消費割合には、コンピュータ・プロセッサ電力消費割合と、コンピュータ・メモリ電力消費割合とが含まれる。各々の割合は、実行サイクル対アイドル・サイクルの割合として表される。実行サイクルとは、コンピュータ・メモリまたはコンピュータ・プロセッサが命令を実行している期間である。言い換えれば、実行サイクルは、コンピュータ・メモリまたはコンピュータ・プロセッサがアクティブな期間である。それに対しアイドル・サイクルとは、コンピュータ・プロセッサまたはコンピュータ・メモリがアイドルである、言い換えれば、何も命令を実行していない期間である。アイドル状態にあるときは、コンピュータ・プロセッサもコンピュータ・メモリも電力を消費していない。
上述のように、電力消費属性は、アイドル・サイクルの時間の長さをも含む。アイドル・サイクルの時間が長いほど、そのようなアイドル・サイクルの期間中、計算ノードのコンピュータ・プロセッサまたはコンピュータ・メモリがより長くアイドル状態になる。サービス・ノードが、電力消費割合を設定するときに、アイドル・サイクルの時間の長さを設定するとよい。
電力管理属性は、ジョブ固有にすることもできる。言い換えれば、ユーザは、1つのジョブに対して特定の一連の電力管理属性を用意し、別のジョブに対して全く異なる一連の電力管理属性を用意してもよい。別の方法では、ユーザが、或るジョブ・グループに対して1つの一連の電力管理属性を用意すること、あるいは、ルールに基づいて適用されるように一連の電力管理属性を用意することもできる。例えばユーザは、夏の数ヶ月間に実施される全てのジョブに対して適用させるように1つの一連の電力管理属性を用意し、同年の残りの月に適用させるように1つの一連の電力管理属性を用意してもよい。
図1のサービス・ノード(116)は、サービス・アプリケーション(124)、すなわち並列コンピュータ(100)内の計算ノード(102)の動作グループ(132)にてジョブを開始するユーザ(128)命令をサービス・ノード(116)によって受信することを可能にするコンピュータ・プログラム命令のモジュールを含み、上記ユーザ命令は、計算ノードの電力管理属性を含む。並列コンピュータ(100)内の計算ノードの動作グループにてジョブを開始するユーザ命令を受信することは、サービス・アプリケーション・インターフェース(126)によって提供されるグラフィカル・ユーザ・インターフェース(「GUI」:graphical user interface)を介してユーザ(128)が入力した電力管理属性を、端末(122)から受信することによって、行われるとよい。上述のようなGUIは、コンピュータ・プロセッサおよびコンピュータ・メモリ双方の電力消費割合に適用される実行サイクル対アイドル・サイクルの単一の割合に加えて、アイドル・サイクルの時間の長さをも受け付けるように、特別に構成されているとよい。あるいはGUIは、実行サイクル対アイドル・サイクルの2つの別個の割合、すなわちコンピュータ・プロセッサ電力消費割合として設定される1つの割合とコンピュータ・メモリ電力消費割合として設定される1つの割合とに加えて、アイドル・サイクルの時間の長さを受け付けるように、特別に構成されていてもよい。
図1のサービス・アプリケーション(124)は、さらに、動作グループの計算ノード(102)の電力管理属性に従って、動作グループの各計算ノードに関するコンピュータ・プロセッサ電力消費割合とコンピュータ・メモリ電力消費割合とを含んだ電力消費割合をサービス・ノード(116)によって設定することを可能にするコンピュータ・プログラム命令を含む。動作グループ(132)の各計算ノード(102)に関する電力消費割合を設定することは、動作グループ(132)内の計算ノード(102)各々を電力消費割合を用いて構成することによって、行われるとよい。言い換えれば、計算ノード各々の中のコンピュータ・メモリを、電力消費割合を用いて構成するということである。
図1のシステムでは、例示的なサービス・ノード(116)が、帯域外サービス・ネットワーク、すなわちJTAGネットワーク(104)を介して電力管理属性を設定する。図1のサービス・ネットワークはJTAGネットワークとして図示されているが、当業者には当然のことながら、サービス・ネットワークは、サービス・ノード(116)と計算ノード(102)との間の帯域外通信を可能にすることのできる任意の通信リンクとして実装されればよい。そのような帯域外通信リンクとしては、例えば、当業者には思い当たるように、インター・インテグレーテッド回路(「IC」:Inter−Integrated Circuit)バス、1−Wire(R)バス、周辺コンポーネント相互接続(「PCI」:Peripheral Component Interconnect)バス、システム管理バス(「SMB」:System Management Bus)、シリアル周辺インターフェース(「SPI」:serial peripheral interface)、インテリジェント・プラットフォーム管理バス(「IPMB」:Intelligent platform management bus)などを挙げることができる。
図1のサービス・アプリケーション(124)は、さらに、サービス・ノード(116)によって並列コンピュータ(100)の動作グループ(132)の計算ノード(102)にてジョブを開始することを可能にするコンピュータ・プログラム命令をも含む。並列コンピュータ(100)の動作グループ(132)の計算ノード(102)にてジョブを開始することは、動作グループ(132)内の各計算ノード(102)を各自のジョブ固有のコンピュータ・プログラム命令を用いて構成し、そのコンピュータ・プログラム命令を実行させる通知を動作グループ(132)の計算ノード(102)へ送信することによって、行なわれるとよい。
図1に示す例示的なシステムを構成しているノード、ネットワーク、およびI/Oデバイスの配列は説明のためのものに過ぎず、本発明を制限するためのものではない。本発明の実施形態による並列コンピュータにおける事前対応型電力管理が可能なデータ処理システムには、当業者には思い当たるように、図1には示さない追加的なノード、ネットワーク、デバイス、およびアーキテクチャを含めてもよい。図1の例における並列コンピュータ(100)は16個の計算ノード(102)を含んでいるが、本発明の実施形態による並列コンピュータにおける事前対応型電力管理が可能な並列コンピュータには、いくつの計算ノードを含めてもよいことが分かるだろう。上述のようなデータ処理システムにおけるネットワークは、イーサネットおよびJTAGに加え、多数のデータ通信プロトコルをサポートしていてもよく、例えば、当業者には思い当たるように、TCP(Transmission Control Protocol:伝送制御プロトコル)、IP(Internet Protocol:インターネット・プロトコル)などが挙げられる。本発明の多様な実施形態は、図1に示すハードウェア・プラットフォームのほかに、様々なハードウェア・プラットフォームにて実現することができる。
本発明の実施形態による並列コンピュータにおける事前対応型電力管理は、複数の計算ノードを含んだ並列コンピュータ上で実現されるとよい。実際、そのようなコンピュータには、上述のような計算ノードが何千も含まれることがある。さらには、各計算ノードそれ自体が、1つ以上のコンピュータ・プロセッサ、独自のコンピュータ・メモリ、および独自の入力/出力アダプタから成る一種のコンピュータとなっている。そこでさらなる説明のために、図2に、本発明の実施形態による並列コンピュータにおける事前対応型電力管理に有用な例示的な計算ノードのブロック図を示す。図2の計算ノード(152)は、1つ以上のコンピュータ・プロセッサ(164)のほか、ランダム・アクセス・メモリ(「RAM」:random access memory)(156)を含む。プロセッサ(164)は、高速メモリ・バス(154)を介してRAM(156)に接続され、さらにバス・アダプタ(194)および拡張バス(168)を介して、計算ノード(152)のその他のコンポーネントに接続されている。RAM(156)に保存されているのは、アプリケーション・プログラム(158)、すなわち、並列したユーザレベルのデータ処理を並列アルゴリズムを用いて行うコンピュータ・プログラム命令のモジュールである。図2のアプリケーション(158)は、他の計算ノードへの伝送に向けてメッセージを保存するアプリケーション・バッファを確保する。
同様にRAM(156)に保存されているのは、メッセージング・モジュール(160)、すなわち、ポイント・ツー・ポイント動作ならびに集合的動作を含む計算ノード間の並列通信を行うコンピュータ・プログラム命令のライブラリである。アプリケーション・プログラム(158)は、メッセージング・モジュール(160)にあるソフトウェア・ルーチンを呼び出すことによって、集団的動作を実行する。並列通信ルーチンのライブラリは、2つの独立したデータ通信ネットワークにてノード間でデータを送受信する並列通信ルーチンを書くべく、Cプログラミング言語など従来のプログラミング言語を用い、さらに従来のプログラミング方法を用いて、本発明の実施形態によるシステムでの使用に向けて一から開発することができる。あるいは、本発明の実施形態に従って動作するように、既存の従来技術のライブラリを改善してもよい。従来技術の並列通信ライブラリとしては、「メッセージ・パッシング・インターフェース」(「MPI」)ライブラリおよび「並列仮想マシン」(「PVM」)ライブラリが挙げられる。
同様にRAM(156)に保存されているのは、オペレーティング・システム(162)、すなわち、計算ノードの他の資源に対するアプリケーション・プログラムのアクセスのためのコンピュータ・プログラム命令およびルーチンのモジュールである。並列コンピュータの計算ノードにあるアプリケーション・プログラムおよび並列通信ライブラリは、ユーザ・ログインも用いずセキュリティ問題もなく、実行の単一スレッドを動作させるのが標準的である。これは、上記スレッドが、当該ノードの全ての資源に対する完全なアクセス権を与えられているためである。従って、並列コンピュータ内の計算ノード上のオペレーティング・システムによって実施されるタスクの量および複雑度は、多数のスレッドが同時に動作している逐次コンピュータ上のオペレーティング・システムによって実施されるタスクの量および複雑度に比べると、少量であり単純である。加えて、図2の計算ノード(152)には映像I/Oがなく、オペレーティング・システムに対する要求を減らすもう1つの要因となっている。従って、本オペレーティング・システムは、汎用コンピュータのオペレーティング・システムと比べるとかなり軽くなり、言わば軽量版のようなものとすることもでき、あるいは特定の並列コンピュータ上での動作に向けて特別に開発されたオペレーティング・システムとすることもできる。計算ノードでの使用に向けて有用に改善され単純化され得るオペレーティング・システムとしては、当業者には思い当たるように、UNIX(R)、Linux(R)、Microsoft XP(R)、IBM AIX(IBM社の登録商標)、IBM i5/OS(IBM社の登録商標)などが挙げられる。
同様にRAM(156)に保存されているのは、コンピュータ・プロセッサ電力消費割合(714)とコンピュータ・メモリ電力消費割合(716)とを含んだ電力消費割合(712)である。電力消費割合は、コンピュータ・プログラム命令を実行中の計算ノードの電力消費を制御するパラメータである。電力消費割合(712)は、サービス・ノードによって設定される。計算ノード(152)は、アプリケーション(158)を実行中、上述の電力消費割合(712)に従って動作する。
図2の例示的な計算ノード(152)は、並列コンピュータの他のノードとデータ通信を実施するように、いくつかの通信アダプタ(172、176、180、188)を含む。そのようなデータ通信は、RS−232接続を介すこと、USBなどの外部バスを介すこと、IPネットワークなどのデータ通信ネットワークを介すこと、および当業者には思い当たるであろうその他の方法を介すことによって、逐次的に行われてもよい。通信アダプタは、データ通信のハードウェア・レベルを実現しており、これを通じて1つのコンピュータが、直接あるいはネットワークを介して別のコンピュータにデータ通信を送信する。本発明の実施形態による並列コンピュータにおける事前対応型電力管理用のシステムに有用な通信アダプタの例としては、有線通信用のモデム、有線ネットワーク通信用のイーサネット(IEEE 802.3)アダプタ、およびワイヤレス・ネットワーク通信用の802.11bアダプタなどが挙げられる。
図2の例におけるデータ通信アダプタには、例示の計算ノード(152)をデータ通信に向けてギガビット・イーサネット(174)に連結する、ギガビット・イーサネット・アダプタ(172)が含まれる。ギガビット・イーサネットは、IEEE 802.3標準に定義されているネットワーク伝送標準であり、1秒あたり10億ビット(1ギガビット)のデータ・レートを提供する。ギガビット・イーサネットは、イーサネットの変形体であり、多モード光ファイバ・ケーブル、単一モード・光ファイバ・ケーブル、あるいは非シールドより対線で動作する。
図2の例におけるデータ通信アダプタには、例示の計算ノード(152)をデータ通信に向けてJTAGマスタ回路(178)に連結する、JTAGスレーブ回路(176)が含まれる。JTAGは、バウンダリ・スキャンを用いたプリント回路基板の検査に使用されるテスト・アクセス・ポートに関する、標準テスト・アクセス・ポートおよびバウンダリ・スキャン・アーキテクチャと題されたIEEE 1149.1標準に対して使われる通称である。JTAGは非常に広く適応しており、そのため現時点ではバウンダリ・スキャンとJTAGとはほぼ同義である。JTAGは、プリント回路基板のためだけではなく、集積回路のバウンダリ・スキャンを行うためにも使用され、さらには組み込みシステムをデバッグする機構としても有用であって、便利な「バック・ドア」をシステムに与えている。図2の例の計算ノードは、上記3つの全てであり得る:本計算ノードは一般に、プリント回路基板上に実装された1つ以上の集積回路を含み、さらに、独自のプロセッサ、独自のメモリ、および独自のI/O機能を有する組み込みシステムとして実現され得る。JTAGスレーブ(176)を介したJTAGバウンダリ・スキャンにより、計算ノード(152)のプロセッサ・レジスタおよびメモリを、本発明の実施形態による並列コンピュータにおける事前対応型電力管理での使用に向けて効率的に構成することができる。
図2の例におけるデータ通信アダプタには、ポイント・ツー・ポイントアダプタ(180)が含まれる。このポイント・ツー・ポイント・アダプタは、例示の計算ノード(152)を、データ通信に向けて、例えば3次元トーラスまたはメッシュとして構成されているネットワークなど、ポイント・ツー・ポイントのメッセージ・パッシング動作に最適なネットワーク(108)に対し、連結する。ポイント・ツー・ポイント・アダプタ(180)は、3つの通信軸すなわちx、yおよびz上で、6つの双方向リンク:+x(181)、−x(182)、+y(183)、−y(184)、+z(185)、および−z(186)を通じて、6方向にデータ通信を提供する。
図2の例におけるデータ通信アダプタには、グローバル結合型ネットワーク・アダプタ(188)が含まれる。このグローバル結合型ネットワーク・アダプタは、例示の計算ノード(152)を、データ通信に向けて、例えばバイナリ・ツリーとして構成されているグローバル結合型ネットワークにおける集合的なメッセージ・パッシング動作に最適なネットワーク(106)に対し、連結する。グローバル結合型ネットワーク・アダプタ(188)は、3つの双方向リンク:子ノード(190)に対する2つのリンクならびに親ノード(192)に対する1つのリンクを通じて、データ通信を提供する。
例示の計算ノード(152)は、2つの算術的論理ユニット(「ALU」):arithmetic logic unit)を含む。ALU(166)は、プロセッサ(164)のコンポーネントである。さらに別個のALU(170)が、グローバル結合型ネットワーク・アダプタ(188)専用となっており、リダクション動作の算術的および論理的関数の実施に使用される。並列通信ライブラリ(160)にある、リダクション・ルーチンのコンピュータ・プログラム命令が、算術的または論理的関数の命令を、命令レジスタ(169)にラッチするとよい。例えば、リダクション動作の算術的または論理的関数が「和」または「論理和」であるとき、グローバル結合型ネットワーク・アダプタ(188)は、プロセッサ(164)にあるALU(166)を用いて、あるいは一般にはより高速に専用のALU(170)を用いて、算術的または論理的演算を実行すればよい。
そこでさらなる説明のために、図3に、本発明の実施形態による並列コンピュータにおける事前対応型電力管理に有用な例示的なサービス・ノード(252)を含んだ自動計算機のブロック図を示す。図3のサービス・ノード(252)は、少なくとも1つのコンピュータ・プロセッサ(256)すなわち「CPU」のほか、高速メモリ・バス(266)およびバス・アダプタ(258)を介してプロセッサ(256)とサービス・ノードのその他のコンポーネントとに接続されているランダム・アクセス・メモリ(268)(「RAM」)を含む。
RAM(268)に保存されているのは、サービス・アプリケーション(124)、すなわち本発明の実施形態による並列コンピュータにおいて事前対応的に電力を管理することの可能なコンピュータ・プログラム命令のモジュールである。図3のサービス・アプリケーション(124)は、以下のことを可能にするコンピュータ・プログラム命令を含む:並列コンピュータ内の計算ノードの動作グループにてジョブを開始するユーザ命令(706)を、サービス・ノード(252)によって受信すること、ただし上記ユーザ命令は、計算ノードの電力管理属性(708)を含む;動作グループの計算ノードの電力管理属性に従って、動作グループの各計算ノードに関するコンピュータ・プロセッサ電力消費割合とコンピュータ・メモリ電力消費割合とを含んだ電力消費割合を、サービス・ノードによって設定すること;および、サービス・ノードによって、並列コンピュータの動作グループの計算ノードにてジョブを開始すること。
同様にRAM(268)に保存されているのは、オペレーティング・システム(254)である。本発明の実施形態によるサービス・ノードに有用なオペレーティング・システムとしては、当業者には思い当たるように、UNIX(R)、Linux(R)、Microsoft Vista(R)、Microsoft XP(R)、IBM AIX(IBM社の登録商標)、IBM i5/OS(IBM社の登録商標)などが挙げられる。図3の例ではオペレーティング・システム(254)およびメディア・サーバ・アプリケーション・プログラム(202)がRAM(268)の中に図示されているが、このようなソフトウェアの多くのコンポーネントは一般に、例えばディスク・ドライブ(270)上で、不揮発性メモリにも同様に保存される。図3のサービス・ノード(252)には、バス・アダプタ(258)が含まれ、このバス・アダプタは、複数の高速バスすなわちフロント・サイド・バス(262)、映像バス(264)、およびメモリ・バス(266)のためのドライブ・エレクトロニクスのほか低速な拡張バス(260)のためのドライブ・エレクトロニクスを含んでいる、コンピュータ・ハードウェア・コンポーネントである。本発明の実施形態による事前対応型電力管理に有用なバス・アダプタの例としては、インテル・ノースブリッジ、インテル・メモリ・コントローラ・ハブ、インテル・サウスブリッジ、およびインテルI/Oコントローラ・ハブが挙げられる。本発明の実施形態による並列コンピュータにおける事前対応型電力管理に有用な拡張バスの例としては、業界標準アーキテクチャ(「ISA」:Industry Standard Architecture)バス、および周辺コンポーネント相互接続(「PCI」)バスが挙げられる。
図3のサービス・ノード(252)には、拡張バス(260)およびバス・アダプタ(258)を介してプロセッサ(256)とサービス・ノード(252)のその他のコンポーネントとに連結されているディスク・ドライブ・アダプタ(272)が含まれる。ディスク・ドライブ・アダプタ(272)は、不揮発性データ・ストレージを、ディスク・ドライブ(270)の形でサービス・ノード(252)に接続する。サービス・ノードにおいて有用なディスク・ドライブ・アダプタとしては、当業者には思い当たるように、統合ドライブ・エレクトロニクス(「IDE」:Integrated Drive Electronics)アダプタ、小型コンピュータ・システム・インターフェース(「SCSI」:Small Computer System Interface)アダプタなどが挙げられる。加えて、不揮発性コンピュータ・メモリは、当業者には思い当たるように、光ディスク・ドライブ、電気的に消去可能なプログラム可能読み取り専用メモリ(いわゆる「EEPROM」:electrically erasable programmable read−only memory、または「フラッシュ」メモリ)、RAMドライブなどとして、サービス・ノード用に実装されてもよい。
図3の例のサービス・ノード(252)は、1つ以上の入力/出力(「I/O」)アダプタ(278)を含む。サービス・ノードにあるI/Oアダプタは、例えば、コンピュータ・ディスプレイ・スクリーンなどのディスプレイ・デバイスへの出力のほかキーボードおよびマウスなどのユーザ入力デバイス(281)からのユーザ入力を制御するソフトウェア・ドライバおよびコンピュータ・ハードウェアを介して、ユーザ指向の入力/出力を実現する。図3の例のサービス・ノード(252)には、ディスプレイ・スクリーンまたはコンピュータ・モニタなどのディスプレイ・デバイス(280)に対するグラフィックな出力に向けて特別に設計されたI/Oアダプタの一例である、映像アダプタ(209)が含まれる。映像アダプタ(209)は、高速映像バス(264)、バス・アダプタ(258)、および同様に高速バスであるフロント・サイド・バス(262)を介して、プロセッサ(256)に接続されている。
図3の例示的なサービス・ノード(252)は、他のコンピュータ(282)とのデータ通信、ならびにデータ通信ネットワーク(200)とのデータ通信のための、通信アダプタ(267)を含む。そのようなデータ通信は、RS−232接続を介すこと、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などの外部バスを介すこと、IPデータ通信ネットワークなどのデータ通信ネットワークを介すこと、および当業者には思い当たるであろうその他の方法を介すことによって、逐次的に行われてもよい。通信アダプタは、データ通信のハードウェア・レベルを実現しており、これを通じて1つのコンピュータが、直接あるいはデータ通信ネットワークを介して別のコンピュータにデータ通信を送信する。本発明の実施形態による並列コンピュータにおける事前対応型電力管理に有用な通信アダプタの例としては、有線ダイアルアップ通信用のモデム、有線データ通信ネットワーク通信用のイーサネット(IEEE 802.3)アダプタ、およびワイヤレ・スデータ通信ネットワーク通信用の802.11アダプタなどが挙げられる。
さらなる説明のために、図4のAに、本発明の実施形態による並列コンピュータにおける事前対応型電力管理が可能なシステムに有用な例示的なポイント・ツー・ポイント・アダプタ(180)を示す。ポイント・ツー・ポイント・アダプタ(180)は、ポイント・ツー・ポイント動作向けに最適化されたデータ通信ネットワーク、すなわち計算ノードを3次元トーラスまたはメッシュに編成するネットワークで使用するように、設計されている。図4のAの例におけるポイント・ツー・ポイント・アダプタ(180)は、x軸に沿って、−x方向(182)の隣のノードに対する往復と+x方向(181)の隣のノードに対する往復との4つの単方向データ通信リンクを通じて、データ通信を提供する。ポイント・ツー・ポイント・アダプタ(180)はさらに、y軸に沿って、−y方向(184)の隣のノードに対する往復と+y方向(183)の隣のノードに対する往復との4つの単方向データ通信リンクを通じて、データ通信を提供する。図4Aのポイント・ツー・ポイント・アダプタ(180)はさらに、z軸に沿って、−z方向(186)の隣のノードに対する往復と+z方向(185)の隣のノードに対する往復との4つの単方向データ通信リンクを通じて、データ通信を提供する。
さらなる説明のために、図4のBに、本発明の実施形態による並列コンピュータにおける事前対応型電力管理が可能なシステムに有用な例示的なグローバル結合型ネットワーク・アダプタ(188)を示す。グローバル結合型ネットワーク・アダプタ(188)は、集合的動作向けに最適化されたネットワーク、すなわち並列コンピュータの計算ノードをバイナリ・ツリーに編成するネットワークで使用するように、設計されている。図4Bの例におけるグローバル結合型ネットワーク・アダプタ(188)は、4つの単方向データ通信リンク(190)を通じて、2つの子ノードに対する往復のデータ通信を提供する。グローバル結合型ネットワーク・アダプタ(188)はさらに、2つの単方向データ通信リンク(192)を通じて、親ノードに対する往復のデータ通信を提供する。
さらなる説明のために、図5に、本発明の実施形態による並列コンピュータにおける事前対応型電力管理が可能なシステムに有用なポイント・ツー・ポイント動作向けに最適化された例示的なデータ通信ネットワーク(108)を説明する線図を示す。図5の例において、複数の点は並列コンピュータの計算ノード(102)を表し、各点の間の点線は、計算ノード間のデータ通信リンク(103)を表す。データ通信リンク(103)は、例として図4Aに示したものに類似するポイント・ツー・ポイント・データ通信アダプタを用いて実装され、x、yおよびzの3本の軸上で+x(181)、−x(182)、+y(183)、−y(184)、+z(185)、および−z(186)の6方向に行き来するデータ通信リンクを備える。リンクおよび計算ノードは、ポイント・ツー・ポイント動作向けに最適化されたこのデータ通信ネットワークによって、3次元メッシュ(105)に編成される。メッシュ(105)は、各軸上に、メッシュ(105)の最も外側にある各計算ノードをメッシュ(105)の両端で接続するラップアラウンド・リンクを有している。こうしたラップアラウンド・リンクは、トーラス(107)の一部を形成する。トーラス内の計算ノードは各々、一連のx、y、z座標によって一意に特定される位置をトーラスにて有する。当然分かるように、y方向およびz方向のラップアラウンド・リンクは、分かりやすくするために省略されているが、x方向に示すラップアラウンド・リンクと同様のやり方で構成される。説明を分かりやすくするために、図5のデータ通信ネットワークは専ら27個の計算ノードを用いて図示されているが、当然のことながら、本発明の実施形態による並列コンピュータにおける事前対応型電力管理で使用されるポイント・ツー・ポイント動作向けに最適化されたデータ通信ネットワークには、ほんの数個の計算ノードだけを含めることも、あるいは何千もの計算ノードを含めることもできる。
さらなる説明のために、図6に、本発明の実施形態による並列コンピュータにおける事前対応型電力管理が可能なシステムに有用な集合的動作向けに最適化された、例示的なデータ通信ネットワーク(106)を説明する線図を示す。図6の例のデータ通信ネットワークは、計算ノードをツリーとして編成するように計算ノードに接続されているデータ通信リンクを含む。図6の例において、複数の点は並列コンピュータの計算ノード(102)を表し、各点の間の点線(103)は、計算ノード間のデータ通信リンクを表す。データ通信リンクは、例として図4Bに示したものに類似するグローバル結合型ネットワーク・アダプタを用いて実装され、一部の例外を除いて一般に、各ノードが、2つの子ノードに対する往復のデータ通信、および親ノードに対する往復のデータ通信を提供する。バイナリ・ツリー(106)内のノードは、物理ルート・ノード(202)、ブランチ・ノード(204)、およびリーフ・ノード(206)と特徴付けることができる。ルート・ノード(202)は、子を2つ有するが、親は有さない。リーフ・ノード(206)の各々は親を有するが、リーフ・ノードは子は有さない。ブランチ・ノード(204)の各々は、親と2つの子との双方を有する。その結果リンクおよび計算ノードは、集合的動作向けに最適化された上記のデータ通信ネットワークによって、バイナリ・ツリー(106)に編成される。説明を分かりやすくするために、図6のデータ通信ネットワークは専ら31個の計算ノードを用いて図示されているが、当然のことながら、本発明の実施形態による並列コンピュータにおける事前対応型電力管理用のシステムで使用される集合的動作向けに最適化されたデータ通信ネットワークには、ほんの数個の計算ノードだけを含めることも、あるいは何千もの計算ノードを含めることもできる。
図6の例において、ツリーの中の各ノードは、「ランク」(250)と称されるユニット識別子を割り当てられている。ノードのランクは、ツリー・ネットワークにおけるポイント・ツー・ポイント動作および集合的動作の双方での使用に向けて、ツリー・ネットワークにて当該ノードの位置を一意に特定する。本例でのランクは、ルート・ノード(202)に割り当てられた0から始まり、ツリーの第2層の1番目のノードに割り当てられた1、ツリーの第2層の2番目のノードに割り当てられた2、ツリーの第3層の1番目のノードに割り当てられた3、ツリーの第3層の2番目のノードに割り当てられた4というように、整数として割り当てられている。ここでは例示しやすいようにツリーの最初の3層のランクのみを示しているが、ツリー・ネットワーク内の全ての計算ノードが、一意のランクを割り当てられる。
さらなる説明のために、図7に、本発明の実施形態による並列コンピュータにおける事前対応型電力管理の例示的な方法を説明するフロー図を示す。並列コンピュータは、動作グループ(132)として編成された複数の計算ノード(102)を含む。並列コンピュータはさらに、JTAGネットワーク(図1における104)などの帯域外サービス・ネットワークを介して計算ノード(102)に接続されているサービス・ノード(116)を含む。各計算ノード(102)は、コンピュータ・プロセッサと、コンピュータ・プロセッサに動作可能に連結されたコンピュータ・メモリとを含む。一部の実施形態では、複数の計算ノード(102)は、データ通信に向けて、複数のデータ通信ネットワークによって接続されている。複数のデータ通信ネットワークには、ポイント・ツー・ポイント・データ通信向けに最適化されたデータ通信ネットワーク(図1における108)が含まれるとよい。複数のデータ通信ネットワークにはさらに、集合的動作向けに最適化されたデータ通信ネットワーク(図1における106)が含まれるとよい。
図7の方法は、並列コンピュータ内の計算ノード(102)の動作グループ(132)にてジョブ(704)を開始するユーザ命令(706)を、サービス・ノード(116)によって受信するステップ(702)を含み、上記命令(706)は、計算ノード(102)の電力管理属性(708)を含む。並列コンピュータ内の計算ノード(102)の動作グループ(132)にてジョブ(704)を開始するユーザ命令(706)すなわち計算ノード(102)の電力管理属性(708)が含まれた命令(706)をサービス・ノード(116)によって受信するステップ(702)は、例えば、電力消費割合を受信することを含み、この電力消費割合には、コンピュータ・プロセッサおよびコンピュータ・メモリに関する実行サイクルおよびアイドル・サイクルの電力消費割合のほか、アイドル・サイクルの時間の長さが含まれる。
並列コンピュータ(100)内の計算ノードの動作グループにてジョブ(704)を開始するユーザ命令(706)を受信するステップ(702)は、サービス・アプリケーション・インターフェース(126)によって提供されるグラフィカル・ユーザ・インターフェース(「GUI」)にユーザ(128)が入力した電力管理属性を端末(122)から受信することによって、行われるとよい。上述のようなGUIは、コンピュータ・プロセッサおよびコンピュータ・メモリ双方の電力消費割合に適用される実行サイクル対アイドル・サイクルの単一の割合に加えて、アイドル・サイクルの時間の長さをも受け付けるように、特別に構成されているとよい。あるいはGUIは、実行サイクル対アイドル・サイクルの2つの別個の割合、すなわちコンピュータ・プロセッサ電力消費割合として設定される1つの割合とコンピュータ・メモリ電力消費割合として設定される1つの割合とに加えて、アイドル・サイクルの時間の長さを受け付けるように、特別に構成されていてもよい。
図7の方法はさらに、動作グループ(132)の計算ノード(102)の電力管理属性(708)に従って、動作グループ(132)の各計算ノード(102)に関するコンピュータ・プロセッサ電力消費割合(716)とコンピュータ・メモリ電力消費割合(714)とを含んだ電力消費割合(712)を、サービス・ノード(116)によって設定するステップ(710)が含まれる。動作グループ(132)の計算ノード(102)の電力管理属性(708)に従って、動作グループ(132)の各計算ノード(102)に関するコンピュータ・プロセッサ電力消費割合(716)とコンピュータ・メモリ電力消費割合(714)とを含んだ電力消費割合(712)をサービス・ノード(116)によって設定するステップ(710)は、動作グループ(132)内の各計算ノード(102)を電力消費割合を用いて構成することによって、行われるとよい。言い換えれば、計算ノードの各々にあるコンピュータ・メモリを、電力消費割合を用いて構成するということである。
図7の方法では、電力消費割合(712)は、実行サイクル(718、722)対アイドル・サイクル(720、724)の割合として表される。実行サイクルとは、コンピュータ・メモリまたはコンピュータ・プロセッサが命令を実行している期間である。言い換えれば、実行サイクルは、コンピュータ・メモリまたはコンピュータ・プロセッサがアクティブな期間である。それに対しアイドル・サイクルとは、コンピュータ・プロセッサまたはコンピュータ・メモリがアイドルである、言い換えれば、何も命令を実行していない期間である。アイドル状態にあるときは、コンピュータ・プロセッサもコンピュータ・メモリも電力を消費していない。一例として、ユーザ(128)が電力管理属性(708)として以下の電力消費割合を用意したとみなす:
● コンピュータ・プロセッサ電力消費割合=1/10
● コンピュータ・メモリ電力消費割合=2/5
サービス・ノードが、計算ノードに上記の電力消費割合を設定し、その計算ノードにてジョブを開始すると、コンピュータ・プロセッサは、1サイクルの間は命令を実行し、その後10サイクルはアイドル状態になる。コンピュータ・メモリは、2サイクルの間は命令を実行し、その後5サイクルはアイドル状態になる。
図7の方法では、電力消費割合(712)を設定するステップ(710)が、アイドル・サイクルの時間の長さ(730)を設定するステップを含む。アイドル・サイクルの時間の長さ(730)を設定するステップは、計算ノードの各々にあるコンピュータ・メモリを、時間の長さ(730)を用いて構成することによって、行われるとよい。アイドル・サイクルの時間の長さが長いほど、そのようなアイドル・サイクルの期間中、計算ノードのコンピュータ・プロセッサまたはコンピュータ・メモリがより長くアイドル状態になる。図7の例では、アイドル・サイクルの時間の長さ(730)は、10マイクロ秒に設定されている。言い換えれば、コンピュータ・プロセッサまたはコンピュータ・メモリがアイドル状態になるサイクルは各々、10マイクロ秒間続く。
図7の例において、コンピュータ・プロセッサ電力消費割合(714)は、コンピュータ・メモリ電力消費割合(716)と等しくてもよい。言い換えれば、ユーザは、電力管理属性(708)の一部として、2つの電力消費割合(714、716)に関し単一の割合を用意してもよい。あるいはユーザは、各々の電力消費割合に関して、別々の割合を選択してもよい。そのような場合、コンピュータ・プロセッサ電力消費割合(716)は、コンピュータ・メモリ電力消費割合(714)と等しくはない。ユーザが電力消費割合(714、716)を別個に設定できるようにすることによって、並列コンピュータにおける電力消費の精密な制御が可能になる。
図7の方法はさらに、サービス・ノード(116)によって、並列コンピュータの動作グループ(132)の計算ノード(102)にてジョブ(704)を開始するステップ(726)を含む。計算ノード(102)にてジョブ(704)を開始するステップ(726)は、動作グループ(132)の各計算ノード(102)を各自のジョブ固有のコンピュータ・プログラム命令を用いて構成し、そのコンピュータ・プログラム命令を実行させる通知を動作グループ(132)の計算ノード(102)へ送信することによって、行われるとよい。
さらなる説明のために、図8に、本発明の実施形態による並列コンピュータにおける事前対応型電力管理のさらなる例示的な方法を説明するフロー図を示す。図8の方法は、図8の方法が以下を含むという点で、図7の方法に類似している:並列コンピュータの計算ノード(102)の動作グループ(132)にてジョブ(704)を開始するユーザ命令(706)を、サービス・ノード(116)によって受信するステップ(702)、ただし上記命令(706)は、計算ノード(102)の電力管理属性(708)を含む;動作グループ(132)の計算ノード(102)の電力管理属性(708)に従って、動作グループ(132)の各計算ノード(102)に関するコンピュータ・プロセッサ電力消費割合(716)とコンピュータ・メモリ電力消費割合(714)とを含んだ電力消費割合(712)を、サービス・ノード(116)によって設定するステップ(710);および、サービス・ノード(116)によって、並列コンピュータの動作グループ(132)の計算ノード(102)にてジョブ(704)を開始するステップ(726)。
図8の方法がユーザ(128)によって電力管理属性(708)を構築するステップ(802)をさらに含むという点で、図8の方法は図7の方法とは異なる。図8の方法では、電力管理属性(708)を構築するステップ(802)は、ジョブの以前の実行(804)の少なくとも1つの期間にわたり並列コンピュータの動作グループ(132)の計算ノード(102)の電力消費を監視すること(802)によって行われる。電力管理属性は、ジョブの実行中に並列コンピュータによって消費される電力量を所定の閾値未満の量にまで減らすように構築される。並列コンピュータの電力消費を事前対応的に管理するシステムにおける上述のような所定閾値は、一般にピーク電力、すなわち電気供給者が顧客により高い料率の請求を行うことになる電力量である。本明細書においては電力消費割合を構築するステップが単一ステップとして記載されているが、ユーザが、電力管理属性(708)の構築より前に多数のジョブ実行期間にわたって計算ノードの電力消費を監視してもよいことが、当業者にはすぐに分かるであろう。
本発明の例示的な実施形態は大部分、並列コンピュータにおける事前対応型電力管理に向けて十分に機能するコンピュータ・システムに関連して記載されている。一方、当業者には当然のことながら、本発明は、任意の適切なデータ処理システムで使用する信号担持媒体上に配置されたコンピュータ・プログラム製品に具現化することもできる。上述のような信号担持媒体は、磁気媒体、光媒体、あるいは適切なその他の媒体を含む、機械可読情報用の伝送媒体または記録可能媒体とすればよい。記録可能媒体の例としては、当業者には思い当たるように、ハード・ドライブまたはディスケットの磁気ディスク、光ドライブ用のコンパクト・ディスク、磁気テープなどが挙げられる。伝送媒体の例としては、音声通信用の電話ネットワークと、例えばイーサネットのほか、インターネット・プロトコルおよびワールド・ワイド・ウェブを用いて通信するネットワークなどの、デジタル・データ通信ネットワークとに加え、例えばIEEE802.11系の規格に従って実現されるネットワークなどといったワイヤレス伝送媒体とが挙げられる。当業者にはすぐに分かることであるが、適切なプログラミング手段を有するコンピュータ・システムであれば、プログラム製品に具現化される本発明の方法のステップ群を実行することが可能になる。本明細書に記載された例示的な実施形態の一部は、コンピュータ・ハードウェアに実装されコンピュータ・ハードウェア上で実行されるソフトウェアを指向しているが、それにもかかわらず、ファームウェアまたはハードウェアとして実現される代替的な実施形態も同様に本発明の範囲内にあることが、当業者にはすぐに分かるであろう。
前述の記載から理解されるように、本発明の本来の精神を逸脱することなく、本発明の多様な実施形態に修正および変更を施すことができる。本明細書における記載は、単なる例示を目的とするものに過ぎず、限定的な意味に解釈されるべきものではない。本発明の範囲は、以下の請求項の言葉によってのみ制限される。
誤解を避けるために、本明細書にて使用される用語「含む」は、明細および請求項の全体を通じて、「のみから成る」ことを意味すると解釈されるべきではない。

Claims (10)

  1. 並列コンピュータにおける事前対応型電力管理の方法であって、前記並列コンピュータは、サービス・ノードと複数の計算ノードとを含み、前記サービス・ノードは、帯域外ネットワークを介して前記計算ノードに接続されており、各計算ノードは、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作可能に連結されているコンピュータ・メモリとを含み、前記方法は、
    前記並列コンピュータ内の計算ノードの動作グループにてジョブを開始するユーザ命令を、前記サービス・ノードによって受信するステップであって、前記命令は、前記計算ノードの電力管理属性を含む、前記受信するステップと、
    前記動作グループの前記計算ノードの前記電力管理属性に従って、前記動作グループの各計算ノードに関するコンピュータ・プロセッサ電力消費割合とコンピュータ・メモリ電力消費割合とを含んだ電力消費割合を、前記サービス・ノードによって設定するステップと、
    前記サービス・ノードによって、前記並列コンピュータの前記動作グループの前記計算ノードにて前記ジョブを開始するステップと、
    を含み、
    前記電力消費割合は、実行サイクル対アイドル・サイクルの割合をさらに含み、
    電力消費割合を設定するステップは、前記アイドル・サイクルの時間の長さを設定するステップをさらに含む、
    方法。
  2. 前記コンピュータ・プロセッサ電力消費割合は、前記コンピュータ・メモリ電力消費割合と等しい、請求項1に記載の方法。
  3. 前記コンピュータ・プロセッサ電力消費割合は、前記コンピュータ・メモリ電力消費割合と等しくない、請求項1に記載の方法。
  4. ジョブの以前の実行の少なくとも1つの期間にわたり前記並列コンピュータの前記動作グループの前記計算ノードの電力消費を監視することを含んだ、前記電力管理属性をユーザによって構築するステップをさらに含む、請求項1乃至請求項3のいずれかに記載の方法。
  5. 前記複数の計算ノードは、データ通信に向けて、ポイント・ツー・ポイント・データ通信向けに最適化された少なくとも1つのデータ通信ネットワークと集合的動作向けに最適化された少なくとも1つのデータ通信ネットワークとの複数のデータ通信ネットワークを介して接続されている、請求項1乃至請求項4のいずれかに記載の方法。
  6. 並列コンピュータにおける事前対応型電力管理用のサービス・ノードであって、前記並列コンピュータは、前記サービス・ノードと複数の計算ノードとを含み、前記サービス・ノードは、帯域外ネットワークを介して前記計算ノードに接続されており、各計算ノードは、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作可能に連結されているコンピュータ・メモリとを含み、前記サービス・ノードは、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作可能に連結されているコンピュータ・メモリとを含み、前記コンピュータ・メモリはその内部に、以下のことを可能にするプログラム命令が配置されている:
    前記並列コンピュータ内の計算ノードの動作グループにてジョブを開始するユーザ命令を、前記サービス・ノードによって受信すること、ただし前記命令は、前記計算ノードの電力管理属性を含む;
    前記動作グループの前記計算ノードの前記電力管理属性に従って、前記動作グループの各計算ノードに関するコンピュータ・プロセッサ電力消費割合とコンピュータ・メモリ電力消費割合とを含んだ電力消費割合を、前記サービス・ノードによって設定すること;および、
    前記サービス・ノードによって、前記並列コンピュータの前記動作グループの前記計算ノードにて前記ジョブを開始すること、そして更に、
    前記電力消費割合は、実行サイクル対アイドル・サイクルの割合をさらに含み、
    電力消費割合を設定することは、前記アイドル・サイクルの時間の長さを設定することをさらに含む。
  7. 前記コンピュータ・プロセッサ電力消費割合は、前記コンピュータ・メモリ電力消費割合と等しい、請求項6に記載のサービス・ノード。
  8. 前記コンピュータ・プロセッサ電力消費割合は、前記コンピュータ・メモリ電力消費割合と等しくない、請求項6に記載のサービス・ノード。
  9. ジョブの以前の実行の少なくとも1つの期間にわたり前記並列コンピュータの前記動作グループの前記計算ノードの電力消費を監視することを含めて、前記電力管理属性をユーザによって構築することを可能にするコンピュータ・プログラム命令をさらに含む、請求項6乃至請求項8のいずれかに記載のサービス・ノード。
  10. 前記複数の計算ノードは、データ通信に向けて、ポイント・ツー・ポイント・データ通信向けに最適化された少なくとも1つのデータ通信ネットワークと集合的動作向けに最適化された少なくとも1つのデータ通信ネットワークとの複数のデータ通信ネットワークを介して接続されている、請求項6乃至請求項9のいずれかに記載のサービス・ノード。
JP2010520531A 2007-08-17 2008-08-05 並列コンピュータにおける事前対応型電力管理 Expired - Fee Related JP4659138B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/840,711 US7941681B2 (en) 2007-08-17 2007-08-17 Proactive power management in a parallel computer
PCT/EP2008/060273 WO2009024459A1 (en) 2007-08-17 2008-08-05 Proactive power management in a parallel computer

Publications (2)

Publication Number Publication Date
JP2010537266A JP2010537266A (ja) 2010-12-02
JP4659138B2 true JP4659138B2 (ja) 2011-03-30

Family

ID=40056014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010520531A Expired - Fee Related JP4659138B2 (ja) 2007-08-17 2008-08-05 並列コンピュータにおける事前対応型電力管理

Country Status (7)

Country Link
US (1) US7941681B2 (ja)
EP (1) EP2179359B1 (ja)
JP (1) JP4659138B2 (ja)
KR (1) KR101137073B1 (ja)
CN (1) CN101779189B (ja)
TW (1) TW200917052A (ja)
WO (1) WO2009024459A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070293539A1 (en) * 2004-03-18 2007-12-20 Lansbury Peter T Methods for the treatment of synucleinopathies
US20110145612A1 (en) * 2009-12-16 2011-06-16 International Business Machines Corporation Method and System to Determine and Optimize Energy Consumption of Computer Systems
US8464035B2 (en) * 2009-12-18 2013-06-11 Intel Corporation Instruction for enabling a processor wait state
US9268389B2 (en) * 2010-03-23 2016-02-23 Sony Corporation Reducing power consumption on a processor system by masking actual processor load with insertion of dummy instructions
KR101306995B1 (ko) * 2011-08-16 2013-09-09 한국과학기술정보연구원 작업 관리를 이용한 그린 컴퓨팅 제어 장치 및 방법
US9571329B2 (en) * 2013-03-11 2017-02-14 International Business Machines Corporation Collective operation management in a parallel computer
US9807131B2 (en) * 2013-03-12 2017-10-31 International Business Machines Corporation Collective operation management in a parallel computer
US20160054779A1 (en) 2014-08-22 2016-02-25 Devadatta Bodas Managing power performance of distributed computing systems
US9588823B2 (en) 2014-12-24 2017-03-07 Intel Corporation Adjustment of execution of tasks
US9939834B2 (en) 2014-12-24 2018-04-10 Intel Corporation Control of power consumption
US10996737B2 (en) 2016-03-31 2021-05-04 Intel Corporation Method and apparatus to improve energy efficiency of parallel tasks
KR102178740B1 (ko) * 2017-11-22 2020-11-13 한국전자통신연구원 토러스 네트워크 기반의 분산 파일 시스템을 위한 서버 및 이를 이용한 방법
KR102123117B1 (ko) * 2019-01-15 2020-06-15 연세대학교 산학협력단 다중 노드 시스템에서 성능과 전력을 예측하는 장치 및 그 방법
WO2022252120A1 (en) * 2021-06-01 2022-12-08 Yangtze Memory Technologies Co., Ltd. Power management for memory system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155626A (ja) * 1998-09-18 2000-06-06 Matsushita Electric Ind Co Ltd 電力制御装置
JP2001125691A (ja) * 1999-10-28 2001-05-11 Toshiba Corp コンピュータ及びcpuの間歇動作制御方法
JP2002304239A (ja) * 2001-01-18 2002-10-18 Hewlett Packard Co <Hp> Cpu電力の抑制によるバッテリ放電電流の低減
JP2005073231A (ja) * 2003-07-08 2005-03-17 Toshiba Corp 処理装置のための制御装置
JP2007102323A (ja) * 2005-09-30 2007-04-19 Kyocera Mita Corp 情報処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI942753A (fi) * 1994-06-10 1995-12-11 Nokia Mobile Phones Ltd Menetelmä jänniteregulaattorin sisältävän elektronisen laitteen tehonkulutuksen pienentämiseksi
JPH08221160A (ja) 1995-02-17 1996-08-30 Mitsubishi Electric Corp バッテリ駆動携帯情報機器
JP4052948B2 (ja) * 2002-01-15 2008-02-27 ローム株式会社 マルチフェーズ型dc/dcコンバータ
US20050125701A1 (en) 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
JP4082439B2 (ja) 2004-07-26 2008-04-30 三菱電機株式会社 並列計算機
EP1715405A1 (en) 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US7444526B2 (en) * 2005-06-16 2008-10-28 International Business Machines Corporation Performance conserving method for reducing power consumption in a server system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155626A (ja) * 1998-09-18 2000-06-06 Matsushita Electric Ind Co Ltd 電力制御装置
JP2001125691A (ja) * 1999-10-28 2001-05-11 Toshiba Corp コンピュータ及びcpuの間歇動作制御方法
JP2002304239A (ja) * 2001-01-18 2002-10-18 Hewlett Packard Co <Hp> Cpu電力の抑制によるバッテリ放電電流の低減
JP2005073231A (ja) * 2003-07-08 2005-03-17 Toshiba Corp 処理装置のための制御装置
JP2007102323A (ja) * 2005-09-30 2007-04-19 Kyocera Mita Corp 情報処理装置

Also Published As

Publication number Publication date
CN101779189B (zh) 2013-01-09
EP2179359B1 (en) 2013-02-27
US7941681B2 (en) 2011-05-10
WO2009024459A1 (en) 2009-02-26
KR101137073B1 (ko) 2012-04-19
KR20100041829A (ko) 2010-04-22
US20090049313A1 (en) 2009-02-19
TW200917052A (en) 2009-04-16
JP2010537266A (ja) 2010-12-02
EP2179359A1 (en) 2010-04-28
CN101779189A (zh) 2010-07-14

Similar Documents

Publication Publication Date Title
JP4659138B2 (ja) 並列コンピュータにおける事前対応型電力管理
US8041969B2 (en) Reducing power consumption while performing collective operations on a plurality of compute nodes
US9459917B2 (en) Thread selection according to power characteristics during context switching on compute nodes
US8140704B2 (en) Pacing network traffic among a plurality of compute nodes connected using a data communications network
US9122840B2 (en) Performing collective operations in a distributed processing system
US8291427B2 (en) Scheduling applications for execution on a plurality of compute nodes of a parallel computer to manage temperature of the nodes during execution
US8891408B2 (en) Broadcasting a message in a parallel computer
US7958274B2 (en) Heuristic status polling
US8095811B2 (en) Reducing power consumption while synchronizing a plurality of compute nodes during execution of a parallel application
US9459909B2 (en) Performing collective operations in a distributed processing system
US20090300399A1 (en) Profiling power consumption of a plurality of compute nodes while processing an application
US7877620B2 (en) Managing power in a parallel computer
US20130060833A1 (en) Topology mapping in a distributed processing system
US9086962B2 (en) Aggregating job exit statuses of a plurality of compute nodes executing a parallel application
US8195967B2 (en) Reducing power consumption during execution of an application on a plurality of compute nodes
US9513611B2 (en) Adjusting environmental variables in an adaptive parameter adjustment runtime environment

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100922

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees