MUST - t-sakashita/rokko GitHub Wiki

MUST(MPI Runtime Error Detection Tool)

インストール@phi

PnMPIのインストール

cmake -D CMAKE_INSTALL_PREFIX=$HOME/install -D CMAKE_C_COMPILER=mpicc -D CMAKE_CXX_COMPILER=mpicxx -D     CMAKE_BUILD_TYPE=Debug ..
CC=icc CXX=icpc FC=ifort cmake -D CMAKE_INSTALL_PREFIX=$HOME/install -D MPI_C_COMPILER=mpicc -D     MPI_CXX_COMPILER=mpicxx -D MPI_Fortran_COMPILER=mpif90 -D CMAKE_BUILD_TYPE=Debug ..
make
make install

GTIのインストール@phi

export PnMPI_HOME=$HOME/install

以下を追加し、extern "C"を阻止しないと、コンパイルエラー

#define _EXTERN_C_


export GTI_HOME=$HOME/install
CC=mpicc CXX=mpicxx FC=mpif90 cmake -D CMAKE_INSTALL_PREFIX=$HOME/install -D CMAKE_BUILD_TYPE=Release -     DPnMPI_INSTALL_PREFIX=$HOME/install ..
make
make install

export PATH=$PATH:$HOME/install

MUSTのインストール

CC=mpicc CXX=mpicxx FC=mpif90 cmake -D CMAKE_INSTALL_PREFIX=$HOME/install -D CMAKE_BUILD_TYPE=Release -DPnMPI_INSTALL_PREFIX=$HOME/install ..
make
make install

インストール@MacBook

CC=gcc CXX=g++ FC=gfortran cmake -D CMAKE_INSTALL_PREFIX=$HOME/install -D MPI_C_COMPILER=mpicc -D MPI_CXX_COMPILER=mpicxx -D MPI_Fortran_COMPILER=mpif90 -D CMAKE_BUILD_TYPE=Debug ..

cd /Users/sakashitatatsuya/Downloads/pnmpi/build_saka/modules/datatype && /opt/local/bin/mpicc  - DDBGLEVEL=0 -Ddtprint_EXPORTS -g -fPIC -I/Users/sakashitatatsuya/Downloads/pnmpi/src -  I/Users/sakashitatatsuya/Downloads/pnmpi/build_saka/src -I/opt/local/include/mpich-gcc48    -o   CMakeFiles/dtprint.dir/dtprint.c.o   -c /Users/sakashitatatsuya/Downloads/pnmpi/modules/datatype/dtprint.c

/Users/sakashitatatsuya/Downloads/pnmpi/modules/datatype/dtprint.c:105:5: error: conflicting types for 'MPI_Isend' int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, ^ In file included from /Users/sakashitatatsuya/Downloads/pnmpi/modules/datatype/dtprint.c:37:0: /opt/local/include/mpich-gcc48/mpi.h:855:5: note: previous declaration of 'MPI_Isend' was here int MPI_Isend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, ^ /Users/sakashitatatsuya/Downloads/pnmpi/modules/datatype/dtprint.c:146:5: error: conflicting types for 'MPI_Send' int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) ^ In file included from /Users/sakashitatatsuya/Downloads/pnmpi/modules/datatype/dtprint.c:37:0: /opt/local/include/mpich-gcc48/mpi.h:842:5: note: previous declaration of 'MPI_Send' was here int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, ^ make[2]: *** [modules/datatype/CMakeFiles/dtprint.dir/dtprint.c.o] Error 1 make[1]: *** [modules/datatype/CMakeFiles/dtprint.dir/all] Error 2 make: *** [all] Error 2 zsh: exit 2 make VERBOSE=1

mpiccをmpicxxにして、この部分だけ手でコマンド実行

[@no-MacBook-Air build_saka]$ cd /Users/sakashitatatsuya/Downloads/pnmpi/build_saka/modules/datatype && /opt/local/bin/mpicxx  -DDBGLEVEL=0 -Ddtprint_EXPORTS -g -fPIC -I/Users/sakashitatatsuya/Downloads/pnmpi/src -I/Users/sakashitatatsuya/Downloads/pnmpi/build_saka/src -I/opt/local/include/mpich-gcc48    -o CMakeFiles/dtprint.dir/dtprint.c.o   -c /Users/sakashitatatsuya/Downloads/pnmpi/modules/datatype/dtprint.c

[@sakashita-no-MacBook-Air build_saka]$ cd /Users/sakashitatatsuya/Downloads/pnmpi/build_saka/modules/sample && /opt/local/bin/mpicxx -DDBGLEVEL=0 -Dsample1_non_patched_EXPORTS -g -fPIC -I/Users/sakashitatatsuya/Downloads/pnmpi/src -I/Users/sakashitatatsuya/Downloads/pnmpi/build_saka/src -I/opt/local/include/mpich-gcc48 -o CMakeFiles/sample1-non-patched.dir/sample1.c.o -c /Users/sakashitatatsuya/Downloads/pnmpi/modules/sample/sample1.c