Abstract

DIRACOS is a project aimed to provide a stable base layer of dependencies on top of which the DIRAC middleware is running. The goal was to produce a coherent environment for grid interaction and streamline the operational overhead. Historically the DIRAC dependencies were grouped in two bundles; Externals containing Python and standard binary libraries, and the LCGBundle which contained all grid-related libraries (gfal, arc, etc). Such a setup proved difficult to test and hindered agile development. DIRACOS solves the binary incompatibility that was caused by using a python version newer than the native system one (SLC6). It is spawned from a single list of required packages from where we pull all dependencies down to the level of glibc using SRPMs. With such an approach we can provide a uniform set of packages for our clients, servers, and several platforms. It is an extendible setup with a DevOps development cycle in mind. The core build functionality of DIRACOS is based on Fedora Mock. DIRACOS introduces its own grammar to handle specific cases, and it also allows patching (some SRPMs require tweaking, which the user can do by providing a diff) as well as routines for pre/post/instead actions of compilation. With this approach DIRAC was able to provide a single bundle for clients and servers that is reliable, flexible, easy to test and relatively small (250 MB). It allows for a smooth transition from SLC6 to CC7 and provides a clear roadmap for possible extensions of DIRAC to a wide variety of platforms.

Highlights

  • DIRAC interware is a software framework for distributed computing providing a comprehensive solution for distributed computing to a myriad of different communities [1,2,3]

  • A command is provided to generate a requirements.txt with all python packages and accompanying versions: dos-fix-pip-versions config/diracos.json

  • There is a built-in mechanism to handle broken links and whitelist certain libraries. If all these steps can be fulfilled, DIRACOS is initialised in a vanilla container and we test whether all python packages can be imported, and at the same time whether we can run command line interface tools of constituent packages like gfal

Read more

Summary

Introduction

DIRAC interware is a software framework for distributed computing providing a comprehensive solution for distributed computing to a myriad of different communities [1,2,3]. It provides a layer between the users and the resources offering a common interface to a number of heterogeneous providers and is extensible horizontally and vertically (see figure 1). To accommodate all these features and extensibility, DIRAC comes with many external libraries and dependencies.

The Externals
The LCG Bundle
The issue
The versions used in the build are not system versions of binaries
Building
Implemented a grammar
Testing
Summary
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call