JP2000276454A - ソフトウェアの構成方法 - Google Patents
ソフトウェアの構成方法Info
- Publication number
- JP2000276454A JP2000276454A JP11083962A JP8396299A JP2000276454A JP 2000276454 A JP2000276454 A JP 2000276454A JP 11083962 A JP11083962 A JP 11083962A JP 8396299 A JP8396299 A JP 8396299A JP 2000276454 A JP2000276454 A JP 2000276454A
- Authority
- JP
- Japan
- Prior art keywords
- software
- executed
- parallel
- performance
- execution time
- 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
Links
Abstract
イスには現れないパラメータを、性能予測方法に基づ
き、ユーザーインターフェイスに現れるパラメータに応
じて自動的に調節してインストールを行う並列ソフトウ
ェアの構成方法。 【解決手段】 性能を大きく左右するパラメータ、クリ
ティカルパラメータCPを抽出し、さらにそのパラメー
タ群を、ユーザーインターフェイスに現れるユーザーク
リティカルパラメータUCPと、そうでない内部クリテ
ィカルパラメータICPとに分類する。次に、UCPと
ICPとを用いたソフトウェアの性能(実行時間)を予
測する性能予測モデルを作成する。さらに、ソフトウェ
アを実行する環境下での、ICPの最適なパラメータ選
択を行うため、上記のUCPとICPとの関数に対し、
与えられたUCPの制限の下で実行時間を最小にするよ
うなICPの値を定める。
Description
くソフトウェアの構成方法に係り、特に、インストール
の容易な高性能の並列ソフトウェア群(並列プログラム
群)の構成方法に関する。
実行される計算環境には、主に2種類ある。1つは、複
数の同一プロセッサユニットあるいは計算機から構成さ
れるフラットな並列計算環境であり、もう1つは、異な
ったプロセッサや計算機から構成される分散計算環境で
ある。
えば、日立のSR2201、CrayT3D、T3E、日
本電気のSX−5、富士通のVPP700等の分散メモ
リ型並列計算機、同じ性能のワークステーションから構
成されるワークステーションクラスター、同じ性能のパ
ーソナルコンピューターから構成されるパーソナルコン
ピュータークラスターなどがある。このようなフラット
な並列計算環境を単に並列計算機と呼ぶことにする。ま
た、分散計算環境のものとして、例えば、スーパーコン
ピューターとワークステーションとパーソナルコンピュ
ーターとがネットワークで接続されているような複数の
異なる計算機が接続されて構成されたみのがある。
ソフトウェアについて説明する。並列計算機上で実行さ
せるソフトウェアは、並列計算機の構成要素であるプロ
セッサあるいは計算機に、実行に要するメモリを分けて
担当させる。これを単に並列ソフトウェアと呼ぶことに
する。
ェアは、サブルーチン等プログラムのある一部分がある
特定の機能を有するまとまり毎に、実行させる計算機を
指定して実行される。例えば、あるソフトウェアがサブ
ルーチンAとサブルーチンBとから構成され、そのソフ
トウェアを実行する計算環境がスーパーコンピューター
XとワークステーションYとがネットワークで接続され
て構成されている場合、サブルーチンAをスーパーコン
ピューターXで実行させ、サブルーチンBをワークステ
ーションYで実行させる。これらのサブルーチン等のプ
ログラム中のあるまとまりを、コンポーネントと呼ぶこ
とにし、このコンポーネントが複数で構成されるソフト
ウェアを複数コンポーネントソフトウェアと呼ぶ。
フトウェアをこれらの計算環境で実行させる場合、特に
その性能が重要視される。そして、単一のワークステー
ションや単一のスーパーコンピューターでソフトウェア
を実行させるよりも、より高速に実行させるために並列
計算機や分散計算環境が求められている。そのため、並
列計算機で実行させる並列ソフトウェアに対するものと
して、実行に要するメモリを上手く分散させる技術が、
また、複数コンポーネントソフトウェアに対するものと
して、プログラムのある部分を他の計算機のライブラリ
をネットワークを介して接続する技術や、もともと別の
計算機毎にあるプログラムを接続させる技術が知られて
いる。以下、これらの技術のそれぞれについて説明す
る。
ウェアのデータ分割技術 並列計算機上で実行するソフトウェアとして、ScaLAPAC
K (http://www.netlib.org/scalapack)、NAG(http://
www.nag.co.uk/)等の並列行列ライブラリが知られてい
る。この技術は、並列計算機上で行列計算を行う場合
に、行列データを、ソフトウェアを実行するプロセッサ
に分割して保持させものであり、行列の分割ブロックサ
イズを定めて分割を行うものである。
説明する図であり、以下、これについて説明する。図5
において、0〜15の数字が内部にあるブロックのそれ
ぞれ1つは、分割ブロックであり、内部の数字がその分
割ブロックについての処理を行うプロセッサ番号を示し
ている。
が320の正方行列を16台のプロセッサで分割して持
つ1つの方法を表わしたものであり、縦方向が40、横
方向が40の正方行列の分割ブロック毎に各プロセッサ
に割り当てた例である。その際、横方向に、0番プロセ
ッサ、1番プロセッサ、2番プロセッサ、3番プロセッ
サと割り当てる。次の段でも同様に、縦方向が40、横
方向が40の正方行列毎に4番プロセッサ、5番プロセ
ッサ、6番プロセッサ、7番プロセッサと割り当てる。
その次の段でも同様にして8番プロセッサ、9番プロセ
ッサ、10番プロセッサ、11番プロセッサ、その次の
段でも12番プロセッサ、13番プロセッサ、14番プ
ロセッサ、15番プロセッサと割り当てる。
セッサまで合計16台のプロセッサが縦方向が160、
横方向が160の正方行列503を構成する。そして、
この正方行列503を縦、横にならべる形で、縦方向が
320、横方向が320の正方行列を16台のプロセッ
サが分割する。例えば、5番プロセッサが持つ行列デー
タは、影を付けた縦方向が40、横方向が40の正方行
列の分割ブロック部分504〜507である。なお、以
下では、各プロセッサに割り当てられた一番小さい正方
行列のサイズ(縦方向でも横方向でもよい)を行列の分
割ブロックサイズと呼ぶ。図5に示す例では40であ
る。
トソフトウェアの実行技術 プログラムが複数のコンポーネントで構成される場合、
各コンポーネントを、別々の計算機上で稼動させること
ができる。これを分散計算環境での複数コンポーネント
ソフトウェアの実行という。
としては、プログラム中の一部のコンポーネントを高速
に実行できる別の計算機に割り当て、残りは同じ計算機
で実行する方法、予め別々の計算機上で実行できるプロ
グラムをネットワークを介して接続し、1つのプログラ
ムとみなして実行する方法の2つの方法がある。
(http://www.cs.utk.edu/~casanova/NetSolve、あるい
は、NetSolve: A Network-Enabled Server for Solving
Computational Science Problems, H. Casanova and
J. Dongarra, The International Journal of Supercom
puter Applications and High Performance Computing,
Volume 11, Number 3, pp 212-223, Fall 1997.)、Nin
f(http://ninf.etl.go.jp 、あるいは、Ninf: A Netwo
rk based Information Library for a Global World-Wi
de Computing Infrastracture. Mitsuhisa Sato, Hidem
oto Nakada, Satoshi Sekiguchi, Satoshi Matsuoka, U
mpei Nagashima and Hiromitsu Takagi, HPCN'97 (LNCS
-1225), pp. 491-50,1997.)といったコンポーネントの
一部をライブラリ呼び出しによって実行させる方法が知
られている。
(= Common Object Request BrokerArchitecture、 ht
tp://www.acl.lanl.gov/CORBA/)という分散計算環境で
のソフトウェアをつなげる方法によって、異なる計算機
上でソフトウェア群を実行させる技術が知られている。
いても説明したように、並列計算環境においては性能が
重要視される。そこで、並列計算機で実行させる並列ソ
フトウェアの技術としては、例えば、行列等のデータを
分割する技術があり、また、分散計算環境での複数コン
ポーネントソフトウェアの実行技術としては、プログラ
ム中の一部を高速に実行できる別の計算機に割り当てる
方法、予め別々の計算機上で実行できるプログラムをネ
ットワークを介して接続して実行する方法がある。
充分な性能を引き出し、できる限り短い実行時間でソフ
トウェアを実行させるには不充分な面があるという問題
点を有している。また、前述した従来技術は、性能を引
き出すためにインターフェイスを追加しなければならな
いという課題もあった。それらの課題について以下に説
明する。
列計算機で実行させる並列ソフトウェアのデータ分割技
術は、行列の分割ブロックサイズを利用者が定めなけれ
ばならず、その条件をプログラム中に組み込まなければ
ならないものである。
の行列演算を実行させる場合のプログラム例を示す図で
あり、図7に示すように、単一の計算機の場合、例え
ば、図7のプログラム701のように、行列データaと
行列サイズnとのみをインターフェイスに記述すればよ
かったのが、並列計算機の場合、プログラム702とし
て示すように、実行するプロセッサ数 npuとさらに行列
の分割ブロックサイズLBを追加しなければならない。
ある並列計算機で実行させる並列ソフトウェアのデータ
分割技術は、行列の分割ブロックサイズの値によって計
算実行時間が大きく変わり、また、利用する計算機や使
用するプロセッサ数によっても最適な値が変わる場合が
多く、実行の条件が変わるごとに調整しなければならな
い。
割を示す図であり、以下、これについて説明する。
大きさ、すなわち、縦方向が320、横方向が320の
行列であるが、行列の分割ブロックサイズを20とした
ものである。そして、縦方向に20、横方向に20の正
方行列を図5の場合と同様に0番プロセッサから15番
プロセッサまでならべて、縦方向に80、横方向に80
の正方行列603を構成する。そして、その正方行列を
横に4つならべたものを4段重ねる構成で縦方向32
0、横方向320の正方行列を分割している。5番プロ
セッサが担当する行列データは影を付けた分割ブロック
604〜619である。
ックサイズが変わっても、各プロセッサが担当する行列
データはいずれも縦方向80、横方向80と変化はな
い。しかし、核プロセッサが担当する部分が違い、ま
た、連続的に扱うことができる範囲が異なってくる。す
ると、計算機によって、また行列計算のアルゴリズムに
よって、計算の実行時間が変わってくる。例えば、行列
のデータで縦方向に一列のデータが同時に計算される場
合、4台のプロセッサが実行し、その間、他のプロセッ
サが待ちとなる。計算される縦方向の一列のデータの範
囲が横方向に順次必要な場合、行列の分割ブロックサイ
ズによって待ちの時間が短かったり長かったりして、実
行時間に大きく影響を及ぼす。待ちの状態について見る
と、図5の場合に比べ、図6の場合は短く、全体で実行
する計算負荷の均等性では優れている。すなわち、図6
のような分割のほうが実行時間が短い場合がある。
機構を有する計算機の場合、必要なデータを連続的にア
クセスし、データフローをパイプライン的に運ぶことに
より計算実行時間を短縮している。この場合、連続的に
データをアクセスできる範囲が長い図5に示す例のよう
な分割のほうが実行時間が短い場合がある。このよう
に、実行するプロセッサ台数や、実行する計算機等、様
々な条件によって、行列の最適な分割ブロックサイズは
大きく変わってくる。このため、この従来技術は、ユー
ザーが、行列の分割ブロックサイズを調整することが非
常に困難であるという問題点があった。
散計算環境での複数コンポーネントソフトウェアの実行
技術は、複数コンポーネントソフトウェアを稼動させる
場合、どのコンポーネントをどの計算機に行わせるかの
指定を行わなければならない。このため、この従来技術
は、それらの情報を利用インターフェイスに追加する
等、利用者が実行前にこれらの情報を指定をしなければ
ならなかった。
ある分散計算環境での複数コンポーネントソフトウェア
の実行技術は、複数コンポーネントソフトウェアを稼動
させる場合、どのコンポーネントをどの計算機に行わせ
れば短い実行時間でできるかが不明であった。たとえあ
る特定の場合に実行時間が最短になるような各コンポー
ネントを各計算機に実行させる組みがわかったとして
も、各コンポーネントの稼動させる条件が異なると、長
い実行時間となる場合があった。
グラムと2台のワークステーションとによる並列計算環
境を説明する図であり、以下、図11を参照して、前述
の課題4について説明する。
がP−1というコンポーネント1101と、P−2とい
うコンポーネント1102とを有し、そのソフトウェア
を実行する計算環境が、WS−1(ワークステーション
1)1103とWS−2(ワークステーション2)11
04とがネットワーク1105で結合されて構成されて
いるものとする。この場合、P−1、P−2をそれぞれ
WS−1、WS−2のどちらで実行させるかは、P−
1、P−2のそれぞれの実行上のパラメータをどう定め
るか、また、WS−1、WS−2の計算機の性質等によ
って変わる。しかし、前述の従来技術は、このような場
合に、各コンポーネントを各計算機に実行させる組みを
定める方法が確立されていないものであった。
術の課題を解決し、並列計算環境において、並列ソフト
ウェアや複数コンポーネントソフトウェアをできる限り
短い時間で実行させることのできる性能調整インストー
ル機能付きの並列ソフトウェアの構成方法を提供するこ
とにある。具体的には、以下の4つの目的がある。
のため、従来技術の1つである並列計算機で実行させる
並列ソフトウェアのデータ分割技術におけるデータ分割
を、処理を行わせる並列計算機に合わせて自動的に定め
ることのできる並列ソフトウェアの構成方法を提供する
ことにある。
のため、従来技術の1つである並列計算機の利用者が、
並列計算機で実行させる並列ソフトウェアのデータ分割
を、並列計算機毎に調整したり、利用インターフェイス
に追加しなくてもよい並列ソフトウェアの構成方法を提
供することにある。
のため、従来技術の1つである分散計算環境での複数コ
ンポーネントソフトウェアの実行技術において、どのコ
ンポーネントをどの計算機で実行させるかを、処理を行
わせる分散計算環境に合わせて自動的に定めることので
きる並列ソフトウェアの構成方法を提供することにあ
る。
のため、従来技術の1つである分散計算環境での複数コ
ンポーネントソフトウェアの実行技術において、利用者
が、どのコンポーネントをどの計算機で実行させるかを
分散計算環境毎に調整したり、利用インターフェイス等
に追加しなくてもよい並列ソフトウェアの構成方法を提
供することにある。
は、以下に説明する3つの手段を備えることにより達成
される。
を抽出し、さらにそのパラメータ群を、ユーザーインタ
ーフェイスに現れるものと、そうでないものに分類する
ことである。この性能を大きく左右するパラメータをク
リティカルパラメータ(Critical Parameter、以下、
CPという)と呼ぶことにし、また、ユーザーインター
フェイスに現れて性能を大きく左右するパラメータをユ
ーザークリティカルパラメータ(Users' Critical P
arameter、以下、UCPという)と呼ぶことにし、さら
に、ユーザーインターフェイスに現れないが性能を大き
く左右するパラメータを内部クリティカルパラメータ
(Inertial Critical Parameter、以下、ICPとい
う)と呼ぶことにする。
ICPとを用いた性能予測モデルの構成である。ソフト
ウェアの性能(実行時間)は、実行させるべき計算環境
が定まれば、前述のクリティカルパラメータCPの関数
fとして定まる。特に、ソフトウェアの性能としての実
行時間は、CPをUCPとICPとに分けて書くと、
UCPとICPとの多項式で、
2の式において、「*」は乗算を意味し、また、UC
P、ICP以外は係数である。この場合、最小2乗法と
呼ばれる統計処理手法(FORTRAN77 時系列解析プログラ
ミング、北川源四郎著、岩波コンピュータサイエンス)
により、適当な個数のUCP、ICPとそれに対応する
実行結果から、実行させる計算環境に特有の数2の式に
おける係数を定めるができる。これを、実行させたいソ
フトウェアのインストールの際に行う。
の、ICPの最適なパラメータ選択を行うことの定式化
である。できる限り実行時間を短くするためには、与え
られたUCPの制限の下で関数fの値を最小にするよう
なICPの値を定める問題になる。数2に示す式の例の
場合、計算環境下で特有の係数が定まった性能(実行時
間)の予測関数に対し、実行させたいICPの制限の下
で、関数の値を最小にするようなICPを求めて実行さ
せる。
題1〜課題4を解決することができることを説明する。
ウェアのデータ分割技術の場合、行列データの分割サイ
ズ等を、ICPとし、それを自動的に定める方法にする
ことにより、利用者は、分割サイズを書く必要がなくな
り、本来ソフトウェアを実行させるのに必要なパラメー
タのみをインターフェイスに記述すればよくなる。これ
により、前述の課題1を解決することができる。
計算機が決定されれば、ICPとUCPとが組み込まれ
た性能予測方法によって、ICPとUCPとに対応する
並列ソフトウェアの実行時間が判る。この性能予測方法
による定式化によって、逆に、実行時間をできるだけ短
くするように、利用者が与えるUCPの制限の下でIC
Pを定めるという、いわゆる逆問題を定式化することが
できる。このように、ICPを定める処理を実行前に自
動的に行うことにより、並列ソフトウェアをできる限り
短い時間で実行させることができる。これにより、前述
の課題2を解決することができる。
トソフトウェアの実行技術の場合、どのコンポーネント
をどの計算機に実行させるかという情報をICPとし、
それを自動的に定める方法とすることにより、利用者
は、どのコンポーネントをどの計算機に実行させるかと
いう情報を書く必要がなくなり、本来ソフトウェアを実
行させるのに必要なパラメータのみをインターフェイス
に記述すればよくなる。これにより、これにより、前述
の課題3を解決することができる。
が決定されれば、ICPとUCPとが組み込まれた性能
予測方法によって、ICPとUCPとに対応する複数コ
ンポーネントソフトウェアの実行時間が判る。この性能
予測方法による定式化によって、逆に、実行時間をでき
るだけ短くするように、利用者が与えるUCPの制限の
下でICPを定めるという、いわゆる逆問題が定式化す
ることができる。このように、ICPを定める処理を実
行前に自動的に行うことにより、複数コンポーネントソ
フトウェアをできる限り短い時間で実行させることがで
きる。これにより、前述の課題4を解決することができ
る。
ェアの構成方法の実施形態を図面により詳細に説明す
る。
ソフトウェアの構成方法を説明するフローチャート、図
2は未定係数を決定するためのUCP、ICPの数値例
を示す図である。
ア構成方法は、ソフトウェアのインストール方法及び実
行も含んでおり、図1に示すように、実行時間予測モデ
ル付きの並列ソフトウェアの作成の処理(ステップ10
1)と、並列計算機への並列ソフトウェアのインストー
ルの処理(ステップ102)と、ユーザーが並列ソフト
ウェアを実行する処理(ステップ103)とから成る。
デル付きの並列ソフトウェアの作成の処理について説明
する。ステップ101の処理において、並列ソフトウェ
アの作成の処理(ステップ104)により、並列ソフト
ウエアの本体を作成し、この並列ソフトウェアの中から
並列ソフトウェアの性能を大きく左右するクリティカル
パラメータ(簡単のためCP)を抽出する処理(ステッ
プ105)を行う。このクリティカルパラメータCP
は、プログラム中に現れる全ての変数の中で、その値が
変わると、ソフトウェア実行時間が大きく変わるものの
全てとする。
ータ(簡単のためUCP)と内部クリティカルパラメー
タ(簡単のためICP)に分類する処理(ステップ10
6)行う。次に、UCPとICPとを変数として未定係
数を持つ並列ソフトウェアの実行時間予測モデル作成の
処理(ブロック107)を行う。この実行時間予測モデ
ルの作成は、前述した数1、具体的には数2に示す式を
作ることである。さらに、統計処理(最小2乗法)に必
要な、未定係数を決定できるUCPとICPとの数値例
の表を作成する処理(ステップ108)を行う。
図2に示すように、並列ソフトウェアの実行が可能な各
UCP201とICP202との組を項目とし、それぞ
れの組に対する実行時間203が記入できるようなもの
である。例えば、行列計算の場合、図2に示す表のUC
P201に例示する値は、行列全体のサイズであり、I
CP202に例示する値は分割ブロックサイズである。
並列ソフトウェアのインストールの処理について説明す
る。ステップ102の処理において、図2に例示したよ
うな数値例のICP、UCPの値によって並列ソフトウ
ェアの実行時間を計測する処理、すなわち、試験実行
(ステップ109)を行い、実行時間の実測結果を図2
の実行時間203に記入する。次に、統計処理(最小2
乗法)によって性能予測モデルの未定係数を決定する処
理(ステップ110)を行い、UCPの値が全て定まれ
ば性能予測のモデルから、最も実行時間が短くなるよう
なICPの値を直ちに求められるようにしておく。
ソフトウェアを実行する処理について説明する。ステッ
プ103の処理において、ユーザーが実行するユーザー
が指定するUCPについて、実行時間が最も短くなるI
CPを性能予測モデルから決定する処理(ステップ11
1)を行い、ユーザーの定義したUCPに対応する最適
なICPによって、並列ソフトウェアを実行(ステップ
112)する。
をフィードバックして性能予測のモデルに利用する本発
明の第2の実施形態による並列ソフトウェアの構成方法
を説明するフローチャートであり、以下、図3を参照し
て、本発明の第2の実施形態を説明する。
明の第1の実施形態におけるユーザーが並列ソフトウェ
アを実行する図1のステップ103において、実際に実
行した時間の測定結果を性能予測のモデルに利用する表
に追加していく方法である。
し(ステップ301)、ユーザーが実行するUCPか
ら、インストール時に作成された最も実行時間が短くな
るICPを定める図2に示すような表を参照し、最適な
ICPを決定する(ステップ302)。次に、ユーザー
の定義したUCPと最適なICPによって、並列ソフト
ウェアを実行する(ステップ303)。ステップ303
による実際の実行時間を計測し、UCPとICPとの組
みに対する図2に示すような実行時間測定表にデータを
追加する(ステップ304)。以上によりユーザーの並
列ソフトウェアの実行を終了する(ステップ305)。
行列ライブラリの構成方法を説明するフローチャート、
図8、図9は並列行列ライブラリの構成の処理で作成す
るUCP、ICP、実行時間の表(その1、その2)を
説明する図である。
イブラリの構成方法は、並列行列ライブラリのインスト
ール方法及び実行も含んでおり、図4に示すように、実
行時間予測モデル付きの並列行列ライブラリの作成の処
理(ステップ401)と、並列計算機への並列行列ライ
ブラリのインストールの処理(ステップ402)と、ユ
ーザーが並列行列ライブラリを実行する処理(ステップ
403)から成る。
デル付きの並列行列ライブラリの作成の処理について説
明する。ステップ401の処理において、並列行列ライ
ブラリの作成の処理(ステップ404)により、並列計
算機向けの行列ライブラリのプログラム本体を作成す
る。次に、そのプログラムの中に現れる、性能を左右す
るパラメータを抽出する。すなわち、行列の次元数N、
プロセッサ数NPU、行列データの分割ブロックサイズ
LBをクリティカルパラメータCPとして抽出する(ス
テップ405)。次に、前述のCPのうち、行列次元数
Nとプロセッサ数NPUとをUCP、行列データの分割
ブロックサイズLBをICPとして分類する(ステップ
406)。次に、並列行列ライブラリの実行時間予測モ
デルを作成する(ステップ407)。この実行時間予測
モデルは、例えば、数3の式によって表わすことができ
る。数3において、Nは行列サイズ、NPUはプロセッサ
数、LBは分割ブロックサイズである。これらは他の式の
場合も同一である。
な実行時間予測モデルであり、プロセッサの演算時間の
項 a*(N*N*N/NPU)*(1+0.01*LB)と、プロセッサ間の通信
時間の項 b*(N*N/NPU)と、プロセッサ間の通信時間の起
動の項 c*(N*N/(LB*LB))*NPUとにより構成される。プロ
セッサの演算時間の項 a*(N*N*N/NPU)*(1+0.01*LB)は、
全体計算時間の一部が行列分割のための処理にかかるの
で、行列の分割ブロックサイズLB分の項がある。プロ
セッサ間の通信時間の項 b*(N*N/NPU)は、各プロセッサ
のデータ量がLBに関係なく一定であるのでLBがない
式となる。また、プロセッサ間の通信時間の起動の項 c
*(N*N/(LB*LB))*NPUは、通信の起動が各プロセッサが持
っている最小の行列ブロックの数なので、(N*N/(LB*L
B))に比例し、それを他のプロセッサに送るので NPU倍
されたものとする。
のN、NPU、LBの数値例の表を作成する(ステップ
408)。この数値の表は、図8、図9に示すように、
ユーザークリティカルパラメータUCPである行列デー
タサイズN、プロセッサ数NPU、内部クリティカルパ
ラメータICPである行列データ分割ブロックサイズL
B、実行時間の項から構成されている。但し、この時点
では、実行時間は記述されていないが、ユーザークリテ
ィカルパラメータUCPである行列データサイズN、プ
ロセッサ数NPU、内部クリティカルパラメータICP
である行列データ分割ブロックサイズLBについては、
数3の式における係数を定めるために適当な数値を用意
しておく。
時間予測モデル付きの並列行列ライブラリの作成の処理
内容である。
並列行列ライブラリのインストールの処理について説明
する。ステップ402の処理において、まず、図8、図
9に示すようなICP(N、NPU)、UCP(LB)
の数値例の表の値を代入して並列行列ライブラリを実行
し、その実行時間を計測する。そして、図8、図9に示
す表に計測した実行時間を記入する(ステップ40
9)。次に、統計処理によって性能予測モデルの未定係
数を決定する。この処理は、図8、図9に示す表の実行
時間、行列データサイズ、プロセッサ数、行列データ分
割ブロックサイズのそれぞれの値を数3の式の time(se
c)、N、NPU、LBに代入し、数3の式の未定係数a、b、
cの値を定める処理である。実際に図8と図9とに示す
表にある値から、最小2乗法という統計処理の手法によ
り未定係数を求めると、およその値として、aが10
~9、bが10~8、cが10~7となる(ステップ41
0)。
計算機への並列行列ライブラリのインストールの処理内
容である。
列行列ライブラリを実行する処理について説明する。ス
テップ403の処理において、まず、ユーザーが実行す
るUCP(N,NPU)から、インストール時に作成され
た最も実行時間が短くなるICP(LB)を、未定係数が
決定されたモデルから決定する。すなわち、この処理に
より、数3の式で定まった係数a、b、cの値によって
実行時間を具体的に求める式が定まり、また、ユーザー
が実行するUCPを代入すれば実行時間が短くなるよう
にLBの値を定めることができる。図8、図9に示す表
にある値から定まった係数a、b、cにより、例えば、
数3の式が(10-9)*(N*N*N/NPU)*(1+0.01*LB)+(10-8)*(N
*N/NPU)+(10-7)*(N*N/(LB*LB))*NPUとなる。この数3の
式から、例えば、N=1000、NPU=16としたとき、LBは、
図5、図6に示すように、2方向格子のような分割にす
る必要があるので、250の約数になり、LB=1では実行時
間が1.600、LB=2では実行時間が0.400、LB=5では実行時
間が0.065、LB=10では実行時間が0.017、LB=25では実行
時間が0.005、LB=50では実行時間が0.004、LB=125では
実行時間が0.008、LB=250では実行時間が0.016となり、
LB=50が最も短い実行時間になると判り、ユーザーは、L
Bとして50を採用して並列行列ライブラリを実行させれ
ばよいことが判る(ステップ411)。ステップ411
の処理で最適なLBが定まったので、ユーザーの指定し
たUCP(N,NPU)と、最適なICP(LB)とによっ
て、並列行列ライブラリを実行する(ステップ41
2)。
ザーが並列行列ライブラリを実行する処理内容である。
数コンポーネントソフトウェアの構成方法を説明するフ
ローチャート、図11はすでに説明しているが複数コン
ポーネントからなるプログラムと2台のワークステーシ
ョンとによる並列計算環境を説明する図、図12は2つ
のコンポーネントを両方ともワークステーション1に実
行させる場合の並列計算環境を説明する図、図13、図
14は2つのコンポーネントのうち一方をワークステー
ション1にもう一方をワークステーション2に実行させ
る場合の並列計算環境を説明する図、図15は複数コン
ポーネントソフトウェアのUCP、ICP、実行時間の
対応例を説明する図である。
ントソフトウェア構成方法は、ソフトウェアのインスト
ール方法及び実行も含んでおり、図10に示すように、
実行時間予測モデル付きの複数コンポーネントソフトウ
ェアの作成の処理(ステップ1001)と、並列計算環
境への複数コンポーネントソフトウェアのインストール
の処理(ステップ1002)と、ユーザーが複数コンポ
ーネントソフトウェアを実行する処理(ステップ100
3)とから成る。
モデル付きの複数コンポーネントソフトウェアの作成の
処理について説明する。ステップ1001の処理におい
て、まず、複数コンポーネントソフトウェアを作成す
る。この処理は、ソフトウェアのプログラムの本体を作
成する処理である(ステップ1004)。次に、ステッ
プ1004で作成したソフトウェアを構成する各コンポ
ーネントにP−1、P−2等の番号を付ける。このコン
ポーネントは、1つの計算機で実行するプログラムの範
囲で区切られるプログラムの各部分であるとする。例え
ば、ある計算機で実行させる部分をP−1とし、別の計
算機で実行させる部分をP−2とする等である(ステッ
プ1005)。次に、ソフトウェアからクリティカルパ
ラメータCPを抽出し、ユーザークリティカルパラメー
タをUCP−1、UCP−2等とする(ステップ100
6)。また、内部クリティカルパラメータとして、各コ
ンポーネントを実行させる計算機を定めるパラメータを
ICPとして抽出する(ステップ1007)。
明する。例えば、図11に示すように、複数コンポーネ
ントソフトウェアがP−1とP−2という2つのコンポ
ーネント部分1101、1102から構成されていて、
そのソフトウェアを実行する計算環境がワークステーシ
ョンWS−1とWS−2とがネットワーク1105で結
合されて構成されているものとする。そして、例えば、
ICPの値が(1,1)であれば、図12に示すよう
に、コンポーネント部分P−1をワークステーションW
S−1で実行させ、コンポーネント部分P−2もワーク
ステーションWS−1により実行させるとし、ICPの
値が(2,1)であれば、図13に示すように、コンポ
ーネント部分P−1をワークステーションWS−2によ
り実行させ、コンポーネント部分P−2をワークステー
ションWS−1により実行させるとし、さらに、ICP
の値が(1,2)であれば、図14に示すように、コン
ポーネント部分P−1をワークステーションWS−1に
より実行させ、コンポーネント部分P−2をワークステ
ーションWS−2で実行させるとする。このICPは複
数コンポーネントソフトウェアに必須の特徴的なパラメ
ータである。
実行時間予測モデルの作成を行う。このモデルは、各コ
ンポーネントの計算回数を各UCPの関数としてカウン
トし、そのコンポーネントを実行する計算機の計算性能
で割って計算実行時間を予測するものである(ステップ
1008)。
COUNT(P−1)が、
1、UCP−2の関数で書かれ、コンポーネントP−2
の計算回数COUNT(P−2)が、
の関数で書かれているものとする。
time(ICP=(1,1))は、コンポーネントP
−1の計算回数を、コンポーネントP−1をワークステ
ーションWS−1で実行する計算性能で割った値と、コ
ンポーネントP−2の計算回数を、コンポーネントP−
2をワークステーションWS−1で実行する計算性能で
割った値との和となるので、
る。この数4の式において、SPEED(P−1、WS−1)
は、P−1をWS−1で実行した場合のWS−1の計算
性能、SPEED(P−2、WS−1)は、P−2をWS−1
で実行した場合のWS−1の計算性能である。
時間time(ICP=(1,2))は、コンポーネン
トP−1の計算回数を、コンポーネントP−1をワーク
ステーションWS−1で実行する計算性能で割った値
と、コンポーネントP−2の計算回数を、コンポーネン
トP−2をワークステーションWS−2で実行する計算
性能で割った値との和となるので、
る。この数5の式において、SPEED(P−2、WS−2)
は、P−2をWS−2で実行した場合のWS−2の計算
性能である。
時間time(ICP=(2,1))は、コンポーネン
トP−1の計算回数を、コンポーネントP−1をワーク
ステーションWS−2で実行する計算性能で割った値
と、コンポーネントP−2の計算回数を、コンポーネン
トP−2をワークステーションWS−1で実行する計算
性能で割った値との和となるので、
る。この数6の式において、SPEED(P−1、WS−2)
は、P−1をWS−2で実行した場合のWS−2の計算
性能である。
行時間予測モデル付きの複数コンポーネントソフトウェ
アを作成する処理内容である。
への複数コンポーネントソフトウェアのインストールの
処理について説明する。ステップ1002の処理におい
て、まず、並列計算環境における各計算機上での各コン
ポーネントの性能を測定し、実行時間予測モデルに組み
込む(ステップ1009)。
テーションWS−1がコンポーネントP−1を実行する
場合の計算性能が、
ョンWS−2がコンポーネントP−1を実行する場合の
計算性能が、
ションWS−1がコンポーネントP−2を実行する場合
の計算性能が、
ションWS−2がコンポーネントP−2を実行する場合
の計算性能が、
これらを前述した数4、数5、数6の各式に代入する処
理であり、これにより、各ICP毎にUCPを代入すれ
ばすぐに実行時間が予測できるようにしておくことがで
きる。
測モデルは、次のような、数13、数14、数15の各
式に示すようなものとなる。
算性能SPEEDの値として示されている数値の単位
は、例えば、M Flops/Secである。
計算機の資源の制約上問題がないか否かをチェックす
る。この処理は、例えば、コンポーネントP−1とP−
2との両方をワークステーションWS−2に実行させる
ことが不可能となるような場合に、このような組合せに
よる実行時間の予測モデルから外すというような処理で
ある(ステップ1010)。
において使用するメモリ量が100メガバイトであり、
ワークステーションP−2において使用するメモリ量が
200メガバイトであり、ワークステーションWS−1
に搭載してあるメモリ量が400メガバイトであり、ワ
ークステーションWS−2に搭載してあるメモリ量が2
50メガバイトであるとする。このとき、コンポーネン
トP−1とP−2との両方をワークステーションWS−
2に実行させる場合の実行時間の予測だけは行えるが、
実際にコンポーネントP−1とP−2とのメモリ量の合
計が同時に必要な場合、コンポーネントP−1とP−2
との両方をワークステーションWS−2に実行させるこ
とは不可能になる。このような場合に、実行時間の予測
モデルから外す処理を行う。
数並列計算環境への複数コンポーネントソフトウェアの
インストールの処理内容である。
数コンポーネントソフトウェアを実行する処理について
説明する。ステップ1003の処理において、まず、ユ
ーザーが実行するUCPから、インストール時に作成さ
れたモデルによりICPを決定する(ステップ101
1)。
コンポーネントソフトウェアのUCP、ICP、実行時
間の対応が図15に示す例のようなものであるとする。
なお、図15におけるUCP−1、1、UCP−2の欄
に示される数値は、計算回数を決めるパラメータであ
り、図示数値の106 倍程度の値であり、実行時間time
の欄の数値は、Secである。いま、ユーザーが、UCP
−1を1、UCP−2を1とすると、図15に示すよう
に、ICPが(1、2)の場合、実行時間が80、IC
Pが(2、1)の場合、実行時間が64となる。ICP
が(1、1)の場合は、数13、数14、数15の各式
の相互比較により、どんなUCP−1、UCP−2で
も、ICPが(1、2)、(2、1)の場合の実行時間
よりも長くなることが判る。この結果、ICPが(2、
1)、すなわち、コンポーネントP−1をワークステー
ションWS−2で実行させ、コンポーネントP−2をワ
ークステーションWS−1で実行させるのがよいことが
判る。
P−2を5とすると、図15に示すように、ICPが
(1、2)の場合、実行時間が200、ICPが(2、
1)の場合、実行時間が240となり、ICPが(1、
2)、すなわち、コンポーネントP−1をワークステー
ションWS−1で実行させ、コンポーネントP−2をワ
ークステーションWS−2で実行させるのがよいことが
判る。また、ユーザーが、UCP−1を2、UCP−2
を1とすると、ICPが(1、2)の場合、実行時間が
130、ICPが(2、1)の場合、実行時間が84と
なり、ICPが(2、1)、すなわち、コンポーネント
P−1をワークステーションWS−2で実行させ、コン
ポーネントP−2をワークステーションWS−1で実行
させるのがよいことが判る。
CPに従い、各コンポーネントを並列計算環境の各計算
機に割り振り、複数コンポーネントソフトウェアを実行
する(ステップ1012)。
数コンポーネントソフトウェアを実行する処理内容であ
る。
に説明するような効果を得ることができる。
て、プロセッサ台数の多少、プロセッサ性能の高低等の
性能を大きく左右するパラメータを抽出し、そのうちユ
ーザーインターフェイスに現れるものをUCP、ユーザ
ーインターフェイスに現れないものをICPとして、U
CPとICPとから成る性能予測モデルを構成し、その
性能予測モデルを用いて、任意の実行環境下で任意のU
CPに応じたICPを定めるようにしており、これによ
り、最適な実行時間で並列ソフトウェアを稼動させるこ
とができる。
場合、本来、ユーザーが行わなければならなかった行列
の分割ブロックサイズ等の調整を行う必要がなくなり、
ユーザは、最短の実行時間にするための調整を行う必要
がなくなる。また、ブロックサイズをインターフェイス
に書く必要がなくなり、簡潔なインターフェイスにな
る。
において、計算機の台数、性能の高低等、プロセッサ台
数の多少、プロセッサ性能の高低等の性能を大きく左右
するパラメータを抽出し、そのうちユーザーインターフ
ェイスに現れるものをUCP、ユーザーインターフェイ
スに現れないもの(どのコンポーネントをどの計算機に
実行させるか)をICPとして、UCPとICPとから
成る性能予測モデルを構成し、その性能予測モデルを用
いて、任意の実行環境下で任意のUCPに応じたICP
を定めるようにしており、これにより、最適な実行時間
で複数コンポーネントソフトウェアを稼動させることが
できる。
をどの計算機に実行させるかの組み合わせについての複
雑な調整を行うことなく、最適な実行時間で複数コンポ
ーネントソフトウェアを実行させることができる。ま
た、どのコンポーネントをどの計算機に実行させるか
を、利用者が複数コンポーネントソフトウェアの実行毎
に指定する必要がなくなり、簡潔な利用法とすることが
できる。
列計算機で実行させる並列ソフトウェアのデータ分割
を、処理を行わせる並列計算機に合わせて自動的に定め
ることができ、また、並列計算機の利用者が、並列計算
機で実行させる並列ソフトウェアのデータ分割を、並列
計算機毎に調整したり、利用インターフェイスに追加す
る必要をなくすことができる。
複数コンポーネントソフトウェアの実行において、どの
コンポーネントをどの計算機で実行させるかを、処理を
行わせる分散計算環境に合わせて自動的に定めることが
でき、また、利用者が、どのコンポーネントをどの計算
機で実行させるかを分散計算環境毎に調整したり、利用
インターフェイス等に追加する必要をなくすことができ
る。
アの構成方法を説明するフローチャートである。
値例を示す図である。
バックして性能予測のモデルに利用する本発明の第2の
実施形態による並列ソフトウェアの構成方法を説明する
フローチャートである。
ラリの構成方法を説明するフローチャートである。
セッサに縦横320の正方行列を分割実行させる例につ
いて説明する図である。
セッサに縦横320の正方行列を分割実行させる例につ
いて説明する図である。
を実行させる場合のプログラム例を示す図である。
CP、ICP、実行時間の表(その1)を説明する図で
ある。
CP、ICP、実行時間の表(その2)を説明する図で
ある。
ネントソフトウェアの構成方法を説明するフローチャー
トである。
らなるプログラムと2台のワークステーションとによる
並列計算環境を説明する図である。
ーション1に実行させる場合の並列計算環境を説明する
図である。
テーション1にもう一方をワークステーション2に実行
させる場合の並列計算環境を説明する図である。
テーション1にもう一方をワークステーション2に実行
させる場合の並列計算環境を説明する図である。
ICP、実行時間の対応例を説明する図である。
Claims (8)
- 【請求項1】 並列計算機に実行させるソフトウェアの
構成方法において、前記ソフトウェアの実行性能を大き
く左右し、かつ、ユーザーインターフェイスには現れな
いパラメータを調節してインストールを行う機能を有す
ることを特徴とするソフトウェアの構成方法。 - 【請求項2】 分散計算環境で実行させるソフトウェア
の構成方法において、前記ソフトウェアの実行性能を大
きく左右し、かつ、ユーザーインターフェイスには現れ
ないパラメータを調節してインストールを行う機能を有
する複数のコンポーネントプログラムからなることを特
徴とするソフトウェアの構成方法。 - 【請求項3】 並列計算機に実行させるソフトウェアの
構成方法において、前記ソフトウェアの実行性能を大き
く左右し、かつ、ユーザーインターフェイスには現れな
いパラメータを、性能予測方法に基づいて、ユーザーイ
ンターフェイスに現れるパラメータに応じて自動的に調
節してインストールを行う機能を有することを特徴とす
るソフトウェアの構成方法。 - 【請求項4】 分散計算環境で実行させるソフトウェア
の構成方法において、前記ソフトウェアの実行性能を大
きく左右し、かつ、ユーザーインターフェイスには現れ
ないパラメータを、性能予測方法に基づいて、ユーザー
インターフェイスに現れるパラメータに応じて自動的に
調節してインストールを行う機能を有する複数のコンポ
ーネントプログラムからなることを特徴とするソフトウ
ェアの構成方法。 - 【請求項5】 並列計算機に実行させるソフトウェアの
構成方法において、前記ソフトウェアの実行性能を大き
く左右し、かつ、ユーザーインターフェイスには本来必
要のない行列を分割するサイズを表わすパラメータを、
性能予測方法に基づいて、ユーザーインターフェイスに
現れるパラメータに応じて自動的に調節してインストー
ルを行う機能を有することを特徴とする並列行列計算用
のソフトウェアの構成方法。 - 【請求項6】 分散計算環境で実行させるソフトウェア
の構成方法において、前記ソフトウェアの実行性能を大
きく左右し、かつ、ユーザーインターフェイスには本来
必要のないどのコンポーネントをどの計算機で実行させ
るかを表わすパラメータを、性能予測方法に基づいて、
ユーザーインターフェイスに現れるパラメータに応じて
自動的に調節してインストールを行う機能を有する複数
のコンポーネントプログラムからなることを特徴とする
ソフトウェアの構成方法。 - 【請求項7】 並列計算機に実行させるソフトウェアの
構成方法において、前記ソフトウェアの実行性能を大き
く左右し、かつ、ユーザーインターフェイスには現れな
いパラメータを、性能予測方法に基づいて、また、過去
の性能実績に基づいて、ユーザーインターフェイスに現
れるパラメータに応じて自動的に調節してインストール
を行う機能を有することを特徴とするソフトウェアの構
成方法。 - 【請求項8】 分散計算環境で実行させるソフトウェア
の構成方法において、前記ソフトウェアの実行性能を大
きく左右し、かつ、ユーザーインターフェイスには現れ
ないパラメータを、性能予測方法に基づいて、また、過
去の性能実績に基づいて、ユーザーインターフェイスに
現れるパラメータに応じて自動的に調節してインストー
ルを行う機能を有する複数のコンポーネントプログラム
からなることを特徴とするソフトウェアの構成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11083962A JP2000276454A (ja) | 1999-03-26 | 1999-03-26 | ソフトウェアの構成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11083962A JP2000276454A (ja) | 1999-03-26 | 1999-03-26 | ソフトウェアの構成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000276454A true JP2000276454A (ja) | 2000-10-06 |
Family
ID=13817195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11083962A Pending JP2000276454A (ja) | 1999-03-26 | 1999-03-26 | ソフトウェアの構成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000276454A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004295738A (ja) * | 2003-03-28 | 2004-10-21 | Nec Corp | 耐障害計算機システム、プログラム並列実行方法およびプログラム |
JP2004355144A (ja) * | 2003-03-28 | 2004-12-16 | Japan Science & Technology Agency | 計算装置、計算方法、プログラムおよび記録媒体 |
US7634386B2 (en) | 2004-07-21 | 2009-12-15 | Hitachi, Ltd. | Method and apparatus for setting up runtime conditions |
US7870439B2 (en) | 2003-05-28 | 2011-01-11 | Nec Corporation | Fault tolerant multi-node computing system using periodically fetched configuration status data to detect an abnormal node |
WO2013102813A1 (en) * | 2012-01-03 | 2013-07-11 | International Business Machines Corporation | Software installation |
-
1999
- 1999-03-26 JP JP11083962A patent/JP2000276454A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004295738A (ja) * | 2003-03-28 | 2004-10-21 | Nec Corp | 耐障害計算機システム、プログラム並列実行方法およびプログラム |
JP2004355144A (ja) * | 2003-03-28 | 2004-12-16 | Japan Science & Technology Agency | 計算装置、計算方法、プログラムおよび記録媒体 |
JP4565201B2 (ja) * | 2003-03-28 | 2010-10-20 | 独立行政法人科学技術振興機構 | 計算装置、計算方法、プログラムおよび記録媒体 |
US7870439B2 (en) | 2003-05-28 | 2011-01-11 | Nec Corporation | Fault tolerant multi-node computing system using periodically fetched configuration status data to detect an abnormal node |
US7634386B2 (en) | 2004-07-21 | 2009-12-15 | Hitachi, Ltd. | Method and apparatus for setting up runtime conditions |
WO2013102813A1 (en) * | 2012-01-03 | 2013-07-11 | International Business Machines Corporation | Software installation |
US8661431B2 (en) | 2012-01-03 | 2014-02-25 | International Business Machines Corporation | Accurately estimating install time |
US9170799B2 (en) | 2012-01-03 | 2015-10-27 | International Business Machines Corporation | Accurately estimating install time |
CN104025048B (zh) * | 2012-01-03 | 2017-01-11 | 国际商业机器公司 | 用于估计软件产品在操作环境中的安装时间的方法和系统 |
US9996332B2 (en) | 2012-01-03 | 2018-06-12 | International Business Machines Corporation | Accurately estimating install time |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7844928B2 (en) | Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information | |
Marjanović et al. | Performance modeling of the HPCG benchmark | |
JP2017130036A (ja) | 情報処理装置、演算方法、および演算プログラム | |
CN107533473B (zh) | 用于仿真的高效波形生成 | |
US10140399B2 (en) | Corner database generator | |
US9779192B2 (en) | Multi-rate parallel circuit simulation | |
US10127339B2 (en) | Efficient emulation of circuits | |
Clarke et al. | FuPerMod: a software tool for the optimization of data-parallel applications on heterogeneous platforms | |
Vanegas et al. | Multi-port abstraction layer for FPGA intensive memory exploitation applications | |
JP2000276454A (ja) | ソフトウェアの構成方法 | |
Khan et al. | Accelerating SpMV multiplication in probabilistic model checkers using GPUs | |
JP2002108958A (ja) | 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体 | |
Sharapov et al. | A case study in top-down performance estimation for a large-scale parallel application | |
CN105095545B (zh) | 电路仿真中基于工作区域的器件缓冲 | |
US20230056423A1 (en) | Processor core simulator including trace-based coherent cache driven memory traffic generator | |
JP2023180315A (ja) | 変換プログラムおよび変換処理方法 | |
Schneider et al. | Multi-level timing simulation on GPUs | |
Bytyn et al. | Dataflow aware mapping of convolutional neural networks onto many-core platforms with network-on-chip interconnect | |
Anuradha et al. | Efficient workload characterization technique for heterogeneous processors | |
Sato et al. | ArchHDL: A new hardware description language for high-speed architectural evaluation | |
JP2001188810A (ja) | 入力パラメータ設定支援方法 | |
Johnson et al. | Waveform-relaxation-based circuit simulation on the Victor V256 parallel processor | |
JP2005038430A (ja) | 回路パラメータの異なる組合せにおける制約パラメータの測定 | |
Kumar et al. | Relaxation based circuit simulation acceleration over CPU-FPGA | |
CN116227400A (zh) | 用于瞬态行为分析的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040330 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070612 |