TÜBİTAK »  ULAKBİM » TR-Grid »  Wiki-Grid Anasayfa İletişim / Bilgi Edinme  |  Site Haritası  |  English 
ULAKBİM

PBS Betik Dili Kullanılarak TR-Grid Sitelerine İş Gönderme

TR-Grid, özgür ansiklopedi

Git ve: kullan, ara

Bu belge, TR-Grid sitelerinden küme olarak kullanılabilecek sitelerde, konsol aracılığı ile nasıl iş gönderilebileceğini anlatmaktadır. Anlatımlarda kullanılan arayüz sunucusunun egitim-ui.ulakbim.gov.tr ve kullanıcı kodunuzun egitim20 olduğu kabul edilmiştir.

Aşağıda, öncelikle TR-Grid sitelerinde PBS betiğini hazırladıktan sonra kullanabileceğiniz, PBS komutları ile ilgili bilgi edinip, sonra örnek bir iş takibinin nasıl yapılabileceğini bulabilirsiniz.

PBS Komutları :

  qsub [seçenekler] betik_dosyası"

İşinizin PBS betik dosyası içerisinden verilen parametrelerle birlikte, PBS sunucusuna gönderilmesini sağlar. PBS betiği içinde yer alan seçeneklerin, komut satırından da verilmesi mümkündür.

  qsub -l nodes=4:ppn=2 betik_dosyasi

Gönderilen işin, 4 ayrı hesaplama düğümünde, her bir düğümden 2'şer adet işlemci kullanmasını sağlayarak çalışmasını sağlar.

  qstat [seçenekler]

PBS sunucusuna gönderilen bir işin ayrıntılı durumunu gösterir.

  egitim20@egitim-ui:~# qstat
  Job id              Name             User            Time Use S Queue
  ------------------- ---------------- --------------- -------- - -----
  112275.kalkan1      dos              eakturk         481:54:0 R trgridb
  113640.kalkan1      bbtptbp2         aviye           720:22:4 R trgrida        
  113693.kalkan1      groove           eakturk                0 Q trgridb        
  116171.kalkan1      fo1              berdinc         00:00:00 R trgride        
  116909.kalkan1      bdg73anssp       cozdogan               0 Q trgridb 

Burada qstat komutu ile mevcut PBS sunucusunda çalışmakta olan tüm işleri listeleyebilirsiniz. qstat komutunun çıktısından sırası ile, iş numarası, iş ismi, işin sahibi olan kullanıcı adı, kullanılan işlemci zamanını, işin durumunu ve işin çalıştığı kuyruk ismini listelemeniz mümkündür.

Bir işin durumu 5 farklı biçimde gösterilebilmektedir:

  E: İş çalışmış ve bitmiş (ended)
  H: İş beklemeye alındı (holding)
  Q: İş kuyrukta bekliyor (queued)
  R: İş çalışıyor (running)
  W: İş çalışma zamanını bekliyor (waiting)

qstat komutu ile sadece kendi işlerinizi görüntülemek isterseniz, qstat komutunu -u parametresi ile kullanbilirsiniz.

  qstat -u kullanici_adi


  qdel is_numarasi

PBS sunucusunda kuyrukta bulunan ya da çalışmakta olan bir işin silinmesini sağlar.


PBS Betiği ile İş Gönderilmesi :

1. Kullanıcı arayüz makinesine ssh ile bağlanınız.

  ssh -l egitim20 egitim-ui.ulakbim.gov.tr

Şifrenizi de girdikten sonra artık giriş yapmış olmaktasınız.

2. PBS betiğinizi hazırlayacağınız ve PBS sistemine gödereceğiniz çalışma dizinine gidiniz.

  cd pbs

3. $HOME/pbs dizininiz altında bir helloworld.c isimli C kodunuzun olduğunu varsayalım. Bu C dosyanızdanızdan, çalıştırılabilir dosyanızı oluşturalım.

   gcc –o helloworld helloworld.c 
       

4. helloworld çalıştırılabilir dosyanız için aşağıdaki PBS betiğini hazırlayalım.

  #!/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
  #

5. PBS betiğinizi ornek_is.sh dosya ismi ile kaydedelim.

6. qsub komutunun yardımı ile işinizi PBS sunucusuna gönderelim.

  qsub ornek_is.sh
  192503.ce.ulakbim.gov.tr

qsub komutunun ardından ekranda görüğümüz 192503 numaralı iş olarak işimizin göderildiğini öğrenmiş olduk.

7. qstat komutu yardımı ile işimizi takip edebiliriz.

  qstat -f 192503

Komutu ile işimizin detay bilgilerine ulaşabiliriz.

  qstat -u egitim20

Komutu ile egitim20 olan kullanıcı ismimizle çalışan tüm işlerimizin durumunu öğrenebiliriz.

8. qdel komutu ile, işimizin çalışmasına son verebiliriz.

  qdel 192503


NOT : PBS komutları ile ilgili detaylı bilgilere Torque PBS komutlarının yardım sayfalarından ulaşabilirsiniz.

© 2007 TÜBİTAK-ULAKBİM Görüşleriniz