Cookies on this website

We use cookies to ensure that we give you the best experience on our website. If you click 'Accept all cookies' we'll assume that you are happy to receive all cookies and you won't see this message again. If you click 'Reject all non-essential cookies' only necessary cookies providing core functionality such as security, network management, and accessibility will be enabled. Click 'Find out more' for information on how to change your cookie settings.

How to submit commands that rely on a personal Conda environment

When a job starts up on an OOD compute node it does not inherit the environment that you had when it was submitted. Modules are ordinarily re-loaded, so if the software is configured using a module then it should still work when submitted (you could write your own modules if you wish - see https://lmod.readthedocs.io/en/latest/015_writing_modules.html).

If your command is installed into a Conda environment not configured by a module then the cluster node will not know where to find it. You can either specify the full path to the script (typically <path of environment>/bin/<scriptname>) or you can create a wrapper script and submit this script to fsl_sub. A basic (generic) wrapper follows:

#!/bin/bash
# Enable Conda
eval "$(conda shell.bash hook)"
# Activate your environment
conda activate <name or pathtoenvironment>
"$@"

Make this executable (chmod +x <name of script>) and then you can use it to run commands as follows.

If you wish to run 'mypython_command option1 option2 option2' then use:

fsl_sub -R 1 -T 1 ./conda_wrapper.sh mypython_command option1 option2