Transcript Kullanıcı Pratik Eğitimi
Grid İş Gönderme
Emrah Akkoyun, [email protected]
Feyza Eryol, [email protected]
Grid'e İş Gönderme Yöntemleri
Konsol Aracılığıyla iş gönderebilirsiniz.
Linux işletim sistemlerinden açtığınız terminalden işlerinizi gönderebileceğiniz gibi, Windows gibi işletim sistemlerinde Putty gibi araçlar kullanarak da işlerinizi gönderebilirsiniz.
Kullanıcı ara yüzüne ssh ile bağlantı yapılır.
Web portalı aracılığıyla işlerinizi gönderebilirsiniz.
P- Grade portalı bu araçlardandır.
Kullanıcı Arayüzüne Erişim
•
Kullanıcı arayüzüne ssh ile bağlanın
- Terminal, Putty, ...
Kullanıcılar: egitim(1-20) - Sunucu: egitim-ui.ulakbim.gov.tr (193.140.99.19)
ssh -l egitim20 egitim-ui.ulakbim.gov.tr
•
globus dizininin varlığını kontrol edin ls –laR .globus
drwxr-xr-x 2 root root 4096 Aug 15 13:57 .
drwx------ 31 root root 4096 Feb 10 15:32 ..
-rw-r--r- 1 root root 5577 Mar 14 2006 usercert.pem
-rw------ 1 root root 963 Mar 14 2006 userkey.pem
•
Pratik eğitim için gerekli örnek dosyaları kullanıcı dizininize açın: cd ~ tar -xzvf egitim.tar.gz
Geçici Sertifika Oluşturmak
Bir X.509 sertifikası şu bilgileri içerir: Kullanıcı açık anahtarı; Kullanıcı hakkında bilgi; Sertifika otoritesi bilgisi; Geçerlilik süresi; Sertifika otoritesinin imzası Sertifikanızı incelemek için:
grid-cert-info
Açık Anahtar Subject: C=TR, O=TRGrid, OU=TUBITAK-ULAKBIM, CN=Onur Temizsoylu Issuer: C=TR, O=TRGrid, CN=TR Grid CA Validity Not Before: Feb 5 10:05:58 2007 GMT Not After : Feb 5 10:05:58 2008 GMT Sertifika Otoritesi İmzası
Ç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
Proxy Oluşturmak
Çalışmak için geçici sertifika oluşturun: voms-proxy-init --voms sgdemo Oluşturduğunuz geçici sertifika hakkında bilgi edinin: voms-proxy-info –all Oluşturduğunuz geçici sertifikyı yok etmek için: voms-proxy-destroy
İşinizi Çalıştırmadan Önce
Bilmeniz gerekenler: Hangi programlar gönderilecek?
Hangi veriye gidecek?
erişilecek, veri program ile birlikte mi Herhangi bir mı?
işletim sistemi, kütüphane bağımlılığı var 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:
işe uygun kaynakları bulunmasını #, // veya /* */ ile JDL içine açıklama satırları yazılabilir.
JDL Dosyası
• JDL parçalayıcının(
parser
) hatasız bir şekilde çözümleme yapması için gerekli nitelikler: • Tüm iş tanımlar köşeli parantezler içinde olmalıdır. Örnek: [ ] • 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 Arguments
– Çalıştırılacak komut – Komuta verilecek argümanlar
StdInput, StdOutput, StdError
çıktı ve hata dosyaları – Standart girdi,
Environment
– Çevre değişkenleri
InputSandbox
– Kullanıcı arayüzünden çalışacağı siteye gönderilecek dosyalar
OutputSandbox Requirements
– İş bitiminde alınacak dosyalar – 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 .
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.
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”;)
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;
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-87e7 9d101f8c8b70”}; )
DataAccessProtocol
• SE (
Storage Element
) ulaşmak için kullanılacak protokol ya da protokoller
Örnek
: DataAccessProtocol = {“file”,“gsiftp”};
StorageElement
• Çıkış (
output
) dosyalarını tutmak için depolama elemanı
Örnek JDL Dosyası
ornek.jdl
Executable = "/bin/sh"; Arguments = "HelloWorld.sh"; Stdoutput = "stdoutput.txt"; StdError = "stderror.txt"; InputSandbox = {"HelloWorld.c","HelloWorld.sh"}; OutputSandbox = {"stdoutput.txt","stderror.txt"}; Requirements = (other.GlueHostOperatingSystemName == “linux"); Rank = other.GlueCEStateFreeCPUs;
İş Göndermeden Önce
• JDL dosyasında yer alan niteliklere göre işin çalışabileceği siteleri görebilirsiniz.
glite-job-list-match
• İş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
JDL dosyasında yer alan niteliklere göre işin çalışabileceği siteleri görebilirsiniz.
glite-job-list-match
İş göndermek için; glite-job-submit [--vo
İş Göndermek
glite-job-submit HelloWorld.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 Belirtilen işi iptal eder glite-job-status < işNumarası> İş hakkında bilgi verir glite-job-output < işNumarası> İşin çıktı torbasını getirir glite-job-logging-info < işNumarası> İş hakkında detaylı bilgi verir, hata gidermek için yararlı bir komuttur
İş Durumları
İş Durumları
Submitted –
İş
UI makinası aracılı
ğ
ı ile yollandı.
İş Durumları
Waiting – WMS beklemede
İş
kabul edildi ve sunucusunda
İş Durumları
Ready –
İş
sunucusuna WMS tarafında incelendi ve uygun CE gönderilmek için hazır
İş Durumları
Scheduled – kuyrukta bekliyor
İş
CE sunucusuna gönderildi ve
İş Durumları
Running ba
ş
ladı –
İş
çalı
ş
maya
İş Durumları
Done –
İş
tamamlandı
İş Durumları
Cleared Torbası” UI sunucusuna alındı –
İş
veya için “Çıktı zaman a
ş
ımından dolayı silindi
İnteraktif İşler
İnteraktif iş, standart girdi, çıktı ve hataları iş gönderilen istemciye yönlendiren iş tipidir: Kullanıcı
JobType
niteliğini
interactive
olarak ayarlamalıdır.
Bir interaktif iş gönderildiğinde glite-job-submit komutu arka planda bir gölge konsol işi başlatır. Konsolun kullanacağı port,
ListenerPort
niteliği ile değiştirilebilir.
DISPLAY
çevre değişkeni düzgün ayarlanmalı veya –nogui parametresi kullanılmalıdır.
OutputSandbox
niteliğini tanımlamaya gerek yoktur. İnteraktif pencereye çıktılar gelecektir.
MPICH İşleri
Paralel iş koşturmak için birçok kütüphane vardır.
gLite
orta katmanında
MPICH
tercih edilmiştir.
Kullanıcı
JobType
niteliğini
MPICH
ayarlamalı ve
NodeNumber
işlemci sayısını ayarlamalıdır.
niteli olarak ği ile gerekli Bir sitede
MPICH
işi çalışması için sitenin uygun şekilde düzenlenmesi dışında: Sitenin
MPICH
gerekmektedir.
desteklediğinin işaretlenmesi İstenen işlemci miktarı sitedeki mevcut işlemci sayısından az olmalıdır.
MPICH İşleri
[ JobType = “MPICH"; Executable = "cpi"; NodeNumber = 2; StdOutput = "test.out"; StdError = "test.err"; ] InputSandbox = {"cpi"}; OutputSandbox = {"test.out","test.err"};
NodeNumber
işin çalışacağı işlemci sayısını belirtir.
İşlemci sayısı arttıkça işin kuyrukta bekleme süresi de artacaktır.
http://www.grid.org.tr http://wiki.grid.org.tr [email protected]