Skip to content

Commit 73624ed

Browse files
authored
kernels(mpi): cross-compile and test all mpi kernels (#32)
1 parent ffd7dac commit 73624ed

File tree

3 files changed

+26
-18
lines changed

3 files changed

+26
-18
lines changed

.github/workflows/tests.yml

+16-11
Original file line numberDiff line numberDiff line change
@@ -183,20 +183,25 @@ jobs:
183183
- name: "Run MPI kernels"
184184
timeout-minutes: 2
185185
run: |
186-
# The global MPI kernel stopped working when enabling SIMD
187-
# faasmctl invoke kernels-mpi global --cmdline '10 1024'
188-
faasmctl invoke kernels-mpi p2p --cmdline '10 1024 1024' --mpi-world-size 4
189-
faasmctl invoke kernels-mpi sparse --cmdline '10 10 5' --mpi-world-size 4
190-
faasmctl invoke kernels-mpi transpose --cmdline '10 1024 32' --mpi-world-size 4
191-
faasmctl invoke kernels-mpi stencil --cmdline '10 1000' --mpi-world-size 4
192-
# The dgemm MPI kernel does not work because we are missing
193-
# implementations for MPI_Comm_group, MPI_Group_incl, and MPI_Comm_create
186+
# We order MPI kernels according to their compilation order defined
187+
# in tasks/kernels.py
188+
# amr: does not work because we are missing MPI_Comm_split
189+
# faasmctl invoke kernels-mpi amr --cmdline '10 1024 16 16 16 8 4 HIGH_WATER' --mpi-world-size 4
190+
faasmctl invoke kernels-mpi branch --cmdline '10 10 vector_go' --mpi-world-size 4
191+
# dgemm: does not work because we are missing MPI_Comm_group, MPI_Group_incl, and MPI_Comm_create
194192
# faasmctl invoke kernels-mpi dgemm --cmdline '10 1024 32 1' --mpi-world-size 4
195193
faasmctl invoke kernels-mpi nstream --cmdline '10 1024 32' --mpi-world-size 4
196-
faasmctl invoke kernels-mpi reduce --cmdline '10 1024' --mpi-world-size 4
197-
# The random MPI kernel does not work because we are missing
198-
# implementations for MPI_Alltoallv
194+
# pic: does not work due to what looks like an integer overflow
195+
# faasmctl invoke kernels-mpi pic --cmdline "10 10 10 2 5 SINUSOIDAL" --mpi-world-size 4
196+
# random: does not work due to some memory size error (likely an overflow too)
199197
# faasmctl invoke kernels-mpi random --cmdline '32 20' --mpi-world-size 4
198+
faasmctl invoke kernels-mpi reduce --cmdline '10 1024' --mpi-world-size 4
199+
faasmctl invoke kernels-mpi sparse --cmdline '10 10 5' --mpi-world-size 4
200+
faasmctl invoke kernels-mpi stencil --cmdline '10 1000' --mpi-world-size 4
201+
# global: fails sometime during execution
202+
# faasmctl invoke kernels-mpi global --cmdline '10 1024'
203+
faasmctl invoke kernels-mpi p2p --cmdline '10 1024 1024' --mpi-world-size 4
204+
faasmctl invoke kernels-mpi transpose --cmdline '10 1024 32' --mpi-world-size 4
200205
- name: "Run OpenMP kernels"
201206
if: "contains(env.FAASM_WASM_VM, 'wavm')"
202207
timeout-minutes: 2

tasks/kernels.py

+9-6
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,18 @@ def build(ctx, clean=False, native=False):
4646
# Build the MPI kernels
4747
work_env["FAASM_KERNEL_TYPE"] = "mpi"
4848
mpi_kernel_targets = [
49-
("MPI1/Synch_global", "global"),
50-
("MPI1/Synch_p2p", "p2p"),
51-
("MPI1/Sparse", "sparse"),
52-
("MPI1/Transpose", "transpose"),
53-
("MPI1/Stencil", "stencil"),
49+
("MPI1/AMR", "amr"),
50+
("MPI1/Branch", "branch"),
5451
("MPI1/DGEMM", "dgemm"),
5552
("MPI1/Nstream", "nstream"),
56-
("MPI1/Reduce", "reduce"),
53+
("MPI1/PIC-static", "pic"),
5754
("MPI1/Random", "random"),
55+
("MPI1/Reduce", "reduce"),
56+
("MPI1/Sparse", "sparse"),
57+
("MPI1/Stencil", "stencil"),
58+
("MPI1/Synch_global", "global"),
59+
("MPI1/Synch_p2p", "p2p"),
60+
("MPI1/Transpose", "transpose"),
5861
]
5962
for subdir, make_target in mpi_kernel_targets:
6063
make_cmd = "make {}".format(make_target)

0 commit comments

Comments
 (0)