WSL上で動作するLinuxディストリビューションは、オンラインインストールやMicrosoftストアから入手できるものだけではありません。 ここではRocky Linuxをインストールする手順を説明します。
さらに、高性能開発環境としてoneAPIをインストールし、それを利用して材料シミュレーション用のアプリケーションソフトウェアOpenMXをコンパイルするまで、を説明します。
WSL環境は構築済みとして説明します。 未完了の方は例えばこちらを参照してください。
RedHat Enterprise Linux (RHEL)互換ディストリビューションとして、長らくCentOSが君臨してきましたが、最新のStreamは、もはや我々が期待する互換ディストリビューション(ダウンストリーム)ではありません。 新たに複数のRHEL互換ディストリビューションが立ち上げられた中、Rocky Linuxは、AlmaLinuxと共にその中心的な役割を担うことが期待されています。
公式サイトDownloadから、WSL用のイメージをダウンロードします。
最新版は10系列ですが、追加インストールするソフトウェアの整備状況を考慮して、9系列の利用をおすすめします。Rocky-9-WSL-Base.latest.x86_64.wsl
それをダブルクリックすると、自動的にターミナルが起動し、インストールが始まります。
ユーザー名の入力を促されるので、入力してください。
Enter new UNIX username:
メッセージが表示されます。
Your user has been created, is included in the wheel group, and can use sudo without a password.
To set a password for your user, run 'sudo passwd matelier'
大雑把に言えば、以下の意味です。(一行目のみ)
作られたユーザーは管理者グループ(`wheel`)に追加されたので、パスワードなしに`sudo`実行できます。
以上でインストール完了です。
最初に各種ソフトウェアをアップデートすることをお勧めします。
(早速sudoコマンドが登場します。)
sudo dnf update -y
二回目以降の起動は、「ターミナル」を使います。 スタートメニューから選択して「ターミナル」を起動します。 ウィンドウ上部のタブの左の「v」をクリックして、プルダウンメニューから「rocky」を選択します。
追加ソフトウェアをインストールします。
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を選択し、
Operating SystemからLinuxを選択し、Installer TypeはYUM or Zypper (HPC ToolkitではYUM/DNF)を選択すると、右側に説明が表示されます。
YUM/DNF Prerequisites | Set Up the Repositoryをクリックすると詳細手順が表示されます。
まず、リポジトリの設定を行います。
両ツールキット共通の操作です。
/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-oneapi-base-toolkit
sudo dnf install intel-oneapi-hpc-toolkit
インストール先は/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は最適化に関するオプションですので、計算結果には影響を及ぼしません。
動作するのであれば、同オプション付きでコンパイルするのも良いと思います。