EGEE is a project funded by the European Union under contract IST Introduction to LCG-2 Введение в LCG-2 O.Kodolova (SINP MSU), E.Tikhonenko (JINR ) NA3 Induction Courses for CMS users, September 6, 2005
Talk Outline The preliminaries on the LCG-2 and the sequence of actions how to start a work in the LCG-2 environment
Проект LCG и среда LCG-2 Проект LCG – the LHC Computing Grid Project ( ) – был организован для создания компьютерной инфраструктуры, необходимой для моделирования, обработки и анализа данных cтроящихся на LHC экспериментов. Cреда LCG-2 – инфраструктура, промежуточное математическое обеспечение (middleware) которой может рассматриваться как логическое продолжение и развитие достижений таких grid – проектов, как Сondor, Globus, DataGrid, DataTag, GriPhyn, iVDGL и EGEE (Enabling Grids for E-sciencE). Под middleware понимается совокупность Grid-сервисов, независимых от ресурсов и приложений и обеспечивающих аутентификацию, авторизацию, размещение и распределение ресурсов, получение результатов выполнения задач, статистику и служебную информацию, удаленный доступ к данным, стратегию и способы обнаружения неисправностей.
UI (User Interface) – cервис, обеспечивающий доступ к ресурсам Grid; c UI-компьютера пользователь может запускать или прерывать свои задачи, получать информацию о статусе выполняемых задач, находить ресурсы, необходимые для исполнения конкретной задачи, получать учетную информацию о своей задаче: а также копировать, реплицировать или уничтожать файлы в инфрастуктуре Grid. CE (Computing Element) – очередь в системе пакетной обработки инфраструктуры Grid WN (Working Node) – вычислительный узел фермы в инфраструктуре Grid SE (Storage Element) –cервис, обеспечивающий унифицированный доступ к ресурсам памяти инфраструктуры Grid (ресурсами памяти при этом могут быть как простые дисковые серверы, так и дисковые массивы или системы массовой памяти (MSS)). Job Submission Что такое UI, CE, WN, SE?
Запуск задачи пользователя осуществляется через систему управления загрузкой (WMS, Workload Management System) Задачей WMS является планирование и управление ресурсами в распределенной среде Grid. При этом пользователю предоставляются следующие возможности : - запускать и исполнять свои задачи - получать информацию о статусе состояния своей задачи - получать результат выполнения задачи Назначение WMS - как оптимизировать использование ресурсов, так и способствовать скорейшему выполнению задачи пользователя Система управления загрузкой (WMS) в LCG-2
Составляющие части WMS В настоящее время WMS состоит из следующих частей: 1.User Interface (UI) : сервис, обеспечивающий для пользователя доступ к WMS 2.Resource Broker (RB) : сервис поиска наилучших ресурсов в среде GRID для запуска конкретной задачи 3.Job Submission Service (JSS) : сервис, обеспечивающий надежность запуска задачи 4.Information Index (BDII) : сервер, который собирает информацию о ресурсах Grid; эта информация используется Resource Brokerом для классификации и выбора ресурсов 5.Сервисы Logging и Bookkeeping (LB) : хранят информацию о задаче пользователя
Подготовка задачи Пользователь должен продумать Достаточно полное описание задачи, т.е. Собственно программу Необходимые для расчетов данные Требования к ОС и специализированному м/о Осознавать, что программа уйдет в некоторое неведомое пространство и при этом программа должна быть портабельной и не иметь в себе ссылок на локальное окружение и не обязательно программа должна располагаться в $HOME! Описать входные данные (если имеются) Дать указания касательно выходных данных
JDL – расширяемый язык, предназначенный для описания задач пользователя с помощью задания значений для атрибутов и появившияся еще при создании системы распределенных вычислений CONDOR Пользователь для запуска свой задачи в инфраструктуре grid должен сформировать файл ( job_definition.jdl ) Некоторые из атрибутов описываются пользователем, а некотрые атрибуты автоматически формируются UI до запуска задания в инфрастуктуру grid Job Submission Job Description Language (JDL) Язык описания задачи
Job Submission Атрибуты описания задачи Executable (обязательный) имя исполняемой команды (программы) Arguments (необязательный) аргументы, которые необходимы для исполнения команды, указанной в Executable StdInput, StdOutput, StdErr (необязательный) стандартные ввод/вывод/ошибки задачи Environment (необязательный) список установок среды InputSandbox (необязательный) список файлов на локальном диске на UI, необходимых для выполнения задачи перечисленные файлы помещаются на удаленный CE OutputSandbox (необязательный) Список файлов, которые будут сформированы в результате выполнения задания и которые необходимо получить пользователю после выполнения задачи
Job Submission Атрибуты ресурсов Resource Attributes Requirements Требования задачи на вычислительные ресурсы Если не определяются пользователем, то используется значение, заданное в конфигурации UI
Job Submission Атрибуты описания данных Data Attributes InputData (необязательный) относится к данным, используемым как входные к задаче: эти данные публикуются в Replica Catalog и запоминаются в SEs) PFNs и/или LFNs DataAccessProtocol (обязательный, если определен атрибут InputData) Протокол или список протоколов, требумых для доступа к InputData на данном SE OutputSE (необязательный) имя SE-хоста RB использует его для выбора CE, совместимого в требованиями задачи и наидолее близко расположенного к SE OutputData (необязательный) Выходные данные, которые должны быть сформированы в конце выполнения задачи
Пример простейшего описания задачи (myjob1.jdl) Мы определили программу для запуска и ее аргументы файлы, куда будет записан стандартный вывод как поступить с выходными файлами Как написать описание задачи (Job Description) Executable = "/bin/echo"; OutputSandbox = {"stdout", "stderror"}; stdoutput = "stdout"; stderror = "stderror"; Arguments = "Hi!"; VirtualOrganisation = "cms";
Пример запуска задачи Выполняем команду grid-proxy-init вводим в процессе выполнения данной команды свой пароль на гридовский сертификат получаем в результате Globus proxy – временный сертификат, дающий право доступа к сервисам и ресурсам Grid Выполняем команду: edg-job-submit myjob1.jdl и получаем в результате уникальный идентификатор задачи (Job Identifier), JobId По выполнению команды: edg-job-status JobId получаем статусную информацию о ходе выполнения задачи После завершения выполнения задачи можно выполнить команду edg-job-get-output JobId в результате чего получаем имя временнго каталога на машине UI, где находятся результаты выполнения задачи.
1) Получение proxy-сертификата: grid-proxy-init Your identity: /C=RU/O=DataGrid/OU=jinr.ru/CN=Tikhonenko Elena Enter GRID pass phrase for this identity: Creating proxy Done Your proxy is valid until: Fri Sep 2 04:40: ) Запуск задачи: edg-job-submit myjob1.jdl Selected Virtual Organisation name (from JDL): cms Connecting to host gdrb03.cern.ch, port 7772 Logging to host gdrb03.cern.ch, 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: - ********************************************************************************************* Запуск задачи (1) JobId
3) Если не указываем имя своей виртуальной в файле запуска (myjob1.jdl), то получаем диагностику вида: **** Error: UI_NO_VOMS **** Unable to determine a valid user's VO Имя своей виртуальной организации можно указывать не в jdl-файле, а непосредственно в команде edg-job-submit : edg-job-submit --vo CMS myjob1.jdl 4) Запуск задачи с опцией --nomsg : edg-job-submit --nomsg myjob1.jdl Job Submission Запуск задачи (2) Получаем только сообщение о JobId
Результатом выполнения команды edg-job-status будет: ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Scheduled Status Reason: Job successfully submitted to Globus Destination: ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-cms reached on: Thu Sep 1 15:07: ************************************************************* Когда задача находится в процессе выполнения, в ответ на edg-job-status получаем: ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Running Status Reason: Job successfully submitted to Globus Destination: ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-cms reached on: Thu Sep 1 15:10: ************************************************************* Job Submission Получение информации о статусе задачи (1)
После успешного завершения задания в ответ на edg-job-status получим: ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Done (Success) Exit code: 0 Status Reason: Job terminated successfully Destination: ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-cms reached on: Thu Sep 1 15:11: ************************************************************* Теперь мы можем ознакомиться с результатами Job Submission Получение информации о статусе задачи (2)
на выполнение команды edg-job-get-output получаем на экране следующую информацию: Retrieving files from host: gdrb03.cern.ch ( for ) ********************************************************************************* JOB GET OUTPUT OUTCOME Output sandbox files for the job: have been successfully retrieved and stored in the directory: /tmp/etikhone_26kIm7cU1F9eY0VVhfkItg ********************************************************************************* Получение результатов (1)
Отправляемся в указанный каталог ( /tmp/etikhone_26kIm7cU1F9eY0VVhfkItg ) сd tmp/etikhone_26kIm7cU1F9eY0VVhfkItg ls –lag total 484 drwxr-xr-x 2 zh 4096 Sep 1 17:13./ drwxrwxrwt 6262 root Sep 1 17:15../ -rw-r--r-- 1 zh 0 Sep 1 17:13 stderror -rw-r--r-- 1 zh 4 Sep 1 17:13 stdout Обнаруживаем там 2 файла: stderror (пустой, т.е. ошибок при выполнении задачи не было) и sdtout, содержащий собственно результат выполнения нашей задачи (в данном случае текст Hi! ) Получение результатов (2)
Job Submission Некоторые полезные команды UI edg-job-list-match Получение списка ресурсов, соответствующих описанию задачи (запуск задачи при этом не требуется) edg-job-cancel прекращение выполнения задачи edg-job-get-logging-info получение информации о прохождении задачи полезно при отладке программы grid-proxy-destroy закрытие временного сертификата (как выход из сеанса работы в инфрастурктуре grid)
В ОИЯИ UI - cервис доступен с lxpub03.jinr.ru В CERN при вхождении на lxplus.cern.ch следует выполнить скрипт grid_env.csh командой или в результате чего установятся переменные окружения, необходимые для доступа к сервису UI. Примечание: при получении proxy-сертификата командой grid-proxy-init без параметров, proxy-сертификат обычно выдается на 12 часов. Можно указывать временной интервал, на который необходимо получение proxy-сертификата. Для этого следует использовать опцию –valid HH:MM, например: grid-proxy-init -valid 150:00 Your identity: /C=RU/O=DataGrid/OU=jinr.ru/CN=Tikhonenko Elena Enter GRID pass phrase for this identity: Creating proxy DoneYour proxy is valid until: Fri Sep 9 17:14: date Sat Sep 3 11:14:08 CEST 2005 Job Submission UI в ОИЯИ и в CERN source /afs/cern.ch/project/gd/LCG-share/sl3/etc/profile.d/grid_env.csh source /afs/cern.ch/cms/LCG/LCG-2/UI/cms_ui_env.csh
Job Submission Рекомендуемые документы The LCG-2 User Guide LCG-2 User Scenario ClassAd language LCG-2 Frequently Asked Questions