Skip to content

Instantly share code, notes, and snippets.

@sjpfenninger
Last active October 31, 2019 15:37
Show Gist options
  • Save sjpfenninger/8a89ec8f1b50d21953a4488e941868e8 to your computer and use it in GitHub Desktop.
Save sjpfenninger/8a89ec8f1b50d21953a4488e941868e8 to your computer and use it in GitHub Desktop.
HOWTO: Use Calliope on the `euler` cluster

HOWTO: Use Calliope on the euler cluster

Installation

To install the latest version of Calliope, you need to run three commands in order:

module load python/3.7.1
export PATH=~/.local/bin:$PATH
pip install --user --upgrade calliope

To install a specific version, for example 0.6.3, change calliope to calliope==0.6.3 in the third command above.

Afterwards, confirm that Calliope is installed and works by typing:

calliope --version

This should simply print the installed version, such as "Version 0.6.3", and show no errors.

If the version shown does not match the version you installed, make sure that you ran all three of the commands above.

To automatically activate the correct Python version and make Calliope accessible each time you log in to the cluster, you should edit the file .bash_profile in your home directory.

An easy way to achieve that is with the nano editor by typing:

nano ~/.bash_profile

Add the following two lines to the very end of the file:

module load python/3.7.1
export PATH=~/.local/bin:$PATH

To solve models, you should use the Gurobi solver, which requires loading it:

module load new gurobi/8.1.1

It is easiest to add this line to ~/.bash_profile as well to ensure it is always loaded on login.

Running

At its most basic, a Calliope model can be submitted like this:

bsub -W 06:00 -n 1 -R "rusage[mem=10G]" -o calliope.log calliope run model.yaml --save_netcdf=result.nc

This assumes the command is run from an environment where calliope is available, and from a path that contains the model model.yaml. It requests a run time of 6 hours, a single CPU, and 10 GB of RAM. -o calliope.log means that all output (standard out and standard error) is logged into calliope.log (appending if the file exists).

Calliope also comes with a tool to automate the generation and submission of many models at once, which is described in the documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment