TÜBİTAK »  ULAKBİM » TR-Grid »  Wiki-Grid Anasayfa İletişim / Bilgi Edinme  |  Site Haritası  |  English 
ULAKBİM

ATHENA Framework Giriş ve Örnek Tanıtıcı Uygulamalar

TR-Grid, özgür ansiklopedi

Git ve: kullan, ara

Konu başlıkları

[değiştir] GİRİŞ

Bu döküman atlas üyesi yeni kullanıcıları atlas hesaplama ortamı ile tanıştırmak üzere hazırlanmıştır. Kullanılan kodlar giriş düzeyinde olup ileri düzey hesaplama ve analiz içermemektedir. Örnek uygulamalar TR-Grid kaynakları üzerinde çalışacak şekilde hazırlanmıştır.

[değiştir] ATHENA FRAMEWORK

  • Son kullanıcıya işini kolaylaştırmak adına yararlı çok sayıda fonsiyon sağlar.
  • Kullanıcıları genel bir yaklaşıma teşvik eder.
  • Standart bir kullanım sağlanarak kullanıcıların problemlerine daha kolay çözüm getirilmesi sağlanır.
  • Tekrar kullanımı sağlar.


[değiştir] ATHENA İŞ DOSYALARI

  • Bu dosyada ki parametreler kullanıcı ihtiyacına gore set edilerek, çalışma zamanında algoritma tanımlanmış olur.
  • Algoritma tanımı yanında girdi ve çıktı dosyaları, işlem sonrası oluşacak veri setlerinin nereye kaydedileceği, çalışacak event sayısı bu dosya sayesinde tanımlanır.


[değiştir] HESABINIZIN HAZIRLANMASI

Bu döküman, lxplus üzerinden CERN’de bulunan kaynakların nasıl kullanılacağı yerine lufer üzerinden T2 merkezlerimizin nasıl kullanılacağı üzerine hazırlanmıştır. lxplus üzerinde yapılan işlemlerin karşılığı kullanılan teknoloji farklılıkları düşünülerek lufer üzerinden nasıl yapılacağı üzerine çalışılmış ve bu döküman hazırlanmıştır.


Atlas yazılımı pek çok paket içermektedir, tüm bu paketlerin yönetimi, ATLAS CVS kaynağından dosyaların alınması ve derlenmesi CMT (Configuration Management Tool) tarafından yapılır.


NOT: Bu döküman ATLAS 14.2.0 sürümü kullanılarak hazırlanmıştır.


Öncelikle çalışma ortamı hazırlanmalıdır. Gerekli dizinler aşağıda ki gibi oluşturulabilir.

$ cd $HOME 
$ mkdir cmthome
$ mkdir testarea
$ mkdir testarea/14.2.0
$ cd cmthome

Sonrasında kullanacağımız CMT aracının güncel sürümü çalışma ortamına tanıtılır. “source” komutu ile betik dosyası içerisindekilerin işlenmesi sağlanır. Atlas ortamında çalışırken aynı isme sahip .sh veya .csh uzantılı dosylarla sık sık karşılaşırsınız. .sh standart bash ortamı için hazırlanmışken .csh C shell (C benzeri bir programlama yapısına sahip) için hazırlanmış dosyalardır. TR-Grid alt yapısına dahil olan lufer makinesinde default olarak bash tanımlı iken lxplus üzerinde C Shell tanımlıdır. Dolayısıyla lxplus üzerinde çalışmaya aşina olduğunuz bash ortamına geçmek için bash komutunu vermeniz gerekmektedir. Benzer şekilde lufer makinesinde çalışma ortamını değiştirmek için csh komutunu vermeniz gerekmektedir. Bu döküman çalışma ortamının bash olduğu varsayılarak hazırlanmıştır.

$ source /opt/exp_soft/atlas/prod/releases/rel_14-2/CMT/v1r20p20080222/mgr/setup.sh


NOT: Ev dizininizde cmt adında bir dizin bulunmamalıdır, çünkü CMT requirements dosyasını çalıştığınız dizin nere olursa olsun doğrudan bu dizin altından alacaktır.


Bulunduğunuz dizine aşağıda ki içeriğe sahip requirements dosyası hazırlanmalıdır. Bu dosya içerisinde kullanılacak ATLAS yazılımın yerinden çalışılacak dizine kadar pek çok tanımlamalar bulunur.

#--------------------------------------------------------
set CMTSITE STANDALONE
set SITEROOT /opt/exp_soft/atlas/prod/releases/rel_14-2
macro ATLAS_TEST_AREA ${HOME}/testarea
macro ATLAS_DIST_AREA ${SITEROOT}
apply_tag projectArea
macro SITE_PROJECT_AREA ${SITEROOT}
macro EXTERNAL_PROJECT_AREA ${SITEROOT}
apply_tag opt
apply_tag setup
apply_tag simpleTest
use AtlasLogin AtlasLogin-* $(ATLAS_DIST_AREA)
set CMTCONFIG i686-slc4-gcc34-opt
#---------------------------------------------------------

Sonrasında çalışma ortamı konfigürasyonun yapılması için aşağıdaki komut çalıştırılır. Bu komutun çalıştırılması ile yardımcı dosyalar bulunduğunuz dizine getirilmiş olunur.

$ cmt config

Configuring environment for standalone package.
CMT version v1r20p20080222.
System is i686-slc3-gcc323-opt
------------------------------------------
Creating setup scripts.
Creating cleanup scripts.

Lufer üzerinden CERN’de bulunan ev dizininize AFS üzerinden ulaşabilirsiniz. Bunun için Kerberos ile gerekli iznin alınması gerekmektedir. Size yaratılan ticket süresince dosyalarınıza buradan erişebilirsiniz. Bunun için;

$ kinit -5 username@CERN.CH
$ klog username


klist komutu ile de yaratmış olduğunuz Kerberos Ticket hakkında bilgi alabilirsiniz.


Kullanmak istediğimiz ATLAS sürümünü CMT aracına bildirmek ve bu yazılıma bağlı gerekli parametrelerin tanımlanmasını sağlamak amacıyla aşağıda ki komut yazılır. Bu komut her yeni terminal açıldıında yazılmsı gerekmektedir.

$ source ~/cmthome/setup.sh –tag=14.2.0


Gerekli parametrelerin doğru şekilde set edildiğinden emin olmak için aşağıdaki değişkenlerin içeriğine bakılır.

$ echo $CMTCONFIG 
i686-slc4-gcc34-opt
$ echo $CMTPATH 	
/home_palamut2/akkoyun/testarea/14.2.0:/opt/exp_soft/atlas/prod/releases/rel_14-2/AtlasOffline/14.2.0


NOT: Buraya kadar yapılanlar, ilk defa bu ortamda çalışmaya başlandığında gereklidir. Terminalinizi kapattığınızda aynı işlemleri, tekrar tekrar yapmanıza gerek yoktur. Sadece “source ~/cmthome/setup.sh –tag=14.2.0” komutunun çalıştırılması yeterlidir. AFS üzerinden dosyalarınıza erişmek istediğinizde de Kerberos ticketini edinmelisiniz.


[değiştir] PRATİK UYGULAMALAR

Bu bölümde ATHENA otamını tanıtmak amacıyla basit bir merhaba dünya benzeri bir uygulama yapılacaktır. Bu basit algoritma kullanıcı ihtiyaçlarına gore daha da geliştirilerek aynı şekilde detaylı analizler kolayca yapılabilmektedir.


Atlas yazılımı CERN’de ki çalışma ortamı göz önünde bulundurulduğunda fiziksel olarak üç farklı yerde yapılmaktadır. Bunlardan ilki doğrudan çalışmaların kullanıcı arayüzü makineleri tarafından yapılmasıdır. Yani lxplus hesabınız üzerinden anlatılacak çalışmalar yapılarak o an ki bağlanmış olduğunuz bilgisayarın üzerinde bulunan yazılımı kullanabilirsiniz. Bu bilgisayarlar kullanıcı arayüzü olduğundan bu şekilde kullanımdan kaçınılmalıdır. Bunun yanında Lxbatch dediğimiz ortamda analiz yapılabilir. Küme bilgisayarların oluşturduğu bu yapıda hazırlamış olduğunuz işler üzerinde çalıştığınız bilgisayar değil uzakta bulunan bilgisayarlar üzerinde “bsub” gibi komutlar kullanılarak çalıştırılır. Kullanıcının işlemi once sıraya alınır, bu küme bilgisayarlara dahil herhangi birinin boşalması sonrasında burada işlenir. Son olarak hazırlanan bu işler dünya üzerinde coğrafik olarak dağınık bulunan hesaplama merkezlerine gönderilerek burada çalıştırılması sağlanır. Bu işler farklı mimarilere sahip grid ortamında çalıştırılır. Gerek küme bilgisayar gerekse grid ortamı olsun kullanıcıya sanki tek bir bilgisayar üzerinde çalışıyormuş, işlerini sadece bu bilgisayara gönderiyormuş gibi bir ara yüz sağlanır. Yüksek Enerji Fiziği için grid ortamının hayati öneme sahip olduğu düşünülürse, kullanıcıların grid ortamında çalışmaya yakın olması önemlidir.


Bu bölümde farklı olan fiziksel üç çalışma ortamınının TR-Grid üzerinde nasıl yapıldığı ile ilgili pratik uygulama yapılacaktır. Öncelikle Atlas yazılımı kullanılarak temel bir uygulama lufer üzerinde çalıştırılacaktır. Sonrasında bu iş ULAKBIM kümesi üzerine PBS aracı kullanılarak gönderilerek burada çalışması sağlanacaktır. En sonunda da aynı iş grid ortamında TR-10-ULAKBIM sitesine gönderilerek burada çalışması sağlanacaktır.


[değiştir] LUFER Üzerinde Atlas Yazılımı Kullanılması

Bu uygulama da basit HelloWorld algoritasının UserAnalaysis paketinin kullanarak nasıl çalıştığı üzerine durulacaktır. Bu işlemlere başlamadan once Bölüm 1’de anlatılan hesabınızın hazırlanması başlıklı konunun yapıldığından emin olunuz.


Çalışma dizininize geçtikten sonra (testarea), UserAnalysis paketini CMT aracını kullanarak indiriniz. Atlas ortamı pekçok farklı paketi bünyesinde barındırmaktadır, bu paketlerin güncel halinin çalışma dizininize indirilmesi “check out” işlemi ile yapılır.


NOT: source komutu eğer 14.2.0 sürümü kullanılacaksa aşağıdaki gibi değiştirilmelidir. Çünkü atlas yazılımının güncel sürümünde uzak siteden CVS repository kaynağına ulaşmada problemler yaşanmaktadır. Analiz paketi indirilirken izinler ile ilgili sorunlar çıkmaktadır, bu problemi aşmak için aşağıda ki değişikliğin yapılması gerekmektedir.


$ cd ~/cmthome
$ source setup.sh –tag=14.2.0,sshcvs
$ cd $HOME/testarea/14.2.0
$ cmt co -r UserAnalysis-00-12-07 PhysicsAnalysis/AnalysisCommon/UserAnalysis


Gerekli analiz paketinin indirilmesinden sonra dosyaların derlenmesi ve çalıştırılması gerekmektedir. Öncelikle UserAnalysis paketi derlenmelidir. Bunun için;

$ cd PhysicsAnalysis/AnalysisCommon/UserAnalysis/cmt
$ source setup.sh
$ gmake


Başarılı bir derlemeden sonra çalışma dizinine geçilmeli ve Atlas ortamının sağladığı örnek HelloWorld dosyası buraya indirilmelidir.

$ cd ../run
$ get_files HelloWorldOptions.py
$ athena.py HelloWorldOptions.py

...

HelloWorld           INFO initialize()
HelloWorld           INFO   MyInt =    42
HelloWorld           INFO   MyBool =   1
HelloWorld           INFO   MyDouble = 3.14159
HelloWorld           INFO   MyStringVec[0] = Welcome
HelloWorld           INFO   MyStringVec[1] = to
HelloWorld           INFO   MyStringVec[2] = Athena
HelloWorld           INFO   MyStringVec[3] = Framework
HelloWorld           INFO   MyStringVec[4] = Tutorial
...
AthenaEventLoopMgr   INFO   ===>>>  start of run 0    <<<===
AthenaEventLoopMgr   INFO   ===>>>  start of event 1  <<<===
...
HelloWorld           INFO execute()
HelloWorld           INFO An INFO message
HelloWorld        WARNING A WARNING message
HelloWorld          ERROR An ERROR message
HelloWorld          FATAL A FATAL error message


Temel olarak bu betik dosyasının yaptığı değişkenleri tanımlamak ve bunların gösterilmesini sağlamaktır. Çalışacak event sayısı 10 olarak belirtilmiştir. Kullanıcının ihtiyacına bağlı olarak bu dosya daha da geliştirilerek benzer çalışmalar yapılabilir.


[değiştir] ULAKBIM Kümesi Üzerinde Kullanılması

ULAKBIM aynı zamanda ulusal T2 hesaplama merkezimiz olup, öncelikli Atlas kullanıcılarının hesaplama ve depolama ihtiyaçlarını karşılaması üzerine kurulmuştur. Dolayısıyla büyük oranda ki hesaplamalarda bu kaynak kullanılacaktır. Bu örnek de yukarıda yapılan işler kümeye gönderilerek çalıştırılması sağlanmaktadır.


Aynı işi küme bilgisayarlara göndermek istediğinizde aşağıda ki gibi bir betik hazırlamanız gerekmektedir. helloWorld.sh

#!/bin/bash
# Script to run AthenaHelloWorld on the Cluster
#PBS -q atlas@kalkan1.ulakbim.gov.tr
#PBS -l nodes=1:ppn=1
#PBS -V
source ~/cmthome/setup.sh -tag=14.2.0, sshcvs
cd ~/testarea/14.2.0/PhysicsAnalysis/AnalysisCommon/UserAnalysis/run
athena.py HelloWorldOptions.py >> ornek_pbs.out

Burada öncelikle işinizi göndereceğniz kuyruğu tanımlamanız gerekmektedir. Bunun yanında PBS komutlarıyla hangi kümeye iş gönderecekseniz o kümenin hesaplama elemanın adı yazılmalıdır. Dosya içerisinde “PBS –q” komut satırı ile bunlar belirtilir. “–l nodes=1:ppn=1” komut satırıyla işinizin kaç hesaplama nodu ve her hesaplama nodunda bulunması gereken işlemci sayısı belirtilir.(process per node) Burada basit bir iş denendiğinden bir hesaplama nodunda bir işlemci talep edildi.


PBS için gerekli ayarlamaları yaptıktan sonra diğer işlemler aynen bir önceki lufer de iş çalıştırmada yapıldığı gibi yapılmaktadır. Çıktı işlemleri ekrana değil en son satırda belirtildiği üzere ornek_pbs.out dosyasına yazılacaktır.


$ qsub helloWorld.sh

komutu ile birlikte bu betik dosyası küme ortamına gönderilir. Bu betik dosyasının çalıştırılabilir olmasından emin olunuz. (chmod +x helloWorld.sh). İşinizi gönderdikten sonra size durumunu sorgulayabileceğiniz bir ID numarası döndürülür. 159003.kalkan1.ulakbim.gov.tr

$ qstat 159003.kalkan1.ulakbim.gov.tr


komutu ile gönderdiğiniz işin ID numarası verilerek işin durumunu takip edebilirsiniz.

 Job id              Name             User            Time Use S Queue
------------------- ---------------- --------------- -------- - -----
159003.kalkan1      helloWorld.sh    akkoyun                0 R atlas


Burada da görüldüğü üzere şu an iş (R)Running durumunda. Aşağıda durumunu belirten harflerin ne anlama geldiğini bulabilirsiniz.

  • E : İş çalışmış ve bitti (ended)
  • H : İş beklemeye alındı (held)
  • Q : İş kuyrukta bekliyor (queued)
  • R : İş çalışıyor (running)
  • W: İş çalışma zamanını bekliyor (waiting)


İşinizin bitmesi sonrası çalışma dizininde ornek_pbs.out dosyası oluşturulur. İçeriği aşağıda ki çıktıya benzer olmalıdır.

Py:ConfigurableDb INFO Read module info for 3563 configurables from 10 genConfDb files

Py:ConfigurableDb WARNING Found 1 duplicates among the 10 genConfDb files :
Py:ConfigurableDb WARNING --------------------------------------------------
Py:ConfigurableDb WARNING   -<component name>: <module> - [ <duplicates> ]
Py:ConfigurableDb WARNING --------------------------------------------------
Py:ConfigurableDb WARNING   -LUCID_SimHit2ADCTool: LUCID_DigiTools.LUCID_DigiToolsConf - ['LUCID_Digitization.LUCID_DigitizationConf']
Py:ConfigurableDb WARNING Fix your cmt/requirements file !!
Py:Athena            INFO including file "AthenaCommon/Bootstrap.py"
Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
Py:Athena            INFO including file "HelloWorldOptions.py"
Py:Athena            INFO including file "AthenaCommon/runbatch.py"
ApplicationMgr       INFO Updating ROOT::Reflex::PluginService::SetDebug(level) to level=0
ApplicationMgr    SUCCESS
                                                   Welcome to ApplicationMgr $Revision: 1.71 $
                                         running on barbun44.ulakbim.gov.tr on Mon Jun 16 13:40:48 2008
ApplicationMgr       INFO Successfully loaded modules : AthenaServices
ApplicationMgr       INFO Application Manager Configured successfully
ApplicationMgr       INFO Updating ROOT::Reflex::PluginService::SetDebug(level) to level=0
StatusCodeSvc        INFO initialize
AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-01-31-01
HelloWorld           INFO initialize()
HelloWorld           INFO   MyInt =    42
HelloWorld           INFO   MyBool =   1
HelloWorld           INFO   MyDouble = 3.14159
HelloWorld           INFO   MyStringVec[0] = Welcome
HelloWorld           INFO   MyStringVec[1] = to
HelloWorld           INFO   MyStringVec[2] = Athena
HelloWorld           INFO   MyStringVec[3] = Framework
HelloWorld           INFO   MyStringVec[4] = Tutorial
HelloWorld           INFO   MyStringVec[5] = !
HelloWorld           INFO   MyDict['Bonjour'] = 'Guten Tag'
HelloWorld           INFO   MyDict['Goeiedag'] = 'Ni Hao'
HelloWorld           INFO   MyDict['Good Morning'] = 'Bonjour'
HelloWorld           INFO   MyDict['one'] = 'uno

Çıktı dosyasında işinizin hangi hesaplama noduna gittiğini – bu örnekte barbun44.ulakbim.gov.tr bilgisayarına gitmiş – görebilirsiniz. Her defasında gönderdiğiniz iş o an iş yükü en az hangi bilgisayar ise ona yönlendirilir.


İşinizin gereksinimi ne kadar düşükse sırada o kadar az sıra beklersiniz. Çalışmak istediğiniz işlemci sayısı ve buna bağlı çekirdek sayısı fazla olursa talep ettiğiniz kaynakların tamamının boşalmasına kadar işiniz sıra bekleyecektir. O yüzden kaynak gereksinimi konusunda optimistic davranılması gerekmektedir.


[değiştir] Algoritmanın Değiştirilmesi ve TR-10-ULAKBIM sitesi üzerinde çalıştırılması

Son olarak hazırladığınız işi kendi sitelerimizden birinde çalıştırabileceğiniz gibi atlas organizasyonunu destekleyen herhangi bir sitede de çalıştırabilirsiniz. Bu örnek de lufer üzerinden kullanıcının işleri hem TR-10-ULAKBIM hem de diğer dağınık hesaplama merkezlerine gönderilecektir.


Öncelikle lufer arayüzünde atlas ile ilişkilendirilmiş proxy yaratılması gerekmektedir. İstendiğinde proxy süresi external olarak set edilebilir.

$ voms-proxy-init –voms atlas –valid 12:00

voms-proxy-info –all komutu ile proxy extension değerinin atlas olduğunu kontrol ediniz.

subject   : /C=TR/O=TRGrid/OU=TUBITAK-ULAKBIM/CN=Emrah Akkoyun2/CN=proxy
issuer    : /C=TR/O=TRGrid/OU=TUBITAK-ULAKBIM/CN=Emrah Akkoyun2
identity  : /C=TR/O=TRGrid/OU=TUBITAK-ULAKBIM/CN=Emrah Akkoyun2
type      : proxy
strength  : 512 bits
path      : /tmp/x509up_u1356
timeleft  : 11:54:52
=== VO atlas extension information ===
VO        : atlas
subject   : /C=TR/O=TRGrid/OU=TUBITAK-ULAKBIM/CN=Emrah Akkoyun2
issuer    : /DC=ch/DC=cern/OU=computers/CN=voms.cern.ch
attribute : /atlas/Role=NULL/Capability=NULL
attribute : /atlas/lcg1/Role=NULL/Capability=NULL
timeleft  : 11:54:52


İşlem yapacağınız dosyayı karşı tarafta çalıştırmadan once nerede derlenmek istendiğine karar verilmelidir. Dosyanız herhangi bir kullanıcı arayüzü tarafından (lufer,lxplus vs) derlenip site üzerinde çalıştırılabileceği gibi, site üzerinde de derlenebilir. Kullanıcı arayüzünde derlemenin büyük bir dez avantajı vardır ki, derlediğiniz ortam ile işi çalıştıracağınız ortam birbirine uyuşmuyor olabilir. Grid dünyası düşünüldüğünde pek çok hesaplama merkezinin farklı mimariler içermesi nedeniyle bu yöntemden kaçınılmalıdır. Bunun yerine hem derleme hem de çalıştırılma karşı tarafta yapılmalıdır. Bu örnekte de çalıştırılacak olan algoritma üzerinde ufak bir değişiklik yapıldıktan sonra grid ortamında derlenmesi ve çalıştırılması sağlanacaktır. Hesabınızı bundan önceki anlatılan konularda olduğu gibi hazırladıktan sonra grid ortamına göndereceğiniz dosyalar hazırlanmalıdır. Öncelikle bu bölümde hazır paketlerin üzerinde nasıl değişiklik yapabilirsiniz bundan bahsedilecektir.


$ cd testarea/14.2.0
$ cmt co -r AthExHelloWorld-01-01-01 Control/AthenaExamples/AthExHelloWorld
$ cd Control/AthenaExamples/AthExHelloWorld/src
$ vi HelloAlg.cxx


Yukarıda ki komutlar ile ihtiyacınız olacak paketi testarea dizini altına indiriniz. Sonrasında kodların bulunduğu dizine geçip istediğiniz değişiklikleri yapabilirsiniz. Bu örnek te ekrana yazılan mesajlara yeni birisini eklemek için değişiklik yapılacaktır. Aşağıda ki satırı bu kod içerisinde initialize(ilkleme) metoduna ekleyiniz.

log << MSG::INFO << " MERHABA, NABER" << endreq;


Sonrasında kodunuzu tekrar derleyin, derleme işleminin başarılı bir şekilde sonlandırılmasının ardından çalıştırıp yaptığınız değişikliği çıktı dosyasından takip ediniz.

$ cd ../cmt

 $ cmt config

$ source setup.sh
$ gmake
$ cd ../../../../PhysicsAnalysis/AnalysisCommon/UserAnalysis/run
$ athena.py HelloWorldOptions.py


Burada üzerinde çok temel değişiklik yaptığımız iş kullanıcı arayüzünde derlenip çalıştırılmıştır. Derleme ve çalıştırılma işleminin herhangi bir hesaplama merkezlerinden birinde yapılması için öncelikle grid ortamına taşınacak dosyaların hazırlanması gerkemektedir. Bu dosyalardan ilki lokale indirmiş olduğunuz paket dosyaların – bu örnekte Control ve Physic Analyses paketleri- grid ortamına taşınalıdır. Bu dosyaların göndermeden önce sıkıştırılması, gönderildikten sonra da yazılan betik dosyasına göre karşı hesaplama nodunda açılması gerekmektedir.

$ tar -cvlpf checkout.tar Control PhysicsAnalysis


Buna bağlı olarak karşı tarafta çalıştırılacak olan betik dosyasının içeriği aşağıdaki gibi olmalıdır. (hello.sh) #!/bin/bash

# Script to run AthenaHelloWorld on the Grid 
source $VO_ATLAS_SW_DIR/software/14.2.0/setup.sh
source $SITEROOT/AtlasOffline/14.2.0/AtlasOfflineRunTime/cmt/setup.sh
export CMTPATH=`pwd`:${CMTPATH}
# Create the checked out package then replace the modified file
tar -xf checkout.tar
cp HelloAlg.cxx Control/AthenaExamples/AthExHelloWorld/src/
# Rebuild
cd Control/AthenaExamples/AthExHelloWorld/cmt
cmt config
source setup.sh
gmake
cd ../../../../PhysicsAnalysis/AnalysisCommon/UserAnalysis/run
athena.py HelloWorldOptions.py


Özetle once gerekli çevre değişkenleri tanımlanıyor, sıkıştırılmış olarak gönderilen paket dosyaları burada açılıyor, üzerinde ufak değişiklik yapmış olduğumuz dosya yerine konuyor, değişikliğin yansıması için tekrar derleniyor ve kod karşı tarafta çalıştırılıyor.


Son olarak grid ortamının anlayacağı JDL dosyası(hello.jdl) hazırlanıyor. Bu dosyanın içeriği aşağıda ki gibi olmalıdır.

############# Athena #################
Executable = "hello.sh";
StdOutput = "hello.out";
StdError = "hello.err";
InputSandbox = {"hello.sh","checkout.tar","HelloAlg.cxx"};
OutputSandbox = {"hello.out","hello.err", "CLIDDBout.txt"};
#Requirements = Member("VO-atlas-offline-14.2.0-i686-slc4-gcc34-opt", other.GlueHostApplicationSoftwareRunTimeEnvironment);
Requirements = other.GlueCEUniqueID == "kalkan1.ulakbim.gov.tr:2119/jobmanager-lcgpbs-atlas";


Burada karşıda hello.sh dosyasını çalıştıracağımızı, normal çıktı dosyasının hello.out dosyasına, hata ya da uyarı ile karşılaşıldığı durumda bu mesajların hello.err dosyasına yazmasını söylüyoruz. Bunun yanında lokalde bulunan sıkıştırılmış dosya ile birlikte üzerinde değişiklik yapmış olduğumuz dosyayı InputSandbox ile alması gerektiği belirtiliyor.


Requirement parametresi ile kullanmak istediğiniz işletim sistemi, yazılım, işlemci sayısı gibi bilgiler yanında doğrudan işin çalışacağı siteyi de yukarıda olduğu gibi belirleyebilirsiniz. TR-10-ULAKBIM sitesini hesaplama elemanı kalkan1.ulakbim.gov.tr olduğundan bu belirtilmelidir.

$ edg-job-list-match hello.jdl ile belirttiğiniz özelliklerde ki tüm hesaplama merkezleri listelencektir.
$ edg-job-submit -o jobID helloWorld.jdl

komutu ile iş dosyası grid ortamına gönderilir. –o parametresi ile gönderilen iş dosyasından dönen unique id jobID dosyası içerisinde kaydedilir. Aynı komutu birden fazla gönderip her bir işin birbirinden bağımsız sonucuna bakabilirsiniz. Bunun yanında Requirement parametresi kaldırılarak bu işin farklı farklı ülkelerde çalıştırılması sağlanır.


Gönderdiğiniz işin durumunu edg-job-status –I jobID komutu ile control edebilirsiniz.

------------------------------------------------------------------
1 : https://rb.ulakbim.gov.tr:9000/3Zni4Ex2uo-2MNuZBgHv6A
2 : https://rb.ulakbim.gov.tr:9000/tBR6rqXPGxd_bqt87mL4qw
3 : https://rb.ulakbim.gov.tr:9000/xP-toK5INCQBdVzOeBG5XA
4 : https://rb.ulakbim.gov.tr:9000/xBD5WiAtAn2TXL6xMj5sWA
a : all
q : quit
------------------------------------------------------------------
Choose one or more edg_jobId(s) in the list - [1-4]all: a
*************************************************************
BOOKKEEPING INFORMATION:
Status info for the Job : https://rb.ulakbim.gov.tr:9000/LBUCNEKY6x7A55u_pdUiTg
Current Status:     Cleared
Status Reason:      user retrieved output sandbox
Destination:        golias25.farm.particle.cz:2119/jobmanager-lcgpbs-lcgatlasprod
reached on:         Tue Jun 17 12:55:13 2008
*************************************************************

edg-job-get-output <jobID> komutu ile iş dosyasının çıktısı alınır, ve çıktı dosyaları içeriği incelenir.

Retrieving files from host: rb.ulakbim.gov.tr ( for https://rb.ulakbim.gov.tr:9000/H8eZTSBEdvCCEKqKrWH5RQ )
******************************************************************************
                       JOB GET OUTPUT OUTCOME
 Output sandbox files for the job:
 - https://rb.ulakbim.gov.tr:9000/H8eZTSBEdvCCEKqKrWH5RQ
 have been successfully retrieved and stored in the directory:
 /tmp/jobOutput/akkoyun_H8eZTSBEdvCCEKqKrWH5RQ


/tmp/jobOutput/akkoyun_H8eZTSBEdvCCEKqKrWH5RQ dizininde iş tanımlama dosyasında (JDL) belirtmiş olduğunuz çıktı dosyaları hello.sh ve hello.err bulunur. Buradan işleminizin doğruluğunu kontrol edebilirsiniz.


NOT: Bu sayfa hazırlanırken O.Çakır ve I.Türk Çakır'ın hazırlamış oldukları dökümandan yararlanılmıştır.

---------------------------------------------------------------------------------------------------

Hazırlayan: Emrah AKKOYUN

27 Haziran 2008
© 2007 TÜBİTAK-ULAKBİM Görüşleriniz