WSL上で動作するLinuxディストリビューションは、オンラインインストールやMicrosoftストアから入手できるものだけではありません。 ここではRocky Linuxをインストールする手順を説明します。
さらに、高性能開発環境としてoneAPIをインストールし、それを利用して材料シミュレーション用のアプリケーションソフトウェアOpenMXをコンパイルするまで、を説明します。
WSL環境は構築済みとして説明します。 未完了の方は例えばこちらを参照してください。
RedHat Enterprise Linux (RHEL)互換ディストリビューションとして、長らくCentOSが君臨してきましたが、最新のStreamは、もはや我々が期待する互換ディストリビューション(ダウンストリーム)ではありません。 新たに複数のRHEL互換ディストリビューションが立ち上げられた中、Rocky Linuxは、AlmaLinuxと共にその中心的な役割を担うことが期待されています。
WSL用のRocky Linuxはこちらで配布されています。
RL9.zip
をダウンロードしてください。
ファイルを展開し、フォルダ内のRocky9.exe
を実行すると、その場にRocky Linuxがインストール(ファイルが展開)されます。
Ubuntuなどの(標準的な)ディストリビューションはc:\Users\ユーザー名\AppData\Local\Packages\
以下にインストールされますので、それを真似て、RL9フォルダをc:\Users\ユーザー名\AppData\Local\Packages\RL9
に移動します。
そのフォルダ内のRocky9.exe
を実行すれば、インストール完了です。
Rocky9.exe
の名前を変えると複数のRocky Linux環境を保持できます。
ちなみにアンインストールの際は、以下のコマンドを実行します。
Rocky9.exe clean
ログインにはWindows Terminalの利用をお勧めしますが、コマンドプロンプトからコマンド実行でも可能です。
wsl -d Rocky9
初回ログインすると、管理者(root
)になっています。
通常作業は一般ユーザーで行うことが推奨されますので、新たにユーザーを作成します。
sudo
コマンドで管理作業ができるように、wheel
グループに追加することをおすすめします。
adduser [user-name]
passwd [user-name]
usermod -G wheel [user-name]
一旦ログアウトし、コマンドプロンプトから以下のコマンドを実行して、ログイン時のユーザーを変更します。
Rocky9.exe config --default-user [user-name]
次回以降Rocky Linuxを起動すると、追加作成した一般ユーザーとしてログインします。
(一般ユーサーが実行できない)管理作業にはsudo
コマンドを使います。
例えば以下のコマンドでパッケージを更新します。
sudo dnf update -y
追加ソフトウェアをインストールします。
sudo dnf install -y gcc-c++ make xauth perl
gnuplot
は標準のパッケージ・リポジトリにはありません。
拡張パッケージEPELからインストールします。
sudo dnf install -y epel-release
sudo dnf install -y --enablerepo=epel gnuplot
Intel社製高性能コンパイラIntel oneAPI Toolkits、通称Intelコンパイラです。 Base ToolkitとHPC Toolkitをそれぞれインストールします。
各ツールキットのページから、Download the Tooolkit
を選択し、
Select operating System
からLinux
を選択し、Select distribution
はDNF Package Manager
を選択すると、その下に説明が表示されます。
まず、リポジトリの設定を行います。
両ツールキット共通の操作です。
/etc/yum.repos.d
ディレクトリの下に、oneAPI.repo
というファイルを作成します。
[oneAPI]
name=Intel® oneAPI repository
baseurl=https://yum.repos.intel.com/oneapi
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
設定が完了すると、パッケージ管理コマンドでインストールできます。
sudo dnf install intel-basekit
sudo dnf install intel-hpckit
インストール先は/opt/intel/oneapi/
です。
次のコマンドで環境設定して利用します。
.bashrc
などに追加すると良いでしょう。
source /opt/intel/oneapi/setvars.sh
最新版3.9.9
は、3.9
に対するパッチ形式で配布されています。
以下の二つファイルをダウンロードします。
パッチの当て方は、README.txtの冒頭に詳しい説明があります。
source
ディレクトリに移動して、makefile
を以下のように修正します。
--- makefile.org 2024-08-17 13:21:23.964546682 +0900
+++ makefile 2024-08-17 13:21:41.424545221 +0900
@@ -5,10 +5,10 @@
# #
###################################################################
-MKLROOT = /opt/intel/mkl
-CC = mpicc -O3 -xHOST -ip -no-prec-div -qopenmp -I/opt/intel/mkl/include/fftw
-FC = mpif90 -O3 -xHOST -ip -no-prec-div -qopenmp
-LIB= -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_openmpi_lp64 -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -liomp5 -lpthread -lm -ldl
+MKLROOT = /opt/intel/oneapi/mkl/latest
+CC = mpiicx -O3 -qopenmp -fcommon -I${MKLROOT}/include/fftw -Wno-error=implicit-function-declaration
+FC = mpiifx -O3 -no-prec-div -qopenmp
+LIB= -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -lifcore -liomp5 -lpthread -lm -ldl
#
make
コマンドでコンパイルします。
make install
実行形式ファイルopenmx
はwork
ディレクトリにコピーされます。
OpenMX
に標準添付のmakefile
では、オプション-xHOST
が指定されていましたが、上記修正では削除しました。
同ポプションを指定すると、生成される実行形式ファイルopenmx
が実行できない(下記メッセージを出力して直ちに終了する)場合があったためです。
Please verify that both the operating system and the processor support Intel(R) X87, CMOV, MMX, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, MOVBE, POPCNT, AVX, F16C, FMA, BMI, LZCNT, AVX2, AVX512F, AVX512DQ, ADX, AVX512CD, AVX512BW, AVX512VL, AVX512VBMI, AVX512_VPOPCNTDQ, AVX512_BITALG, AVX512_VBMI2, AVX512_VNNI and SHSTK instructions.
-xHOST
は最適化に関するオプションですので、計算結果には影響を及ぼしません。
動作するのであれば、同オプション付きでコンパイルするのも良いと思います。