compile nwchem with openmpi, python, fftw3

Assalamu’alaikum warahmatullahi wabarakatuh..

Sebenarnya aku tidak terlalu tertarik mengkompilasi ulang NWChem lagi karena butuh waktu lama dan asal sudah bisa dipakai ya sudah. Namun demikian, beberapa waktu lalu aku mendapatkan email dari teman di lab yang kesulitan mengkompilasi NWChem yang disupport OpenMPI. Hmm, jadi tertarik nih😀.

Di tulisan sebelumnya sudah dijelaskan bagaimana cara kompilasi OpenMPI secara manual, meski demikian kita bisa saja menginstallnya dari repo distro linux yang digunakan, kalau untuk suse bisa menggunakan YAST, cari saja paket OpenMPI dan OpenMPI dev. Selalu ingat, kompilasi sering membutuhkan paket dev dari sebuah program.

Berikut step yang aku gunakan ->

export NWCHEM_TOP=`pwd`
cd $NWCHEM_TOP/src
sebelum lanjut edit dulu file config/makefile.h, ganti baris berikut
EXTRA_LIBS +=    -lnwcutil  -lpthread -lutil -ldl

menjadi

EXTRA_LIBS +=    -lnwcutil  -lpthread -lutil -ldl -lz -lssl

lalu install python-dev, misalnya python2.7-dev (tergantung versi python yang digunakan)
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES=”all python”
export PYTHONHOME=/usr/
export PYTHONVERSION=2.7
export USE_PYTHON64=y
export BLASOPT=”-L/opt/intel/composer_xe_2011_sp1.9.293/mkl/lib/intel64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread -lm  -llapack  -lblas”
export MKLROOT=/opt/intel/composer_xe_2011_sp1.9.293/mkl/
export ifort=”ifort -i8 -I$MKLROOT/include”
export export USE_FFTW3=yes
export FFTW3_LIB=/usr
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LOC=/usr
export MPI_INCLUDE=/usr
export MPI_LIB=/usr
export TCGRSH=/usr/bin/ssh
export LIBMPI=”-lmpi -lopen-rte -lopen-pal -ldl -lmpi_f77 -lpthread”
make nwchem_config
make FC=ifort >& make.log &

untuk melihat progres kompilasi gunakan perintah tail
tail -f make.log

notes : pemilihan opsi library pada MKL tergantung dari produk intel apa saja yang kita miliki, kalau aku sih hanya punya intel fortran compiler dan MKL saja. Lebih jelasnya bisa menggunakan MKL link advisor. Dengan semua opsi di atas kita telah membuat support python, OpenMPI, fftw, MKL ke NWChem yang dikompilasi (sekalian saja semua digunakan :D).

Untuk mengetesnya aku menggunakan Nitrogliserin yang dioptimasi menggunakan HF/6-31g(d)

nitro$mpirun -n 2 /home/rigaku/neax/program/nwchem-6.1/bin/LINUX64/nwchem nitrogliserin.nw >& nitrogliserin.out
berikut input yang aku gunakan ->

scratch_dir /home/rigaku/scr
echo

start molecule

title “Title”
charge 0

geometry units angstroms print xyz autosym
C       -1.80000        1.90000        0.20400
H       -0.93600        2.51700        0.39000
C       -1.32200        0.49100       -0.09500
C       -2.66500        2.52700       -0.88300
O       -2.66700        1.93000        1.34100
N       -2.09600        1.93100        2.55400
O       -0.91200        1.87800        2.60900
O       -2.48900       -0.26000       -0.42800
N       -2.29100       -1.54800       -0.72900
O       -1.18000       -1.95700       -0.68400
O       -1.81400        2.54700       -2.02800
N       -2.33900        3.07300       -3.14100
O       -3.44400        3.49200       -3.07800
H       -0.83600        0.05800        0.76400
H       -0.63900        0.50100       -0.93000
H       -2.94200        3.53100       -0.60700
H       -3.54800        1.94400       -1.08300
O       -3.27600       -2.12300       -1.00800
O       -1.60800        3.05000       -4.06000
O       -2.86900        1.98600        3.43300
end

basis
* library 6-31G*
end

task scf optimize

Oke, cukup sekian dan semoga bermanfa’at!

 

 

 

One thought on “compile nwchem with openmpi, python, fftw3

  1. Pingback: compiling NWChem 6.3 « neax502 simple blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s