Главная / Обучение / Практикум / Запуск задания с использованием брокера ресурсов LCG

Запуск задания с использованием брокера ресурсов LCG

Этот практикум продемонстрирует этапы выполнения простого задания. Прежде чем продолжить, убедитесь, что у вас уже установлен правильный сертификат, а если нет, то инициализируйте его. Посмотрите здесь, если вам необходима помощь.

Примеры взяты из практикума, проведённого в Мадриде с использованием GILDA, поэтому если вы запускаете примеры в своём программном окружении, то пути к файлам и имя домашней директории могут отличаться.

Предварительные действия

Прежде чем выполнять какие-либо действия, вам необходимо создать прокси-сертификат для того чтобы получить доступ к Грид-ресурсам.

  voms-proxy-init --voms gilda 

  Cannot find file or dir: /home/madrid01/.glite/vomses 
  Your identity: /C=IT/O=GILDA/L=MADRID/CN=MADRID01/Email=tony.calanducci@ct.infn.it
  Enter GRID pass phrase:
  Creating temporary proxy ..................................................... Done
  Contacting  voms.ct.infn.it:15001 [/C=IT/O=GILDA/OU=Host/L=INFN Catania/CN=voms.ct.infn.it/Email=emidio.giorgio@ct.infn.it] "gilda" Done 
  Creating proxy .................................................... Done 
  Your proxy is valid until Fri Oct 13 21:58:45 2006
 

Получение списка ресурсов, доступных для запуска задания (Job List Match)

JDL (Job Description Language) файл описывает задание, которое должно быть запущено. Прежде чем запустить задание, полезно проверить, какие Вычислительные Элементы (Computing Elements, CE's) могут принять задание для выполнения. Пока не старайтесь детально разбираться в том, что написано в примере JDL файла, просто возьмите его и запустите такую проверку, используя команду edg-job-list-match. Более детальное описание подобного JDL файла можно найти здесь.

Для примера создайте простой JDL файл, наподобие следующего файла (jlvptest.jdl) и выполните команду

  Type = "Job";
  JobType = "Normal";
  Executable = "/bin/hostname";
  StdOutput = "hostname.out";
  StdError = "hostname.err";
  OutputSandbox = {"hostname.err","hostname.out"};
  Arguments = "-f";
  RetryCount = 7;
  
  edg-job-list-match jlvptest.jdl

  Selected Virtual Organisation name (from proxy certificate extension): gilda
  Connecting to host arquimedes.rediris.es, port 7772

  ***************************************************************************
                         COMPUTING ELEMENT IDs 
  LIST  The following CE(s) matching your job requirements have been found:

                           *CEId*
   gildace.oact.inaf.it:2119/jobmanager-lcgpbs-infinite
   gildace.oact.inaf.it:2119/jobmanager-lcgpbs-long
   gildace.oact.inaf.it:2119/jobmanager-lcgpbs-short
   grid010.ct.infn.it:2119/jobmanager-lcgpbs-infinite
   grid010.ct.infn.it:2119/jobmanager-lcgpbs-long
   grid010.ct.infn.it:2119/jobmanager-lcgpbs-short
   grid011f.cnaf.infn.it:2119/jobmanager-lcgpbs-infinite
   grid011f.cnaf.infn.it:2119/jobmanager-lcgpbs-long
   grid011f.cnaf.infn.it:2119/jobmanager-lcgpbs-short
   iceage-ce-01.ct.infn.it:2119/jobmanager-lcgpbs-infinite
   iceage-ce-01.ct.infn.it:2119/jobmanager-lcgpbs-short
   trigrid-ce00.unime.it:2119/jobmanager-lcgpbs-infinite
   trigrid-ce00.unime.it:2119/jobmanager-lcgpbs-short
   trigriden00.unime.it:2119/jobmanager-lcgpbs-short
   trigrid-ce00.unime.it:2119/jobmanager-lcgpbs-long
   iceage-ce-01.ct.infn.it:2119/jobmanager-lcgpbs-long
   trigriden00.unime.it:2119/jobmanager-lcgpbs-infinite
   trigriden00.unime.it:2119/jobmanager-lcgpbs-long
  ***************************************************************************
  

Полученный список Вычислительных Элементов(CE) подтверждает, что в JDL файле нет синтаксических ошибок и что задание может быть запущено на одном или нескольких CE из списка.

Запуск задания (Job Submission)

Простое задание может быть запущено на выполнение при помощи команды edg-job-submit -o jobid jdlname.

  edg-job-submit -o jlvpjobid jlvptest.jdl

  Selected Virtual Organisation name (from proxy certificate extension): gilda 
  Connecting to host arquimedes.rediris.es, port 7772 
  Logging to host arquimedes.rediris.es, port 9002

  ================================ edg-job-submit Success =====================================
   The job has been successfully submitted to the Network Server.
   Use edg-job-status command to check job current status. Your job identifier (edg_jobId) is:

   - https://arquimedes.rediris.es:9000/75hD3nNHxbYRDAL3GmiIug

   The edg_jobId has been saved in the following file:
   /home/madrid01/jlvpjobid
  =============================================================================================
  

Файл /home/madrid01/jlvpjobid определён, как выходной файл для процесса запуска. В него будет записан jodID(s) - уникальный идентификатор, возвращаемый в процессе запуска задания. Если будет запущено ещё одно задание (например просто повторите вызов команды), то его jobID будет дописан в выходной файл с таким именем. Попробуйте проверить это самостоятельно. После этой операции в файле /home/madrid01/jlvpjobid будут содержаться jobID уже для двух запущенных заданий

Эта команда имеет полезную опцию. Указав -r, пользователь может определить, на каком именно СЕ должно выполняться задание. Например, как в следующем примере:

  edg-job-submit -o jlvpjobid -r grid010.ct.infn.it:2119/jobmanager-lcgpbs-short jlvptest.jdl

  Selected Virtual Organisation name (from proxy certificate extension): gilda
  Connecting to host glite-rb.ct.infn.it, port 7772
  Logging to host glite-rb.ct.infn.it, port 9002

  ================================ glite-job-submit Success =====================================
   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://glite-rb.ct.infn.it:9000/Imo7eOk-y95ljKcJVe0jrQ

   The job identifier has been saved in the following file:
   /home/madrid01/jlvpjobid 
  =============================================================================================
  

Статус задания (Job Status)

Для того чтобы получить информацию о статусе запущенного задания предусмотрена команда edg-job-status. Эта команда запрашивает систему Регистрации (Logging and Bookkeeping, LB) о статусе каждого задания, чей идентификатор записан в файле, который указывается как входной параметр.

В том случае, если мы использовали файл jlvpjobid для сохранения идентификаторов задания (опция -o при запуске), выполнение команды происходит следующим образом:

  cat jlvpjobid

  ###Submitted Job Ids###
  https://arquimedes.rediris.es:9000/75hD3nNHxbYRDAL3GmiIug
  https://arquimedes.rediris.es:9000/UzwcbgzMe3y_k6HAFwNhDA

  edg-job-status -i jlvpjobid

  ------------------------------------------------------------------
  1 : https://arquimedes.rediris.es:9000/75hD3nNHxbYRDAL3GmiIug
  2 : https://arquimedes.rediris.es:9000/UzwcbgzMe3y_k6HAFwNhDA
  a : all
  q : quit
  ------------------------------------------------------------------

  Choose one or more edg_jobId(s) in the list - [1-2]all:a



  *************************************************************
  BOOKKEEPING INFORMATION:

  Status info for the Job : 
  https://arquimedes.rediris.es:9000/75hD3nNHxbYRDAL3GmiIug
  Current Status:     Done (Success)
  Exit code:          0
  Status Reason:      Job terminated successfully
  Destination:        grid011f.cnaf.infn.it:2119/jobmanager-lcgpbs-infinite
  reached on:         Fri Oct 13 08:13:20 2006
  *************************************************************


  *************************************************************
  BOOKKEEPING INFORMATION:

  Status info for the Job : 
  https://arquimedes.rediris.es:9000/UzwcbgzMe3y_k6HAFwNhDA
  Current Status:     Scheduled
  Status Reason:      Job successfully submitted to Globus
  Destination:        gildace.oact.inaf.it:2119/jobmanager-lcgpbs-long
  reached on:         Fri Oct 13 08:14:07 2006
  *************************************************************  
  

На основании содержимого файла jlvpjobid выводит список выполняющихся заданий, чей статус может быть запрошен по отдельности или для всех заданий сразу. Опция -i определяет имя файла из которого команда считывает jobID для контроля статуса. В примере первое задание имеет статус Done (Success), второе - Scheduled. Также отображается CE, определённый для выполнения задания.

В другом случае в качестве параметра можно указать не имя файла, а сам идентификатор задания, как это видно из следующего примера:

  edg-job-status https://arquimedes.rediris.es:9000/UzwcbgzMe3y_k6HAFwNhDA

  *************************************************************
  BOOKKEEPING INFORMATION:

  Status info for the Job : 
  https://arquimedes.rediris.es:9000/UzwcbgzMe3y_k6HAFwNhDA
  Current Status:     Scheduled
  Status Reason:      Job successfully submitted to Globus
  Destination:        gildace.oact.inaf.it:2119/jobmanager-lcgpbs-long
  reached on:         Fri Oct 13 08:14:07 2006
  *************************************************************
  

Результаты выполнения задания (Job Output)

Когда результат, возвращаемый командой edg-job-status покажет, что задание успешно завершилось (статус Done (Success)), результат выполнения может быть получен при помощи команды edg-job-get-output

  edg-job-get-output https://arquimedes.rediris.es:9000/75hD3nNHxbYRDAL3GmiIug

  Retrieving files from host: arquimedes.rediris.es ( for https://arquimedes.rediris.es:9000/75hD3nNHxbYRDAL3GmiIug )

  *********************************************************************************
                          JOB GET OUTPUT OUTCOME

   Output sandbox files for the job:
   - https://arquimedes.rediris.es:9000/75hD3nNHxbYRDAL3GmiIug
   have been successfully retrieved and stored in the directory: /tmp/jobOutput/madrid01_75hD3nNHxbYRDAL3GmiIug
  

В сообщении написано, что все результирующие файлы помещены в директорию /tmp/jobOutput/madrid01_75hD3nNHxbYRDAL3GmiIug

Для того чтобы проверить результат выполнения нашего примера, выполните следующую команду:

  cat /tmp/jobOutput/madrid01_75hD3nNHxbYRDAL3GmiIug/hostname.out
  egee015.cnaf.infn.it
  

Снятие задания (Job Cancel)

Если что-либо выполняется не так, как хотелось, задание может быть снято командой edg-job-cancel

  edg-job-cancel https://glite-rb.ct.infn.it:9000/xclH-uXpEoaIpkpY0OvEVA

  Are you sure you want to remove specified job(s)? [y/n]n :y

  =============================  edg-job-cancel Success  ==============================
   The cancellation request has been successfully submitted for the following job(s):

   - https://glite-rb.ct.infn.it:9000/xclH-uXpEoaIpkpY0OvEVA

  =====================================================================================
  

egee@pnpi.nw.ru

©2004-2010 ПИЯФ РАН им. Б.П.Константинова

СтатистикаСтатистика сайта