Simulation, Analisys and Data Managment System (SADMS)

Одним из основных требований к результатам исследований является их воспроизводимость.

Для воспроизведения результатов исследования необходимо:

  • хранить файлы сырых данных;
  • иметь доступ к программным пакетам, с помощью которых было проведено исследование, в том состоянии в котором они использовались;
  • иметь доступ к макросам, с помощью которых конфигурировался весь процесс обработки и анализа полученных данных;
  • иметь доступ к макросам конфигурации и запуска процессов симуляции, реконструкции и анализа симулированных данных, если такой проводился;
  • иметь доступ к макросам, с помощью которых была полученна графическая информация результатов исследования.

Для удовлетворения данным требованиям:

  • данные храняться в едином файлов хранилище: ssh://er.jinr.ru:/store/[RESEARCH];
  • данные разделены на две директории для входных и выходных файлов исследования: ssh://er.jinr.ru:/store/[RESEARCH]/income, ssh://er.jinr.ru:/store/[RESEARCH]/outcome;
  • все используемые программные пакеты и основные зависимости храняться в репозиториях с системами хранения версий;
  • для унификации программного окружения (операционной системы, установленных в системе пакетов, ...) все программные пакеты с заданными ревизиями компилируются в docker контейнерах;
  • весь процесс расчета и постпроцессинга результатов происходит в docker контейнере;
  • все макросы, которые использовались в исследовании храняться в git репозитории http://er.jinr.ru/git/Publications/[RESEARH];
  • в репозитории http://er.jinr.ru/git/Publications/[RESEARH] храниться Dockerfile с инструкциями сборки контейнера;
  • в Readme.md файле исследования необходимо указать инструкцию по сборке контейнера с необходимыми входными файлами и макросами;
  • в Readme.md файле исследования необходимо указать инструкцию по запуску макросов для получения результатов;

Общая схема

Общая схема SADMS представлена на рисунке. В нее входят файловое хранилище, git репозитории для исследований, git репозитории пакетов.

_images/SADMS.PNG

На машине на которой будут воспроизводиться результаты, собирается docker контейнер со всем необходимым и запускается. Внутри docker контейнера запускаются расчеты и макросы постпроцессинга результатов.

Все контейнеры обязаны иметь следующую структуру директориий:

/home/user/income
/home/user/macro
/home/user/outcome

Во время запуска контейнера в директорию income линкуются входные файлы, заранее загруженные из файлового ранилища; в директорию macro - репозиторий с макросами для исследования, склонированный из http://er.jinr.ru/git/Publications/[RESEARH]; в директорию outcome будут писаться выодные файлы.

В общем случае для воспроизведения необходимо будет выполнить следующую последовательность действий:

  • Загрузить из файлового хранилища входные данные:
mkdir [RESEARCH]
scp -r user@er.jinr.ru:/store/[RESEARCH]/income [RESEARCH]
  • Склонировать репозиторий с макросами исследования:
git clone http://er.jinr.ru/git/Publications/[RESEARCH] [RESEARCH]/macro
  • Создать директорию для выходных файлов
mkdir [RESEARCH]/outcome
  • Собрать контейнер по Dockerfile (в данном случае предпологаем, что Dockerfile лежит в репозитории с макросами):
cd macro
docker build - -t [RESEARCH]
  • Запустить контейнер:
docker run -it \
        -v [RESEARCH]/income:/home/user/income
        -v [RESEARCH]/macro:/home/user/macro
        -v [RESEARCH]/outcome:/home/user/outcome
        -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
[RESEARCH]
/bin/bash

В рамках данного действия директории на хосте, неободимые для исследования линкуются с директориями внутри контейнера; настраивается x11 forwarding для возможности запуска графики в контейнере и запускается командная строка.

Дальше можно запускать макросы. Все резальтаты, которые будут выгружены в файлы в outcome сохранятся на хосте.

Если исследование выполенено с помощью er

В случае когда исследование выполенно с помощью er нет необходимости создавать свой Dockerfile. Dockerfile сборки er заднной ревизии с необходимыми зависимостями можно найти в репозитории er_docker.

В репозитории с макросами для исследования в Readme.md необходимо только указать какую версию er и fairroot неободимо использовать в виде строки сборки контейнера:

docker build --build-arg FAIRROOT=17.04 --build-arg ER=419b1db933f51a4480963b576e711301c4c100fc . -t er:[RESEARCH]

Все необходимые стандартные директории в контейнере уже созданы.

Docker образ er создается на базе Docker образа с fairroot, который в данной строке указан в переменной FAIRROOT. Его стоит заранее собрать по инструкциям er_docker или использовать контейнеры собранные на машине er.jinr.ru.

Для запуска контейнера:

docker run -it \
        -v [RESEARCH]/income:/home/jovyan/income
        -v [RESEARCH]/macro:/home/jovyan/macro
        -v [RESEARCH]/outcome:/home/jovyan/outcome
        -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
er:[RESEARCH]
/bin/bash

После запуска проинициализировать er:

. /opt/er/build/config.sh