Слайд 4JDL: Job Description Language
JDL определяет характеристики задания, которые будут использоваться для выбора
оптимального ресурса для его запуска.
Характеристики самого задания
Требования к компьютерным ресурсам (и к software)
Требования к входным и выходным данным
JDL состоит из предложений типа: Attribute = value;
где value может быть Boolean, Integer, String.
Слайд 5Job Description Language
JobType
Normal, Interactive, MPICH, Checkpointable
Executable (mandatory)
Имя выполняемой программы
Arguments (optional)
Параметры
программы
StdOutput, StdError (optional)
Стандартный input/output/error
InputSandbox (optional)
Список файлов на UI, которые необходимы для выполнения задания.
Эти файлы будут переданы на удаленный кластер.
OutputSandbox (optional)
Список файлов, сгенерированных заданием, которые должны быть затребованы на UI
Слайд 6Job Description Language
JobType = "Normal";
Executable = "/bin/bash";
StdOutput = “stdout";
StdError = “stderr";
InputSandbox={“yourscript.sh“,”inpfile.txt”};
OutputSandbox={“stderr",“stdout“,”outf.txt”};
Arguments =
"yourscript.sh";
Слайд 8Job Description Language
Rank
Как ранжировать ресурсы, которые удовлетворяют специфицированным требованиям
Выбирается CE с наивысшим
рангом, например:
Rank= - other.GlueCEStateEstimatedResponseTime (наименьшее время доступа)
Rank= other.GlueCEStateFreeCPUs (наибольшее количество CPUs)
Rank= (other.GlueCEStateWaitingJobs == 0 ? other.GlueCEStateFreeCPUs : -other.GlueCEStateWaitingJobs)
Слайд 9Пример задания 1
Есть программа на PERL tstp.pl, которая использует входной файл c
колонкой чисел. Каждое число возводится в квадрат и записывается в выходной файл.
Имя входного файла передается как параметр программы. Имя выходного файла то же как и входного, но с расширением ‘out’.
Слайд 10Пример задания 1
JDL файл:
VirtualOrganisation = "nw_ru";
Executable = "pinp.pl";
Arguments = "pinp.inp";
StdOutput = "std.out";
StdError
= "std.err";
InputSandbox={"pinp.pl","pinp.inp"};
OutputSandbox = {"std.out", "std.err","pinp.out"};
RetryCount = 3;
Слайд 11Пример задания 2
Есть файл с исходным текстом программы на языке С ctst.c,
которая выводит строку “Hello world” на стандартный вывод.
Есть Makefile для сборки этой программы.
Необходимо обеспечит сборку и запуск программы на удаленном ресурсе.
Слайд 12Пример задания 2
JDL файл:
JobType="Normal";
VirtualOrganisation = "nw_ru";
Executable = "startC.sh";
StdOutput = "ctst.out";
StdError = "ctst.err";
OutputSandbox
= {"ctst.out","ctst.err"};
InputSandbox = {"startC.sh","ctst.c","Makefile"};
RetryCount=3;
Слайд 13Пример задания 2
Cтартовый скрипт startC.sh:
#!/bin/bash
make //сборка программы
chmod +x ctst //разрешаем запускать ее
./ctst
//запускаем
exit 0
Слайд 14Запуск задания
edg-job-submit ctst.jdl
Selected Virtual Organisation name (from JDL): nw_ru
Connecting to host cluster.pnpi.nw.ru,
port 7772
Logging to host cluster.pnpi.nw.ru, port 9002
*********************************************************************************************
JOB SUBMIT OUTCOME
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://cluster.pnpi.nw.ru:9000/KIl7Xj39Mfan3xXRgvYegA
Слайд 15Запрос состояния
edg-job-status https://cluster.pnpi.nw.ru:9000/I5jbSjf1QpHGPSak1VXM9w
*************************************************************
BOOKKEEPING INFORMATION:
Status info for the Job : https://cluster.pnpi.nw.ru:9000/I5jbSjf1QpHGPSak1VXM9w
Current Status: Running
Status
Reason: Job successfully submitted to Globus
Destination: cluster.pnpi.nw.ru:2119/jobmanager-pbs-nw_ru
reached on: Fri Jun 2 14:22:13 2006
*************************************************************
Слайд 16Получение выходных файлов
edg-job-get-output --dir . https://cluster.pnpi.nw.ru:9000/KIl7Xj39Mfan3xXRgvYegA
Retrieving files from host: cluster.pnpi.nw.ru ( for
https://cluster.pnpi.nw.ru:9000/KIl7Xj39Mfan3xXRgvYegA )
*********************************************************************************
JOB GET OUTPUT OUTCOME
Output sandbox files for the job:
- https://cluster.pnpi.nw.ru:9000/KIl7Xj39Mfan3xXRgvYegA
have been successfully retrieved and stored in the directory:
/home/knv/tut/knv_KIl7Xj39Mfan3xXRgvYegA