feat(initial): added portable mfem build system

This commit is contained in:
2026-09-05 07:11:05 -04:00
commit 6a54f2625e
49 changed files with 4344 additions and 0 deletions

33
tools/run_mpi_test.py Normal file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/env python3
"""Run one MPI test without baking a particular MPI launcher into the meson build tree."""
from __future__ import annotations
import argparse
import os
import sys
import subprocess
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--launcher", required=True)
parser.add_argument("--processes", type=int, default=2)
parser.add_argument("executable")
parser.add_argument("arguments", nargs="*")
args = parser.parse_args()
command = [args.launcher, "-n", str(args.processes), args.executable, *args.arguments]
environment = dict(os.environ)
environment.setdefault("OMPI_ALLOW_RUN_AS_ROOT", "1")
environment.setdefault("OMPI_ALLOW_RUN_AS_ROOT_CONFIRM", "1")
loopback = "lo0" if sys.platform == "darwin" else "lo"
environment.setdefault("FI_PROVIDER", "sockets")
environment.setdefault("FI_SOCKETS_IFACE", loopback)
environment.setdefault("HYDRA_IFACE", loopback)
if sys.platform == "darwin":
environment.setdefault("MPICH_INTERFACE_HOSTNAME", "127.0.0.1")
return subprocess.run(command, env=environment, check=False).returncode
if __name__ == "__main__":
raise SystemExit(main())