日本語学習者のAcademic Speakingの 評価基準の構 …...Speakingの評価基準を作成すること,また,その妥 当性を検証することを目的とする。
Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis...
Transcript of Lis1.1.1 for Windows 利用ガイド2 Microsoft の統合開発環境であるVisual Studio上でLis...
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 日
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 前処理
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 倍精度演算が利用できる ように作成されている)
4
2.環境設定
環境設定 ~Microsoft Visual Studio 2003 編~ 手順1 メニューバー →「ツール(T)」→「オプション(O)…」をクリックすると オプションダイアログが表示される
手順2 左端のツリービューから「プロジェクト」→「VC++ ディレクトリ」を選択 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「インクルードファイル」を選択 下図の赤枠のように ”lis.h” が存在するディレクトリを入力
5
手順3 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「ライブラリファイル」を選択 下図の赤枠のように ”lisseq.lib” が存在するディレクトリを入力 「OK」ボタンをクリック
6
環境設定 ~Microsoft Visual Studio 2005 編~ 手順1 メニューバー →「ツール(T)」→「オプション(O)…」をクリックすると オプションダイアログが表示される
手順2 左端のツリービューから「プロジェクトおよびソリューション」→
「VC++ ディレクトリ」を選択 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「インクルードファイル」を選択 下図の赤枠のように ”lis.h” が存在するディレクトリを入力
7
手順3 「ディレクトリを表示するプロジェクト(S)」のコンボボックスから 「ライブラリファイル」を選択 下図の赤枠のように ”lisseq.lib” が存在するディレクトリを入力 「OK」ボタンをクリック
8
3.プロジェクトの作成 プロジェクトの作成 ~Microsoft Visual Studio 2003 編~ 手順1 メニューバー →「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)…」を
クリック
手順2 「プロジェクトの種類(P)」のツリービューから「Win32」を選択 「テンプレート(T)」から「Win32 コンソールプロジェクト」を選択 「プロジェクト名(N)」と「場所(L)」を入力後、「OK」ボタンをクリック
9
手順3 「コンソールアプリケーション(O)」を選択 「空のプロジェクト(E)」にチェックを入れた後、「完了」ボタンをクリック 右下図のような空のプロジェクトが作成される
手順4 「ソリューションエクスプローラー」の「ソースファイル」の場所で右クリック 「追加(D)」→「新しい項目の追加(W)…」をクリック
10
手順5 「カテゴリ(C)」のツリービューから「Visual C++」→「コード」を選択 「テンプレート(T)」から「C++ファイル(cpp)」を選択 「 フ ァ イ ル 名 (N) 」 を 入 力 後 、「 開 く 」 ボ タ ン を ク リ ッ ク
手順6 「ソリューションエクスプローラー」の「SampleProject」の場所で右クリック 「プロパティ(R)」をクリック
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」をクリック
12
プロジェクトの作成 ~Microsoft Visual Studio 2005 編~ 手順1 メニューバー →「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)…」を
クリック
手順2 「プロジェクトの種類(P)」のツリービューから「Win32」を選択 「テンプレート(T)」から「Win32 コンソールアプリケーション」を選択 「プロジェクト名(N)」と「場所(L)」を入力後、「OK」ボタンをクリック
13
手順3 「コンソールアプリケーション(O)」を選択 「空のプロジェクト(E)」にチェックを入れた後、「完了」ボタンをクリック 右下図のような空のプロジェクトが作成される
手順4 「ソリューションエクスプローラー」の「ソースファイル」の場所で右クリック 「追加(D)」→「新しい項目の追加(W)…」をクリック
14
手順5 「カテゴリ(C)」のツリービューから「Visual C++」→「コード」を選択 「テンプレート(T)」から「C++ファイル(cpp)」を選択 「ファイル名(N)」を入力後、「追加」ボタンをクリック
手順6 「ソリューションエクスプローラー」の「SampleProject」の場所で右クリック 「プロパティ(R)」をクリック
15
手順7 「構成(C)」のコンボボックスから「すべての構成」を選択 左端のツリービューから「リンカ」→「入力」を選択 追加の依存ファイルの項目に目的の lib ファイル名を入力
逐次の場合 lisseq.lib OpenMP の場合 lisomp.lib MPI の場合 lismpi.lib と MPI ライブラリ
「OK」ボタンをクリック
16
4.Lis-test for Windows Lis-test for Windows は Lis1.1.1 for Win32 を使って Matrix Market 形式の行列データを
対話的に処理するソフトウェアである。いろいろな組み合わせの解法と前処理で手軽に実
行でき、実行結果の収束履歴グラフもボタン一つで表示できる。
17
4.1.使い方 手順1 Lis-test for Windows の起動:lis-test フォルダにある「lis-test.exe」を実行する。
手順2 行列データの選択:下図の赤枠の「Open」ボタンをクリックすると、
「ファイルを開く」ダイアログが表示されるので、Matrix Market 形式の行列 データファイルを選択し、「開く」ボタンをクリックする。 (lis-test フォルダにサンプル用の行列データ「testmat.mtx」がある) 赤枠部分に選択した行列ファイルの情報が表示される。
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 解法を選択:必要ならパラメータを変更する。
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)
20
手順9 「RUN」ボタンをクリックすると計算が開始する。正常に終了すると緑枠の ように「RDY」が「DONE」に替わり青枠に結果が表示される。青枠の意味は
Iter 反復回数 Sec. 実行時間 p_cre 前処理行列作成時間 p_sol 反復中の前処理時間 i_sol 反復時間 TRR 近似解を用いて改めて計算したノルム
である。緑枠に表示される意味は RDY 待機 DONE 正常終了 ITER 大反復回数で終了 BRK ブレイクダウン MEM Out of Memory IMPL 未実装
である。
21
手順10 収束履歴グラフの表示は、表示したい組み合わせを選択して 「HISTORY」ボタンをクリックする。グラフは 大 20 本まで表示できる。
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) <-+