LoginSignup
1
0

More than 1 year has passed since last update.

OpenMXのインストール

Last updated at Posted at 2022-11-21

OpenMX

オープンソースの第一原理計算アプリケーションソフトウェアです。原子局在基底と擬ポテンシャルを用いて、結晶・界面・溶液などの広範な物理系に対して電子状態計算を行います。公式サイトはこちらをご参照ください。

環境

Ubuntu on WSL2を前提とします。
Ver. 3.9.9です。

最初に必要なパッケージを準備する

sudo apt update
sudo apt upgrade -y
sudo apt install build-essential

OpenMXのインストール準備

OpenMXをダウンロード、解凍して当該ディレクトリへ移動

任意の場所にDFT用のディレクトリを作成する。例えば「DFT」という名称のディレクトリを作る。その後、作成したディレクトリに移動する。

mkdir DFT
cd DFT

OpenMXのWebサイトのDownloadの「openmx3.9」で右クリックしてリンクのアドレスをコピー。

そのあとWSLのコマンドラインに戻って、wgetと入力した後右クリックして貼り付けしてEnter。ダウンロードされる(2022/9/22時点では以下)。

wget http://t-ozaki.issp.u-tokyo.ac.jp/openmx3.9.tar.gz

同様に、「+patch」で右クリックしてリンクのアドレスをコピー。
wget入力して貼り付けしてEnter。ダウンロードされる(2022/9/22時点では以下)。

wget http://www.openmx-square.org/bugfixed/21Oct17/patch3.9.9.tar.gz

次に、解凍。

tar xvfz openmx3.9.tar.gz

ディレクトリに入る。

cd openmx3.9

中には以下のディレクトリが見つかるはず。

ls
  • DFT_DATA19 ← 基底関数&擬ポテンシャル
  • source ← プログラムのソースファイル
  • work ← サンプルファイル

ソースにパッチを適用する

もともとのsourceディレクトリ(Ver.3.9用)にパッチを適用した、source3.9.9を作成する。

mkdir patch
mv ../patch3.9.9.tar.gz ./patch/

cp -rp source source3.9.9
cd source3.9.9
tar xvfz ../patch/patch3.9.9.tar.gz
mv kpoint.in ../work/

OpenMXのコンパイル(方法1: ストレージ容量に余裕のある場合, recommended)

インストールで必要なパッケージをIntel oneAPI Toolkitsで入手する

cd

Windows上でIntel oneAPI Toolkitsにアクセスして、Intel oneAPI Base ToolkitとIntel oneAPI HPC Toolkitを以下の通りインストールする。

まず、Intel oneAPI Base Toolkitのダウンロードをクリック。

  • Operating system: Linux
  • Select distribution: Online

を選択して、表示される'Command Line Download'に記載のコードをUbuntu上で実行する。
すると、インストール画面が別ウインドウで立ち上がるので、画面の指示に従ってインストールする。
(カスタムインストールを選択する場合は、Math Carnel Libraryを必ずインストールすること)

続いて、Intel oneAPI HPC Toolkitのダウンロードをクリック。上と同様にインストールする。
カスタムインストールにて、DPC++/C++ Compiler, MPI Library, Fortran Compilerをインストールする。

Intel oneapiで入手したコンパイラのPATHを通す

cd
vim .bashrc

で開いて、最後に行を追加して以下を入力して保存する。

source /opt/intel/oneapi/setvars.sh

そして、以下のコマンドでPATHを反映させる。

source .bashrc

ちゃんとインストールできたか確認する。バージョンとか表示されればOK。

icc -v

makefileを編集する

cd DFT/openmx3.9/source3.9.9
vim makefile

openmx3.9.9/source/makefileを次のように編集する。

MKLROOT = /opt/intel/oneapi/mkl/latest
CC = mpiicc -O3 -ip -no-prec-div -qopenmp -I$(MKLROOT)/include/fftw
FC = mpiifort -O3 -ip -no-prec-div -qopenmp
LIB= -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lifcore

makeする

make -j

エラーが出たら何回も繰り返す。
最後に、以下で終わり。

make install

OpenMXのコンパイル(方法2: ストレージ容量に余裕のない場合)

インストールで必要なパッケージをUbuntuのaptで入手したあと、makefileを作成する

こちらを参照。

makeする

make -j

エラーが出たら何回も繰り返す。
最後に、以下で終わり。

make install

OpenMXの実行テスト

cd ~/DFT/openmx3.9/work/

に移動して、以下を実行する

mpirun -np 8 ./openmx -runtest -nt 2 > log.txt & # 最後に&をつけることでバックグラウンド実行されます
# -np X (並列数), -nt Y (並列数)

※もしIntelMPIのmpirunでバックグラウンドで実行したときに勝手に計算が止まるようなら、以下のようにするといいかも。

mpirun -np 8 ./openmx -runtest -nt 2 </dev/null>& log.txt &

実行状況は以下で確認、停止、再開できます。

jobs # 状況確認
bg XXXX # jobsで確認した停止中のジョブ番号XXXXを再開する
kill XXXX # jobsで確認した実行中のジョブ番号XXXXを停止する

OpenMXの実行

コンパイルして作成したファイル(openmx)と、インプットファイル(xx.dat)を同一ディレクトリに格納したうえで、

mpirun -np 8 ./openmx xx.dat -nt 2 </dev/null>& log.txt &
# CPU実行コア数 8とか2とかは環境に応じて

を実行する。

実行中のlog.txtファイルを見たいときは

tail -F log.txt
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0