DALAB情報発信用ブログ:OpenCAE+GPGPU+Peridynamics編

DALABで行っている研究活動の中で、OpenCAEやGPGPUや破壊解析の取り組みについてまとめてゆきます。

DEXCS-Salomeの有効活用:並列版Code_Asterのコンパイル(3)

2011年07月24日 10時04分29秒 | DEXCS情報
あと少しで並列版Code_Asterの構築が完了します。

■petscの作成
並列ソルバーの petsc を構築します。以下のコマンドを実行してください。
$ cp ~/Install_Files/petsc-2.3.3.tar.gz /opt → petsc のパッケージをコピー
$ cd /opt → /opt に移動
$ tar xfvz petsc-2.3.3.tar.gz → ソフトウエアパッケージを展開
$ cd petsc-2.3.3-p16 → インストール作業用ディレクトリに移動
構築環境の設定を進めます。メッセージが続きますが、エラーが出なければ完了です。
$ ./config/configure.py --with-mpi-dir=/usr/lib/openmpi/lib --with-blas-lapack-dir=/usr/lib/atlas-base/atlas --with-debugging=0 COPTFLAGS=-O3 FOPTFLAGS=-O3 --with-shared=0 --configModules=PETSc.Configure --optionsModule=PETSc.compilerOptions --with-x=0
構築のための環境変数2つを設定ます。
$ PETSC_ARCH=linux-gnu-c-opt; export PETSC_ARCH
$ PETSC_DIR=/opt/petsc-2.3.3-p16; export PETSC_DIR
以下で実際に構築を進めます。
$ make
最後まで進みエラーが出ずに、以下のメッセージが出たら完成です。
Completed building libraries

■ PAR10.3の作成
並列処理システムを構築します。以下のコマンドを実行してください。なお cp は少し時間がかかります。
$ cd /opt/aster → /opt/aster に移動
$ cp -ax STA10.6 PAR10.6 → STA10.6 の内容を属性を維持して PAR10.6 にコピー
$ cd /opt/aster/PAR10.6 → コピーした /opt/aster/PAR10.6 に移動
ここでディレクトリにある profile.sh config.txt を修正するのですが、沢山の修正があります。
まず profile.sh は、以下の4個所を修正します。
PATH に /opt/ParMetis-3.2.0:\ を追加
LD_LIBRARY_PATH の /opt/aster/public/mumps-4.9.2/lib: を /opt/mumps-4.9.2_mpi/lib:\ に変更
LD_LIBRARY_PATH に /opt/petsc-2.3.3-p16/lib/linux-gnu-c-opt: を追加
LD_LIBRARY_PATH に /usr/lib/openmpi/lib: を追加
次に config.txt は、以下の16個所を修正します。
BIBL の mumps を -L/opt/mumps-4.9.2_mpi/lib -ldmumps -lzmumps -lsmumps -lcmumps -lmumps_common -lpord -L/opt/ParMetis-3.2.0 -lparmetis -lmetis に変更
BIBL の scalap に /opt/scalapack/lib/libscalapack.a /opt/scalapack/lib/blacs.a /opt/scalapack/lib/blacsF77.a /opt/scalapack/lib/blacs.a /usr/lib/atlas-base/atlas/libblas.a /usr/lib/atlas-base/atlas/liblapack.a
を追加
BIBL の metis に -L/opt/ParMetis-3.2.0 -lparmetis -lmetis を追加
BIBL の petsc に -L/opt/petsc-2.3.3-p16/lib/linux-gnu-c-opt -lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc を追加
BIBL の mpi に -L/usr/lib/openmpi/lib -lmpi -lmpi_f77 を追加
DEFS の defined を LINUX64 H5_USE_16_API _HAVE_MUMPS _HAVE_PETSC _USE_MPI _USE_MPI_MUMPS _USE_MPI_FETI _USE_OPENMP
に変更
NOBUILD はコメントアウト
LINK の link を mpif90 に変更
CC の cc を mpicc に変更
F77 の f77 を mpif90 に変更
F90 の f90 を mpif90 に変更
INCLF90 の include に -I/opt/aster/PAR10.6/bibf90/include_mumps-4.9.2_mpi を追加
INCLF90 の petsc に -I/opt/petsc-2.3.3-p16/ -I/opt/petsc-2.3.3-p16/include -I/opt/petsc-2.3.3-p16/bmake/linux-gnu-c-opt/ を追加
REPOUT の exec を /opt/aster/outils に変更
REPMAT の exec を /opt/aster/PAR10.6/materiau に変更
REPDEX の exec を /opt/aster/PAR10.6/datg に変更

さらに /opt/aster/etc/codeaster/ ディレクトリにある asrun ファイルを修正します。
$ cd /opt/aster/etc/codeaster/
$ vi asrun
mpi_get_procid_cmd は echo $OMPI_COMM_WORLD_RANK を選択

ファイルを準備したら、以下の手順でコンパイルします。暫く待ちます。
$ cd /opt/aster/PAR10.6
$ ../bin/as_run --vers=PAR10.6 --make clean → 不要ファイルの削除
$ ../bin/as_run --vers=PAR10.6 --make clean bibf90/mumps → 不要ファイルの削除
$ ../bin/as_run --vers=PAR10.6 --make → PAR10.6 のコンパイルの実行

最後までコンパイルが進むと、並列Code_Asterの検証用ジョブが実行されます。最後に以下のメッセージが出ていれば成功です。
as_run 1.10.4 --- DIAGNOSTIC JOB : OK

次に、コンパイルした PAR10.6 を利用できるように設定します。/opt/aster/etc/codeaster/ ディレクトリにある aster ファイルをエディタで開きます。最後の vers : stable の下に vers : PAR10.6 を追加します。
$ cd /opt/aster/etc/codeaster/
$ vi aster

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。