1:SXAT の CentOS 上に、VH 用の Calculix (CCX) を構築するまでのビルド手順 【SXAT-CCXbuild-21-1】 †作成:2022/03/05 ここでのビルド手順は、以下のウエブ「CalculiX-Builder」に基づいて行います。 なおsudoの実行では、利用者のパスワードを入力します。 現在の状態の確認 †・CnetOSのバージョン: cat /etc/redhat-release で確認します。 必要なパッケージの導入 †BLAS/LAPACKのインストール(必須) †以下の手順で必要なパッケージをインストールします。 既に、現行バージョンが導入済みのパッケージはそのままで、更新するパッケージを導入する。確認で y で進めて「完了しました!」で成功です。 PARDISO(Intel-oneAPI-MKL)のインストール(選択) †Intel-oneAPI-MKLのソルバーPardisoを利用する場合は、以下の手順でインストールします。 作業時点で最新版として、2020-0-088を、以下の手順でインストールする。 ExodusIIのインストール(選択) †以下のパッケージをインストールします。 既に、現行バージョンが導入済みのパッケージはそのまま。 CalculiX-Builder ソースの取得 †CalculiX-Builder及びパッチのベースとなるccx 及び前提ライブラリ(ARPACK, SPOOLES)のソースを取得します。 以前にビルドを行った場合には、~/CalculiX-Builderが作られているので、削除するか名前を変更しておく。 まず cd でホームディレクトリに移動してから、以下のコマンドで、必要なファイルをgitから入手する。 git clone https://github.com/ISCPC/CalculiX-Builder.git ビルド作業用ディレクトリに移動する。 次に submodule ソースを入手するために、以下のコマンドを実行します。 少し待って「Submodule path 'lib/calculix-adapter'」と表示されたら成功です。 Calculix (CCX) をビルドするMakefileの設定 †以下の説明は自分の好みの設定ですので、状況に応じて各自で読み替えてください。 次に、ビルドの条件を設定するので、vi などのエディタで ~/CalculiX-Builder にある Makefile を編集します。ここでは、以下の設定とします。
として、以下のように設定します。 cd ~/CalculiX-Builder ⇒ cp Makefile Makefile.org ⇒ vi Makefile 14 PREFIX = $(HOME)/local VH 用の Calculix (CCX)をビルドしインストールする †実際にビルドするときには、複数コアを利用すると効果的です。 そこで「make NPROCS=8」として、ビルドを実行します。警告は多数出ますが、エラー無く最後に以下表示され、約2分ぐらいで完了します。 ビルドしたディレクトリ内の「src」にできるので、「$ ls -l src/ccx_2.18_MT」で確認すると、 実行形式が完成したので、インストール先:$(HOME)/local にコピーします。「make install」で行います。 状況を確認するために、「ls -l ~/local/bin/」を実行すると、 ここでは、VH用のCCXとしたので、コマンド名を変更しておきます。 VH 用の Calculix (CCX)の動作確認 †まず、CCXの動作に必要な環境変数の設定をして、起動の確認をします。 IntelMKLのライブラリのパス設定 / CCXの実行形式のパス / OpenMPの並列処理数(現段階では1) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/lib/intel64:/opt/intel/mkl/lib/intel64 「$ ccx_2.18_VH」で実行してみます。エラーなく「Usage: CalculiX.exe -i jobname」と表示されたら、取り合えずのビルド成功です。 次に、CCX の作業用のディレクトリを、「mkdir ~/CCXwork21」で作ります。 ここでは約40万要素の片持梁で弾性解析を行うテストデータ「test.inp」を用いて、各ソルバーの動作を検証します。 動作確認用ディレクトリ Ex1 の中にテストデータ test.inp を置きます。 表示されるログの途中で「Using upto 1 cpu・spooles」となり、標準のSpoolesソルバーで1cpu(1core)で実行しています。 解析によって多数のファイルが作られており、「test.frd」が CCX の独自の解析結果ファイルになります。 次に Exodus出力 を調べるので、入力データtest.inp以外を削除しておきます。 ソルバー変更の効果を確認するために、test.inpを、エディタviなどで開いて、以下を変更する 表示されるログの最後に、以下の表示があり、IntelMKLのpardisoソルバーで1コア実行実行しています。 解析時間は「18.576814 [sec]」となり、先のspoolesに比べて約1.51倍高速化されています。 |