Grid Ortamında İş Gönderme
Transkript
Grid Ortamında İş Gönderme
Grid Ortamında İş Gönderme I. Ulusal Yüksek Başarım ve Grid Konferansı 15-18 Nisan 2009, ODTÜ, Ankara http://www.grid.org.tr/basarim09/ 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 @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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 @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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ı: egitimxx – Kullanıcı Şifresi: xxxxxxxxx – .p12 uzantılı açık/kapalı anahtar ikilisinin ayrıştırılması @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Kullanıcı Arayüz Sunucularına Erişim - II @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Kullanıcı Arayüz Sunucularına Erişim - III – .globus dizinin kontrol edilmesi: $ ls -laR ~egitimxx/.globus @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Kullanıcı Arayüz Sunucularına Erişim - IV $ ls –la is-gonderme @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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 @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Geçici Sertifika Oluşturmak - II @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Geçici Sertifika Oluşturmak - III – Geçici olarak yetkilendirilmek için sertifika oluşturulması: $ voms-proxy-init –voms sgdemo @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Geçici Sertifika Oluşturmak - IV – Oluşturulan geçici sertifika hakkında bilgi edinilmesi: $ voms-proxy-info –all – Oluşturulan geçici sertifikanın iptal edilmesi: $ voms-proxy-destroy @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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 ce – sgdemo/trgridb sanal organizasyonuna bağlı sitelerdeki depolama elemanı(ce) hakkında bilgi almak için: $ lcg-infosites --vo sgdemo se – Sorgulanabilecek diğer özellikleri görmek için: $ lcg-info --list-attrs @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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 @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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. @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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. @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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ı @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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. @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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. @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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”; @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara JDL Nitelikleri - V – Requirements – Uygun kaynak koşullarının tanımlanmasını sağlar. Örnek: Requirements=other.GlueCEUniqueID == “se.ulakbim.gov.tr:2119/jobmanager-lcgpbs-sgdemo” – Rank – Requirements niteliğindeki koşullara uygun CE ler sıralanır. Örnek: Rank = other.GlueCEStateFreeCPUs; @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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. @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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; @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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-lcgpbs-sgdemo" @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Göndermeden Önce - II @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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. @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Uygulama-I @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Uygulama-I @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Durumları Submitted – İş makinası aracılığı yollandı. UI ile @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Durumları Waiting – İş kabul edildi ve WMS sunucusunda beklemede @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Durumları Ready – İş WMS tarafında incelendi ve uygun CE sunucusuna gönderilmek için hazır @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Durumları Scheduled – İş CE sunucusuna gönderildi ve kuyrukta bekliyor @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Durumları Running – İş çalışmaya başladı @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Durumları Done – İş tamamlandı @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara İş Durumları Cleared – İş için “Çıktı Torbası” UI sunucusuna alındı veya zaman aşımından dolayı silindi @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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. @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Uygulama-I @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Uygulama-I @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Uygulama-II @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Uygulama-II @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, 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 @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara Uygulama-III @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara http://www.grid.org.tr http://wiki.grid.org.tr [email protected] @ TR-Grid Okulu, TAEK, ANKARA I. Ulusal YüksekYEF Başarım ve Grid Konferansı, ODTÜ, Ankara