Skip to content

Latest commit

 

History

History
135 lines (106 loc) · 3.71 KB

NOTES.md

File metadata and controls

135 lines (106 loc) · 3.71 KB

General

export MUK_PATH=${HOME}/mukautuva
export MUK_PATH=${HOME}/Work/MPI/mukautuva
export LD_LIBRARY_PATH=${MUK_PATH}
export DYLD_LIBRARY_PATH=${MUK_PATH}

Intel MPI

. /opt/intel/oneapi/setvars.sh --force

My Tests

for t in testcoll.x testcomm.x testinit.x testreqs.x testwin.x testgroup.x testtypes.x testops.x ; do ./test.sh ./$t ; done

OSU MPI Tests

wget https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-7.0.1.tar.gz
tar -xzf osu*gz
cd osu*
./configure CC=gcc CXX=g++ CFLAGS=-g3 --enable-g  CPPFLAGS=-I${MUK_PATH} LDFLAGS=-L${MUK_PATH} LIBS=-lmuk && make -j8

Run tests:

cd c/mpi
# Linux
for t in `find . -type f -executable -print` ; do LD_LIBRARY_PATH=${MUK_PATH} mpirun -n 2 ./$t ; done
# Mac
for t in `find . -type f -perm 755  -print` ; do LD_LIBRARY_PATH=${MUK_PATH} mpirun -n 2 ./$t ; done

At least one RMA test with Open-MPI requires --mca osc ucx (vader bug). #2

MPICH with OFI requires RDMAV_FORK_SAFE=1. #3

ARMCI-MPI

Clone as a subdirectory of ./mukautuva:

git clone https://github.com/pmodels/armci-mpi.git

Configure like this, e.g.:

./configure CC=gcc CFLAGS=-g3 --enable-g CPPFLAGS=-I${MUK_PATH} LDFLAGS="-L${MUK_PATH} -Wl,-rpath=${MUK_PATH}" LIBS="-lmuk -ldl"

Debug a single test failure like this:

 make checkprogs -j4 && LD_LIBRARY_PATH=.. MPI_LIB=/usr/lib/x86_64-linux-gnu/libmpich.so  mpirun.mpich -n 4 gdb  -ex "set width 1000" -ex "thread apply all bt" -ex run -ex bt -ex "set confirm off" -ex quit --args  ./tests/test_groups
 make checkprogs -j4 && LD_LIBRARY_PATH=.. MPI_LIB=/usr/lib/x86_64-linux-gnu/libmpi.so  mpirun.openmpi -n 4 gdb  -ex "set width 1000" -ex "thread apply all bt" -ex run -ex bt -ex "set confirm off" -ex quit --args  ./tests/test_groups

MPICH Test Suite

Required on Linux with Open-MPI (see open-mpi/ompi#7701).

export HWLOC_COMPONENTS=-gl

Required because of pmodels/mpich#6423:

export MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM=sched_ring
export LD_LIBRARY_PATH=${MUK_PATH}
mkdir -p ${MUK_PATH}/bin
ln -sf `which gcc` ${MUK_PATH}/bin/mpicc

MacOS

ln -s ${MUK_PATH}/bin/mpicc /usr/bin/clang
ln -s ${MUK_PATH}/bin/mpicxx /usr/bin/clang++
ln -s ${MUK_PATH}/bin/mpifort /opt/homebrew/bin/gfortran
# in mpich-testsuite...
ln -s ../ompi-wrap.so .
ln -s ../mpich-wrap.so .
ln -s ../libmuk.so libmuk.so
wget https://www.mpich.org/static/downloads/4.1/mpich-testsuite-4.1.tar.gz
tar -xaf mpich-testsuite-4.1.tar.gz
cd mpich-testsuite-4.1/
# Linux
./configure CC=gcc CXX=g++ FC=false CPPFLAGS="-I${MUK_PATH}" LDFLAGS="-L${MUK_PATH}" LIBS="-lmuk" --enable-strictmpi --with-mpi=${MUK_PATH}
# MacOS
./configure  CPPFLAGS="-I${MUK_PATH}" LDFLAGS="-L${MUK_PATH}" LIBS="-lmuk" --enable-strictmpi --with-mpi=${MUK_PATH} --disable-cxx CC=clang CXX=clang++

Useful for running multiple tests manually:

find . -type f -executable -print
for t in `find . -type f -executable -print` ; do echo Starting $t && mpirun -n 4 $t ; done

Run tests the right way:

MPIEXEC="mpirun.openmpi --oversubscribe --quiet" \
./runtests -tests=testlist -maxnp=8 -verbose -showprogress -debug

Intel MPI Benchmarks

git clone https://github.com/jeffhammond/mpi-benchmarks.git IMB
cd src_c && make -j8
# DYLD_LIBRARY_PATH=${HOME}/Work/MPI/mukautuva
for p in IMB-EXT IMB-MPI1 IMB-NBC IMB-RMA IMB-IO ; do mpirun -n 4 ./$p ; done
cd src_cpp && make -j8
for t in example EXT HALO IO MPI1 MT NBC RMA ; do make TARGET=$t ; done
for t in example EXT HALO MPI1 MT NBC RMA ; do mpirun -n 4 ./IMB-$t ; done

Open-MPI Debug Build