Skip to content

2D-distribution

2D-distribution #332

Workflow file for this run

name: PyLops-MPI
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
mpi: ['mpich', 'openmpi', 'intelmpi']
rank: ['2', '3', '4']
exclude:
- os: macos-latest
mpi: 'intelmpi'
# MPICH v4 fails on Ubuntu for Python <3.10
# ”libfabric EFA provider is operating in a
# condition that could result in memory
# corruption”
- os: ubuntu-latest
python-version: '3.8'
mpi: 'mpich'
- os: ubuntu-latest
python-version: '3.9'
mpi: 'mpich'
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get history and tags for SCM versioning to work
run: |
git fetch --prune --unshallow
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Setup MPI
uses: mpi4py/setup-mpi@v1
with:
mpi: ${{ matrix.mpi }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Installing Dependencies
run: |
python -m pip install --upgrade pip setuptools
if [ -f requirements.txt ]; then pip install -r requirements-dev.txt; fi
- name: Install pylops-mpi
run: pip install .
- name: Testing using pytest-mpi
run: mpiexec -n ${{ matrix.rank }} pytest --with-mpi