LOGO Использование архитектуры SCALLA/XRootD для хранения и обработки данных с детектора MPD/NICA Герценбергер К.В. ЛФВЭ им. В.И. Векслера и А.М. Балдина, ОИЯИ, Дубна, Россия
Содержание Многоцелевой детектор MPD/NICA 1. Программная среда MPDRoot 2. Использование хранилища XRootD 3. Направление развития системы 4. 6 февраля 2012 г.Герценбергер К.В.2
Эксперимент NICA 6 февраля 2012 г.Герценбергер К.В.3
Многоцелевой детектор MPD 6 февраля 2012 г.Герценбергер К.В.4
Программная среда MPDRoot Разрабатывается для моделировании и реконструкции событий столкновения тяжелых ионов, регистрируемых многоцелевым детектором MPD в эксперименте NICA Использует программное обеспечение ROOT и FairRoot (FairBase + набор пакетов FairSoft) Моделирование столкновения частиц в многоцелевом детекторе MPD Реконструкция данных событий в MPD Физический анализ полученных данных 6 февраля 2012 г.Герценбергер К.В.5
Последовательность этапов MPDRoot Результат Физический анализ Реконструкция Моделирование Генератор evetest.root ~50 МБ – событие urqmd ~0,5 МБ – событие mpddst.root ~1 МБ – событие 6 февраля 2012 г.Герценбергер К.В.6
Предпосылки использования хранилища данных Высокая скорость набора событий (до 6 КГц) В центральном столкновении Au-Au при энергиях NICA образуется до 1000 заряженных частиц evetest.root – данные с детекторов MPD: 100k событий ~ 5 Тбайт 1 000k событий ~ 50 ТБайт Унифицированный интерфейс для параллельной обработки событий Программные комплексы хранилищ данных: DCache XRootD Lustre и др. 6 февраля 2012 г.Герценбергер К.В.7
Преимущества XRootD для MPDRoot Изначально разрабатывался для программной среды ROOT, поддержка файлов ROOT Класс TXNetFile для xrootd доступа в ROOT Параллельная обработка при помощи PROOF использует XRootD Используется крупными проектами: Alice (AliEn), Atlas, CMS… 6 февраля 2012 г.Герценбергер К.В.8
Архитектура SCALLA XRootD server сервер для быстрого удаленного доступа к файлам данных как среды ROOT, так и других типов. SCALLA scalable cluster architecture for low latency access CMSD server сервер для объединения XRootD серверов хранения данных в кластер данных, балансирование нагрузки, мониторинг системы. 6 февраля 2012 г.Герценбергер К.В.9
Схема работы кластера данных XrootD /my/file 3: Я готов 1: open(/my/file) 4: файл на машине А 5: open(/my/file) Сервера данных (Data Servers) Менеджер (Manager, Redirector) Клиент cmsdxrootdcmsdxrootdcmsdxrootd cmsdxrootd У кого файл /my/file? 2: У кого файл /my/file? ABC издержки при масштабировании растут линейно размер хранилища данных не ограничен при кластеризации сервер xrootd используется совместно с cmsd (cluster management service daemon) кластер XRootD 6 февраля 2012 г.Герценбергер К.В.10
Интеграция MPDRoot с кластером данных Text Запуск макросов Моделирование Реконструкция Физический анализ MPDRoot with XRootD support XRootD добавление поддержки в классы MPDRoot (TXNetFile) добавление поддержки в классы FairBase (TXNetFile) Кластер данных Установка Настройка (xrootd.cf) Запуск 6 февраля 2012 г.Герценбергер К.В.11
Схема интеграции кластера XRootD с MPDRoot /my/evetest.root Клиент cmsdxrootd cmsdxrootdcmsdxrootdcmsdxrootd ABC сервера данных (Data Servers) менеджер (Manager, Redirector) шлюз (Gate) MPDRoot with XRootD support cache /my/mpddst.root xrootd.cf /my/urqmd_ кластер XRootD 6 февраля 2012 г.Герценбергер К.В.12
Конфигурационный файл xrootd.cf для MPDRoot set managerName = se63-40.jinr.ru # Specify the data server port number if $(managerName) xrd.port 1094 else xrd.port any fi # Using a cmsd requires the enhanced file system. xrootd.fslib /home/xrootd/xrootd/lib64/libXrdOfs.so # Specify which paths are to be exported (default is r/w) all.export /data r/w if $(managerName) all.role manager else all.role server fi all.manager $(managerName):1213 all.adminpath /home/xrootd/ oss.localroot /home/xrootd/ # Indicate which hosts are allowed to connect to the cmsd (even if localhost) cms.allow se*.jinr.ru Запуск на узлах кластера: xrootd –c xrootd,cf cmsd –c xrootd.cf 6 февраля 2012 г.Герценбергер К.В.13
Пример использования в макросе реконструкции void reco(TString inFile = root://se63-40.jinr.ru//data/evetest.root ") { // Parameter file TString parFile = inFile; // Output file TString outFile = " root://se63-40.jinr.ru//data/mpddst.root; gROOT->LoadMacro("$VMCWORKDIR/macro/mpd/mpdloadlibs.C"); mpdloadlibs(kTRUE); // load full set of main libraries gROOT->LoadMacro("$VMCWORKDIR/macro/mpd/geometry_v1.C"); geometry_v1(0x0, kFALSE); // Digitization run FairRunAna *fRun= new FairRunAna(); fRun->SetInputFile(inFile); fRun->SetOutputFile(outFile); // // Parameter database FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(parFile.Data()); rtdb->setFirstInput(parInput1); MpdKalmanFilter *kalman = MpdKalmanFilter::Instance("KF"); fRun->AddTask(kalman); FairTask* trackMS = new TpcLheHitsMaker("Hit producer"); fRun->AddTask(trackMS); FairTask* vertZ = new MpdVertexZfinder(); fRun->AddTask(vertZ); FairTask* recoKF = new MpdTpcKalmanFilter("Kalman filter"); fRun->AddTask(recoKF); FairTask* findVtx = new MpdKfPrimaryVertexFinder("Vertex finder"); fRun->AddTask(findVtx); MpdTofHitProducer* tofHit = new MpdTofHitProducer("Hit producer"); fRun->AddTask(tofHit); MpdTofMatching* tofMatch = new MpdTofMatching("TOF matching"); fRun->AddTask(tofMatch); MpdFillDstTask* fillDST = new MpdFillDstTask("MpdDst task"); fRun->AddTask(fillDST); // Number of events to process Int_t nEvents = 1; // 100; //50; //250; //90; // Intialise and run fRun->Init(); cout GetField()->GetBz(0.,0.,0.) Run(0, nEvents); } 6 февраля 2012 г.Герценбергер К.В.14
Планы дальнейшего развития Использование XRootD кластера как хранилища данных событий (хранение и получение данных для MPDRoot) XRootD PROOF AliEn Использование XRootD кластера для хранения и получения данных, а также параллельной обработки событий в MPDRoot Использование XRootD кластера для хранения и получения данных, а также параллельной обработки событий в MPDRoot Установка и использование программной среды AliEn на XRootD кластере для интеграции полученной архитектуры с GRID 6 февраля 2012 г.Герценбергер К.В.15
Заключение Была проведена установка и настройка XRootD кластера как хранилища данных для программной среды MPDRoot. В классы MPDRoot добавлена поддержка работы с кластером данных на XRootD. Для макросов моделирования и реконструкции MPDRoot протестирована работа с кластером XRootD. В течении нескольких недель в FairBase, а, следовательно, и в MPDRoot появится поддержка PROOF! В ближайшем будущем XRootD кластер получит поддержку параллельной обработки событий MPDRoot при помощи PROOF и среды AliEn. 6 февраля 2012 г.Герценбергер К.В.16
LOGO и поддержку гранту для молодых ученых и специалистов ОИЯИ 2011 года, в рамках которого выполнена работа