Corporate 2 Template

Download Report

Transcript Corporate 2 Template

Grid Ortamında
İş Gönderme
YEF @ TR-Grid Okulu
30 Nisan 2008, TAEK, Ankara
www.grid.org.tr
İÇERİK
–
–
–
–
–
–
–
–
–
İş gönderme yöntemleri
Kullanıcı arayüz sunucularına bağlanma
Kullanıcı yetkilendirme
İşi tanımlama
Grid Dili: JDL
JDL Nitelikleri
Örnek JDL Dosyası
İş Gönderme
İnteraktif ve MPICH İşleri
YEF @ TR-Grid Okulu, TAEK, ANKARA
Gride İş Gönderme Yöntemleri
– Konsol aracılığı ile;
– Linux/Windows masaüstü bilgisayarlarınızdan SSH istemci
programı
– Kullanıcı arayüz sunucularına erişim
– Web portalı yardımı ile: P-Grade uygulaması
– Tarayıcı bir program
– Java plug-in
YEF @ TR-Grid Okulu, TAEK, ANKARA
Kullanıcı Arayüz Sunucularına Erişim
– Kullanıcı arayüz sunucusuna SSH istemci programı ile
bağlantının sağlanması:
– Linux: Terminal, Windows: SSH istemcisi (putty, v.b.)
– Sunucu Adı : lufer.ulakbim.gov.tr
– Kullanıcı Adı: Size gönderilmiş olan kullanıcı adınız
– Kullanıcı Şifresi: Size gönderilmiş olan kullanıcı şifreniz
– .p12 uzantılı açık/kapalı anahtar ikilisinin ayrıştırılması
YEF @ TR-Grid Okulu, TAEK, ANKARA
Kullanıcı Arayüz Sunucularına Erişim - II
YEF @ TR-Grid Okulu, TAEK, ANKARA
Kullanıcı Arayüz Sunucularına Erişim - III
– .globus dizinin kontrol edilmesi:
$ ls -laR .globus
YEF @ TR-Grid Okulu, TAEK, ANKARA
Kullanıcı Arayüz Sunucularına Erişim - IV
$ ls –lrt /tmp/yef-trgrid
$ tar -zxvf /tmp/yef-trgrid/egitim.tar.gz
YEF @ TR-Grid Okulu, TAEK, ANKARA
Geçici Sertifika Oluşturmak
– Grid ortamında yetkilendirilmeler X.509 standardında sayısal
sertifikalar ile yapılmaktadır.
– X.509 sertifikaları aşağıdaki 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
YEF @ TR-Grid Okulu, TAEK, ANKARA
Geçici Sertifika Oluşturmak - II
YEF @ TR-Grid Okulu, TAEK, ANKARA
Geçici Sertifika Oluşturmak - III
– Geçici olarak yetkilendirilmek için sertifika oluşturulması:
$ voms-proxy-init –voms sgdemo
$ voms-proxy-init –voms trgridb
– Oluşturulan geçici sertifika hakkında bilgi edinilmesi:
$ voms-proxy-info –all
– Oluşturulan geçici sertifikanın iptal edilmesi:
$ voms-proxy-destroy
YEF @ TR-Grid Okulu, TAEK, ANKARA
Kullanılabilen Kaynakların Listelenmesi
– Herhangi bir sanal organizasyon için o an geçerli çalışılabilir
kaynakları görüntülemek için:
$ lcg-infosites --vo <VO> [option(s)]
– sgdemo/trgridb sanal organizasyonuna bağlı sitelerdeki
hesaplama elemanı(ce) hakkında bilgi almak için:
$ lcg-infosites --vo sgdemo/trgridb ce
– sgdemo/trgridb sanal organizasyonuna bağlı sitelerdeki
depolama elemanı(ce) hakkında bilgi almak için:
$ lcg-infosites --vo sgdemo/trgridb se
– Sorgulanabilecek diğer özellikleri görmek için:
$ lcg-info --list-attrs
YEF @ TR-Grid Okulu, TAEK, ANKARA
İşin Gereksinimlerini Belirlemek
– Bilmemiz gerekenler:
– Hangi programlar gönderilecek?
– Hangi veriye erişilecek?
– Veri programla birlikte mi gönderilecek?
– Herhangi bir işletim sistemi bağımlılığı var mı?
– Herhangi bir kütüphane bağımlılığı var mı?
– Gönderdiğimiz uygulama:
– Bilinmeyen bir sistemde çalışabilmeli
– Çalışma dizini dışında yer alacak şekilde sabit olarak
belirlenmiş dizinler ve dosyalar içermemeli
YEF @ TR-Grid Okulu, TAEK, ANKARA
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.
YEF @ TR-Grid Okulu, TAEK, ANKARA
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: [ <iş tanımı>]
– Her tanım satırı noktalı virgül ile ayrılmalıdır.
– JDL boşluk ve tab karakterlerine duyarlıdır.
YEF @ TR-Grid Okulu, TAEK, ANKARA
JDL Nitelikleri
– 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ı
YEF @ TR-Grid Okulu, TAEK, ANKARA
JDL Nitelikleri - II
– Executable = < string >
– Çalıştırılacak programı göstermektedir.
– Aynı dosya ismi InputSandbox niteliğinde de
belirtilmelidir.
– Özel karakterlere izin verilmez.
Örnek: Executable = {“/opt/sw/sgdemo/test.sh”};
– StdOutput, StdError, StdInput = < string >
– Çıktı, hata ve giriş dosyalarını göstermektedir.
– Aynı dosya isimleri OutputSandbox niteliğinde de
belirtilmelidir.
YEF @ TR-Grid Okulu, TAEK, ANKARA
JDL Nitelikleri - III
– InputSandbox, OutputSandbox = < string | string listesi >
– InputSandbox, çalıştırılacak işin ihtiyacı olan giriş
dosyalarını göstermektedir.
UI (User Interface) -> WN (Worker Node)
– OutputSandbox, çalıştırılan işin çıktı dosyalarını
göstermektedir.
WN (Worker Node) -> UI (User Interface)
InputSandbox'da gösterilen dosyaların toplam boyutu 20
MB'ı geçmemelidir.
YEF @ TR-Grid Okulu, TAEK, ANKARA
JDL Nitelikleri - IV
– Job Type
– Normal (simple, sequential job), Interactive, MPICH,
Checkpointable
– Arguments
– Komut satırı parametrelerini vermek için kullanılır.
Örnek: Executable = “/bin/sh”;
Örnek: Arguments = “Merhaba Grid Dünyası”;
– Environment
– Çevre değişkenlerinin tanımlanmasını sağlar.
Örnek: Environment = “JAVABIN=/usr/local/java”;
YEF @ TR-Grid Okulu, TAEK, ANKARA
JDL Nitelikleri - V
– Requirements
– Uygun kaynak koşullarının tanımlanmasını sağlar.
Örnek: Requirements=other.GlueCEUniqueID ==
“kalkan1.ulakbim.gov.tr:2119/jobmanager-lcgpbs-trgridb”
– Rank
– Requirements niteliğindeki koşullara uygun CE ler
sıralanır.
Örnek: Rank = other.GlueCEStateFreeCPUs;
YEF @ TR-Grid Okulu, TAEK, ANKARA
JDL Nitelikleri - VI
– 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 belirlenir.
Örnek: DataAccessProtocol = {“file”,“gsiftp”};
– StorageElement
– Çıkış (output) dosyalarını tutmak için depolama elemanı
belirlenir.
YEF @ TR-Grid Okulu, TAEK, ANKARA
Örnek JDL Dosyası
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;
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Göndermeden Önce...
– JDL dosyasında yer alan niteliklere göre, işin
çalışabileceği siteleri görebilmek için:
$ glite-wms-job-list-match –a <job.jdl>
– İşin belli bir sitede çalışması için Requirement satırı
kullanılabilir:
Requirements = other.GlueCEUniqueID ==
"ce.ulakbim.gov.tr:2119/jobmanager-lcgpbssgdemo"
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Göndermeden Önce - II
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Göndermek ve İşin Durumunu İzlemek
– İş göndermek için;
glite-wms-job-submit –a [--vo <VO>] [-o <dosya_ismi>] <job.jdl>
--vo Sanal organizasyon, geçici sertifika oluşturulurken
sanal organizasyon tanımı yapıldı ise, kullanılmasına
gerek yoktur.
-o Oluşacak işNumarası'nın yazılması istenilen dosya
ismi
– İşin durumunu öğrenmek için;
glite-wms-job-status –i <dosya_ismi> (veya işNumarası)
-i İş gönderilirken verilen dosya ismi burada
kullanılabilir.
YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-I
YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-I
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Durumları
Submitted – İş UI makinası
aracılığı ile yollandı.
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Durumları
Waiting – İş kabul edildi ve
WMS
beklemede
YEF @ TR-Grid Okulu, TAEK, ANKARA
sunucusunda
İş Durumları
Ready – İş WMS tarafında
incelendi ve uygun CE
sunucusuna gönderilmek
için hazır
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Durumları
Scheduled
–
İş
CE
sunucusuna gönderildi ve
kuyrukta bekliyor
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Durumları
Running
başladı
–
İş
çalışmaya
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Durumları
Done – İş tamamlandı
YEF @ TR-Grid Okulu, TAEK, ANKARA
İş Durumları
Cleared – İş için “Çıktı
Torbası” UI sunucusuna
alındı
veya
zaman
aşımından dolayı silindi
YEF @ TR-Grid Okulu, TAEK, ANKARA
Diğer İş Komutları
glite-wms-job-cancel <işNumarası>
– Belirtilen işi iptal eder.
glite-wms-job-status <işNumarası>
– İş hakkında bilgi verir.
glite-wms-job-output <işNumarası>
– İşin çıktı torbasını getirir.
glite-wms-job-logging-info <işNumarası>
– İş hakkında detaylı bilgi verir, hata gidermek için yararlı bir
komuttur.
YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-I
YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-I
YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-II
YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-II
YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-II
–
–
–
–
–
–
–
glite-wms-job-submit –a -o id.txt HelloWorld.jdl
glite-wms-job-status -i id.txt
glite-wms-job-cancel -i id.txt
glite-wms-job-submit -o id.txt HelloWorld.jdl
glite-wms-job-status -i id.txt
glite-wms-job-status –all
glite-wms-job-output -i id.txt
.

YEF @ TR-Grid Okulu, TAEK, ANKARA
Uygulama-III
YEF @ TR-Grid Okulu, TAEK, ANKARA
http://www.grid.org.tr
http://wiki.grid.org.tr
[email protected]
YEF @ TR-Grid Okulu, TAEK, ANKARA