Kullanıcı Pratik Eğitimi Özgür Erbaş ozgur@ulakbim.gov.tr www.grid.org.tr
Kullanıcı Arayüzüne Erişim Kullanıcı arayüzüne ssh ile bağlanın - Putty - Kullanıcılar: egitim(1-50) - Sunucu: egitim-ui.ulakbim.gov.tr globus dizininin varlığını kontrol edin ls lar.globus drwxr-xr-x 2 root root drwx------ 31 root root -rw-r--r-- 1 root root -rw------- 1 root root 4096 Aug 15 13:57. 4096 Feb 10 15:32.. 0 Mar 14 2006 usercert.pem 963 Mar 14 2006 userkey.pem Pratik eğitim için gerekli örnek dosyaları kullanıcı dizininize açın: cd ~ tar zxvf /home/egitim.tar.gz
Çalışabileceğiniz Kaynakları Görüntülemek Herhangi bir sanal organizasyon için o an geçerli çalışabileceğiniz kaynakları görüntülemek için: lcg-infosites --vo <VO> sgdemo sanal organizasyonunda çalışılabilecek işlemcileri görmek için: lcg-infosites --vo sgdemo ce sgdemo sanal organizasyonunda veri saklama alanını görmek için: lcg-infosites --vo sgdemo se lcg-infosites --vo sgdemo closese Sorgulanabilecek diğer özellikleri görmek için: lcg-info --list-attrs sgdemo sanal organizasyonu içinde MPI destekleyen kümelerin işlemci ve lcg-info vo sgdemo --list-ce --query 'Tag=MPICH' --attrs 'FreeCPUs'
Kullanıcı Sertifikanız Bir X.509 sertifikası şu bilgileri içerir: Kullanıcı açık anahtarı; Açık Anahtar Kullanıcı hakkında bilgi; Sertifika otoritesi bilgisi; Geçerlilik süresi; Sertifika otoritesinin imzası Subject: C=TR, O=TRGrid, OU=TUBITAK-ULAKBIM, CN=Onur Temizsoylu Issuer: C=TR, O=TRGrid, CN=TRGrid CA Validity Sertifikanızı incelemek için: grid-cert-info Not Before: Feb 5 10:05:58 2007 GMT Not After : Feb 5 10:05:58 2008 GMT Sertifika Otoritesi İmzası
Proxy Oluşturmak Çalışmak için proxy oluşturun: voms-proxy-init --voms sgdemo Passphrase: keyforcert Oluşturduğunuz proxy hakkında bilgi edinin voms-proxy-info --all Oluşturduğunuz proxy i yok etmek için voms-proxy-destroy
İşinizi Çalıştırmadan Önce Bilmeniz gerekenler: Hangi programlar gönderilecek? Hangi veriye erişilecek, veri program ile birlikte mi gidecek? Herhangi bir işletim sistemi, kütüphane bağımlılığı var mı? Gönderdiğiniz uygulama: Bilinmeyen bir sistemde çalışabilmeli Çalışma dizini dışında yer alacak şekilde sabit olarak belirlenmiş dizinler ve dosyalar içermemelidir.
Grid Dünyasının Dili - JDL Job Description Language (JDL) Condor ClassAd dili standardında geliştirilmiştir. Bir JDL dosyası niteliklerle oluşturulur: <nitelik> = <anahtar>; Nitelikler temel olarak ikiye ayrılabilir: - İş nitelikleri, işin kendini tanımlar -Kaynak nitelikleri, işe uygun kaynakları bulunmasını sağlar. #, // veya /* */ ile JDL içine açıklama satırları yazılabilir.
JDL Dosyası Nitelikler, JDL parçalayıcının(parser) hatasız bir şekilde çözümleme yapması için... Tüm iş tanımlar köşeli parantezler içinde olmalıdır. Örnek: [ <iş tanımı>] Her tanım satırı noktalı virgul ile ayrılmalıdır. JDL boşluk karakteri ve tablara duyarlıdır.
JDL Nitelikleri (1) JobType Normal (basit, seri iş), Interactive, MPICH, Checkpointable Executable Çalıştırılacak komut Arguments Komuta verilecek argümanlar StdInput, StdOutput, StdError Standart girdi, çıktı ve hata dosyaları Environment Çevre değişkenleri InputSandbox Kullanıcı arayüzünden çalışacağı siteye gönderilecek dosyalar OutputSandbox İş bitiminde alınacak dosyalar Requirements Gerekli kaynak nitelikleri Rank Bulunan kaynakların sıralanması
JDL Nitelikleri (2) Executable = < string > Çalıştırılacak programı göstermektedir. - Aynı dosya ismi InputSandbox da da belirtilmelidir. Özel karakterler izin verilmez.. (Örnek: Executable = { /opt/sw/sgdemo/test.sh }; ) StdOutput, StdError, StdInput = < string > Çıktı, hata ve giriş dosyaları - Aynı dosya isimleri OutputSandbox da da belirtilmelidir. Bu nitelik, etkileşimli işler için (interactive jobs) gerekli değildir. 10/32
JDL Nitelikleri (3) InputSandbox, OutputSandbox = < string string listesi > InputSandbox, çalıştırılacak işin ihtiyacı olan giriş dosyaları - UI (User Interface) den WN (Worker Node) OutputSandbox, Sonuç dosyaları - WN (Worker Node) dan UI (User Interface) InputSandbox da gösterilen dosyaların toplam boyutu 20 MB dan az olmalıdır. 11/32
JDL Nitelikleri (4) Job Type Normal (simple, sequential job), Interactive, MPICH, Checkpointable, Checkpointable, Interactive Checkppointable, MPI MPICH ve NodeNumber - RB (Resource Broker) uygun CE leri seçmek için kullanır. Örnek: NodeNumber = 5; Arguments Komut satırı parametreleri vermek için kullanılır. Örnek: Executable = /bin/sh ; Arguments = Merhaba Grid Dünyası ; Environment Çevre ayarları listesini. Örnek: Environment = JAVABIN=/usr/local/java ;) 12/32
JDL Nitelikleri (5) Requirements Uygun kaynak koşulları Örnek: Requirements=other.GlueCEUniqueID == adc006.cern.ch:2119/jobmanager-pbs-infinite Rank Requirements niteliğindeki koşullara uygun CE ler sıralanır. Örnek: Rank = other.gluecestatefreecpus; 13/32
JDL Nitelikleri (6) InputData Giriş(input) dosyalarını gösteren (LFN) Logical File Name veya (GUID) Global Unique Identifier belirtilir. Örnek: InputData = { lfn:cmstestfile, guid:135b7b23-4a6a-11d7-87e79d101f8c8b70 }; ) DataAccessProtocol SE(Storage Element) ulaşmak için kullanılacak Protokol yada protokoller Örnek: DataAccessProtocol = { file, gsiftp }; StorageElement Çıkış(output) dosyalarını tutmak için depolama elemanı 14/32
JDL Dosyası ornek.jdl [ Executable = "/bin/sh"; Arguments = "HelloWorld.sh"; Stdoutput = "stdoutput"; StdError = "stderror"; InputSandbox = {"HelloWorld.c","HelloWorld.sh"}; OutputSandbox = {"stdoutput","stderror"}; Requirements = (other. GlueHostOperatingSystemName == linux"); Rank = other.gluecestatefreecpus; ]
İşi göndermeden önce JDL dosyasında yer alan niteliklere göre işin çalışabileceği siteleri görebilirsiniz. glite-job-list-match <job.jdl> İşinizin belli bir sitede çalışması için Requirement satırı ekliyebilirsiniz. Requirements = other.glueceuniqueid == "ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-sgdemo";
İş Göndermek glite-job-submit [--vo <VO>] [-o <dosya_ismi>] <job.jdl> --vo Sanal organizasyon, proxy oluşturulurken tanımlandı ise gerek yoktur -o Oluşacak JobID bu dosyaya yazılır glite-job-status i <dosya_ismi> (veya jobid) -i İş gönderilirken verilen dosya ismi burada kullanılabilir
İş Göndermek glite-job-submit testjob.jdl **** Warning: UI_VOMS_OVERRIDE **** The Virtual Organisation name "dteam" you have specified with the UI conf file will be overriden by the default VO in your proxy credentials: "sgdemo" Selected Virtual Organisation name (from proxy certificate extension): sgdemo Connecting to host wms.ulakbim.gov.tr, port 7772 Logging to host wms.ulakbim.gov.tr, port 9002 ********************************************************************************************* JOB SUBMIT OUTCOME The job has been successfully submitted to the Network Server. Use glite-job-status command to check job current status. Your job identifier is: - https://wms.ulakbim.gov.tr:9000/2n33hig63qujxlkghg2m-a JobID *********************************************************************************************
Diğer İş Komutları glite-job-cancel <jobid> Belirtilen işi iptal eder glite-job-status <jobid> İş hakkında bilgi verir glite-job-output <jobid> İşin çıktı torbasını getirir glite-job-logging-info <jobid> İş hakkında detaylı bilgi verir, hata gidermek için yararlı bir komuttur
İş Durumları 20/32
Job State Machine Submitted İş UI makinası aracılığı ile yollandı. 21/32
Waiting İş kabul edildi ve WMS sunucusunda beklemede 22/32
Ready İş WMS tarafından incelendi ve uygun CE makinasına yollanmak için hazır. 23/32
Scheduled İş makinasına yolladı kuyrukta bekliyor. 24/32 CE ve
Running İş çalışmaya başladı 25/32
Job State Machine Done İş tamamlandı. 26/32
Aborted- İş WMS tarafından iptal edildi. 27/32
Job State Machine Cancelled İş kullanıcını isteği üzerine iptal edildi 28/32
Cleared- İş için Çıktı Torbası UI makinasına alındı veya zaman aşımından dolayı silindi. 29/32