grid ortamında İş gönderme - truba.gov.tr
Post on 27-Nov-2021
12 Views
Preview:
TRANSCRIPT
Grid Ortamında İş Gönderme
Feyza Eryol, feyza@ulakbim.gov.trEmrah Akkoyun, emrah@ulakbim.gov.tr
22/10/2007 TR-Grid Eğitimi 2
İçerik İş 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
22/10/2007 TR-Grid Eğitimi 3
Grid'e İş 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
22/10/2007 TR-Grid Eğitimi 4
Kullanıcı Arayüz Sunucularına ErişimKullanıcı arayüz sunucusuna SSH istemci programı ile bağlantının sağlanması
Linux: Terminal, Windows: SSH istemcisi (putty, v.b.) Sunucu Adı : egitim-ui.ulakbim.gov.tr Kullanıcı Adı: egitimxx Kullanıcı Şifresi: egitimxx
Yetkilendirilmenin sağlanması .globus dizinin kontrol edilmesi:
$ ls -laR .globus
22/10/2007 TR-Grid Eğitimi 5
Kullanıcı Arayüz Sunucularına Erişim-II
$ ls -lrt
$ tar -zxvf egitim.tar.gz
22/10/2007 TR-Grid Eğitimi 6
Geçici Sertifika Oluşturmak Grid ortamında yetkilendirilmeler X.509 standardındaki
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;
Subject: C=TR, O=TRGrid, Subject: C=TR, O=TRGrid, OU=TUBITAK-ULAKBIM, OU=TUBITAK-ULAKBIM, CN=Onur TemizsoyluCN=Onur Temizsoylu
Issuer: C=TR, O=TRGrid, Issuer: C=TR, O=TRGrid, CN=TR-Grid CACN=TR-Grid CAValidityValidity Not Before: Feb 5 Not Before: Feb 5 10:05:58 2007 GMT10:05:58 2007 GMT Not After : Feb 5 Not After : Feb 5 10:05:58 2008 GMT10:05:58 2008 GMT
Sertifika Otoritesi İmzasıSertifika Otoritesi İmzası
Açık AnahtarAçık Anahtar
$ grid-cert-info
22/10/2007 TR-Grid Eğitimi 7
Geçici Sertifika Oluşturmak-II
Geçici olarak yetkilendirilmek için sertifika oluşturulaması: $ voms-proxy-init –voms sgdemo
Oluşturulan geçici sertifika hakkında bilgi edinilmesi: $ voms-proxy-info --all
Oluşturulan geçici sertifikanın iptal edilmesi: $ voms-proxy-destroy
22/10/2007 TR-Grid Eğitimi 8
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 sanal organizasyonuna bağlı sitelerde ki hesaplama elemanı(ce) hakkında bilgi almak için:
$ lcg-infosites --vo sgdemo cesgdemo sanal organizasyonuna bağlı sitelerde ki depolama elemanı(ce) hakkında bilgi almak için:
$ lcg-infosites --vo sgdemo seSorgulanabilecek diğer özellikleri görmek için:
$ lcg-info --list-attrs
22/10/2007 TR-Grid Eğitimi 9
İş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
22/10/2007 TR-Grid Eğitimi 10
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.
22/10/2007 TR-Grid Eğitimi 11
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 ve tab karakterlerine duyarlıdır.
22/10/2007 TR-Grid Eğitimi 12
JDL Nitelikleri-I 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ı
22/10/2007 TR-Grid Eğitimi 13
JDL Nitelikleri-IIExecutable = < 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. Bu nitelik, etkileşimli işler için (interactive jobs) gerekli
değildir.
22/10/2007 TR-Grid Eğitimi 14
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.
22/10/2007 TR-Grid Eğitimi 15
JDL Nitelikleri-IVJob 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ı 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”;
22/10/2007 TR-Grid Eğitimi 16
JDL Nitelikleri-V
Requirements Uygun kaynak koşullarının tanımlanmasını sağlar.Ö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;
22/10/2007 TR-Grid Eğitimi 17
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.
22/10/2007 TR-Grid Eğitimi 18
Ö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;
22/10/2007 TR-Grid Eğitimi 19
İş Göndermeden Önce...
JDL dosyasında yer alan niteliklere göre, işin çalışabileceği siteleri görebilmek için:
$ glite-job-list-match <job.jdl>
İşin belli bir sitede çalışması için Requirement satırıkullanılabilir:
Requirements = other.GlueCEUniqueID == "ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-sgdemo"
22/10/2007 TR-Grid Eğitimi 20
Uygulama-I
22/10/2007 TR-Grid Eğitimi 21
İş Göndermek ve İşin Durumunu İzlemek
İş göndermek için;
glite-job-submit [--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-job-status –i <dosya_ismi> (veya işNumarası)
-i İş gönderilirken verilen dosya ismi burada kullanılabilir.
22/10/2007 TR-Grid Eğitimi 22
Uygulama-I
22/10/2007 TR-Grid Eğitimi 23
Uygulama-I
22/10/2007 TR-Grid Eğitimi 24
İş Durumları
Submitted – İş UI makinası aracılığı ile yollandı.
22/10/2007 TR-Grid Eğitimi 25
İş DurumlarıWaiting – İş kabul edildi ve WMS sunucusunda beklemede
22/10/2007 TR-Grid Eğitimi 26
İş DurumlarıReady – İş WMS tarafında incelendi ve uygun CE sunucusuna gönderilmek için hazır
22/10/2007 TR-Grid Eğitimi 27
İş DurumlarıScheduled – İş CE sunucusuna gönderildi ve kuyrukta bekliyor
22/10/2007 TR-Grid Eğitimi 28
İş Durumları
Running – İş çalışmaya başladı
22/10/2007 TR-Grid Eğitimi 29
İş Durumları
Done – İş tamamlandı
22/10/2007 TR-Grid Eğitimi 30
İş Durumları
Cleared – İş için “Çıktı Torbası” UI sunucusuna alındı veya zaman aşımından dolayı silindi
22/10/2007 TR-Grid Eğitimi 31
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
22/10/2007 TR-Grid Eğitimi 32
Uygulama-I
22/10/2007 TR-Grid Eğitimi 33
Uygulama-I
22/10/2007 TR-Grid Eğitimi 34
Uygulama-II
22/10/2007 TR-Grid Eğitimi 35
Uygulama-II
22/10/2007 TR-Grid Eğitimi 36
Uygulama-II
glite-job-submit -o id.txt HelloWorld.jdl glite-job-status -i id.txt glite-job-cancel -i id.txt glite-job-submit -o id.txt HelloWorld.jdl glite-job-status -i id.txt glite-job-status –all glite-job-output -i id.txt
22/10/2007 TR-Grid Eğitimi 37
Uygulama-III
22/10/2007 TR-Grid Eğitimi 38
İ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 bulunmamaktadır. İnteraktif pencereye çıktılar gelecektir.
22/10/2007 TR-Grid Eğitimi 39
Uygulama-IV
22/10/2007 TR-Grid Eğitimi 40
Uygulama-IV glite-job-submit interactive.jdl***************************************
Interactive Job console started for https://wms.ulakbim.gov.tr:9000/PU4Y872m7uFIM_BFgukezA
Please press ^C to exit from the session
***************************************
Welcome!
Please tell me your name: Feyza
That is all, Feyza.
Bye, .
22/10/2007 TR-Grid Eğitimi 41
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.
22/10/2007 TR-Grid Eğitimi 42
Uygulama-V
22/10/2007 TR-Grid Eğitimi 43
Uygulama-V
$ cat MPItest.c $ cat MPItest.sh $ glite-job-submit -i id.txt MPItest.jdl $ glite-job-status -i id.txt $ glite-job-output -i id.txt
22/10/2007 TR-Grid Eğitimi 44
http://www.grid.org.tr
http://wiki.grid.org.tr
grid-teknik@ulakbim.gov.tr
top related