PBS Betik Dili ve Özellikleri
TR-Grid, özgür ansiklopedi
Bir sitenin küme bilgisayar olarak da kullanılabilmesi için, kullanıcıların ev dizinlerinin tüm sitede bulunan düğümler tarafından paylaşılabiliyor olması, her düğümde aynı işletim sisteminin bulunması, aynı hesaplama kütüphanelerinin ve derleyicilerin bulunması gerekmektedir. Bu durum, küme bilgisayar olarak planlanmış bir sitede, sistem yöneticisinin tasarımına bağlı olarak disk paylaşımın yapılmasını ve sitede yer alan her bir heseplama düğümümünün bir biri ile aynı olmasını gerektirmektedir.
TR-Grid Altyapısında, TR-01-ULAKBIM, TR-03-METU ve TR-10-ULAKBIM siteleri Grid ortamında iş göndermeye olanak verdiği gibi küme bilgisayar olarak da kullanılabilecek yapıdadırlar.
TR-Grid Altyapısında, küme bilgisayarlarda ihtiyaç duyulan kaynakların tanımlanabilmesi, işin çalışma zamanının belirlenmesi, işin başlama ve bitiş zamanlarının e-posta aracılığı ile takip edilebilmesi gibi işlevlerin yerine getirilebilmesi için PBS (Protable Batch System) ismi verilen betik dili kullanılmaktadır.
Yukarıda belirtilmiş olan sitelerde küme işi gönderebilmeniz için:
1. PBS betiğinizi hazırlamanız, 2. 'qsub dosya_ismi' komutunu kullanarak işinizi çalışma izninizin bulunduğu PBS sunucucusu üzerindeki ilgili kuyruğa göndermeniz
gerekmektedir.
İşinizi göndermenizin ardından, size işiniz ile ilgili:
isNumarasi.<gonderdiginiz pbs sunucusunun fqdn adresi>
formatında bir iş numarası verecektir. İşinizin çalışma süresi boyunca, işinizi gönderdiğiniz çalışma dizininde, isIsmi.eisNumarasi ismi ile standart hata dosyası ve isIsmi.oisNumarasi ile satndart çıktı dosyası oluşur. Bu dosyaların içeriklerini takip ederek, işinizin durumu ile ilgili bilgi alabilirsiniz.
1. PBS Betik Dilinin Genel Yapısı : PBS betikleri, csh, bash, tcsh, sh, perl vb. herhangi bir betik dili ile hazırlanabilir. Hazırladığınız betiğin çalıştırılabilir olması önemli değil, PBS betiği içinden küme bilgisayarlara göndereceğiniz işin çalıştırılabilir olması önemlidir.
PBS betiğinin ana yapısını aşağıdaki gibi özetlemek mümkündür:
a. PBS seçeneklerinin belirtilmesi b. İşin çalıştırılmasından önce gerekli shell komutlarının belirtilmesi c. Küme bilgisayara göndermek istediğiniz işin çalıştırılabilir dosya ismi ile işin ihtiyaç duyduğu parametrelerin verilmesi
Bu yapıda hazırlayacağınız PBS betiğiniz, küme bilgisayarlarda işinizi gönderebilmeniz için hazır olacaktır.
2. PBS Seçenekleri : PBS betiğinin içerisinde yer alacak, işinizin çalışması sırasında ihtiyaç duyacağınız kaynakların ve özelliklerin belirlenebilmesi için PBS seçenekleri kullanılmaktadır. Bu kısımda, en yaygın olarak kullanılan PBS seçenekleri ile ilgili bilgi aktarmaya çalışacağız :
#PBS -V
İşin gönderidiği shellden çevre değişkenlerinin, işin çalışacağı hesaplama düğümlerine aktarılmasını sağlar.
#PBS –l
İşin çalışırken gereksinim duyduğu kaynakları listeler.
#PBS -l nodes=2:ppn=4 ; Gönderdiğiniz işin iki ayrı hesaplama düğümünde 4'er işlemci kullanarak çalışması gerektiğini belirtir. Toplamda iş 8 işlemcide çalışacaktır.
#PBS -l mem=4gb ; Gönderdiğiniz işin çalışma süresi boyunca toplam olarak en fazla 4 GB bellek kullanmasını gerektiğini belirtir.
#PBS -N
Çalıştırılacak işin, çalışacağı kuyruktaki iş ismini belirler.
#PBS -N hello_world; Gönderdiğiniz işin ismini hello_world olarak belirler.
#PBS -q
İşin gönderileceği kuyruk ismini ve bu kuyruğun tanımlı olduğu PBS sunucusunun ismini tanımlar.
#PBS -q sgdemo@ce.ulakbim.gov.tr; Göndereceğiniz işin, ce.ulakbim.gov.tr sunucusunda bulunan, PBS sunucu servisindeki sgdemo iş kuyruğuna gönderilmesini belirtir.
NOT: TR-Grid sitelerinde, mevcut küme kullanıcılarımız, kullandıkları uygulamalara ve projelerine göre tanımlanmış iş kuyruklarında çalışmaktadırlar. Bu iş kuyrukları, TR-01-ULAKBIM, TR-03-METU ve TR-10-ULAKBIM sistemlerinde ayrı ayrı tanımlanmış durumdadır. Bu sitelerin PBS sunucu isimleri ve kullanıcılarımızın kullanması gereken kuyruk ismi, kullanıcılarımızın hesapları oluşturulduktan sonra kendilerine bildirilmektedir. Bu konuda herhangi bir soru ya da sorununuzun olması durumunda grid-teknik at ulakbim dot gov dot tr e-posta adresi ile iletişime geçebilirsiniz.
#PBS -M
İşin durumu ile bilgilendirmelerin gönderileceği e-posta adresinin belirler.
#PBS -M eposta@adresiniz; Gödereceğiniz işin bilgilendirme mesajlarının tanımladığınız e-posta adresine gönderilmesini sağlar.
#PBS -m
İşiniz ile ilgili hangi durumlarda e-posta gönderilmesi gerektiğini belirler.
#PBS -m bae; İşinizin başlangıç ([b]egin), hata vererek çıkması ([a]bort), ve bitiş ([e]nd) durumlarında e-posta gönderilmesini sağlar.
3. Örnek PBS Betiği : PBS Betiğinin ana yapısını oluşturan maddeleri oluşturan bir PBS betiğini aşağıda bulabilirsiniz. Wikimizde yer alan "Örnek PBS Betik Dosyları" kısmında farklı PBS betiği örneklerini de yer almaktadı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
#
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
#





