Skip to content
Python 3 version of FabSim
Branch: master
Clone or download
djgroen Merge pull request #99 from djgroen/ensemble2campaign
added ensemble2campaign function
Latest commit 2724a0a May 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
backends/qcg Update qcg-broker svn Mar 14, 2019
base pep8 May 16, 2019
blackbox Update Jan 21, 2016
deploy Update slurm-cartesius May 5, 2019
doc Update Documentation FabSim3SingularityUsage May 9, 2019
fabric3_base Added support files to ease Fabric3 installation. Sep 13, 2018
plugins Added in the plugins dir, as there should be one (!) Sep 14, 2018
python Update Jan 21, 2016
tests Fixed test and key deletion to be more rigorous. Nov 28, 2018
.gitignore Added a .gitignore to prevent machines_user.yml from being part of th… Jan 8, 2015
.travis.yml disable pip8 error 501 : line too long Feb 5, 2019 Added documentation on combined use of different FabSim versions. Nov 1, 2017
Dockerfile Update May 10, 2019 Update Feb 27, 2019
LICENSE Renamed LICENSE file Dec 10, 2015 Embedding Status Images for travic-ci, and Docker Mar 5, 2019
Singularity add QCG-Client Installation, fixing bugs May 2, 2019 Replaced ModuleNotFoundError with ImportError to retain Python3.5 Aug 1, 2018
requirements.txt Check for PEP8 violations Nov 21, 2018


Build Status Docker Pulls Docker Pulls

FabSim is a Python-based automation toolkit for scientific simulation and data processing workflows, licensed under the BSD 3-clause license. It aims to enable users to perform remote tasks from a local command-line, and to run applications while curating the environment variables and the input and output data in a systematic manner. To provide that curation, FabSim uses a basic data transfer functionalities such as rsync and ssh.

FabSim also contains a system for defining machine-specific configurations, including templates to execute jobs through schedulers such as PBSPro, Loadleveller and SGE. These machine-specific configurations are stored in the repository, apply to all applications run on that machine, and can be updated by any contributor who feels that a fix or improvement is required.

FabSim relies strongly on Fabric (, shown to work with versions 1.5.3 and 1.10.0) and PyYAML. Previous versions of FabSim (most notably FabHemeLB and FabMD) have been used to run simulation workflows on machines such as ARCHER, SuperMUC, BlueJoule, as well as local clusters and desktops.

FabSim is now publicly available at: The accompanying software paper can be found here:

Derivative versions of FabSim include:

  • FabHemeLB (previously known as FabricHemeLB), which is used to automate workflows involving the HemeLB lattice-Boltzmann simulation environment (see for the source code of that).
  • FabMD, which is used to semi-automatically coarse-grain polymer systems (part of this repository).
  • FabBioMD, which is used to facilitate protein-ligand binding affinity calculations (part of this repository).
  • FabFlee, which is under development and used to automate agent-based simulations of forced migration.

Installation and usage

For instructions on how to install and test FabSim, please refer to

Citing FabSim

Please find the BibTex reference below of our FabSim software paper in Computer Physics Communications:

title = "FabSim: Facilitating computational research through automation on large-scale and distributed e-infrastructures",
journal = "Computer Physics Communications",
volume = "207",
number = "Supplement C",
pages = "375 - 385",
year = "2016",
issn = "0010-4655",
doi = "",
url = "",
author = "Derek Groen and Agastya P. Bhati and James Suter and James Hetherington and Stefan J. Zasada and Peter V. Coveney",
You can’t perform that action at this time.