Installation#
Autosubmit is free software, licensed under GPL-3.0-or-later.
Prerequisites
Python 3.10 – 3.12 — enforced by the installed package, and pip ≥ 24.0 (check with pip -V).
These must be available on the host machine:
bashgit>=2.32 — check withgit --versiongraphviz>=2.38 — 2.40 is known not to work; check withdot -vrsyncsqlite3subversion
Optional, for plot:
xdg-utils— provides xdg-open, used by autosubmit create –plot
Note
The dot -v command should list dot, pdf, png, SVG and Xlib in the device section.
Important
The host machine must be able to reach HPCs and clusters via password-less SSH. Generate a PEM-format key with ssh-keygen -t rsa -b 4096 -C "email@email.com" -m PEM.
Install Autosubmit#
Autosubmit is distributed via PyPI and as source on GitHub. Choose one of the methods below.
The commands use apt and assume Ubuntu 22.04 LTS or 24.04 LTS, whose default python3 falls within the supported
range; adjust for other distributions.
Install with pip#
Install system packages and the Autosubmit Python package:
# Update repositories
apt update
# Avoid interactive stuff
export DEBIAN_FRONTEND=noninteractive
# System dependencies
# This example is for Debian-based distributions. On Suse, RHEL, Alpine,
# Rocky and others, install the equivalent packages for your package manager.
apt install --yes --quiet \
git \
graphviz \
python3 \
python3-pip \
rsync \
sqlite3 \
subversion
# Install Autosubmit from PyPI
pip3 install autosubmit
# Verify the CLI works
autosubmit -h
Then proceed to Quick setup or Full setup.
Build from source#
Clone the source from GitHub and install with pip from a working copy.
git clone https://github.com/BSC-ES/autosubmit.git
cd autosubmit
pip install .
Then proceed to Quick setup or Full setup.
Verify the install#
$ autosubmit -v
Output:
4.2.0
Quick setup#
For a personal test with a user-level database. This creates $HOME/.autosubmitrc and puts everything under
$HOME/autosubmit/.
# Quick-configure (user-level database)
autosubmit configure
# Create Autosubmit directories and database
autosubmit install
# Generate a new <EXPID>
autosubmit expid -H "local" -d "Test exp in local."
# Create the experiment structure
# Since it was a new install, the <EXPID> will be a000
autosubmit create a000
# Run the experiment
autosubmit run a000
Hint
The dialog (GUI) library is optional. Without it, autosubmit configure prompts on the CLI. Use autosubmit configure -h to see all options.
You can pass --advanced to autosubmit configure to choose different paths:
Experiments path (
$HOME/autosubmit/by default) and database filename (autosubmit.dbby default).Global logs — those not belonging to any experiment (default
$HOME/autosubmit/logs).Autosubmit metadata (default
$HOME/autosubmit/metadata/).
You can also configure an SMTP server and email address for notifications.
To run on a remote platform, first set up password-less SSH:
# Generate a key pair for password-less ssh. PEM format is recommended as others can cause problems
ssh-keygen -t rsa -b 4096 -C "email@email.com" -m PEM
# Copy the public key to the remote machine
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
# Add your key to the ssh-agent (if encrypted)
# If not initialized, initialize it
eval `ssh-agent -s`
# Add the key
ssh-add ~/.ssh/id_rsa
# Where ~/.ssh/id_rsa is the path to your private key
Example: user-level .autosubmitrc#
[database]
path = /home/<user>/autosubmit
filename = autosubmit.db
[local]
path = /home/<user>/autosubmit
[globallogs]
path = /home/<user>/autosubmit/logs
[structures]
path = /home/<user>/autosubmit/metadata/structures
[historicdb]
path = /home/<user>/autosubmit/metadata/data
[historiclog]
path = /home/<user>/autosubmit/metadata/logs
Dependencies and licenses#
Python dependencies and licenses
Generated at build time from pyproject.toml.
Package |
Version Spec |
License |
|---|---|---|
xlib |
==0.21 |
GNU Lesser General Public License v2 or later (LGPLv2+) |
bscearth.utils |
<=0.5.2 |
MIT |
requests |
<=2.34.2 |
Apache Software License |
networkx |
<=3.6.1 |
BSD-3-Clause |
portalocker |
<=4.4.0 |
BSD-3-Clause |
paramiko |
>=3.5.0 |
LGPL-2.1 |
pyparsing |
==3.3.3 |
MIT |
matplotlib |
<=3.10.9 |
Python Software Foundation License |
psutil |
<=7.2.2 |
BSD-3-Clause |
py3dotplus |
==1.1.0 |
MIT License |
numpy |
<3 |
BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 |
rocrate |
==0.16.0 |
Apache-2.0 |
setproctitle |
- |
BSD-3-Clause |
invoke |
>=2.0 |
BSD-2-Clause |
SQLAlchemy |
~=2.0.23 |
MIT |
ruamel.yaml |
==0.19.1 |
MIT License |
configobj |
- |
BSD License |
configparser |
- |
MIT License |