Örnek PBS Betik Dosyaları
TR-Grid sitesinden
PBS Betiğinin ana yapısını oluşturan maddeleri oluşturan bir PBS betiğini aşağıda bulabilirsiniz.
Örnek pbs: Helloworld
Aşağıdaki pbs betiğinde helloworld programı çalıştırılmaktadır.
#!/bin/sh
#sh dili ile hazirlanmis bir betik
#
#PBS –q sgdemo@ce.ulakbim.gov.tr
#PBS –n ornek_pbs
#PBS –l nodes=1:ppn=1
#PBS –V
#
#
#Isinizin bulundugu calisma dizinini belirtir
#
export CALISMA_DIZINI=“$HOME/egitim20/pbs”
#
#Isin calisacagi hesaplama dugumlerinin PBS sunucusu tarafından belirlenmesinin ardından,
#bu belirlenen sunucularin kaydedilmesini saglar. Ozellikle MPI isi calistiracaklar icin
#onemlidir
#Kullanılacak program/kutuphane/derleyici ile ilgili modullerin sisteme yüklenmesi.
#Burada <module_adı> kısmı kullanılacak module ile degistirilmelidir.
. /usr/share/Modules/init/sh
module load <module_adı>
if [ "x$PBS_NODEFILE" != "x" ] ; then
echo "PBS Nodefile: $PBS_NODEFILE“ HOST_NODEFILE=$PBS_NODEFILE
fi
if [ "x$LSB_HOSTS" != "x" ] ; then
echo "LSF Hosts: $LSB_HOSTS"
HOST_NODEFILE=`pwd`/lsf_nodefile.$$
for host in ${LSB_HOSTS}
do
echo $host >> ${HOST_NODEFILE}
done
fi
if [ "x$HOST_NODEFILE" = "x" ]; then
echo "No hosts file defined. Exiting..."
exit
fi
#Isin calisacagi dizine girilmesini saglar
cd $CALISMA_DIZINI
#Isinizin calistigi hesaplama dugumlerinin isimlerini calisma dizininide nodes isimli dosyada saklar
cat $HOST_NODEFILE > nodes
#Calistiracaginiz isin calistirilabilir dosyasi olan helloworld dosyasini belirtir, isin standart
#ciktisini calisma dizininiz icinde out dosyasina ve standart hata dosyasini calisma dizininizde
#err dosyasina kaydeder
$PATH/egitim20/pbs/helloworld >out 2>err
Örnek pbs: Namd
Aşağıdaki pbs betiğinde namd programı çalıştırılmaktadır.
#!/bin/sh
#
#PBS -q trgridb@ce.ulakbim.gov.tr
#PBS -N namd_IB
#PBS -l nodes=2:ppn=4
#
## PBS değişkenleri sisteme gönderiliyor
#PBS -V
#
## Gerekli modüllerin yüklenmesi
. /usr/share/Modules/init/sh
module load tr-01-ulakbim/application/namd2.7/gcc
## Çalışma dizinine giriliyor
export CALISMA_DIZINI=$HOME/namd
cd $CALISMA_DIZINI
if [ "x$PBS_NODEFILE" != "x" ] ; then
echo "PBS Nodefile: $PBS_NODEFILE"
HOST_NODEFILE=$PBS_NODEFILE
fi
if [ "x$LSB_HOSTS" != "x" ] ; then
echo "LSF Hosts: $LSB_HOSTS"
HOST_NODEFILE=`pwd`/lsf_nodefile.$$
for host in ${LSB_HOSTS}
do
echo $host >> ${HOST_NODEFILE}
done
fi
if [ "x$HOST_NODEFILE" = "x" ]; then
echo "No hosts file defined. Exiting..."
exit
fi
CPU_NEEDED=`cat $HOST_NODEFILE | wc -l`
mpirun -np $CPU_NEEDED -machinefile $HOST_NODEFILE $NAMD_HOME/namd2 AAmin2.conf > ../out 2> ../err
Örnek pbs: Vasp
Aşağıdaki pbs betiğinde vasp programı çalıştırılmaktadır.
#!/bin/bash #PBS -q trgridb@ce.ulakbim.gov.tr #PBS -N vasp_ib #PBS -l nodes=8:ppn=1 #PBS -l mem=1gb #PBS -V . /usr/share/Modules/init/sh module load tr-01-ulakbim/compiler/intel11.0/cpp/intel64 module load tr-01-ulakbim/compiler/intel11.0/fortran/intel64 module load tr-01-ulakbim/library/intel10.1/mkl/em64t module load tr-01-ulakbim/library/mvapich-1.1.0/intel export CALISMA_DIZINI=$HOME/vasp if [ "x$PBS_NODEFILE" != "x" ] ; then echo "PBS Nodefile: $PBS_NODEFILE" HOST_NODEFILE=$PBS_NODEFILE fi if [ "x$HOST_NODEFILE" = "x" ]; then echo "No hosts file defined. Exiting..." exit fi cd $CALISMA_DIZINI cat $HOST_NODEFILE > nodes CPU_NEEDED=`cat $HOST_NODEFILE | wc -l` cd $CALISMA_DIZINI rm -rf ./err ./out mpirun -np $CPU_NEEDED -machinefile $HOST_NODEFILE ./vasp >out 2>err
Örnek pbs: Espresso
Aşağıdaki pbs betiğinde espresso programı çalıştırılmaktadır.
#!/bin/sh
#
#PBS -q trgridb@ce.ulakbim.gov.tr
#PBS -N namd_IB
#PBS -l nodes=2:ppn=4
#
## PBS değişkenleri sisteme gönderiliyor
#PBS -V
#
## Gerekli modüllerin yüklenmesi
./usr/share/Modules/init/sh
module load tr-01-ulakbim/application/namd2.7/gcc
## Çalışma dizinine giriliyor
export CALISMA_DIZINI=$HOME/namd
export ESPRESSO_HOME=/home_palamut1/software/tr-01-ulakbim/application/espresso-4.1.1-mkl
cd $CALISMA_DIZINI
if [ "x$PBS_NODEFILE" != "x" ] ; then
echo "PBS Nodefile: $PBS_NODEFILE"
HOST_NODEFILE=$PBS_NODEFILE
fi
if [ "x$LSB_HOSTS" != "x" ] ; then
echo "LSF Hosts: $LSB_HOSTS"
HOST_NODEFILE=`pwd`/lsf_nodefile.$$
for host in ${LSB_HOSTS}
do
echo $host >> ${HOST_NODEFILE}
done
fi
if [ "x$HOST_NODEFILE" = "x" ]; then
echo "No hosts file defined. Exiting..."
exit
fi
CPU_NEEDED=`cat $HOST_NODEFILE | wc -l`
mpirun -np $CPU_NEEDED -machinefile $HOST_NODEFILE $ESPRESSO_HOME/bin/pw.x -npool $CPU_NEEDED -input phononGamma.scf.in > out.phononGammae40.scf
Örnek pbs: R
Aşağıdaki pbs betiğinde R programı çalıştırılmaktadır.
#!/bin/sh # #PBS -q trgridb #PBS -N R #PBS -l nodes=1:ppn=1 # ## Export all my environment variables to the job #PBS -V # ## Change to my working directory export CALISMA_DIZINI=$HOME/R cd $CALISMA_DIZINI . /usr/share/Modules/init/sh module load tr-01-ulakbim/application/R-2.10.0/intel R -f Single-inputs.txt >output 2>error
Örnek pbs: Gaussian03
Gaussian lisanslı bir programdır ve genellikle her kullanıcının kendi ev dizinine kurulmuştur. Bu nedenle kullanıcılar aşağıdaki betiği kullanırlarken, betiği kendi kurulumlarına ve ihtiyaçlarına göre değiştirmek durumundadırlar. Tüm kullanıcıların kullanımına açık bir Gaussian03 kurulumu mevcut değildir. Gaussian03 programı maksimum 4 çekirdek kullanabilmekdedir ve bu 4 çekirdeği sadece belli fonksiyonlar için kullanabilmektedir. Program genel olarak seri bir programdır.
#!/bin/sh # #PBS -q trgrida@ce.ulakbim.gov.tr #PBS -N gaussian03 #PBS -l nodes=1:ppn=4 # ## Export all my environment variables to the job #PBS -V # ## Change to my working directory cd $HOME if [ "x$PBS_NODEFILE" != "x" ] ; then echo "PBS Nodefile: $PBS_NODEFILE" HOST_NODEFILE=$PBS_NODEFILE fi if [ "x$HOST_NODEFILE" = "x" ]; then echo "No hosts file defined. Exiting..." exit fi CPU_NEEDED=`cat $HOST_NODEFILE | wc -l` export g03root=$HOME/gaussian export GAUSS_SCRDIR=/data/tmp . $g03root/g03/bsd/g03.profile export LD_LIBRARY_PATH=$g03root/g03:$LD_LIBRARY_PATH GAUSS_LFLAGS="-kaon -kainterval 100 -nodefile '$HOST_NODEFILE'";export GAUSS_LFLAGS PATH=$TMPDIR:$PATH; export PATH $g03root/g03/bsd/g03l < input.com > out 2> err
Örnek pbs: PVM
#!/bin/sh # #PBS -q trgrida@ce.ulakbim.gov.tr #PBS -N pvm #PBS -l nodes=1:ppn=6 # ## Export all my environment variables to the job #PBS -V #
## Gerekli modüllerin yüklenmesi ./usr/share/Modules/init/sh module load tr-01-ulakbim/application/pvm3.4.6/gcc
## Change to my working directory export CALISMA_DIZINI=$HOME/pvm cd $CALISMA_DIZINI
if [ "x$PBS_NODEFILE" != "x" ] ; then echo "PBS Nodefile: $PBS_NODEFILE" HOST_NODEFILE=$PBS_NODEFILE fi if [ "x$HOST_NODEFILE" = "x" ]; then echo "No hosts file defined. Exiting..." exit fi CPU_NEEDED=`cat $HOST_NODEFILE | wc -l` cat $HOST_NODEFILE>nodes
$PVM_ROOT/lib/pvmd $HOST_NODEFILE
AMBER11
#!/bin/sh
#PBS -q trgridd@ce.ulakbim.gov.tr
#PBS -N amber11-test
#PBS -l nodes=2:ppn=2
## Export all my environment variables to the job
#PBS -V
#
## Change to my working directory
CALISMA_DIZINI=$HOMR/amber
cd $CALISMA_DIZINI
## define AMBERBIN path
export AMBERBIN="/home_palamut1/software/tr-01-ulakbim/application/amber11/bin"
###############################################################################
if [ "x$PBS_NODEFILE" != "x" ] ; then
echo "PBS Nodefile: $PBS_NODEFILE"
HOST_NODEFILE=$PBS_NODEFILE
fi
if [ "x$LSB_HOSTS" != "x" ] ; then
echo "LSF Hosts: $LSB_HOSTS"
HOST_NODEFILE=`pwd`/lsf_nodefile.$$
for host in ${LSB_HOSTS}
do
echo $host >> ${HOST_NODEFILE}
done
fi
if [ "x$HOST_NODEFILE" = "x" ]; then
echo "No hosts file defined. Exiting..."
exit
fi
CPU_NEEDED=`cat $HOST_NODEFILE | wc -l`
cat $HOST_NODEFILE >nodes
export DO_PARALLEL="mpirun -n $CPU_NEEDED"
/usr/mpi/gcc/mvapich2-1.2p1/bin/mpdboot --totalnum=`cat $HOST_NODEFILE |uniq|wc -l` --file=$HOST_NODEFILE
########## AMBER 11 KULLANICI KOMUTLARI ##########################################
$DO_PARALLEL $AMBERBIN/pmemd.MPI -O -i $CALISMA_DIZINI/cellulose/mdin -o $CALISMA_DIZINI/cellulose/4cores-for-2nodes.mdout -p $CALISMA_DIZINI/cellulose/prmtop -c $CALISMA_DIZINI/cellulose/inpcrd
##################################################################################
/usr/mpi/gcc/mvapich2-1.2p1/bin/mpdallexit





