Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis...

22
Lis1.1.1 for Windows 利用ガイド Copyright (C) 2002-2007 The Scalable Software Infrastructure Project, supported by ``Development of Software Infrastructure for Large Scale Scientific Simulation'' Team, CREST, JST. http://www.ssisc.org/ 初版 2007 12 7

Transcript of Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis...

Page 1: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

Lis1.1.1 for Windows 利用ガイド

Copyright (C) 2002-2007 The Scalable Software Infrastructure Project, supported by ``Development of Software Infrastructure for Large Scale

Scientific Simulation'' Team, CREST, JST. http://www.ssisc.org/

初版 2007 年 12 月 7 日

Page 2: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

2

Microsoft の統合開発環境である Visual Studio 上で Lis を利用するための設定手順と、 Lis の機能を手軽にテストするための Windows 用ソフトウェア Lis-test for Windows の利

用法について述べる。Lis そのものの利用方法は Lis1.1.1 ユーザーズマニュアルを参照。

1.インストール 1.1.必要なシステム ライブラリはコンパイル済みなので実行には以下の 3 つの環境のいずれかが必要である。

Intel C/C++ Compiler 9.0 + Intel FORTRAN Compiler 8.1 Microsoft Visual C++ 2003 Microsoft Visual C++ 2005

Visual C++ 2005 Express を利用する場合は Microsoft Platform SDK がインストールされ

ている必要がある。Lis の全機能を利用したい場合は Intel Compiler が必要である。 1.2.インストール方法 手順1 ファイルの解凍:「lis-1.1.1-win32.zip」を適当な解凍ツールで解凍する。 解凍すると以下のようにファイルが展開される。 lis-1.1.1-win32 +-include | +-lis.h #C 用のヘッダーファイル | +-lisf.h #FORTRAN 用のヘッダーファイル +-lib | +-vc2003 #Visual C++ 2003 用 lib ファイル | | +-lisseq.lib #逐次 | | +-lismpi.lib #MPI | +-vc2005 #Visual C++ 2005 用 lib ファイル | | +-lisseq.lib #逐次 | | +-lismpi.lib #MPI | +-ic9 #Intel Compiler 用 lib ファイル | +-lisseq.lib #逐次 | +-lisomp.lib #OpenMP | +-lismpi.lib #MPI | +-lisseqwf.lib #逐次+FORTRAN API+SA-AMG 前処理 | +-lisompwf.lib #OpenMP+FORTRAN API+SA-AMG 前処理 | +-lismpiwf.lib #MPI+FORTRAN API+SA-AMG 前処理

Page 3: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

3

+-lis-test | +-lis-test.exe | +-lis-testmain.exe | +-testmat.mtx +-sample.c 手順2 「lis-1.1.1-win32」のサブディレクトリとファイルを適当なディレクトリに

移動する。

手順3 使用する環境(Visual C++2003, Visual C++2005, Intel Compiler)用の

「lisxxx.lib」ファイルを「lib」ディレクトリにコピーする。 (すべての lib ファイルは SSE2 を用いた高速な 4 倍精度演算が利用できる ように作成されている)

Page 4: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

4

2.環境設定

環境設定 ~Microsoft Visual Studio 2003 編~ 手順1 メニューバー →「ツール(T)」→「オプション(O)…」をクリックすると オプションダイアログが表示される

手順2 左端のツリービューから「プロジェクト」→「VC++ ディレクトリ」を選択 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「インクルードファイル」を選択 下図の赤枠のように ”lis.h” が存在するディレクトリを入力

Page 5: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

5

手順3 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「ライブラリファイル」を選択 下図の赤枠のように ”lisseq.lib” が存在するディレクトリを入力 「OK」ボタンをクリック

Page 6: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

6

環境設定 ~Microsoft Visual Studio 2005 編~ 手順1 メニューバー →「ツール(T)」→「オプション(O)…」をクリックすると オプションダイアログが表示される

手順2 左端のツリービューから「プロジェクトおよびソリューション」→

「VC++ ディレクトリ」を選択 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「インクルードファイル」を選択 下図の赤枠のように ”lis.h” が存在するディレクトリを入力

Page 7: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

7

手順3 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「ライブラリファイル」を選択 下図の赤枠のように ”lisseq.lib” が存在するディレクトリを入力 「OK」ボタンをクリック

Page 8: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

8

3.プロジェクトの作成 プロジェクトの作成 ~Microsoft Visual Studio 2003 編~ 手順1 メニューバー →「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)…」を

クリック

手順2 「プロジェクトの種類(P)」のツリービューから「Win32」を選択 「テンプレート(T)」から「Win32 コンソールプロジェクト」を選択 「プロジェクト名(N)」と「場所(L)」を入力後、「OK」ボタンをクリック

Page 9: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

9

手順3 「コンソールアプリケーション(O)」を選択 「空のプロジェクト(E)」にチェックを入れた後、「完了」ボタンをクリック 右下図のような空のプロジェクトが作成される

手順4 「ソリューションエクスプローラー」の「ソースファイル」の場所で右クリック 「追加(D)」→「新しい項目の追加(W)…」をクリック

Page 10: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

10

手順5 「カテゴリ(C)」のツリービューから「Visual C++」→「コード」を選択 「テンプレート(T)」から「C++ファイル(cpp)」を選択 「 フ ァ イ ル 名 (N) 」 を 入 力 後 、「 開 く 」 ボ タ ン を ク リ ッ ク

手順6 「ソリューションエクスプローラー」の「SampleProject」の場所で右クリック 「プロパティ(R)」をクリック

Page 11: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

11

手順7 「構成(C)」のコンボボックスから「すべての構成」を選択 左端のツリービューから「リンカ」→「入力」を選択 追加の依存ファイルの項目に目的の lib ファイル名を入力

逐次の場合 lisseq.lib OpenMP の場合 lisomp.lib MPI の場合 lismpi.lib と MPI ライブラリ

「OK」ボタンをクリック

(Intel Compiler を利用する場合) 手順8 「ソリューションエクスプローラー」の「SampleProject」の場所で右クリック 「Convert to use Intel(R) C++ Project System」をクリック

Page 12: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

12

プロジェクトの作成 ~Microsoft Visual Studio 2005 編~ 手順1 メニューバー →「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)…」を

クリック

手順2 「プロジェクトの種類(P)」のツリービューから「Win32」を選択 「テンプレート(T)」から「Win32 コンソールアプリケーション」を選択 「プロジェクト名(N)」と「場所(L)」を入力後、「OK」ボタンをクリック

Page 13: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

13

手順3 「コンソールアプリケーション(O)」を選択 「空のプロジェクト(E)」にチェックを入れた後、「完了」ボタンをクリック 右下図のような空のプロジェクトが作成される

手順4 「ソリューションエクスプローラー」の「ソースファイル」の場所で右クリック 「追加(D)」→「新しい項目の追加(W)…」をクリック

Page 14: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

14

手順5 「カテゴリ(C)」のツリービューから「Visual C++」→「コード」を選択 「テンプレート(T)」から「C++ファイル(cpp)」を選択 「ファイル名(N)」を入力後、「追加」ボタンをクリック

手順6 「ソリューションエクスプローラー」の「SampleProject」の場所で右クリック 「プロパティ(R)」をクリック

Page 15: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

15

手順7 「構成(C)」のコンボボックスから「すべての構成」を選択 左端のツリービューから「リンカ」→「入力」を選択 追加の依存ファイルの項目に目的の lib ファイル名を入力

逐次の場合 lisseq.lib OpenMP の場合 lisomp.lib MPI の場合 lismpi.lib と MPI ライブラリ

「OK」ボタンをクリック

Page 16: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

16

4.Lis-test for Windows Lis-test for Windows は Lis1.1.1 for Win32 を使って Matrix Market 形式の行列データを

対話的に処理するソフトウェアである。いろいろな組み合わせの解法と前処理で手軽に実

行でき、実行結果の収束履歴グラフもボタン一つで表示できる。

Page 17: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

17

4.1.使い方 手順1 Lis-test for Windows の起動:lis-test フォルダにある「lis-test.exe」を実行する。

手順2 行列データの選択:下図の赤枠の「Open」ボタンをクリックすると、

「ファイルを開く」ダイアログが表示されるので、Matrix Market 形式の行列 データファイルを選択し、「開く」ボタンをクリックする。 (lis-test フォルダにサンプル用の行列データ「testmat.mtx」がある) 赤枠部分に選択した行列ファイルの情報が表示される。

Page 18: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

18

手順3 右辺ベクトルの選択:「File」を選択した場合、赤枠の「Include b」が「Yes」 ならば係数行列ファイル中の右辺が用いられる。右辺ベクトルをファイルから 読み込む場合は緑枠の「Open」ボタンをクリックして右辺ファイルを選択する。

手順4 実行条件を修正: ||rk||2/||r0||2<= 収束判定基準 MaxIters 大反復回数 Storage 係数行列の格納形式(CRS or BSR) Block Size BSR 形式のブロックサイズ Precision 演算精度(倍精度 or 4 倍精度) # of Threads 実行スレッド数(現バージョンは 1 で固定)

手順5 解法を選択:必要ならパラメータを変更する。

Page 19: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

19

手順6 前処理を選択:必要ならパラメータを変更する。 k フィルレベル drop ドロップ基準 rate 大フィルイン数の倍率 w SOR の場合はω BiCGSTAB(l)の場合はl orthomin, GMRES, FGMRES の場合はリスタート値 tol 内部反復の停止基準 MaxIter 内部反復の 大反復回数 m 対角からの非零要素数 alpha 加速係数

手順7 「SET」ボタンをクリックして登録する。 リストビューの「P」と「T」はそれぞれ演算精度と実行スレッド数である。

手順8 実行したい組み合わせがそろうまで手順4~7を繰り返す。 (係数行列と右辺を変えてもよいなら手順1~7)

Page 20: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

20

手順9 「RUN」ボタンをクリックすると計算が開始する。正常に終了すると緑枠の ように「RDY」が「DONE」に替わり青枠に結果が表示される。青枠の意味は

Iter 反復回数 Sec. 実行時間 p_cre 前処理行列作成時間 p_sol 反復中の前処理時間 i_sol 反復時間 TRR 近似解を用いて改めて計算したノルム

である。緑枠に表示される意味は RDY 待機 DONE 正常終了 ITER 大反復回数で終了 BRK ブレイクダウン MEM Out of Memory IMPL 未実装

である。

Page 21: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

21

手順10 収束履歴グラフの表示は、表示したい組み合わせを選択して 「HISTORY」ボタンをクリックする。グラフは 大 20 本まで表示できる。

Page 22: Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis を利用するための設定手順と、 Lis の機能を手軽にテストするためのWindows

22

補足1 結果は再利用できない。現状では lis-test を終了した時点でファイルに残る だけである。

補足2 「lis-test」フォルダに以下の名前で保存される。 Result_index.txt 実行結果のサマリ res-ixx-・・・.txt 収束履歴 sol-ixx-・・・.txt 近似解 result.txt 作業用ファイル である。 補足3 Matrix Market 拡張フォーマット:

ベクトルを格納できるように Matrix Market フォーマットを拡張している。 M × N の行列 A=(a_{ij})の非零要素数を L、a_{ij} = A(I,J)とすると ファイル構造は以下のようになる。

%%MatrixMarket matrix coordinate real general <-- ヘッダー

% <-+

% | 0 行以上のコメント行

% <-+

M N L B X <-- 行数 列数 非零数 (0/1) (0/1)

I1 J1 A(I1,J1) <-+

I2 J2 A(I2,J2) | 行番号 列番号 値

. . . | インデックスは 1-base

IL JL A(IL,JL) <-+

I1 B(I1) <-+

I2 B(I2) | B=1 の場合のみ存在する

. . . | 行番号 値

IM B(IM) <-+

I1 X(I1) <-+

I2 X(I2) | X=1 の場合のみ存在する

. . . | 行番号 値

IM X(IM) <-+