Hands-on: Using a certificate and simple job submission

Transkript

Hands-on: Using a certificate and simple job submission
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
drwx------ 31 root root
-rw-r--r-- 1 root root
-rw------- 1 root root
•
4096 Aug 15 13:57 .
4096 Feb 10 15:32 ..
5577 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 -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ı
Açık Anahtar
Subject: C=TR, O=TRGrid,
OU=TUBITAK-ULAKBIM,
CN=Onur Temizsoylu
Issuer: C=TR, O=TRGrid,
CN=TR-Grid 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ı
Ç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> [option(s)]
sgdemo sanal organizasyonuna bağlı sitelerde ki
hesaplama elemanı(ce) hakkında bilgi almak için:

lcg-infosites --vo sgdemo ce
sgdemo sanal organizasyonuna bağlı sitelerde ki
depolama elemanı(se) hakkında bilgi almak için::
lcg-infosites --vo sgdemo se
lcg-infosites --vo sgdemo closeSE


Sorgulanabilecek diğer özellikleri görmek için:
lcg-info –list-attrs
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 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 /*
yazılabilir.

*/ ile JDL içine açıklama satırları
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ı 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.
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-87e79d101f8c8b70”}; )
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 <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
JDL dosyasında yer alan niteliklere göre işin
çalışabileceği siteleri görebilirsiniz.

glite-job-list-match <job.jdl>

İş göndermek için;
glite-job-submit [--vo <VO>] [-o <dosya_ismi>] <job.jdl>
--vo Sanal organizasyon, geçici oluşturulurken tanımlandı ise
gerek yoktur
-o Oluşacak işNumarası bu dosyaya yazılır
glite-job-status –i <dosya_ismi> (veya işNumarası)
-i İş gönderilirken verilen dosya ismi burada kullanılabilir
İş 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 <işNumarası>
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
–
İş
makinası
aracılığı
yollandı.
UI
ile
İş Durumları
Waiting – İş kabul edildi
ve WMS sunucusunda
beklemede
İş Durumları
Ready – İş WMS tarafında
incelendi ve uygun CE
sunucusuna gönderilmek
için hazır
İş Durumları
Scheduled
–
İş
CE
sunucusuna gönderildi ve
kuyrukta bekliyor
İş Durumları
Running – İş çalışmaya
başladı
İş Durumları
Done – İş tamamlandı
İş Durumları
Cleared – İş için “Çıktı
Torbası” UI sunucusuna
alındı
veya
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 olarak
ayarlamalı ve NodeNumber niteliği ile gerekli
işlemci sayısını ayarlamalıdır.
Bir sitede MPICH işi çalışması için sitenin uygun
şekilde düzenlenmesi dışında:
−
−
Sitenin MPICH desteklediğinin işaretlenmesi
gerekmektedir.
İ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]

Benzer belgeler

Using a certificate and Simple Job Submission

Using a certificate and Simple Job Submission • Oluşturduğunuz proxy hakkında bilgi edinin voms-proxy-info --all • Oluşturduğunuz proxy’i yok etmek için voms-proxy-destroy

Detaylı

Data Management Services

Data Management Services Grid Veri Yönetimi Nedir? Kullanıcı ve uygulamaların ürettiği ya da ihtiyaç duyduğu verilerin Grid ortamında saklanması amaçlanır. Depolama kaynaklarında saklanan Grid dosyaları saltokunurdur: (re...

Detaylı