Skip to main content

DIRAC is an interware, meaning a software framework for distributed computing.

Project description

DIRAC

https://badge.fury.io/py/DIRAC.svg https://img.shields.io/conda/vn/conda-forge/dirac-grid https://zenodo.org/badge/DOI/10.5281/zenodo.1451647.svg

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 v7r2 series (stable):

Basic Tests Status Dirac Install Status Pilot Wrapper Status Integration Tests Status Documentation Status

Status v7r3 series (stable, recommended):

Basic Tests Status Dirac Install Status Pilot Wrapper Status Integration Tests Status Documentation Status

Status integration branch (devel):

Basic Tests Status Dirac Install Status Pilot Wrapper Status Integration Tests Status Documentation Status

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 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 8.0). We recommend transitioning to Python 3 clients during using DIRAC 7.2 and Python 3 servers using DIRAC 7.3.

There are three available options for installation:

  1. DIRACOS2: This is the only fully supported method, see the DIRACOS 2 documentation.

  2. 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
  3. 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

For the full development guide see here, some of the most important details are included below.

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 inside the GitHub UI

  • Clone locally and create a branch for each change

    git clone git@github.com:$GITHUB_USERNAME/DIRAC.git
    cd DIRAC
    git remote add upstream git@github.com:DIRACGrid/DIRAC.git
    git fetch --all
    git checkout upstream/integration
    git checkout -b my-feature-branch
    git push -u origin my-feature-branch
  • Create a Pull Request, targeting the “integration” branch.

Code quality

To ensure the code meets DIRAC’s coding conventions we recommend installing pre-commit system wide using your operating system’s package manager. Alteratively, pre-commit is included in the Python 3 development environment, see the development guide for details on how to create one.

Once pre-commit is installed you can enable it by running:

pre-commit install --allow-missing-config

Code formatting will now be automatically applied before each commit.

Testing

Unit tests are provided within the source code and can be ran using pytest. Integration, regression and system tests are instead in the DIRAC/tests/ directory.

Acknowledgements

This work is co-funded by the EOSC-hub project (Horizon 2020) under Grant number 777536

eu-logo eosc-hub-web

Project details


Release history Release notifications | RSS feed

This version

7.3.5

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DIRAC-7.3.5.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

DIRAC-7.3.5-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file DIRAC-7.3.5.tar.gz.

File metadata

  • Download URL: DIRAC-7.3.5.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for DIRAC-7.3.5.tar.gz
Algorithm Hash digest
SHA256 05a8a377512d619fa4a2b0f756824834af15df986b86625806491ca2d61d0bdc
MD5 fea6f6e2d356268279439a5f8b5a9fdc
BLAKE2b-256 f36f7f0ed07b9c4dfa5c437496f9d81424169bac2dc97d111dd7f3208ba64bfa

See more details on using hashes here.

File details

Details for the file DIRAC-7.3.5-py3-none-any.whl.

File metadata

  • Download URL: DIRAC-7.3.5-py3-none-any.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for DIRAC-7.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1b1302a053270c33aa42df984f10e69fc7dd98caeff05cbad8c86377a3c5bd85
MD5 8f653b5b026b44bec98f5a30b30fe74b
BLAKE2b-256 fd68ee19633c481fed8255c7f12a656fbf582985652061fa1c1a7c1bd789fa87

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page