GithubHelp home page GithubHelp logo

skygrid / grid_simulation Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 0.0 346.34 MB

LHCb grid simulation

CMake 0.01% Python 1.09% C++ 1.34% Shell 0.01% Jupyter Notebook 97.55%
lhcb-simulation grid-simulation grid

grid_simulation's Introduction

LHCb grid simulation Build Status

Goals and problems

Developing smarter algorithms for

  1. Data management
  2. Predicting anomalies
  3. Job scheduling/matchning

This research focuses on real interaction of

  1. CPU resources
  2. Networks
  3. Storages

Job workflow

Alt text

Installation process

In this project we use two additional libraries. SimGrid framework is used for the purposes of simulation flow and YAML cpp is used for parsing input files containing information about jobs and datasets. After installation of SimGrid and YAML-cpp, clone this project:

git clone https://github.com/skygrid/grid_simulation.git

and run in the command line:

mkdir build
cd build
cmake .. 
make
./CSim2Sim --cfg=tracing:yes --cfg=tracing/platform:yes --cfg=tracing/filename:<path to trace file> --cfg=maxmin/concurrency_limit:100000 --cfg=storage/max_file_descriptors:220000"

Change config.yml to customize paths to the following files:

platform: platform/platform.xml           ## Contains grid topology
deployment: platform/test-deployment.xml  ## Defines `behaviour` of sites 
out.txt: out.txt                          ## Jobs metrics are written here 
jobs: InputData/little_jobs.yml           ## Queue of waiting jobs
input: InputData/little_data.yml          ## Datasets stored in all tiers 

Docker

If you feel free with Docker you can play around with grid_simulation in container.

You just need to pull images DockerHub repository:

docker pull kenenbek/grid_simulation:february

Or you can build grid_simulation image based on Dockerfile on your own:

docker build -t <container name> .

This image contains all necessary software to run a simulation. For this, clone this repository. This creates /grid_simulation directory with scripts and input data of the simulation:

git clone https://github.com/skygrid/grid_simulation.git

The docker image has a CMD instruction which starts an execution of run.sh file. This file is in your /grid_simulation directory. To run the simuation use the command:

docker run -v $(pwd)/grid_simulation:/grid_simulation <container name>

Results of the simulation are in your /grid_simulation directory.

Cern OpenStack Instructions Using Docker

  1. Create instance on openstack.cern.ch. Use one of the Ubuntu 14+ images. These images are available on cloud-images.ubuntu.com.

  2. Log in your instance and run the command:

    sudo apt-get update
  3. Install Docker using the instructions. If your are non-root user, run the following commands:

    sudo groupadd docker
    sudo usermod -aG docker $USER
    sudo service docker restart

    Verify the installation by running:

    sudo docker run hello-world
    sudo docker ps -a

    These commands should work without errors.

Output

In the wake of simulation you should look for out.txt and trace.csv (located in simgridoutput directory) files. The first one contains all relevant information about job execution process:

+-----------+------+---------------+--------------+-----------+------------+-----------+--------------+
| JobId     | Done | Submission(s) | Schedule (s) | Start (s) | Finish (s) | Tier name | JobType      |
+-----------+------+---------------+--------------+-----------+------------+-----------+--------------+
| 141647523 | 1    | 0             | 10.5645      | 56.2571   | 14974.7336 | CERN-PROD | MCSimulation |
+-----------+------+---------------+--------------+-----------+------------+-----------+--------------+

The second one does information about resource(CPU-cores, network, etc.) usage:

+---------------------+----------+-----------+-----------+----------+--------------+
| Resource name       | Variable | Start     | End       | Duration | Value        |
+---------------------+----------+-----------+-----------+----------+--------------+
| CERN-RAL-LHCOPN-001 | traffic  | 17483.121 | 17535.824 | 52.702   | 342164520177 |
+---------------------+----------+-----------+-----------+----------+--------------+

Also

You could check presentation about LHCb simulation and main current results in jupyter notebook.

grid_simulation's People

Contributors

hushchyn-mikhail avatar kenenbek avatar knnbk avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

grid_simulation's Issues

TODO 03.08.2016

  1. Презентация: добавить начало, и картинки в конце.
  2. Графики:
    Workload Management System (WMS):
  3. Время выполнения задач: (T_completed - T_submitted)
  4. Время планировки задачи: (T_scheduling_end - T_scheduling_start)
  5. Job execution rate per site (daily) (?)
  6. Number of running jobs per site (daily)
  7. Number of waiting jobs per site (daily) (?)
  8. Job CPU efficiency

Data Management System (DMS):

  • Total number of datasets on disks/tapes per site (daily)
  • Total occupied space on disks/tapes per site (daily)

Network Communication (connected with DMS):

  • Cumulative input/output data per site (daily)
  • Cumulative transferred data (daily) (?)
  • Network load (daily)

Anomalies and Failures:

  • Number of job reschedulers (daily)
  • Number of job failures per site (daily)
  • Transfer failures per site (daily)
  1. Задать вопрос Саше про число свободных ядер для нового запроса. (Миша)

TODO 26.07.2016

  1. Добавить аномалии.
  2. Уменьшить число ЦП.
  3. Получить графики описанные ранее.

TODO 19.07.2016

  1. Добавить все типы задач (см. описание проекта). Отношения числа задач и CPU time для каждого типа взять из http://lhcb-portal-dirac.cern.ch/DIRAC/
  2. Каждой задаче добавить атрибут input data, который содержит имя файла входных данных. Параметры файла (размер, число реплик, места их хранения и т.д.) берутся из специального файла, который содержит всю информация о всех файлах, хранящихся в LHCb (файл был послан по почте).
  3. Каждой задаче добавить атрибут output data, который содержит имя файла выходных данных. Параметры файла (размер, число реплик, места их хранения и т.д.) берутся из специального файла, который содержит всю информация о всех файлах, хранящихся в LHCb (файл был послан по почте).
  4. Получить графики.

TODO к 25.05.2016

  1. Чтение и разбор статей.
  2. Разобраться с LHCb Dirac Web Portal.
  3. Параметризовать данные в соответсвии со статьей (тип данных, число копий).
  4. Параметризовать джобы в соответсвии с данными LHCb Dirac Web Portal.
  5. Получить графики аналогичные графикам с LHCb Dirac Web Portal.

TODO к 22.04.2016

  1. Добавить аномалии. Аномалией может быть либо выход из строя n Tiers, либо разрыв связи между Tiers.
  2. Разработать модель, умеющую обрабатывать аномалии.
  3. Построить графики. Сравнить каждую модель в режиме аномалий с режимом без аномалий. Сравнить модели между собой в режиме с аномалиями. Сравнить модели между собой в режиме без аномалий.
  4. График количества проваленных задач от времени.

TODO 08.07.2016

  1. Добавить Tier2s по данным из http://lhcbproject.web.cern.ch/lhcbproject/Reprocessing/sites.html.
  2. Добавить число логических ЦП для каждого Tier по данным из https://gstat-wlcg.cern.ch/apps/capacities/federations/
  3. Добавить память для хранения данных на каждого Tier по данным из https://gstat-wlcg.cern.ch/apps/capacities/federations/
  4. Добавить соединения между Tiers по данным из https://twiki.cern.ch/twiki/bin/view/LHCOPN/NamingConventionAndLinksIDs. Полагаем, что Tier2s соединены с другими и между собой через обычный Интернет.
  5. Добавить все типы задач (см. описание проекта). Отношения числа задач и CPU time для каждого типа взять из http://lhcb-portal-dirac.cern.ch/DIRAC/
  6. Предположить, что каждая задача выполняется только на n=1, ..., 10 процессорах.
  7. Каждой задаче добавить атрибут input data, который содержит имя файла входных данных. Параметры файла (размер, число реплик, места их хранения и т.д.) берутся из специального файла, который содержит всю информация о всех файлах, хранящихся в LHCb (файл был послан по почте).

TODO 05.09.2016

  • Добавить непрерывное поступление задач в скедулер.
  • Построить ВСЕ картинки с issue #11 (см. в дирак-веб)

Output data только у user данных?

Согласно этой картинке, за последние полгода все 100% аутпут данных только у юзеров. Так должно быть?
outputdata_by_jobtype

В то время как input дата были распределены таким образом:
input_by_type

TODO 10.08.2016

  • Исправить флопсы задач (они меньше, чем нужно).
  • Исправить графики по джобам. Разобраться в резком росте графика.
  • Исправить аномалии.
  • Добавить графики по количеству передаваемых данных.
  • Разобраться в планировании задач с учетом данных. (Миша)
  • Узнать о переполнении буфера данных в T2. (Миша)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.