The VECMA toolkit (VECMAtk) can be found on its own designated webpage

The VECMAtk establishes a platform for verification, validation and uncertainty quantification (VVUQ). The goal is to provide tools that can be combined to capture complex scenarios, applied to applications in disparate domains, and used to run multiscale simulations on any desktop, cluster or supercomputing platform.

The VECMAtk is periodically updated, with minor releases every 3 months, and major releases every 12 months.

Month 30 release

The Month 30 release (15 January 2021) is made up of the following tools:

  • FabSim3
  • EasyVVUQ
  • EasySurrogate
  • QCG Pilot Job
  • QCG-Now
  • QCG-Client
  • EQI, which replaces the name of EasyVVUQ-QCGPilotJob previously used

The M30 version of the VECMAtk was released on January 25th, 2021.

The Month 30 release continues remaining the prominent feature allows users to install all packages for the Toolkit as a python virtualEnv.


EasyVVUQ – v0.8

New features:

  • Convenient relocation of campaigns that need to be moved to another storage location and then further worked on.
  • Added a new AnalysisResults class that represents analysis results. It can be used to inform further sampling and simulations. It also provides a consistent interface between Analysis classes and the user.
  • Plotting functionality in the AnalysisResults class.
  • Added Cerberus validation of the Decoder output.


  • Changed the interface between Decoders and the Database – Decoders are now mandated to return dictionaries instead of pandas DataFrames.
  • Removed Collaters – moved that functionality to the database.


EasySurrogate – v0.15

This is second beta release of EasySurrogate. Main release will be in the summer of 2021.

  • New Features :
    • Kernel mixture networks (with time-lagged features)
    • Standard artificial neural networks (with time-lagged features)
  • Updates:
  • Tutorials:
    • Tutorials on all new features are added.


QCG PilotJob – v0.10

  • New Features :
    • Support for resume mechanism (#82)
    • Fixed logging (#88)
    • Support for canceling submitted jobs (#89)
  • Updates:
    • Optimized wait4all client API method (#95)
    • Automatically close service when all jobs finish and there is no active interface
    • Developer documentation updated with description of launching slurm tests with docker compose
    • Bug fixes
  • Tutorials:
    • Refer to the VVUQ Toolkit website Tutorials page


EQI – v0.5

This release introduces a few completely new functionalities and several improvements and changes aimed to enhance performance and usability of the tool

  • New Features :
    • Resume mechanism allowing to resurrect uncompleted executions
    • New schemes for submission of tasks employing iterative tasks of QGG-PilotJob
    • Added support for logging (logging level set in EQI Executor’s constructor)
    • Extended documentation with sections about the resume mechanism and performance optimisation
  • Updates:
    • Functional corrections in API (v0.4.1 release on GitHub):
      • Allowed simplified requirements specification for a task: specification of requirements for a task is now optional (if not provided a single core will be used by the task), cores and nodes may now be int values, not only eqi.Resources objects.
      • EQI Executor is now initialised with a campaign object so other interactions with EQI are relieved from the need to access the campaign.
    • Semantical corrections in API:
      • The main package name has been changed from “easypj” to “eqi” (v0.4.1 release on GitHub)
      • SubmitOrder -> ProcessingScheme
      • Run -> Sample (eg. RUN_ORIENTED -> SAMPLE_ORIENTED)
      • Phase -> Step (e.g. PHASE_ORIENTED -> STEP_ORIENTED)
    • Optimised way of submission tasks to QCG-PilotJob and finishing QCG-PilotJob Manager
    • Refactorisation of code and other minor improvements behind the scenes
    • Extended set of test cases
    • Ensured compatibility with the newest releases of QCG-PilotJob (v0.10) and EasyVVUQ (v0.8)
  • Tutorials:
    • Refer to the VVUQ Toolkit website Tutorials page


MUSCLE 3 – v0.4.0

MUSCLE 3 is the third incarnation of the Multiscale Coupling Library and Environment. With MUSCLE 3, you can connect multiple simulation models together into a multiscale simulation. Simulation models can be as simple as a single Python file, or as complex as a combination of multiple separate simulation codes written in C++ or Fortran, and running on an HPC machine.

  • New Features :
    • New yMMSL, compute_elements are now components
  • Updates:
    • Fix handling of non-contiguous and F-order numpy arrays
    • C++ memory usage improvements for large lists/dicts
    • Improved shutdown when Python submodel crashes
    • Fix logging warning
  • Tutorials:
    • Refer to the VVUQ Toolkit website Tutorials page


FabSim3 – v2.6

  • New Features :
    • Added the first implementation of VVP_LoR (Validation & Verification Pattern – Level of Refinement)
    • Extended documentation on how plugin developers can use the FabSim3 API
    • Added option to install plugin with branch name (#194)
    • Added support for ensemble job submission when SWEEP folder located on remote machine (#192)
    • Supported user-requested python packages installation on remote machine (#193)
    • Added pip installation option for QCG-PJ on compute nodes (#188)
    • Added option to delete target folder if exists (#191)
    • Added user-specific configuration to install application in VirtualEnv (#150)
  • Updates:
    • Reduced the number of SSH connections (#190)
    • Disabled localhost job execution on the FabSim3 root directory (#187)
  • Tutorials:

This version of FabSim3 has been used to enable five of the VECMA application tutorials:



Previous releases

M27 release

EasyVVUQ – v0.7.1.5

  • New Features :
    • Added Kubernetes support via the ExecuteKubernetes action. This allows the user to execute their VVUQ workflows on a Kubernetes cluster with minimal set-up overhead.
    • Reworked the actions mechanism. In preparation of implementing it using the Futures mechanism which would allow for a more interactive use of the framework.
    • Added a CopyEncoder for easier handling of arbitrary configuration files.
    • Added a ReplicaSampler class for sampling simulations with different seed values.
  • Updates:
    • Improvements to the Monte Carlo sampling and analysis classes.
    • Documentation restructuring and new tutorials.
    • Added a large interactive Jupyter notebook tutorial covering the major features of the software.
    • Greatly expanded testing coverage. Most of the essential functionality is covered by high-quality tests that check for the correctness of the results.


EasySurrogate – v0.1 (beta)

 First Beta release of EasySurrogate

  • Features:
    • Mimics the ‘Campaign’ structure of EasyVVUQ
    • Quantized Softmax Networks are available, which are stochastic, neural-network based surrogates used for conditional resampling of reference data
    • Reduced surrogates are available, which are used to compress the size of training data by orders of magnitude while retaining accuracy for spatially-integrated quantities of interest.
    • Contains a general tutorial, and one for each type of available surrogate method.


QCG PilotJob – v0.9.0

  • New Features :
    • New execution models intelmpi, srunmpi, openmpi designed to launch MPI applications with different implementations and various HPC Slurm configurations
    • Initial support for hyper-threading nodes, discovering hyper-threading configurations and binding more than single CPU to process
  • Updates:
    • Bug fix related to parsing slurm node list
    • Bug fix related to freezing while launching MPI applications


EasyVVUQ-QCGPJ – v0.4


MUSCLE 3 – v0.3.2

  • New Features :
    • Improved logging to aid in debugging Python submodels
  • Updates:
    • Fixes to sending and receiving lists, dictionaries and grids from C++
    • Accessing settings from C++ is now more flexible
    • Compatibility improvements to the build system


FabSim3 – v2.3 

  • New Features :
    • Added support for plugin machine-specific setting (#186)
  • Updates:
    • Used abbreviated form for PilotJob and virtualenv input args (#185)
    • Fixed incompatibility with newer version of QCG-PilotJob (#184)
    • Fixed reported bugs
    • Improved ensemble2campaign and campaign2ensemble functionalities


This version of FabSim3 has been used to enable five of the VECMA application tutorials:


We encourage you to share with us your experience with using VECMAtk, and fill out this very short and focused user questionnaire available here so that we can incorporate your suggestions in advance to our next release.

Month 24 release

Some significant new features and updates have been made in M24 release.

The Month 24 release has a prominent new feature allows users to install all packages for the Toolkit as a python virtualEnv.

In addition to installing each component of VECMA VVUQ Toolkit individually, the full VECMAtk Toolkit is available for download and installation; this contains all the software components in the form of a Python VirtualEnv.

For EasyVVUQ, it has Important changes since v0.5

  • Added support for vector QOIs
  • Implemented validation classes for comparing probability distributions
  • New tutorials
  • Expanded test coverage
  • Implemented automatic continuous deployment (to pypi and conda cloud)
  • Created an Anaconda package

MUSCLE3 v0.3.1 has been updated with the new features:

  • Support for sending and receiving multidimensional grids/arrays
  • Support for Python 3.8

and improved functions:

  • Python 3.5.1 support
  • Build compatibility on more operating systems

FabSim3 v2.0 has the following new Features

  • Fixed synchronizing/copying for a large number of files and folders 
  • Added support for setting memory size for the submitted job 
  • Added two new FabSim3 plugins FabCovid and fabmogp
  • Setup new documentation website 

and updates

  • Fixed overwritten of env.memory bug
  • Fixed QCG-PJ template file for a large number of jobs 
  • Improved FabSim3 automated installation script
  • Fixed several bugs
  • Improved performance and scalability


This version of FabSim3 has been used to enable three of the VECMA application tutorials:

QCG-PilotJob V0.8.0 has been updated with the new features:

  • new form of documentation based on Sphinx at
  • changed package name to qcg-pilotjob (previously QCGPilotManager)
  • changed Python library module name to qcg.pilotjob (previously qcg.appscheduler)
  • updated documentation in API methods
  • added more optimal way of handling iterative jobs
  • job names cannot contain any special character nor the variable in form ${}
  • iterations of job’s will automatically have assigned job name in format: MAIN_JOB_NAME:ITERATION_INDEX
  • changed ‘iterate’ element in job description: 
    • the new name is ‘iteration’
    • the new format is dictionary with ‘start’ (optional) and ‘stop’ keys
  • changed API methods: 
    • qcg.pilotjob.api.job.Joblist: 
      • addStd() -> add_std()
      • jobNames() -> job_names()
      • orderedJobNames() -> ordered_job_names()
      • orderedJobs() -> ordered_jobs()
      • loadFromFile() -> load_from_file()
      • saveToFile() -> save_to_file()
    • qcg.pilotjob.api.manager.Manager:
      • sendRequest() -> send_request()
      • isStatusFinished() -> is_status_finished()
    • qcg.pilotjob.api.manager.LocalManager:
      • stopManager() -> kill_manager_process()
  • new method qcg.pilotjob.api.manager.Manager.info_parsed() – returns job information in parsed form
  • qcg.pilotjob.api.manager.Manager.resources() – changed attributes in response: 
    • totalCores -> total_cores
    • totalNodes -> total_nodes
    • usedCores -> used_cores
    • freeCores -> free_cores
    • EasyVVUQ-QCGPJ

EasyVVUQ-QCGPJ V0.3 has been updated with the new features:

  • a new form of documentation based on Sphinx 
  • packages available in the pypi repository 
  • released an explicite dependency on EasyVVUQ and QCG-PilotJob, so the tool can be installed as a plugin for the existing installation of EasyVVUQ.
  • support for the latest versions of EasyVVUQ (v0.6) and QCG-PilotJob (v0.8)

Month 21 release

The Month 21 release has the following tools:

  • FabSim3
  • EasyVVUQ
  • QCG Pilot Job
  • QCG-Now
  • QCG-Client
  • EasyVVUQ-QCGPilotJob

Features and updates made in M21 release are listed as follows.

For EasyVVUQ, it has:

  • Point Collocation method for PCE sampling.
  • GaussianProcessSurrogate class which will serve as a basis and testing ground for surrogate based workflows
  • Added quasirandom sampling classes: LHCSampler and HaltonSampler.
  • JSONDecoder class. It allows codes to use JSON as output format.

And the tool has the following updates:

  • Started measuring test coverage using coveralls
  • Numerous bug fixes

For FabSim3, the tool has the following new feature:

  • Added automated configuration of machines_user.yml file (#173 , #162)

FabSim3 has been updated with:

  • Fixed Multi threading bug, allowing for much larger ensemble sizes (#175#174)
  • Disabled execution of run_prefix commands on the remote machine during the job submission (#171#176)
  • Defined additional functional tests for FabSim3 and plugins (#125)

MUSCLE3 has been released with the new tag: 0.3.0. MUSCLE3 has now with support for Fortran model components and various small fixes and improvements. The e-MUSC project has contributed MUSCLE 3 to the VECMA toolkit.

The QCG-PJ tool have been released with the new tags and have included several bugfixes, in particular:

  • bugfix related to the ‘job temporarily disabled’ error
  • bugfix related to the node launcher agent wait time

The QCG-EasyVVUQ-QCGPJ tool has some new features as follows:

  • possibility to use `EXEC_ONLY` option for `SubmitOrder` that limits the application of the pilot job tasks just to the actual execution of model (with this option decoding is executed without PJ)
  • possibility to define a logging level of the QCG Pilot Job software directly from the API
  • an internal tutorial material that can be helpful for new EasyVVUQ-QCGPJ users.  

Month 18 release

The Month 18 release is made up of the following tools:

  • FabSim3
  • EasyVVUQ
  • QCG Pilot Job
  • QCG-Now
  • QCG-Client
  • EasyVVUQ-QCGPilotJob

The following enhancements in terms of features have been made in the Month 18 release:

  • Improved UQ for the human migration application, mixing EasyVVUQ with FabSim3
  • QCG-PJ: improved scalability, both with and without EasyVVUQ
  • Support for half the UQ patterns originally proposed in VECMA for four projects
  • Stable version of MUSCLE3 – FabSim3 integration
  • Support for the High-Performance Computing Center Stuttgart (HLRS) supercomputer
  • Support for systematic output analysis through a new tool
  • Support for multiple Validation & Verification Patterns (VVPs)
  • 20 alpha users

Month 15 public release

The latest VECMAtk M15 release contains the following components:

  • EasyVVUQ
  • FabSim3
  • QCG Pilot Job
  • QCG-Client
  • QCG-Now

The M15 release has the following feature improvements:

– Addition of MUSCLE 3.
– FabSim3: addition of replica support.
– Implementation of the first VVP + automated validation example.
– EasyVVUQ: completion of refactoring + addition of new UQ methods.
– Implementation of fixes addressing concerns from M12 release.
– Support for at least two UQ patterns.
– 15 alpha users.
– Alpha version of MUSCLE3 – FabSim3 integration.

The M15 version was released on September 13th, 2019.

Month 12 public release

Internal releases

Month 9

Month 6

Month 3