2. Installation

RADICAL-Pilot is a Python module which can be installed either via the python package installed pip or as part of the Anaconda distribution. RADICAL-Pilot must be installed in a virtual environment and cannot be installed as a system-wide Python package.

2.1. Requirements

RADICAL-Pilot requires: software packages, a properly configured ssh login, and a MongoDB server.

2.1.1. Software

RADICAL-Pilot requires the following packages:

  • Python >= 3.6
  • virtualenv >= 16
  • pip >= 20
  • setuptools >= 45.2.0

or

  • Anaconda Python >= 3.6

All other dependencies are installed automatically by RADICAL-Pilot installer.

2.1.2. SSH

RADICAL-Pilot requires to setup a password-less ssh login between the machine where your application is executed and the machine where the tasks of your application will be executed. For example, if you execute your application written with the RADICAL-Pilot API on a virtual machine hosted on a public or private cloud provider, and you want to execute your application’s tasks on an XSEDE HPC machine, you will have to configure a password-less (gsi)ssh login between the virtual and the HPC machine. (Here one of the many guides available about How to Setup Passwordless SSH Login).

2.1.3. MongoDB

The MongoDB server is used to store and retrieve operational data during the execution of an application which uses RADICAL-Pilot. The MongoDB server must be reachable from both, the host that runs the RADICAL-Pilot application and the target resource which runs the pilots.

Warning

If you want to run your application on a workstation that does not have a public IP address, but run your tasks on a remote HPC cluster, installing MongoDB on your workstation won’t work. Without a public IP and a port publicly reachable, the components of RADICAL-Pilot running on the HPC cluster will not be able to access the MongoDB server.

The MongoDB location is communicated to RADICAL-Pilot via the environment variable RADICAL_PILOT_DBURL. The value will have the form:

export RADICAL_PILOT_DBURL="mongodb://user:pass@host:port/dbname"

Many MongoDB instances are by default unsecured: we strongly recommend the usage of a secured MongoDB instance!

The dbname component in the database URL can be any valid MongoDB database name (i.e., it must not contain dots). RADICAL-Pilot will not create that DB on the fly and requires the DB to be setup prior to creating the session object. But RADICAL-Pilot will create collections in that DB on its own, named after RADICAL-Pilot session IDs.

Once you have identified a host that can serve as the new home for MongoDB, installation is straight forward. You can either install the MongoDB server package that is provided by most Linux distributions, or follow the installation instructions on the MongoDB website.

If you don’t have access to a suitable machine with a public IP, you can open a ticket with RADICAL lab and we will provide a testing MongoDB instance for you.

2.2. Installation

RADICAL-Pilot is distributed via PyPi and Conda-Forge. To install RADICAL-Pilot to a virtual environment do:

2.2.1. via PyPi

virtualenv --system-site-packages $HOME/ve
source $HOME/ve/bin/activate
pip install radical.pilot

2.2.2. via Conda-Forge

conda create -n ve -y python=3.7
conda activate ve
conda install radical.pilot -c conda-forge

For a quick sanity check, to make sure that the packages have been installed properly, run:

$ radical-pilot-version
1.0.2

The exact output will obviously depend on the exact version of RADICAL-Pilot which got installed.

Installation is complete!

2.3. Support

RADICAL-Pilot undergoes constant evolution, implementing new capabilities, supporting new resources and keeping up with the progressing of its dependencies. If you encounter any error, please do not hesitate to contact the RADICAL lab team by opening an issue.