Распределенный анализ данных ATLAS с использованием программы pathena(PANDA) Вступление Система PANDA предназначена для получения данных и проведения их распределенного анализа в эксперименте ATLAS Обладает высокой надежностью при работе с большими потоками данных,маштабируемостью гибкостью к использованию различного оборудования, минимальной необходимой для поддержки рабочей силой. К маю 2008 года обработано около 12 миллиардов заданий (job), с частотой около 50 тысяч в день. Построение системы Основные компоненты Job Interface – организует ввод заданий в систему Executor Interface – передающий уровень между ATLAS prodsys/prodDB Task Buffer – сохраняет текущее состояние каждого выполняющегося задания. Brokerage – организует взаимодействие с необходимыми входными данными. Dispatcher – посылает основное задание на выполнение, если все необходимые условия выполнены. Data Service – интерфейс к DQ2 Data Management System Job Scheduler – посылает управляющие задания на удаленные сайты. Logging and Monitoring System – системы помогающая осуществлять контроль над выполнением задач и загрузкой сайтов. Job Flow Pathena Работа с задачами осуществляется через python клиент интерфейс (запросы посылаются с помощью http POST) Pathena – интерфейс для распределенного анализа данных, использующий ATHENA software framework. Pathena использует python интерфейс для передачи задач ATHENe Работа осуществляется посредством двух шагов 1) Build Step: сборка кода, его сохранение и оправка его на вычисление 2)Run Step: запуск N Athena задач с определенными пользователями входными и выходными данными (dataset) Получение результатов происходит посредством dq2_get Использование PANDA >> ssh [email protected] >>source /opt/exp_soft/atlas/software/14.2.0/setup.sh >>source /afs/.jinr.ru/atlas/atlas_env.sh >>/usr/heimdal/bin/[email protected] Использование PANDA >>cd /somewhere/workarea >>cmt co PhysicsAnalysis/DistributedAnalysis/PandaTools >>cd PhysicsAnalysis/DistributedAnalysis/PandaTools/cmt >>cmt config >>source setup.sh >>make >>cd /somewhere/workarea/.../somedirectory >>mkdir run >>cd run Использование PANDA >>get_files AnalysisSkeleton_topOptions.py >>athena.py -b AnalysisSkeleton_topOptions.py >>pathena AnalysisSkeleton_topOptions.py –inDS mc08.106573.PythiabbAtautauMA800TB35.recon.AOD.e347_ s462_r541_tid027128 --outDS user08.NameSurname.filename.root –site BNL В результате получим вывод, подобный данному. extracting run configuration PYTHIA : 100 200 PYTHIA_INIT : 300 400 ... submit =================== JobID : 178 Status : 0 > build PandaID=347362 > run PandaID=347363-347365 Bookkeeping >>pathena_util >>> show() See status of JobID=3. >>> status(3) Select records matching a given criteria. >>> select('outDS=user08.NameSurname.*') >>>kill(3) >>> help() >>pathena --help --outDS --inDS --split --site Состояние выполнение задачи Для просмотра используется BNL monitor http://panda.atlascomp.org Типы состояния выполнения задачи: Defined – задача попадает в PandaDB Assigned – dispatchDBblock соединяется с сайтом Waiting – входные файлы еще не подготовлены Activated – ждет команды от управляющей задачи Sent – задача отправляется на выполнение Running – задача в процессе выполнения Holding - выходные файлы добавлются в DQ2 базу данных Transferring – выходные данные передаются из T2 в T1 Finished – задача успешно завершена Failed – задача не была выполнена Нормальная последовательность выполнения : defined -> assigned -> activated -> sent -> running -> holding -> transferring -> finished/failed