初投稿です.
前回の記事で,Dockerコンテナを使ってRaspberry Pi 4BにOpenFOAMを導入するという内容を書いたのですが,その後コンテナを構築せずに行う別の方法も見つけて,何ならその方がよさそうなまであったので,備忘録的に書き残します.
というのも,OpenMPIを用いてノード間の並列計算を行おうと思った際に,Dockerコンテナ上で走らせるにはSSH接続などの面でハードルが高く,今の自分の知識では苦戦しそうな可能性もありました.
環境は前回と変わりません.以下の通りです.
マシン:Raspberry Pi 4B 8GB
OS:Raspberry Pi OS (64bit) 2023-02-21
クライアント:MobaXterm Portable v23.0
基本的な流れは,こちらに書かれている通りですが,ライブラリの依存関係が若干異なっていたそうで,そのままというわけにはいかなかったので,こちらのドキュメントのやり方を組み合わせて導入していきます.
ライブラリの導入
ではまず最初に,必要なライブラリを導入していきます.
sudo apt-get update
sudo apt-get install build-essential autoconf autotools-dev cmake gawk gnuplot
sudo apt-get install flex libfl-dev libreadline-dev zlib1g-dev openmpi-bin libopenmpi-dev mpi-default-bin mpi-default-dev
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev
sudo apt-get install libfftw3-dev libscotch-dev libptscotch-dev libboost-system-dev libboost-thread-dev libcgal-dev
念のため,ここまででOpenMPIも導入できているか確認しておきます.
orterun --version
OpenFOAMの導入
今回はOpenFOAMのソースコードをコンパイルする方法で行きます.
まずは必要ソースコードをダウンロードします.
cd /tmp
wget https://sourceforge.net/projects/openfoam/files/v2006/OpenFOAM-v2006.tgz
wget https://sourceforge.net/projects/openfoam/files/v2006/ThirdParty-v2006.tgz
ダウンロードしたファイルを,ユーザーディレクトリ内に展開します.
mkdir $HOME/OpenFOAM && tar -xzf OpenFOAM-v2006.tgz -C $HOME/OpenFOAM && tar -xzf ThirdParty-v2006.tgz -C $HOME/OpenFOAM
展開が終われば,OpenFOAM内のbashrcを読み込み,foam
コマンドを実行してください.ファイルを展開したディレクトリに飛ぶことが出来ればOKです.
source ~/OpenFOAM/OpenFOAM-v2006/etc/bashrc
foam
最後にコンパイルします.このコンパイルには,自分の環境では7時間程度かかりましたので,実行する際はご注意ください.
./Allwmake -j -s -l
コンパイルが終わったら,OpenFOAMディレクトリ上で,テストコマンドfoamInstallationTest
を実行し,問題なく導入できているか確認することをお勧めします.
foamInstallationTest
緒言
本記事では,Raspberry Pi 4BにおけるOpenFOAMの導入方法について,Dockerを使わない方法として紹介しました.恐らく,この手法で導入した方が,後々にノード間並列計算を行う際に楽かなと思います(なんとなくの予想ですが).また,この方法だと,コンテナをいちいち起動しなくとも,bashrcでパスを通しておけばOpenFOAMのコマンドを一通り使えますので,その方がやっぱり分かりやすい気がします.
引用一覧
https://dev.classmethod.jp/articles/how-to-install-openfoam-in-graviton2/ (OpenFOAMをGraviton2(Arm)インスタンスで動かして計算する | DevelopersIO)
https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md (OpenFOAM® System Requirements | OpenFOAM Development)
https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md (OpenFOAM® Quick Build Guide | OpenFOAM Development)