12. Developer Documentation

12.1. Installation from Source

If you are planning to contribute to the RADICAL-Pilot codebase, or if you want to use the latest and greatest development features, you can download and install RADICAL-Pilot directly from the source code.

First, you need to check out the source code from GitHub.

git clone https://github.com/radical-cybertools/radical.pilot.git

Next, set up a virtualenv and run the installer directly from the root directory of the repository you just cloned:

pip install --upgrade .

12.2. License

RADICAL-Pilot uses the MIT License (https://github.com/radical-cybertools/radical.pilot/blob/devel/LICENSE.md).

12.3. Style Guide

To maintain consistency and uniformity we request people to follow our coding style guidelines.

We generally follow PEP 8 (http://legacy.python.org/dev/peps/pep-0008/), with one explicit exception:

  • When alignment of assignments improves readability.

12.4. Debugging

The RADICAL_PILOT_LOG_LVL environment variable controls the debug output of a RADICAL-Pilot application. Possible values are:

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

The environment variable RADICAL_LOG_LVL controls the log output from the lower levels of the software stack. The variable RADICAL_LOG_TGT and RADICAL_PILOT_LOG_TGT can be used to specify a filename in which the log messages will be stored (default target is STDERR).

12.5. RADICAL-Pilot Architecture

RADICAL-Pilot is a distributed system that executes both a client and an agent component. The client component executes on the same machine and the same Python interpreter on which the application written against the RADICAL-Pilot API executes. The agent executes either locally into a separate Python interpreter or, most often, on a remote HPC machine into a dedicated Python interpreter.

12.5.1. PilotManager and PilotManager Worker

_images/architecture_pilotmanager.png

Download PDF version.

12.5.2. UnitManager and UnitManager Worker

_images/architecture_unitmanager.png

Download PDF version.