NA3 Induction Courses for CMS users, September 6, 2005 www.eu-egee.org Introduction to LCG-2 Введение в LCG-2 O.Kodolova (SINP MSU), E.Tikhonenko (JINR ) EGEE is a project funded by the European Union under contract IST-2003-508833 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 (http://lcg.web.cern.ch/LCG/ ) – был организован для создания компьютерной инфраструктуры, необходимой для моделирования, обработки и анализа данных cтроящихся на LHC экспериментов. • Cреда LCG-2 – инфраструктура, промежуточное математическое обеспечение (middleware) которой может рассматриваться как логическое продолжение и развитие достижений таких grid – проектов, как Сondor, Globus, DataGrid, DataTag, GriPhyn, iVDGL и EGEE (Enabling Grids for E-sciencE). Под middleware понимается совокупность Grid-сервисов, независимых от ресурсов и приложений и обеспечивающих аутентификацию, авторизацию, размещение и распределение ресурсов, получение результатов выполнения задач, статистику и служебную информацию, удаленный доступ к данным, стратегию и способы обнаружения неисправностей. Что такое UI, CE, WN, SE? • UI (User Interface) – cервис, обеспечивающий доступ к ресурсам Grid; c UI-компьютера пользователь может запускать или прерывать свои задачи, получать информацию о статусе выполняемых задач, находить ресурсы, необходимые для исполнения конкретной задачи, получать учетную информацию о своей задаче: а также копировать, реплицировать или уничтожать файлы в инфрастуктуре Grid. • CE (Computing Element) – очередь в системе пакетной обработки инфраструктуры Grid • WN (Working Node) – вычислительный узел фермы в инфраструктуре Grid • SE (Storage Element) –cервис, обеспечивающий унифицированный доступ к ресурсам памяти инфраструктуры Grid (ресурсами памяти при этом могут быть как простые дисковые серверы, так и дисковые массивы или системы массовой памяти (MSS)). J Система управления загрузкой (WMS) в LCG-2 • Запуск задачи пользователя осуществляется через систему управления загрузкой (WMS, Workload Management System) • Задачей WMS является планирование и управление ресурсами в распределенной среде Grid. • При этом пользователю предоставляются следующие возможности : - запускать и исполнять свои задачи - получать информацию о статусе состояния своей задачи - получать результат выполнения задачи • Назначение WMS - как оптимизировать использование ресурсов, так и способствовать скорейшему выполнению задачи пользователя Составляющие части 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! Описать входные данные (если имеются) Дать указания касательно выходных данных Job Description Language (JDL) Язык описания задачи • JDL – расширяемый язык, предназначенный для описания задач пользователя с помощью задания значений для “атрибутов” и появившияся еще при создании системы распределенных вычислений CONDOR • Пользователь для запуска свой задачи в инфраструктуре grid должен сформировать файл (job_definition.jdl) • Некоторые из атрибутов описываются пользователем, а некотрые атрибуты автоматически формируются UI до запуска задания в инфрастуктуру grid J Атрибуты описания задачи • Executable (обязательный) имя исполняемой команды (программы) • Arguments (необязательный) аргументы, которые необходимы для исполнения команды, указанной в Executable • StdInput, StdOutput, StdErr (необязательный) стандартные ввод/вывод/ошибки задачи • Environment (необязательный) список установок среды • InputSandbox (необязательный) список файлов на локальном диске на UI, необходимых для выполнения задачи перечисленные файлы помещаются на удаленный CE • OutputSandbox (необязательный) Список файлов, которые будут сформированы в результате выполнения задания и которые необходимо получить пользователю после выполнения задачи J Атрибуты ресурсов Resource Attributes • Requirements Требования задачи на вычислительные ресурсы Если не определяются пользователем, то используется значение, заданное в конфигурации UI J Атрибуты описания данных “Data” Attributes • InputData (необязательный) относится к данным, используемым как входные к задаче: эти данные публикуются в Replica Catalog и запоминаются в SEs) PFNs и/или LFNs • DataAccessProtocol (обязательный, если определен атрибут InputData) Протокол или список протоколов, требумых для доступа к InputData на данном SE • OutputSE (необязательный) имя SE-хоста RB использует его для выбора CE, совместимого в требованиями задачи и наидолее близко расположенного к SE • OutputData (необязательный) Выходные данные, которые должны быть сформированы в конце выполнения задачи J Как написать описание задачи (Job Description) • Пример простейшего описания задачи (myjob1.jdl) 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) 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:02 2005 2) Запуск задачи: 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: https://gdrb03.cern.ch:9000/OADAXp3Vxet02vlqO29Xpg ********************************************************************************************* JobId Запуск задачи (2) J 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 https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg Получаем только сообщение о JobId Получение информации о статусе задачи (1) Результатом выполнения команды edg-job-status https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg будет: ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg 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:00 2005 ************************************************************* Когда задача находится в процессе выполнения, в ответ на edg-job-status https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg получаем: ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg 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:19 2005 ************************************************************* J Получение информации о статусе задачи (2) После успешного завершения задания в ответ на edg-job-status https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg получим: ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg 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:36 2005 ************************************************************* Теперь мы можем ознакомиться с результатами J Получение результатов (1) на выполнение команды edg-job-get-output https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg получаем на экране следующую информацию: Retrieving files from host: gdrb03.cern.ch ( for https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg ) ********************************************************************************* JOB GET OUTPUT OUTCOME Output sandbox files for the job: https://gdrb03.cern.ch:9000/26kIm7cU1F9eY0VVhfkItg have been successfully retrieved and stored in the directory: /tmp/etikhone_26kIm7cU1F9eY0VVhfkItg ********************************************************************************* Получение результатов (2) Отправляемся в указанный каталог ( /tmp/etikhone_26kIm7cU1F9eY0VVhfkItg ) сd tmp/etikhone_26kIm7cU1F9eY0VVhfkItg ls –lag total 484 drwxr-xr-x 2 zh 4096 Sep 1 17:13 ./ drwxrwxrwt 6262 root 483328 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! ”) Некоторые полезные команды UI • edg-job-list-match Получение списка ресурсов, соответствующих описанию задачи (запуск задачи при этом не требуется) • edg-job-cancel прекращение выполнения задачи • edg-job-get-logging-info получение информации о прохождении задачи полезно при отладке программы • grid-proxy-destroy закрытие временного сертификата (как выход из сеанса работы в инфрастурктуре grid) J UI в ОИЯИ и в CERN • В ОИЯИ UI - cервис доступен с lxpub03.jinr.ru • В CERN при вхождении на lxplus.cern.ch следует выполнить скрипт grid_env.csh командой 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 в результате чего установятся переменные окружения, необходимые для доступа к сервису 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:03 2005 date Sat Sep 3 11:14:08 CEST 2005 J Рекомендуемые документы • The LCG-2 User Guide https://edms.cern.ch/file/454439/1/LCG-2-UserGuide.pdf https://edms.cern.ch/file/454439/1/LCG-2-UserGuide.html • LCG-2 User Scenario https://edms.cern.ch/document/498081/1.0 • ClassAd language https://www.cs.wisc.edu/condor/classad • LCG-2 Frequently Asked Questions https://edms.cern.ch/document/495216/ J