TRUBA’da Gaussian Programının Kurulumu

Altyapıda Gaussian’ın farklı versiyonları sıkıntısız bir şekilde çalışmaktadır. En yüksek performansı almak için işin gönderileceği işlemciye uygun (Intel AVX, AVX2 ve AVX512) Gaussian versiyonunu kullanmak önemlidir. Aksi taktirde eski nesil işlemciler ile yeni nesil işlemciler üzerinde çalışan uygulamada sadece frekans hızından kaynaklı bir farklılık hissedilebilir.

Gaussian’da (tüm versiyonları için) performansı (aynı zamanda diğer kullanıcıların işlerinin performansını) etkileyen bir diğer durum ise, işin çalışması sırasında oluşturulan geçici dosyaların hangi dizinde oluşturulacağıdır. Gaussian yoğun biçimde I/O işlemleri yapan bir uygulamadır. Bu nedenle geçici dosyalar kullanıcının ev dizininde değil, işin çalıştığı hesaplama sunucusunun yerel /tmp dizininde oluşturulmalıdır. Bu şekilde Gaussian’ın I/O işlemlerinden hem diğer kullanıcıların işleri etkilenmeyecek, hem de yerel disklerin erişim hızları yüksek olduğu için Gaussian’ın genel performansı yükselecektir.

Aşağıda Gaussian programının g16 versiyonunun TRUBA altyapısında derlenmesi için gerekli adımlar verilmiştir. Siz de aşağıdaki adımları takip ederek kurulumunu kendi ev dizininizde yapabilirsiniz. g09 versiyonu aynı adımlar izlenerek kurulabilir.

Uygulanacak adımlar:

1. Gaussian’ın binary olarak dağıtılan bir paket program olduğu için, sadece arşiv paketini açmak kurulum için yeterlidir, herhangi bir derlemeye gerek bulunmamaktadır. Öncelikle kaynak kodunu kendi ev dizininize alınız. Kaynak kodu sıkıştırılmış dosya formatında (*.tar veya *.tar.gz vb.) olduğu için açmak için aşağıdaki komutlardan dosya formatınıza uygun olanı kullanınız.

tar -xvf gaussian16.tar
tar -xvf gaussian16.tgz

2. Bu adımda programınızı çalıştıran g16 (executable) kodunun olduğu dizini (g16a3) kendi ev dizininize kopyalayarak adını g16 olarak değiştirin.

/truba/home/kullaniciadi/ctafs/apps/gaussian/legacy_g16/g16a3
cp -r g16a3 /truba/home/kullaniciadi/
mv g16a3 g16

3. Programı kullanmak için bazı çevre değişkenleri tanımlanmalıdır. Bu tanımlar .profile (yada .bashrc ) dosyasının içinde yapılabileceği gibi slurm dosyasının içerisinde de yapılabilir.

.bashrc Dosyasının Oluşturulması

Bu bölümde .bashrc dosyasının oluşturularak programı çalıştırma işlemi gösterilecektir. İlk olarak terminalinizden ~/.bashrc dosyanınızı herhangi bir editör yardımıyla açınız.

emacs -nw ~/.bashrc   # Bu kod satırı **emacs** editör kullanılarak .bashrc dosyanızı açar. Siz de vi ya da nano gibi editörlerle aynı işlemi uygulayabilirsiniz.

Dosyanın içerisine aşağıdaki komutları yazınız.

export g16root=/truba/home/kullaniciadi
export GAUSS_SCRDIR=/tmp
. $g16root/g16/bsd/g16.profile

Uyarı

.bashrc dosyanızın hemen aktif olması için source ~/.bashrc komutunu uygulayınız.

Programı çalıştırmak için $g16root/g16/g16 <jobname.gjf>> out & komutunu giriniz.

SLURM Betik Dosyasının Oluşturulması

Slurm dosyası oluşturmak için aşağıdaki komut satırlarını kendi işinize göre uyarlayarak kopyalayınız.

Barbun kümesi için örnek SLURM betik dosyası

Gaussian09-barbun.slurm

#!/bin/bash
#SBATCH -p mid2
#SBATCH -A kullaniciadi
#SBATCH -J jobname
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=20
#SBATCH --time=2-12:00:00
#SBATCH --workdir=/truba/scratch/kullaniciadi/hesaplama_yapilan_dizin
#SBATCH --output=jobname.out
#SBATCH --error=slurm-%j.err

export g09root=/truba/home/kullaniciadi
export GAUSS_SCRDIR=/tmp/$SLURM_JOB_USER/g16.$SLURM_JOB_ID
. $g09root/g09/bsd/g09.profile

if [ -d "$GAUSS_SCRDIR" ]
then
rm -rf $GAUSS_SCRDIR
else
mkdir -p $GAUSS_SCRDIR
fi

$g09root/g09/g09 < /truba/scratch/kullaniciadi/hesaplama_yapilan_dizin/jobname.gjf

rm -rf $GAUSS_SCRDIR

exit

Hamsi kümesi için örnek SLURM betik dosyası

Gaussian09-hamsi.slurm

#!/bin/bash
#SBATCH -p hamsi
#SBATCH -A kullaniciadi
#SBATCH -J jobname
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=28
#SBATCH --time=12:00:00
#SBATCH --workdir=/truba/scratch/kullaniciadi/hesaplama_yapilan_dizin
#SBATCH --output=jobname.out
#SBATCH --error=slurm-%j.err

export g09root=/truba/home/kullaniciadi
export GAUSS_SCRDIR=/tmp/$SLURM_JOB_USER/g16.$SLURM_JOB_ID
. $g09root/g09/bsd/g09.profile

if [ -d "$GAUSS_SCRDIR" ]
then
rm -rf $GAUSS_SCRDIR
else
mkdir -p $GAUSS_SCRDIR
fi

$g09root/g09/g09 < /truba/scratch/kullaniciadi/hesaplama_yapilan_dizin/jobname.gjf

rm -rf $GAUSS_SCRDIR

exit

Not

Diğer kümelerdeki minimum çekirdek sayıları için https://docs.truba.gov.tr/TRUBA/kullanici-el-kitabi/hesaplamakumeleri.html ziyaret ediniz.

#SBATCH --time=12:00:00 satırını daha uzun süreli hesaplarınız için saat yerine gün olarak #SBATCH --time=2-00:00:00 (2 gün) şeklinde değiştirebilirsiniz.

Süreyi ve hesaplama kümesini kurallar dahilinde değiştirebilirsiniz: https://docs.truba.gov.tr/TRUBA/kullanici-el-kitabi/hesaplamakumeleri.html#kuyruklar-partitions

#SBATCH --workdir=/truba/scratch/kullaniciadi hesaplama_yapilan_dizin satırını hesap yaptığınız dizine göre değiştirmelisiniz. Hesap yaptığınız dizini öğrenmek için terminalde pwd komutunu kullanabilirsiniz.

export g09root=/truba/home/kullaniciadi export GAUSS_SCRDIR=/tmp/$SLURM_JOB_USER/g16.$SLURM_JOB_ID . $g09root/g09/bsd/g09.profile

export g09root=/truba/home/kullaniciadi satırındaki /truba/home/kullaniciadi kısmını g09 yazılımının bulunduğu dizine göre düzenlemeniz gerekmektedir.

. $g09root/g09/bsd/g09.profile g09.profile bulunduğu dizinin yerini veriniz.

/truba/scratch/kullaniciadi/hesaplama_yapilan_dizin/jobname.gjf satırındaki .gjf uzantılı dosya yerine com uzantılı dosya kullanılıyorsa .com şeklinde değiştirilmelidir.

Yukarıdaki SLURM betik dosyasını oluşturduktan sonra sbatch job.slurm komutu ile işlerinizi çalıştırabilirsiniz.

Uyarı

g09 versiyonu benzer adımlar izlenerek kurulabilir. g16 kurulumundan farklı olarak: Arşivden çıkan dosya direkt g09 dizinini çıkartır. Bu nedenle yukarıda gösterilen 2. adımı uygulamanıza gerek yoktur.Yukarıdaki adımlardan farklı olarak yapmanız gereken ilgili komut satırlarının g16 yerine g09 ile değiştirilmesidir.