ElmerFEMにIntel MKLを組み込んでコンパイルしました2023年08月30日 19:22

OSは、WSLのDebian 12 (VirtualBoxにおいても動作確認しました)を使用しました。
Ubuntu 22.04では、直接法の並列計算ができなかったので、Debianにしました。

MKLはintel oneAPIのものを用いました。

インストール方法は、Intelのページの記載通りです(Debian、Ubuntu用)。
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
sudo apt install intel-oneapi-mkl intel-oneapi-mkl-devel

以下のフォーラムの方法に、Hypre、Paraview、OpenMPを加えます。
http://www.elmerfem.org/forum/viewtopic.php?p=28018#p28018

sudo apt install libhypre-dev
qt関係で名前間違いがあるので、apt search で探してください。

source /opt/intel/oneapi/mkl/2023.2.0/env/vars.sh を実行してから、cmakeを実行する。
$MKLROOT が表示されればOKです。
cmake -DWITH_QT5=TRUE -DWITH_ELMERGUI:BOOL=TRUE -DWITH_MPI:BOOLEAN=TRUE -DWITH_Mumps:BOOL=TRUE -DWITH_LUA:BOOL=TRUE -DWITH_MKL:BOOL=TRUE -DWITH_Hypre:BOOL=TRUE -DHypre_INCLUDE_DIR="/usr/include/hypre" -DWITH_PARAVIEW:BOOL=TRUE -DWITH_OpenMP:BOOLEAN=TRUE -DWITH_ElmerIce:BOOLEAN=TRUE -DCMAKE_INSTALL_PREFIX=../install ../elmerfem

~/.bashrc に以下を追加します。
source /opt/intel/oneapi/mkl/2023.2.0/env/vars.sh
export ELMER_HOME=$HOME/elmer/install/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ELMER_HOME/lib
export PATH=$PATH:$ELMER_HOME/bin

ldd ElmerSolverとldd ElmerSolver_mpiのコマンドでmklにリンクされているか確認できます。

Salomeは、Debian 12用が配布されていないので、Salome_mecaを使用しました。
インストールは、一時的にsidのリポジトリを有効にして、singularity-containerをインストールしました。
https://packages.debian.org/sid/singularity-container

singularity run --app install salome_meca-lgpl-2022.1.0-1-20221225-scibian-9.sif
./salome_meca-lgpl-2022.1.0-1-20221225-scibian-9 --soft で起動します。

Paraviewは、Linux用をダウンロードして解凍するだけで動作します。
https://www.paraview.org/download/

本内容は、個人的なメモです。動作を保証するものではありません。