Запуск задания с использованием брокера ресурсов LCG
- Предварительные действия
- Получение списка ресурсов, доступных для запуска задания (Job List Match)
- Запуск задания (Job Submission)
- Статус задания (Job Status)
- Результаты выполнения задания (Job Output)
- Снятие задания (Job Cancel)
Этот практикум продемонстрирует этапы выполнения простого задания. Прежде чем продолжить, убедитесь, что у вас уже установлен правильный сертификат, а если нет, то инициализируйте его. Посмотрите здесь, если вам необходима помощь.
Примеры взяты из практикума, проведённого в Мадриде с использованием 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 =====================================================================================