Ecalj program

From Ecal

Jump to: navigation, search

What's new?

  • マークグループのzgemmを使う方式を取りこみGW計算が大幅に高速化しました。
  • wannier,screened RPAの計算を正式にサポートしました。

( Aug. 2014)


Contents

download

[1] からdownload可能です。

  • contributeしてくださる方はgitの方をdownloadしてどこかへrepositoryを置いてください。

branch

master: stable programです。(通常はこちらをお使いください。)
| +-mpi_spin: spinがMPI並列をしてあります。
+-- CheckModule 次期master branchです。


compile

ROOTDIRをecaljをinstallしたdirectoryとしてます。

directory構成は以下になっています。

drwxr-xr-x  7 kino kino  4096  8月 21 21:33 CMDsample
drwxr-xr-x  4 kino kino  4096  8月 21 21:33 Document
drwxr-xr-x  8 kino kino  4096  8月 21 21:33 MATERIALS
-rw-r--r--  1 kino kino 19969  8月 21 21:33 README
drwxr-xr-x  3 kino kino  4096  8月 21 21:33 StructureTool
drwxr-xr-x  9 kino kino  4096  8月 21 21:33 TOOLS
drwxr-xr-x 32 kino kino  4096  8月 22 14:38 TestInstall    --- program test
drwxr-xr-x 13 kino kino  4096  8月 22 16:48 fpgw           --- GW package (GW)
drwxr-xr-x 14 kino kino  4096  8月 21 22:33 lm7K           --- LM package (DFT) 
-rwxr-xr-x  1 kino kino   189  8月 21 21:33 mbackup
-rwxr-xr-x  1 kino kino    70  8月 21 21:33 mrestore

lm7Kのmake

ROOTDIR/lm7K/ directoryでmakeをします。serial版とMPIK版(MPIでのk点並列)が別になっておりどちらも必要です。

コンパイルにはMakefile内にある PLATFORM= を適切なものに変えてください。

例えばserial版の

PLATFORM=ifort

はMAKEINC/Make.inc.ifortの設定を読み込みます。

MPIK版では

PLATFORM=ifort_mpik

はMAKEINC/Makeinc.ifort_mpikを読み込みます。 serial版とMPIK版の違いは-DMPIKを指定しているかどうかの違いです。MPIK版はlmf-MPIK,lmfgw-MPIKを作ります。

GWのmake

ROOTDIR/fpgw/exec directoryでmakeします。こちらはMPI版 programを作ります。環境毎のファイルmake.inc.*を使います。 makefileがmake.inc.*を読み込みます。make.inc.*サンプルのどれかを使えます。また、自分で新規に作っても構いません。

programのテスト

intel fortranで開発を行っており、intel fortranでは普通は問題なくprogramが作成されるはずで、以下の過程は飛ばしても構いません。 他のコンパイラやaggressiveにoptimizeしたい場合は以下のテストを行った方が良いでしょう。

lm7Kのシリアル版、MPIK版、GWをコンパイルした後に ROOTDIR/TestInstallにてprogramのテストを行います。 ここでmakeとすると使い方が説明されます。

$ make
NAME
	Makefile - makefile script to test and check ecalj programs.
...
DESCRIPTION
	To show all available test targets,
		make show-target

	To perform a test, for example, copt under lm7k,
		make copt

	To perform two tests successively, for example,
        copt under lm7k and si_gwsc under fpgw,
		make copt si_gwsc

	To perform all tests under lm7k,
		make lmall

	To perform all tests under fpgw,
		make gwall

	To perform all tests under lm7k and fpgw,
		make all

...
  • make lmallで実行されるLMのテストは各directoryのMakefileでprogram実行の仕方が記述してあります。環境に合わせて適宜変更してください。
  • GWは多くのprogramから成っています。make gwallで実行されるGWテストはshell scriptでいくつかのprogramを動かします。

ROOTDIR/fpgw/exex/以下の epsPP_lmfh epsPP_lmfh_chipm eps_lmfh eps_lmfh_chipm gw_lmfh gwsc gwsc1shot_diag はshell scriptになっており,LM、GWの実行を制御します。 mpi実行の仕方もscript毎に記述してあります。標準では

mpirun -np $MPI_SIZE program

ですが環境に合わせて適宜変更してください。cray+LSFの環境は面倒な変更が必要ですが京都大学で動かすための修正例もコメントアウトされてgwscの中にあります。


DFTのテストは

make lmall

GWのテストは

make gwall

です。

テスト結果

make gwallでは

PASSED: gas_eps_lmfh EPS0001.nlfc.dat
PASSED: gas_eps_lmfh EPS0002.nlfc.dat
PASSED: gas_eps_lmfh EPS0003.nlfc.dat
PASSED: gas_eps_lmfh EPS0004.nlfc.dat
PASSED: gas_eps_lmfh EPS0001.dat
PASSED: gas_eps_lmfh EPS0002.dat
PASSED: gas_eps_lmfh EPS0003.dat
PASSED: gas_eps_lmfh EPS0004.dat

PASSED: gas_epsPP_lmfh EPS0001.nlfc.dat
PASSED: gas_epsPP_lmfh EPS0002.nlfc.dat
PASSED: gas_epsPP_lmfh EPS0003.nlfc.dat
PASSED: gas_epsPP_lmfh EPS0004.nlfc.dat

PASSED: fe_epsPP_lmfh_chipm ChiPM0001.nlfc.mat
PASSED: fe_epsPP_lmfh_chipm ChiPM0002.nlfc.mat
PASSED: fe_epsPP_lmfh_chipm ChiPM0003.nlfc.mat
PASSED: fe_epsPP_lmfh_chipm ChiPM0004.nlfc.mat
PASSED: fe_epsPP_lmfh_chipm ChiPM0005.nlfc.mat

...

と言う表示がでるはずです。

nio_gwscは精度が悪く、FAILEDという表示が出ることがありますが、詳細を確認していただき

FAILED: nio_gwsc QPU compared by ./bin/dqpu
PASSED: nio_gwsc diffnum

とdiffnumのテストにPASSEDしていましたら問題はありません。


標準的には make si_gwsc gas_gwsc nio_gwsc のテストを実行すれば十分です。この場合はROOTDIR/fpgw/exec/gwscのみを環境に合わせ修正してください。

Personal tools