DIRAC is an interware, meaning a software framework for distributed computing.
Project description
DIRAC
DIRAC is an interware, meaning a software framework for distributed computing.
DIRAC provides a complete solution to one or more user community requiring access to distributed resources. DIRAC builds a layer between the users and the resources offering a common interface to a number of heterogeneous providers, integrating them in a seamless manner, providing interoperability, at the same time as an optimized, transparent and reliable usage of the resources.
DIRAC has been started by the LHCb collaboration who still maintains it. It is now used by several communities (AKA VO=Virtual Organizations) for their distributed computing workflows.
DIRAC is written in python 2.7.13 and transitioning to python 3.
Status master branch (stable):
Status integration branch (devel):
Important links
Official source code repo: https://github.com/DIRACGrid/DIRAC
HTML documentation (stable release): http://diracgrid.org (http://dirac.readthedocs.io/en/latest/index.html)
Issue tracker: https://github.com/DIRACGrid/DIRAC/issues
Support Mailing list: https://groups.google.com/forum/#!forum/diracgrid-forum
Install
There are basically 2 types of installations: client, and server.
For DIRAC client installation instructions, see the web page.
For DIRAC server installation instructions, see the web page.
For python 2 installations, the supported distributions are EL6 (e.g. SLC6) and EL7 (e.g. CC7).
As of DIRAC 7.2 there is also experimental support for Python 3 based clients (which are to considered production level from DIRAC 7.3). As of DIRAC 7.3 there is also experimental support for Python 3 based servers (which are to considered production level from DIRAC 7.4).
There are three available options for installation:
DIRACOS2: This is the only fully supported method, see the DIRACOS 2 documentation.
Conda / Mamba from conda-forge : We recommend making a new environment for DIRAC using
mamba create --name my-dirac-env -c conda-forge dirac-grid conda activate my-dirac-env
Pip: Provided suitable dependencies are available DIRAC can be installed with pip install DIRAC. Support for installing the dependencies should be sought from the upstream projects.
Development
Contributing
DIRAC is a fully open source project, and you are welcome to contribute to it. A list of its main authors can be found here A detailed explanation on how to contribute to DIRAC can be found in this page. For a quick’n dirty guide on how to contribute, simply:
fork the project
work on a branch
create a Pull Request, target the “integration” branch.
Code quality
The contributions are subject to reviews.
Pylint, and pep8 style checker are run regularly on the source code. The .pylintrc file defines the expected coding rules and peculiarities (e.g.: tabs consists of 2 spaces instead of 4). Each Pull Request is checked for pylint and pep8 compliance.
Each PR is a also subject to check for python 3 compatibility. If you are issuing PRs that are devoted to future versions of DIRAC (so, not for patch releases), for each of the python files touched please run (and react to):
pylint --rcfile=tests/.pylintrc3k --py3k --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" --extension-pkg-whitelist=numpy path/to/file.py
Testing
Unit tests are provided within the source code. Integration, regression and system tests are instead in the DIRAC/tests/ directory. Run pytest to run all unit tests (it will include the coverage).
Acknowledgements
This work is co-funded by the EOSC-hub project (Horizon 2020) under Grant number 777536
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.