WSL上で動作するLinuxディストリビューションは、オンラインインストールやMicrosoftストアから入手できるものだけではありません。 ここではRocky Linuxをインストールする手順を説明します。
さらに、高性能開発環境としてoneAPIをインストールし、それを利用して材料シミュレーション用のアプリケーションソフトウェアOpenMXをコンパイルするまで、を説明します。
WSL環境は構築済みとして説明します。 未完了の方は例えばこちらを参照してください。
RedHat Enterprise Linux (RHEL)互換ディストリビューションとして、長らくCentOSが君臨してきましたが、最新のStreamは、もはや我々が期待する互換ディストリビューション(ダウンストリーム)ではありません。 新たに複数のRHEL互換ディストリビューションが立ち上げられた中、Rocky Linuxは、AlmaLinuxと共にその中心的な役割を担うことが期待されています。
公式サイトDownloadから、WSL用のイメージをダウンロードします。
最新版は10系列です。Rocky-10-WSL-Base.latest.x86_64.wsl
2025年6月の10.0リリースから更新を経て、追加インストールするソフトウェアを含めて整備されています。
ダウンロードしたファイルをダブルクリックすると、自動的にターミナルが起動し、インストールが始まります。
ユーザー名の入力を促されるので、入力してください。
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」を選択します。
gnuplotは標準のパッケージ・リポジトリにはありません。
拡張パッケージEPELからインストールします。
sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled crb
sudo dnf install -y --enablerepo=epel gnuplot
スタック領域が制限されていることがあります。
$ ulimit -s
8192
シミュレーションの実行に際しては、スタック領域が不足することがあります。 制限を外した方が良いでしょう。
ulimit -s unlimited
毎回実行するのは面倒なので、.bashrcに追記すると良いでしょう。
Rocky (WSL)から、Windowsコマンドが実行できると便利な場合があります。
実行できない場合は、interop機能が無効になっています。
$ explorer.exe
-bash: /mnt/c/Windows/explorer.exe: cannot execute binary file: Exec format error
下記コマンドの実行結果がNOT REGISTEREDであれば、interopは無効です。
cat /proc/sys/fs/binfmt_misc/WSLInterop 2>/dev/null || echo "NOT REGISTERED"
interopを有効にするには、/etc/wsl.confに以下の記述を追加します。
[interop]
enabled = true
appendWindowsPath = true
Rocky (WSL)を再起動すると、有効になります。
Intel社製高性能コンパイラIntel oneAPI Toolkits、通称Intelコンパイラです。
(かつて分かれていたBase ToolkitとHPC Toolkitは、2026.0リリースからoneAPI Toolkitに統合されました。)
タブからDownloadを選択し、
PackagesからIntel oneAPI Toolkitを選択し、Operating SystemからLinuxを選択し、Installer Typeは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-toolkit
インストール終了後、Configure a YUM/DNF System After Installationの指示に沿って、下記コマンドを実行します。
sudo yum update
sudo yum -y install cmake pkgconfig
sudo yum groupinstall "Development Tools"
oneAPIのインストール先は/opt/intel/oneapi/です。
使用前に、次のコマンドで環境設定します。
.bashrcなどに追加すると良いでしょう。
source /opt/intel/oneapi/setvars.sh
最新版4.0.1は、4.0に対するパッチ形式で配布されています。
以下の二つファイルをダウンロードします。
パッチの当て方は、README.txtの冒頭に詳しい説明があります。
sourceディレクトリに移動して、makefileを以下のように修正します。
--- makefile.org 2026-04-26 08:16:00.000000000 +0900
+++ makefile 2026-07-17 18:08:41.877988404 +0900
@@ -5,9 +5,9 @@
# #
###################################################################
-MKLROOT = /opt/intel/oneapi/mkl/2025.3
-CC = mpiicx -O3 -xHOST -fcommon -Wno-implicit-function-declaration -ipo -qopenmp -I${MKLROOT}/include -I${MKLROOT}/include/fftw
-FC = mpiifx -O3 -xHOST -qopenmp -ipo
+# MKLROOT = /opt/intel/oneapi/mkl/2025.3
+CC = mpiicx -O3 -fcommon -Wno-implicit-function-declaration -ipo -qopenmp -I${MKLROOT}/include -I${MKLROOT}/include/fftw
+FC = mpiifx -O3 -qopenmp -ipo
LIB= -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lifcore -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl
MKLROOTは、oneAPIの環境設定の一部として自動的に設定されます。
makeコマンドでコンパイルします。
make install
実行形式ファイルopenmxはworkディレクトリにコピーされます。
OpenMXに標準添付のmakefileでは、オプション-xHOSTが指定されていましたが、上記修正では削除しました。
同オプションを指定すると、生成される実行形式ファイルopenmxが実行できない(AMDのCPUを搭載した計算機で、下記メッセージを出力して直ちに終了する)場合があったためです。
This executable is built with target processor feature specified, it can only be run on Intel(R) processors.
-xHOSTは最適化に関するオプションですので、計算結果には影響を及ぼしません。
動作するのであれば、同オプション付きでコンパイルするのも良いと思います。