ここでは、並列版Code_Asterの活用を目指してソースコンパイルに挑戦します。なおここで示した構築手順は、Code_Asterの活用について情報提供を頂いているMKさんの以下の資料を参考にしています。
構築手順まとめ:https://sites.google.com/site/codeastersalomemeca/home/code_asterno-heiretuka
構築するシステムは、平成25年5月19日現在の最新版である安定版10.8と開発版11.3を対象として、それぞれのCode_Asterソースコードを用いて、単独実行と並列実行の2種類のソルバーシステムを構築することを目指します。以下の手順では、最初に開発版11.3の単独実行を構築した後で並列実行を構築します。続いて安定版10.8についても同様に2段階で進めます。全体としては、以下の4種類のシステムを構築します。
開発版11.3 : 単独実行 STA11.3(stable) 並列実行 PAR11.3
安定版10.8 : 単独実行 STA10.8(stable) 並列実行 PAR10.8
検証に用いたベースのシステムは DEXCS2012-Salome-D1-B1-64(平成25年5月末公開予定) なのですが、基本的にOSとしてはUbuntu 12.04(64) になります。なお以下の手順は 64bitのDEXCS2012-Salomeを前提としています。大容量メモリの活用を考えて、64bit版でのみ構築を検証します。
■ 準備
まずはDEXCSをインストールしますが、並列高速処理を目指すので、複数CPUコアや大容量メモリが前提です。それなりのハードウエアが必要ですが、仮想マシンでの構築においては、ゲストOSに対して、CPUコアは2以上4程度、メモリは4GB程度以上、HDDは50GB程度は確保する必要があります。なお、以下の手順では仮想マシンを用いて検証していますが、並列実行で高速化を目指すならば直截にHDDにインストールする方法が良いですね。
構築が完了したらネットワークを接続して、システムアップデートを行っておきます。DEXCS2012-Salomeでは「アプリケーション」→「システムツール」→「システム設定」→「詳細の概要」→「システムの更新」で進め、再チェックしてアップデートを完了させておきます。なお構築手順を検証したシステムは、ユーザーはdexcsとしています。
■ インストール先など
この作業は dexcs ユーザーとして行っています。これはそれぞれの設定で読み替えてください。
ダウンロードしたファイルの保存:~/Install_Files (ユーザーdexcsのホームディレクトリ内/home/dexcs/にInstall_Filesdexcsを作成)
$ mkdir ~/Install_Files
システムをインストールする場所:/opt (この中に構築したソルバーシステムが作られます。初めはgoogle,salomeなどがあります)
■ 必要なファイル5個のダウンロード
Code_Aster : aster-full-src-11.3.0-3.noarch.tar.gz → http://www.code-aster.org/V2/spip.php?article272 (最新版は11.3ですが、パッチレベルは更新される場合もあります)
ACML : acml-5-3-1-gfortran-64bit.tgz → http://developer.amd.com/tools-and-sdks/cpu-development/amd-core-math-library-acml/acml-downloads-resources/#download(最新版5-3-1を用います)
ParMETIS : ParMetis-3.2.0.tar.gz → http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download (最新版がありますが、実績のある3.2.0を旧版の中から探してダウンロードします。)
ScaLAPACK : scalapack_installer.tgz → http://www.netlib.org/scalapack/ (MenuよりScaLAPACK Installer [for Linux]を選択して、リンク先にある1.0.1をダウンロードします。)
PETSc : petsc-3.3-p7.tar.gz → http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/(沢山あるファイル一覧から開発版で指定のバージョンをダウンロードします。)
■ 色々な準備作業
まずここでは、DEXCS2012-SalomeにあるChromeを用いてダウンロードしており、ホームディレクトリの~/Downloadsに以上の5つのファイルがあるので、これを~/Install_Filesに移動mvしておきます。
$ mv ~/Downloads/* ~/Install_Files
次に、インストール先の/optの所有者を変更します。本来/optはrootが所有ですが、導入や利用を考えて一般ユーザーdexcs(ここでの設定)にしておきます。要は作業者dexcsが読み書きできるようにします。sudoコマンドを実行するときは最初に、作業者のパスワードを入力します。
$ sudo chown dexcs /opt/
■ 追加パッケージのインストール
構築に必要なパッケージを sudo apt-get install でインストールします。途中で「続行しますか?」と何か聞かれたら、指示に従ってyで進めます。以下のコマンドラインで、全てを一度に導入できます。
sudo apt-get install gfortran g++ python-dev python-qt4 python-numpy liblapack-dev libblas-dev tcl tk zlib1g-dev bison flex checkinstall openmpi-bin openmpi-dev
gfortran g++ → コンパイラの追加
python-dev python-qt4 python-numpy → Pythonの機能追加
liblapack-dev libblas-dev → lapack,blasに対応する数値処理ライブラリの追加
tcl tk → スクリプト言語tclとGUIツールキットtk
zlib1g-dev → 圧縮ファイル対応ライブラリの追加
bison flex → コンパイルツールの追加
checkinstall → コンパイル支援ツールの追加
openmpi-bin openmpi-dev → 並列処理用MPIの実装
エラー無く最後までインストールが進んだら、追加パッケージの準備は完了です。最後には「build-essential (11.5ubuntu2.1) を設定しています」と表示されています。
構築手順まとめ:https://sites.google.com/site/codeastersalomemeca/home/code_asterno-heiretuka
構築するシステムは、平成25年5月19日現在の最新版である安定版10.8と開発版11.3を対象として、それぞれのCode_Asterソースコードを用いて、単独実行と並列実行の2種類のソルバーシステムを構築することを目指します。以下の手順では、最初に開発版11.3の単独実行を構築した後で並列実行を構築します。続いて安定版10.8についても同様に2段階で進めます。全体としては、以下の4種類のシステムを構築します。
開発版11.3 : 単独実行 STA11.3(stable) 並列実行 PAR11.3
安定版10.8 : 単独実行 STA10.8(stable) 並列実行 PAR10.8
検証に用いたベースのシステムは DEXCS2012-Salome-D1-B1-64(平成25年5月末公開予定) なのですが、基本的にOSとしてはUbuntu 12.04(64) になります。なお以下の手順は 64bitのDEXCS2012-Salomeを前提としています。大容量メモリの活用を考えて、64bit版でのみ構築を検証します。
■ 準備
まずはDEXCSをインストールしますが、並列高速処理を目指すので、複数CPUコアや大容量メモリが前提です。それなりのハードウエアが必要ですが、仮想マシンでの構築においては、ゲストOSに対して、CPUコアは2以上4程度、メモリは4GB程度以上、HDDは50GB程度は確保する必要があります。なお、以下の手順では仮想マシンを用いて検証していますが、並列実行で高速化を目指すならば直截にHDDにインストールする方法が良いですね。
構築が完了したらネットワークを接続して、システムアップデートを行っておきます。DEXCS2012-Salomeでは「アプリケーション」→「システムツール」→「システム設定」→「詳細の概要」→「システムの更新」で進め、再チェックしてアップデートを完了させておきます。なお構築手順を検証したシステムは、ユーザーはdexcsとしています。
■ インストール先など
この作業は dexcs ユーザーとして行っています。これはそれぞれの設定で読み替えてください。
ダウンロードしたファイルの保存:~/Install_Files (ユーザーdexcsのホームディレクトリ内/home/dexcs/にInstall_Filesdexcsを作成)
$ mkdir ~/Install_Files
システムをインストールする場所:/opt (この中に構築したソルバーシステムが作られます。初めはgoogle,salomeなどがあります)
■ 必要なファイル5個のダウンロード
Code_Aster : aster-full-src-11.3.0-3.noarch.tar.gz → http://www.code-aster.org/V2/spip.php?article272 (最新版は11.3ですが、パッチレベルは更新される場合もあります)
ACML : acml-5-3-1-gfortran-64bit.tgz → http://developer.amd.com/tools-and-sdks/cpu-development/amd-core-math-library-acml/acml-downloads-resources/#download(最新版5-3-1を用います)
ParMETIS : ParMetis-3.2.0.tar.gz → http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download (最新版がありますが、実績のある3.2.0を旧版の中から探してダウンロードします。)
ScaLAPACK : scalapack_installer.tgz → http://www.netlib.org/scalapack/ (MenuよりScaLAPACK Installer [for Linux]を選択して、リンク先にある1.0.1をダウンロードします。)
PETSc : petsc-3.3-p7.tar.gz → http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/(沢山あるファイル一覧から開発版で指定のバージョンをダウンロードします。)
■ 色々な準備作業
まずここでは、DEXCS2012-SalomeにあるChromeを用いてダウンロードしており、ホームディレクトリの~/Downloadsに以上の5つのファイルがあるので、これを~/Install_Filesに移動mvしておきます。
$ mv ~/Downloads/* ~/Install_Files
次に、インストール先の/optの所有者を変更します。本来/optはrootが所有ですが、導入や利用を考えて一般ユーザーdexcs(ここでの設定)にしておきます。要は作業者dexcsが読み書きできるようにします。sudoコマンドを実行するときは最初に、作業者のパスワードを入力します。
$ sudo chown dexcs /opt/
■ 追加パッケージのインストール
構築に必要なパッケージを sudo apt-get install でインストールします。途中で「続行しますか?」と何か聞かれたら、指示に従ってyで進めます。以下のコマンドラインで、全てを一度に導入できます。
sudo apt-get install gfortran g++ python-dev python-qt4 python-numpy liblapack-dev libblas-dev tcl tk zlib1g-dev bison flex checkinstall openmpi-bin openmpi-dev
gfortran g++ → コンパイラの追加
python-dev python-qt4 python-numpy → Pythonの機能追加
liblapack-dev libblas-dev → lapack,blasに対応する数値処理ライブラリの追加
tcl tk → スクリプト言語tclとGUIツールキットtk
zlib1g-dev → 圧縮ファイル対応ライブラリの追加
bison flex → コンパイルツールの追加
checkinstall → コンパイル支援ツールの追加
openmpi-bin openmpi-dev → 並列処理用MPIの実装
エラー無く最後までインストールが進んだら、追加パッケージの準備は完了です。最後には「build-essential (11.5ubuntu2.1) を設定しています」と表示されています。