Code_Aster の並列化 †Code_Aster ForumとCAE Linuxの情報を参考に記述しています。 OS:Ubuntu 10.04 ダウンロードしたファイルの保存先 ~/Install_Files aster-full-src-10.6.0-3.noarch.tar.gz acml-4-4-0-gfortran-64bit.tgz ParMetis-3.2.0.tar.gz mpiblacs.tgz scalapack-1.8.0.tgz petsc-2.3.3.tar.gz
$ sudo chown username /opt/
$ sudo apt-get install gfortran g++ python-dev python-numpy zlib1g-dev libatlas-base-dev grace bison flex python-qt4 checkinstall mpich2
$ cd ~/Install_Files/ $ mkdir ./acml $ cp acml-4-4-0-gfortran-64bit.tgz ./acml $ cd ./acml $ tar xfvz acml-4-4-0-gfortran-64bit.tgz $ ./install-acml-4-4-0-gfortran-64bit.sh -accept -installdir=/opt/acml4.4.0 $ echo /opt/acml4.4.0/gfortran64/lib | sudo tee -a /etc/ld.so.conf.d/amd_math.conf $ sudo ldconfig
$ cd ~/Install_Files $ tar xfvz aster-full-src-10.6.0-3.noarch.tar.gz $ cd aster-full-src-10.6.0/ $ sed -i "s:PREFER_COMPILER\ =\ 'GNU':PREFER_COMPILER\ =\'GNU_without_MATH'\nMATHLIB=\ '-L/opt/acml4.4.0/gfortran64/lib -lacml':g" setup.cfg $ python setup.py install --prefix=/opt/aster
$ cd ~/ $ echo MPD_SECRETWORD=mr-secret > .mpd.conf $ chmod 600 .mpd.conf /opt/aster/etc/codeaster/mpi_hostfile を作成し、コンピュータ名:プロセッサー数を記入 例 : comp1:8 $ mkdir /opt/scalapack $ mkdir /opt/scalapack/build $ mkdir /opt/scalapack/lib $ cp ~/Install_Files/mpiblacs.tgz /opt/scalapack/build $ cp ~/Install_Files/scalapack-1.8.0.tgz /opt/scalapack/build $ cd /opt/scalapack/build $ tar xfvz mpiblacs.tgz $ tar xfvz scalapack-1.8.0.tgz $ cd /opt/scalapack/build/BLACS $ cp ./BMAKES/Bmake.MPI-LINUX ./Bmake.inc Bmake.incを添付ファイルのように書き換えるBmake.inc $ make mpi $ cp LIB/*.a /opt/scalapack/lib $ cd /opt/scalapack/build/scalapack-1.8.0 $ cp SLmake.inc.example SLmake.inc SLmake.incを添付ファイルのように書き換えるSLmake.inc $ make $ cp libscalapack.a /opt/scalapack/lib
$ cp ~/Install_Files/ParMetis-3.2.0.tar.gz /opt $ cd /opt $ tar xfvz ParMetis-3.2.0.tar.gz $ cd ParMetis-3.2.0 Makefile.in に 'XTRALIBS = -lmpich' を加える $ make
$ cp ~/Install_Files/aster-full-src-10.6.0/SRC/mumps-4.9.2-2.tar.gz /opt/ $ cd /opt $ tar xfvz mumps-4.9.2-2.tar.gz $ mv mumps-4.9.2 mumps-4.9.2_mpi $ cd mumps-4.9.2_mpi/ Makefile.inc を添付ファイルのように書き換えるMakefile.inc $ make all
$ cp ~/Install_Files/petsc-2.3.3.tar.gz /opt $ cd /opt $ tar xfvz petsc-2.3.3.tar.gz $ cd petsc-2.3.3-p16 $ ./config/configure.py --with-mpi-dir=/usr/lib --with-blas-lapack-lib=/opt/acml4.4.0/gfortran64/lib/libacml.a --with-debugging=0 COPTFLAGS=-O3 FOPTFLAGS=-O3 --with-shared=0 --configModules=PETSc.Configure --optionsModule=PETSc.compilerOptions --with-x=0 $ PETSC_ARCH=linux-gnu-c-opt; export PETSC_ARCH $ PETSC_DIR=/opt/petsc-2.3.3-p16; export PETSC_DIR $ make
$ cd /opt/aster $ cp -ax STA10.6 PAR10.6 $ cd /opt/aster/PAR10.6 profile.sh を添付ファイルのように書き換えるprofile.sh $ ../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 clean bibf90/petsc/ $ mpd & $ ../bin/as_run --vers=PAR10.6 --make DIAGNOSTIC JOB : OK と表示されれば成功 #ref(): File not found: "MUMPS_option.jpg" at page "SALOME-Mecaの活用技術"
mpi_nbcpu=プロセッサー数 mpi_nbnoeud=コンピューター数 2台のコンピューターがそれぞれ10個のプロセッサーを持ち、合計20個のプロセッサーがある場合は、 mpi_nbcpu=20、mpi_nbnoeud=2 下図のようにASTKでVersionをPAR10.6に切り替えます。 Runボタンを押せば並列計算が実行されます。
|