LOGO Использование архитектуры SCALLA/XRootD для хранения и обработки данных с детектора MPD/NICA Герценбергер К.В. ЛФВЭ им. В.И. Векслера и А.М. Балдина, ОИЯИ, Дубна, Россия Содержание 1. Многоцелевой детектор MPD/NICA 2. Программная среда MPDRoot 3. Использование хранилища XRootD 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 Генератор Моделирование urqmd ~0,5 МБ – событие evetest.root ~50 МБ – событие Реконструкция Результат Физический анализ 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 SCALLA scalable cluster architecture for low latency access XRootD server CMSD server сервер для быстрого удаленного доступа к файлам данных как среды ROOT, так и других типов. 6 февраля 2012 г. сервер для объединения XRootD серверов хранения данных в кластер данных, балансирование нагрузки, мониторинг системы. Герценбергер К.В. 9 Схема работы кластера данных XrootD Клиент 4: файл на машине А 1: open(“/my/file”) xrootd cmsd Менеджер (Manager, Redirector) 2: У кого файл “/my/file”? xrootd cmsd A /my/file xrootd cmsd B xrootd cmsd C /my/file Сервера данных (Data Servers) кластер XRootD издержки при масштабировании растут линейно размер хранилища данных не ограничен при кластеризации сервер xrootd используется совместно с cmsd (cluster management service daemon) 6 февраля 2012 г. Герценбергер К.В. 10 Интеграция MPDRoot с кластером данных MPDRoot with XRootD support Кластер данных Установка Настройка (xrootd.cf) Запуск Запуск макросов добавление поддержки в классы FairBase (TXNetFile) Text добавление поддержки в классы MPDRoot Text (TXNetFile) Моделирование Реконструкция Физический анализ XRootD 6 февраля 2012 г. Герценбергер К.В. 11 Схема интеграции кластера XRootD с MPDRoot xrootd.cf шлюз xrootd cmsd (Gate) Клиент менеджер (Manager, Redirector) MPDRoot with XRootD support xrootd xrootd.cf xrootd.cf xrootd cmsd xrootd cmsd xrootd.cf xrootd cmsd cache A /my/evetest.root B /my/urqmd_ C /my/mpddst.root сервера данных (Data Servers) кластер 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 xrootd –c xrootd,cf if $(managerName) all.role manager else all.role server fi cmsd –c xrootd.cf 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 6 февраля 2012 г. Герценбергер К.В. 13 Пример использования в макросе реконструкции void reco(TString inFile = “root://se63-40.jinr.ru//data/evetest.root") { // Parameter file TString parFile = inFile; FairTask* trackMS = new TpcLheHitsMaker("Hit producer"); fRun->AddTask(trackMS); FairTask* vertZ = new MpdVertexZfinder(); fRun->AddTask(vertZ); // Output file FairTask* recoKF = new MpdTpcKalmanFilter("Kalman filter"); fRun->AddTask(recoKF); 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 FairTask* findVtx = new MpdKfPrimaryVertexFinder("Vertex finder"); fRun->AddTask(findVtx); gROOT->LoadMacro("$VMCWORKDIR/macro/mpd/geometry_v1.C"); geometry_v1(0x0, kFALSE); MpdTofHitProducer* tofHit = new MpdTofHitProducer("Hit producer"); fRun->AddTask(tofHit); // ----- Digitization run ------------------------------------------FairRunAna *fRun= new FairRunAna(); fRun->SetInputFile(inFile); fRun->SetOutputFile(outFile); // ------------------------------------------------------------------------ MpdTofMatching* tofMatch = new MpdTofMatching("TOF matching"); fRun->AddTask(tofMatch); MpdFillDstTask* fillDST = new MpdFillDstTask("MpdDst task"); fRun->AddTask(fillDST); // ----- Parameter database -------------------------------------------FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(parFile.Data()); rtdb->setFirstInput(parInput1); // Number of events to process Int_t nEvents = 1; // 100; //50; //250; //90; // ----- Intialise and run -------------------------------------------fRun->Init(); cout << "Field: " << fRun->GetField()->GetBz(0.,0.,0.) << endl; fRun->Run(0, nEvents); MpdKalmanFilter *kalman = MpdKalmanFilter::Instance("KF"); fRun->AddTask(kalman); } 6 февраля 2012 г. Герценбергер К.В. 14 Планы дальнейшего развития XRootD Использование XRootD кластера как хранилища данных событий (хранение и получение данных для MPDRoot) 6 февраля 2012 г. PROOF Использование XRootD кластера для хранения и получения данных, а также параллельной обработки событий в MPDRoot Герценбергер К.В. AliEn Установка и использование программной среды AliEn на XRootD кластере для интеграции полученной архитектуры с GRID 15 Заключение Была проведена установка и настройка XRootD кластера как хранилища данных для программной среды MPDRoot. В классы MPDRoot добавлена поддержка работы с кластером данных на XRootD. Для макросов моделирования и реконструкции MPDRoot протестирована работа с кластером XRootD. В течении нескольких недель в FairBase, а, следовательно, и в MPDRoot появится поддержка PROOF! В ближайшем будущем XRootD кластер получит поддержку параллельной обработки событий MPDRoot при помощи PROOF и среды AliEn. 6 февраля 2012 г. Герценбергер К.В. 16 LOGO и поддержку гранту для молодых ученых и специалистов ОИЯИ 2011 года, в рамках которого выполнена работа