Skip to content

Commit d4d3faf

Browse files
committed
abi: Add testing against Open MPI
1 parent 0d212ba commit d4d3faf

File tree

1 file changed

+50
-5
lines changed

1 file changed

+50
-5
lines changed

.github/workflows/abi.yml

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ on:
1717
inputs:
1818
mpi-git:
1919
description: 'MPI git'
20-
default: pmodels/mpich
20+
default: ''
2121
required: false
2222
type: string
2323
mpi-ref:
@@ -92,10 +92,16 @@ jobs:
9292
path: mpi4py-*.whl
9393

9494

95-
mpich:
95+
test:
9696
needs: build
9797
runs-on: ubuntu-24.04
9898
timeout-minutes: 60
99+
strategy:
100+
fail-fast: false
101+
matrix:
102+
mpi-git: ${{ inputs.mpi-git &&
103+
fromJSON(format('["{0}"]', inputs.mpi-git)) ||
104+
fromJSON('["pmodels/mpich", "open-mpi/ompi"]') }}
99105

100106
steps:
101107

@@ -108,21 +114,30 @@ jobs:
108114
libhwloc-dev
109115
libfabric-dev
110116
libibverbs-dev
117+
libnuma-dev
111118
libpsm-infinipath1-dev
112119
libpsm2-dev
113120
librdmacm-dev
114121

115122
- name: Checkout MPI
116123
uses: actions/checkout@v5
117124
with:
118-
repository: ${{ inputs.mpi-git || 'pmodels/mpich' }}
119-
ref: ${{ inputs.mpi-ref }}
125+
repository: ${{ matrix.mpi-git || 'pmodels/mpich' }}
126+
ref: ${{ inputs.mpi-ref ||
127+
(endsWith(matrix.mpi-git, 'ompi') &&
128+
'refs/pull/13280/head') }}
120129
path: mpi-build
121130
submodules: recursive
122131

123132
- name: Bootstrap MPI
124133
run: ./autogen.sh
125134
working-directory: mpi-build
135+
if: ${{ endsWith(matrix.mpi-git, 'mpich') }}
136+
137+
- name: Bootstrap MPI
138+
run: ./autogen.pl
139+
working-directory: mpi-build
140+
if: ${{ endsWith(matrix.mpi-git, 'ompi') }}
126141

127142
- name: Configure MPI
128143
run: ./configure
@@ -135,6 +150,22 @@ jobs:
135150
--enable-fast=none
136151
--enable-mpi-abi
137152
working-directory: mpi-build
153+
if: ${{ endsWith(matrix.mpi-git, 'mpich') }}
154+
155+
- name: Configure MPI
156+
run: ./configure
157+
--disable-dependency-tracking
158+
--without-ofi
159+
--without-ucx
160+
--without-psm2
161+
--enable-debug
162+
--enable-mem-debug
163+
--disable-sphinx
164+
--disable-mpi-fortran
165+
--disable-oshmem
166+
LDFLAGS=-Wl,-rpath,/usr/local/lib
167+
working-directory: mpi-build
168+
if: ${{ endsWith(matrix.mpi-git, 'ompi') }}
138169

139170
- name: Build MPI
140171
run: make -j $(nproc)
@@ -152,9 +183,23 @@ jobs:
152183
run: |
153184
# Tweak MPI
154185
echo "RDMAV_FORK_SAFE=1" >> $GITHUB_ENV
186+
# Tweak MPI
187+
mca_params="$HOME/.openmpi/mca-params.conf"
188+
mkdir -p "$(dirname "$mca_params")"
189+
echo mpi_param_check = true >> "$mca_params"
190+
echo mpi_show_handle_leaks = true >> "$mca_params"
191+
echo rmaps_base_oversubscribe = true >> "$mca_params"
192+
mca_params="$HOME/.prte/mca-params.conf"
193+
mkdir -p "$(dirname "$mca_params")"
194+
echo rmaps_default_mapping_policy = :oversubscribe >> "$mca_params"
155195
156196
- name: Show MPI
157197
run: mpichversion
198+
if: ${{ endsWith(matrix.mpi-git, 'mpich') }}
199+
200+
- name: Show MPI
201+
run: ompi_info
202+
if: ${{ endsWith(matrix.mpi-git, 'ompi') }}
158203

159204
- name: Use Python
160205
uses: actions/setup-python@v6
@@ -194,7 +239,7 @@ jobs:
194239
timeout-minutes: 10
195240
- name: Test mpi4py (np=5)
196241
run: mpiexec -n 5 python test/main.py -v -f
197-
if: ${{ false }}
242+
if: ${{ !endsWith(matrix.mpi-git, 'mpich') }}
198243
timeout-minutes: 10
199244

200245
- name: Test mpi4py.futures (singleton)

0 commit comments

Comments
 (0)