Install GAMESS under linux

Di kalangan mahasiswa Kimia sejak awal kita diperkenalkan dengan software-software standar seperti HyperChem dan ChemDraw sehingga seolah-olah kedua software tersebut adalah barang wajib di komputer ataupun laptop mereka. Rasanya ga afdol deh kalo belum install dua program itu hehešŸ™‚. Padahal di luar sana masih banyak lagi software yang bisa jadi alternatif daripada harus membajak atau meng-crack dua software komersial itu. Nah, salah satu alternatif itu adalah GAMESS.
GAMESS adalah singkatan dari General Atomic and Molecular Electronic Structure System. Kerja dari software ini hampir sama dengan HyperChem ataupun Gaussian 03 yaitu untuk melakukan perhitungan kimia komputasi. Beberapa hal yang dapat dikerjakan dengan GAMESS adalah optimasi geometri, perhitungan vibrasi, mencari keadaan transisi, menghitung sifat-sifat molekular seperti muatan atom dll. Level teori yang tersedia di GAMESS, meliputi HF, DFT,MP2 dan CCSDT. Dua level teori ini tidak tersedia di HyperChem. Saat ini GAMESS didistribusikan untuk keperluan dunia pendidikan.
Selain versi GAMESS windows juga terdapat GAMESS untuk Linux dan Macintosh, nah untuk mendapatkan GAMESS harus mengisi formulir dulu di siniĀ http://www.msg.chem.iastate.edu/GAMESS/GAMESS.html.


Setelah itu nanti dari pihak terkait akan mengirimkan link, username dan password untuk mendownload GAMESS. Ketika akan mendownload GAMESS tinggal memasukkan username dan passwordnya saja.
Sebenarnya saya sudah mendownload dua versi dari GAMESS, yaitu yang untuk windows xp dan linux, namun karena entah hilang atau terhapus, master GAMESS windows saya hilang dan kebetulan juga semalam baru berhasil compile GAMESS under linux maka dalam tulisan ini saya coba menjelaskan compile GAMESS under linux. Kompilasi ini saya lakukan di Slackware 13.1 kernel 2.6.33.4-smp, processor Intel Ā® Pentium(R) 4 CPU 3.06GHz RAM 2 GB. Perlu diingat saya tidak bertanggung jawab atas segala kerusakan yang ditimbulkan karena kesalahan dari kompilasi ini.
Langkah-langkah kompilasi ini saya ambil dari readme.unix GAMESS. Oke, mari kita mulai kompilasinyašŸ™‚
Ada beberapa hal yang perlu diperhatikan dalam kompilasi ini. Pertama berbeda dengan kompilasi program under linux lain yang menggunakan make, kompilasi GAMESS tidak menggunakan make, tapi fortran. Kedua distribusi linux standar tidak mengikutsertakan math library dalam file iso-nya jadi sebaiknya download dulu math library. Ada beberapa pilihan math library yaitu :MKL keluaran Intel, memang berbayar sih, tapi ada juga yang gratis. Kedua ACML keluaran AMD dan ATLAS. MKL dipaket menggunakan RPM jadi menurut saya cocok untuk distro yang menggunakan RPM sebagai paket dari programnya seperti RedHat, Fedora Core, OpenSuse, Mandriva dll. ACML saya belum pernah coba karena prosesor saya adalah Intel. Untuk itu sebelum mengkompilasi GAMESS, saya download ATLAS dari slackbuild.org (PLEASE, BACA DENGAN TELITI README.SLACKWARE ATLAS SEBELUM MENGINSTALL ATLAS). Karena ATLAS tergantung dengan BLAS, maka saya download juga blas dari slackbuild.org
Setelah semua siap yaitu ATLAS, BLAS dan GAMESS. Install BLAS terlebih dahulu. Oia, semua file tadi saya taruh di /tmp
Pertama-tama ekstrak blas.tar.gz dulu
root@darkstar:/tmp# tar zxfv blas.tar.gz
kemudian copy atau pindahkan file blas.tgz ke folder blas
root@darkstar:/tmp# cp blas.tgz blas/
lalu pindah ke direktori blas
root@darkstar:/tmp# cd blas
dan siap untuk instalasi
root@darkstar:/tmp/blas# ./blas.SlackBuild
kompilasi akan berjalan selama beberapa saat. Ketika kompilasi selesai akan dihasilkan file blas-20070405-i486-2_SBo.tgz. Langkah terakhir tinggal instal menggunakan installpkg.
root@darkstar:/tmp# installpkg blas-20070405-i486-2_SBo.tgz
Cara instalasi ATLAS yang didownload dari slackbuild.org juga sama. Jika kita menggunakan distro lain, dapat juga langsung menginstallnya dari repo. Misalnya untuk keluarga debian, ubuntu bisa menggunakan perintah apt-get install atau aptitude install atlas blas. Kemudian untuk keluarga RedHat bisa menggunakan perintah yum install atlas blas dan untuk suse zypper install atlas blas, tergantung dari distro linux yang kita gunakan.
Karena kompilasi GAMESS tidak menggunakan make, maka kita tidak perlu root untuk kompilasi. Langkah pertama dalam kompilasi GAMESS adalah mengekstrak file GAMESSnya. Di komputer saya file GAMESS saya letakkan di bawah di /home/neax_jst/tmp, jadi silakan sesuaikan perintahnya dengan di mana GAMESS anda berada.
neax_jst@darkstar:~/tmp$ tar zxfv GAMESS-current.tar.gz
lalu akan muncul folder GAMESS, maka langkah selanjutnya adalah pindah ke folder tersebut.
neax_jst@darkstar:~/tmp$ cd GAMESS
kemudian siap untuk kompilasi
neax_jst@darkstar:~/tmp/GAMESS$ ./config
maka akan muncul jendela langkah-langkah konfigurasi GAMESSnya. Di sana saya memasukkan linux32 sesuai dengan linux saya, lalu gfortran sebagai compilernya dan atlas sebagai math libraynya. Karena di slackware saya atlas tidak langsung berada di /usr/lib/atlas, maka saya edit install.infonya.
neax_jst@darkstar:~/tmp/GAMESS$ vi install.info
dan saya ganti bagian setenv GMS_MATHLIB_PATH /usr/lib/atlas menjadi setenv GMS_MATHLIB_PATH /usr/lib/libatlas.so
setelah ini, kemudian pindah ke direktori ddi untuk mengcompile ddi.
neax_jst@darkstar:~/tmp/GAMESS$ cd ddi
lalu compile ddi dengan perintah
neax_jst@darkstar:~/tmp/GAMESS/ddi$ ./compddi >& compddi.log
pastikan tidak error dalam kompilasi ini dengan mengecek compddi.log
DDI compilation ended successfully.
Sun Apr 24 17:40:32 WIT 2011
9.837u 1.658s 0:14.30 80.2% 0+0k 31272+12624io 143pf+0w
lalu pindahkan file ddikick.x ke direktori utama GAMESS
neax_jst@darkstar:~/tmp/GAMESS/ddi$ mv ddikick.x ..
setelah ini kembali lagi ke direktori/folder utama GAMESS
neax_jst@darkstar:~/tmp/GAMESS/ddi$ cd ..
dan compile semuašŸ˜€
neax_jst@darkstar:~/tmp/GAMESS$ ./compall >& compall.log
Kompilasi akan memakan waktu beberapa saat, proses ini membutuhkan resource prosesor yang tinggi sehingga pada bagian kompilasi ini saya lakukan di runlevel 3 Slackware (meniadakan grafis). Kompilasi akan berjalan beberapa menit, jam tergantung dari spesifikasi komputer kita.
Setelah kompilasi selesai cek apakah tidak ada eror selama kompilasi dengan melihat compall.lognya. Jika tidak ada pesan error, maka lanjut ke step berikutnya
——————- done with all compilations ——————–
Sun Apr 24 17:59:14 WIT 2011
1060.352u 20.012s 18:04.94 99.5% 0+0k 81024+317280io 2pf+0w
Langkah berikutnya adalah membuat link executable GAMESSnya
neax_jst@darkstar:~/tmp/GAMESS$ ./lked GAMESS 01 >& lked.log
cek lagi apakah tidak error dalam lked.log.
Kemudian edit runall dan rungms. Untuk runall ganti VERNO dengan versi GAMESS yang dibuat tadi, misalnya 01 dst dan edit di mana folder GAMESS diletakkan.
# Only the following two lines need to be customized:
#
chdir /home/neax_jst/tmp/GAMESS
set VERNO=01
Setelah ini edit rungms. Pada dasarnya sama dengan runall, edit di mana GAMESS diletakkan, kemudian berapa prosesor yang hendak digunakan, apakah GAMESS akan di paralel atau tidak. Ketelitian diperlukan dalam editing file ini.
Selesai dengan edit rungms ada satu hal lagi yang harus dilakukan adalah mengeset shared memory. Karena pengalaman saya, set shared memory penting agar GAMESS bisa berjalan. Kebanyakan sistem menggunakan System V shared memory untuk mengalokasikan memori untuk array terdistribusi dan dalam linux 32 bit, shmmax di set sangat kecil yaitu 32 MB sehingga perlu editing.
root@darkstar:/etc# vim sysctl.conf
karena RAM saya 2 GB saya masukkan nilai kernel.shmmax = 1610612736 sesuai dengan apa yang ada di readme.ddi. Untuk lebih jelasnya silakan membaca readme.ddi yang berada di folder GAMESS/ddi.
Setelah editing ini, reboot dan siap untuk mengetes GAMESS. Sebelum mengetes GAMESS buatlah dulu folder scr di bawah /home/$USER
neax_jst@darkstar:~$ mkdir scr
kemudian baru tes GAMESS
neax_jst@darkstar:~/tmp/GAMESS$ ./runall >& runall.log
Jika settingan di atas benar, GAMESS akan berjalan untuk beberapa saat dan setelah itu akan ada banyak sekali file log di folder GAMESS. Untuk mengetahui GAMESS telah berjalan dengan benar, maka cek saja apakah ada pesan eror dalam file log tersebut.
EXECUTION OF GAMESS TERMINATED NORMALLY Sun Apr 24 18:36:40 2011
DDI: 263224 bytes (0.3 MB / 0 MWords) used by master data server.

—————————————-
CPU timing information for all processes
========================================
0: 0.120 + 0.50 = 0.171
—————————————-
ddikick.x: exited gracefully.
unset echo
—– accounting info —–
Files used on the master node darkstar were:
-rw-r–r– 1 neax_jst plugdev 1136 2011-04-24 18:36 /home/neax_jst/scr/exam01.F05
-rw-r–r– 1 neax_jst plugdev 180012 2011-04-24 18:36 /home/neax_jst/scr/exam01.F08
-rw-r–r– 1 neax_jst plugdev 1341520 2011-04-24 18:36 /home/neax_jst/scr/exam01.F10
-rw-r–r– 1 neax_jst plugdev 14141 2011-04-24 18:36 /home/neax_jst/scr/exam01.dat
Sun Apr 24 18:36:43 WIT 2011
0.178u 0.053s 0:03.49 6.3% 0+0k 0+24io 0pf+0w
Agak berbeda dengan gaussian yang biasanya kata-katanya NORMAL TERMINATIONšŸ˜€. Sebagai tambahan agar GAMESS dapat langsung dieksekusi via konsole seperti gaussian, maka saya membuat symbolic link dari /home/neax_jst/tmp/gamess/rungms ke /usr/bin/gms.

root@darkstar:/tmp# ln -s /home/neax_jst/tmp/gamess/rungms /usr/bin/gms

dengan demikian user tinggal mengetikkan gms di konsole untuk memanggil GAMESS
Demikianlah kompilasi GAMESS di slackware saya. Jika ada pertanyaan silakan baca dulu readme.unix GAMESS untuk penjelasan lebih lengkapnya.
InsyaALLAH di artikel mendatang saya akan bahas tentang input GAMESS dan bagaimana menjalankan GAMESS berikut program visualisasinya.
Karena hari sudah malam saya mau tidur dulu ya.
semoga bermanfa’at.
šŸ˜€.

2 thoughts on “Install GAMESS under linux

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