Skip to content

kinow/cwl-mpi

Repository files navigation

CWL & MPI

DOI ORCID RO-Crate License: CC BY 4.0 Reproducible Open Data CI GitHub Release

Master's thesis cover

This repository contains CWL-based workflows, execution traces, conformance test results, and supporting artefacts exploring the integration of the Common Workflow Language (CWL) with the Message Passing Interface (MPI).

The workflows were developed as part of the master's thesis:

“CWL workflows with MPI in bare-metal, containers, cloud, and HPC”
by Bruno de Paula Kinoshita, within the Joint Master in High Performance Computing offered by the University of Santiago de Compostela and the University of A Coruña.

The thesis was supervised by Michael R. Crusoe and Prof. Pablo Quesada.

Logos of Universidade de Santiago de Compostela and Universidade da Coruña

Contents

This repository includes:

  • CWL workflows integrating MPI execution models
  • CWL conformance test results across multiple CWL runners
  • Execution logs from HPC and cloud environments
  • Supporting scripts for generating thesis figures and LaTeX tables
  • A script that generates the RO-Crate file based on the directory contents
  • GitHub Actions automation to verify files in this repository

The results cover executions on:

  • Hetzner Cloud (OpenMPI 5)
  • Framework Laptop AMD 13 (MPICH 4)
  • CESGA FinisTerrae III (Intel MPI 2021.3.0)
  • CSC LUMI (Cray MPICH 8.1.32)
  • BSC MareNostrum 5 (Intel MPI 2021.10.0)

Dataset generation and structure

The directory structure of this repository is fully generated by automated execution scripts used during the experiments. It reflects the execution hierarchy of CWL conformance tests & workflows across multiple runners (cwltool, Toil, StreamFlow), MPI implementations, computing environments, and execution modes.

Output logs were processed to redact personally identifiable information (PII). No other manual post-processing or restructuring of execution outputs has been performed. This design choice ensures full traceability and preservation of both workflow outputs and workflow engine execution behaviour, including internal runtime state where available.

The dataset therefore includes both:

  • execution outputs (workflow results, logs, conformance test outputs)
  • execution engine traces (including internal state produced by workflow runners such as Toil and StreamFlow)

This structure is intentional and is required to support analysis of MPI integration behaviour in CWL execution engines, particularly the MPIRequirement extension evaluated in this thesis.


CWL Conformance Tests

CWL conformance testing was performed using:

Test environments

Reports and results: CWL Conformance Tests


Workflows

The repository contains example workflows used for evaluation of MPI execution in CWL.

Container-based experiments used images from: https://hub.docker.com/u/mfisherman, https://github.com/mfisherman/docker


Simple MPI Workflow

The sr.c program from MPICH is used to validate MPI execution in CWL. It prints MPI rank information and serves as a minimal correctness test.

Execution variants:

Full workflow description: Simple MPI Workflow


FALL3D Workflow

The FALL3D workflow originates from the GEO3BCN-CSIC project:

https://gitlab.geo3bcn.csic.es/fall3d/getit-workflows

This repository includes a modified version that:

  • supports execution without container dependencies
  • accepts input files and binaries via parameters
  • introduces an alternative execution model using MPIRequirement

The modified version is available at: kinow/getit-workflows#1

Full workflow description: FALL3D Workflow


Supporting scripts

Python scripts in this repository are used to generate LaTeX tables and figures for the thesis. They process:

  • CWL conformance test results
  • workflow execution logs
  • output artefacts produced during experiments

A requirements.txt file is provided where dependencies are required.


Tools and platforms used

The following tools and platforms were used during the thesis:

  • CWL runners: cwltool, Toil, StreamFlow
  • MPI implementations: MPICH, OpenMPI, Cray MPICH, Intel MPI
  • HPC systems: LUMI, MareNostrum 5, FinisTerrae III
  • Development tools: Git, Python, Bash, LaTeX, SSH, FileZilla
  • IDE: PyCharm
  • Bibliography: Zotero
  • Writing: Overleaf
  • RO-Crate: rocrate-py, rocrate-validator, Language-Research-Technology/ro-crate-html-js, simleo/rochtml (Docker)

Related repositories


Common Workflow Language Message Passing Interface


License

Data in this repository is licensed under CC-BY-4.0.

Software components retain their original licences (e.g., MPICH sr.c test program is distributed under the MPICH licence).

About

Repository for research artefacts produced in the thesis “CWL workflows with MPI in bare-metal, containers, cloud, and HPC”

Topics

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors