PBS Betiği Hazırlama ve PBS Komutları Feyza Eryol feyza@ulakbim.gov.tr
İçerik TR-Grid Altyapısı PBS Betik Dili PBS Seçenekleri PBS Betiğinin Hazırlanması PBS Komutları Uygulamalar
TR-Grid Altyapısı - I 19/10/2007 TR-Grid Eğitimi 3
TR-Grid Altyapısı - II Bir sitenin küme olarak kullanılması için ihtiyaç duyulanlar: Paylaştırılmış ev dizini, Her düğümde aynı işletim sisteminin bulunması, Her düğümde aynı kütüphane ve derleyicilerin bulunması Bu yapıda bulunan TR-Grid siteleri TR-01-ULAKBIM: 114 çekirdek, P4 2.66GHz, 1GB Bellek TR-03-ODTU: 312 çekirdek, Xeon 1.66 Ghz, 4GB Bellek TR-10-ULAKBIM: 312 çekirdek, Xeon 1.66 Ghz, 4GB Bellek 19/10/2007 TR-Grid Eğitimi 4
PBS İşleri PBS in temel işlevi gönderilmiş olan işleri yönetmektir. Sisteme gönderilmiş olan her iş: İhtiyaç duyulan kaynakları tanımlayabilir, Öncelik belirtebilir, Çalışma zamanını belirleyebilir, Çalışmasının başlama ve bitiş zamanında e- posta gönderebilir, Diğer işler ile zamanlama uyumunu sağlayabilir. 19/10/2007 TR-Grid Eğitimi 5
PBS Kullanımı En basit anlamda, PBS ile birlikte iş çalıştırabilmek için: Bir PBS betiği oluşturmak (ornek.sh) qsub <pbs betik ismi> komutu yardımıyla hazırlanan işi kuyruk sistemine göndermek gerekmektedir. Gönderilen iş tamamlandıktan sonra, çalışma dizininizde, İşİsmi.eİşNumarası İşİsmi.oİşNumarası olmak üzere standart hata ve standart çıktı dosyaları oluşturur. 19/10/2007 TR-Grid Eğitimi 6
PBS Betik Dili PBS Betikleri, herhangi bir betik dilinde yazılabilir: csh, bash, tcsh, sh, perl, etc. Hazırlanan betiğin çalıştırılabilir olması önemli değil, göndermek istediğiniz işin çalıştırılabilir olması önemlidir. PBS betiğinin ana yapısını şu şekilde özetleyebiliriz: PBS seçenekleri Shell komutları Çalıştırmak istediğiniz dosyanız ve bu dosyanın parametreleri 19/10/2007 TR-Grid Eğitimi 7
PBS Seçenekleri - I #PBS V : İşin gönderildiği shellden çevre değişkenlerinin taşınmasını sağlar. #PBS l : İşin gereksinim duyduğu kaynakları listeler. #PBS l nodes=2:ppn=2 #PBS l mem=4gb #PBS l walltime=10:00:00 #PBS N: İşin ismini belirler. #PBS N hello_world 19/10/2007 TR-Grid Eğitimi 8
PBS Seçenekleri - II #PBS q : İşin gönderildiği kuyruğu ve bu kuyruğun bulunduğu PBS sunucusunu tanımlar. #PBS q sgdemo@ce.ulakbim.gov.tr #PBS M : İş ile ilgili bilgilendirmelerin gönderileceği e-posta adresini belirler. #PBS M feyza@ulakbim.gov.tr #PBS m : İş ile ilgili bilgilendirme durumlarını belirler. #PBS m bae : [b]egin, [a]bort, [e]nd 19/10/2007 TR-Grid Eğitimi 9
Örnek PBS Betiği - I #!/bin/sh #PBS q sgdemo@ce.ulakbim.gov.tr #PBS n ornek_pbs #PBS l nodes=1:ppn=1 #PBS V # # 19/10/2007 TR-Grid Eğitimi 10
Örnek PBS Betiği - II export CALISMA_DIZINI= /home_levrek/egtim-ui/egitimxx/pbs 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 19/10/2007 TR-Grid Eğitimi 11
Örnek PBS Betiği - III cd $CALISMA_DIZINI cat $HOST_NODEFILE > nodes /home_levrek/egitim-ui/egitimxx/pbs/helloworld >out 2>err 19/10/2007 TR-Grid Eğitimi 12
PBS Betikleri - I SSH terminallerinden: Sunucu adı: egitim-ui.ulakbim.gov.tr Kullanıcı Adı: egitimxx Kullanıcı Şifresi: egitimxx [egitim1@egitim-ui pbs]$ cd pbs [egitim1@egitim-ui pbs]$ ls -la 19/10/2007 TR-Grid Eğitimi 13
PBS Betikleri - II /home_levrek/egitim-ui/egitimxx/pbs/ornek_pbs1.sh Kendi derlediğimiz bir C kodu /home_levrek/egitim-ui/egitimxx/pbs/ornek_pbs2.sh Mevcut sistem komutlarından hostname komutu /home_levrek/egitim-ui/egitimxx/pbs/ornek_pbs3.sh Hello World MPI kodu /home_levrek/egitim-ui/egitimxx/pbs/ornek_pbs4.sh Mevcut pbs komutlarını denemek için uzun süreli bir iş gönderimi yapacağız. 19/10/2007 TR-Grid Eğitimi 14
PBS Komutları qsub qstat f qstat u qdel Yığın işleri PBS sunucuya teslim eder Bir PBS işinin ayrıntılı durumunu gösterir Belirli bir kullanıcının PBS işlerini gösterir PBS işinin silinmesini sağlar 19/10/2007 TR-Grid Eğitimi 15
PBS Komutları: qsub qsub [seçenekler] betik_dosyası PBS betiği içinde yer alan, PBS seçeneklerini qsub komutu ile birlikte komut satırından da vermemiz mümkündür.... qsub l nodes=4:ppn=2 betik_dosyasi qsub l mem=4gb betik_dosyasi Detaylı bilgi için Torque PBS qsub yardım dosyalarından edinilebilir. 19/10/2007 TR-Grid Eğitimi 16
PBS Komutları: qstat qstat [seçenekler] 19/10/2007 TR-Grid Eğitimi 17
PBS Komutları: qstat Bir işin durumu: E : İş çalışmış ve bitti (ended) H : İş beklemeye alındı (held) Q : İş kuyrukta bekliyor (queued) R : İş çalışıyor (running) W: İş çalışma zamanını bekliyor (waiting) 19/10/2007 TR-Grid Eğitimi 18
PBS Komutları: qstat qstat u kullanıcı_adı 19/10/2007 TR-Grid Eğitimi 19
PBS Komutları: qdel qdel [iş_numarası_listesi] 19/10/2007 TR-Grid Eğitimi 20
Uygulamalar I SSH terminallerinden: Sunucu adı: egitim-ui.ulakbim.gov.tr Kullanıcı Adı: egitimxx Kullanıcı Şifresi: egitimxx [egitim1@egitim-ui pbs]$ cd pbs [egitim1@egitim-ui pbs]$ less helloworld.c [egitim1@egitim-ui pbs]$ gcc o helloworld helloworld.c [egitim1@egitim-ui pbs]$ less ornek_pbs1.sh [egitim1@egitim-ui pbs]$ qsub ornek_pbs1.sh [egitim1@egitim-ui pbs]$ qstat u egitimxx [egitim1@egitim-ui pbs]$ ls lrt [egitim1@egitim-ui pbs]$ less helloworld.out 19/10/2007 TR-Grid Eğitimi 21
Uygulamalar II [egitim1@egitim-ui pbs]$ less ornek_pbs2.sh [egitim1@egitim-ui pbs]$ qsub ornek_pbs2.sh [egitim1@egitim-ui pbs]$ qstat u egitimxx [egitim1@egitim-ui pbs]$ ls lrt [egitim1@egitim-ui pbs]$ less hostname.out 19/10/2007 TR-Grid Eğitimi 22
Uygulamalar III [egitim1@egitim-ui pbs]$ less MPItest.c [egitim1@egitim-ui pbs]$ mpicc o MPItest MPItest.c [egitim1@egitim-ui pbs]$ less ornek_pbs3.sh [egitim1@egitim-ui pbs]$ qsub ornek_pbs3.sh [egitim1@egitim-ui pbs]$ qstat u egitimxx [egitim1@egitim-ui pbs]$ ls lrt [egitim1@egitim-ui pbs]$ less mpitest.out 19/10/2007 TR-Grid Eğitimi 23
Uygulamalar IV [egitim1@egitim-ui pbs]$ less ornek_pbs4.sh [egitim1@egitim-ui pbs]$ qsub ornek_pbs4.sh [egitim1@egitim-ui pbs]$ qstat u egitimxx [egitim1@egitim-ui pbs]$ qstat f iş_numarası [egitim1@egitim-ui pbs]$ qdel iş_numarası [egitim1@egitim-ui pbs]$ less mpitest.err 19/10/2007 TR-Grid Eğitimi 24
http://www.grid.org.tr http://wiki.grid.org.tr grid-teknik@ulakbim.gov.tr 19/10/2007 TR-Grid Eğitimi 25