Open KingVickyRaj opened 1 year ago
I changed the make_pastix.sh a bit to the following because there was a syntax error for the original file
if ! [[ -d build ]]; then mkdir build fi cd build
INSTALLPATH="~/pastix" CUDADIR="/usr/lib/cuda" PARSECDIR="/usr/lib/parsec" SCOTCHDIR="/usr/lib/scotch" HWLOCDIR="/usr/lib/hwloc"
cmake \ -DCUDA_TOOLKIT_ROOT_DIR=${CUDADIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALLPATH} \ -DCMAKE_BUILD_TYPE=Release \ -DPASTIX_WITH_PARSEC=ON \ -DPARSEC_DIR=${PARSECDIR} \ -DSCOTCH_DIR=${SCOTCHDIR} \ -DHWLOC_DIR=${HWLOCDIR} \ -DPASTIX_WITH_CUDA=ON \ -DCUDA_DIR=${CUDADIR} \ -DPASTIX_ORDERING_SCOTCH=ON \ -DCMAKE_C_COMPILER=gcc \ -DCMAKE_CXX_COMPILER=g++ \ -DCMAKE_Fortran_COMPILER=gfortran \ -DCMAKE_C_FLAGS="-fopenmp" \ ..
make -j8 make install
Would be nice if I could get some help in this
Hello @KingVickyRaj
Just a quick question regarding the errors you have. Which version of PaRSEC are you using ? and do you want to enable MPI or not ?
It looks like MPI is enabled in parsec and not in pastix or the opposite.
Mathieu
once I get the code in my system and run the make_pastix.sh I get the following error and cannot solve it. It looks like this is happening because of datatype definition conflict by two libraries, one from MPI and the other from pastix/nompi.h
The following is the compilation output
In file included from /home/vicknesh/PaStiX/pastix_src/include/pastix.h:39, from /home/vicknesh/PaStiX/pastix_src/common/common.h:22, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:24: /home/vicknesh/PaStiX/pastix_src/include/pastix/nompi.h:86:15: error: conflicting types for ‘MPI_User_function’ typedef void (MPI_User_function) ( void , void , int , MPI_Datatype ); ^
~~~~ In file included from /usr/local/include/parsec/datatype.h:13, from /usr/local/include/parsec.h:16, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:19: /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:448:15: note: previous declaration of ‘MPI_User_function’ was here typedef void (MPI_User_function)(void , void , int , MPI_Datatype ); ^~~~~ In file included from /home/vicknesh/PaStiX/pastix_src/include/pastix.h:39, from /home/vicknesh/PaStiX/pastix_src/common/common.h:22, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:24: /home/vicknesh/PaStiX/pastix_src/include/pastix/nompi.h:92:3: error: conflicting types for ‘MPI_Status’ } MPI_Status; ^~~~~~ In file included from /usr/local/include/parsec/datatype.h:13, from /usr/local/include/parsec.h:16, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:19: /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:409:37: note: previous declaration of ‘MPI_Status’ was here typedef struct ompi_status_public_t MPI_Status; ^~~~~~ In file included from /home/vicknesh/PaStiX/pastix_src/include/pastix.h:39, from /home/vicknesh/PaStiX/pastix_src/common/common.h:22, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:24: /home/vicknesh/PaStiX/pastix_src/include/pastix/nompi.h:172:1: error: conflicting types for ‘MPI_Gather’ MPI_Gather( const void sendbuf, int sendcount, MPI_Datatype sendtype, ^~~~~~ In file included from /usr/local/include/parsec/datatype.h:13, from /usr/local/include/parsec.h:16, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:19: /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1534:20: note: previous declaration of ‘MPI_Gather’ was here OMPI_DECLSPEC int MPI_Gather(const void sendbuf, int sendcount, MPI_Datatype sendtype, ^~~~~~ In file included from /home/vicknesh/PaStiX/pastix_src/include/pastix.h:39, from /home/vicknesh/PaStiX/pastix_src/common/common.h:22, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:24: /home/vicknesh/PaStiX/pastix_src/include/pastix/nompi.h:187:1: error: conflicting types for ‘MPI_Allreduce’ MPI_Allreduce( const void sendbuf, void recvbuf, int count, ^~~~~ In file included from /usr/local/include/parsec/datatype.h:13, from /usr/local/include/parsec.h:16, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:19: /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1302:20: note: previous declaration of ‘MPI_Allreduce’ was here OMPI_DECLSPEC int MPI_Allreduce(const void sendbuf, void recvbuf, int count, ^~~~~ In file included from /home/vicknesh/PaStiX/pastix_src/include/pastix.h:39, from /home/vicknesh/PaStiX/pastix_src/common/common.h:22, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:24: /home/vicknesh/PaStiX/pastix_src/include/pastix/nompi.h:196:1: error: conflicting types for ‘MPI_Alltoall’ MPI_Alltoall( const void sendbuf, int sendcount, MPI_Datatype sendtype, ^~~~ In file included from /usr/local/include/parsec/datatype.h:13, from /usr/local/include/parsec.h:16, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:19: /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1306:20: note: previous declaration of ‘MPI_Alltoall’ was here OMPI_DECLSPEC int MPI_Alltoall(const void sendbuf, int sendcount, MPI_Datatype sendtype, ^~~~ In file included from /home/vicknesh/PaStiX/pastix_src/include/pastix.h:39, from /home/vicknesh/PaStiX/pastix_src/common/common.h:22, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:24: /home/vicknesh/PaStiX/pastix_src/include/pastix/nompi.h:210:1: error: conflicting types for ‘MPI_Reduce’ MPI_Reduce( const void sendbuf, void recvbuf, int count, MPI_Datatype datatype, ^~~~~~ In file included from /usr/local/include/parsec/datatype.h:13, from /usr/local/include/parsec.h:16, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:19: /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1706:20: note: previous declaration of ‘MPI_Reduce’ was here OMPI_DECLSPEC int MPI_Reduce(const void sendbuf, void recvbuf, int count, ^~~~~~ In file included from /home/vicknesh/PaStiX/pastix_src/include/pastix.h:39, from /home/vicknesh/PaStiX/pastix_src/common/common.h:22, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:24: /home/vicknesh/PaStiX/pastix_src/include/pastix/nompi.h:220:1: error: conflicting types for ‘MPI_Bcast’ MPI_Bcast( void buffer, int count, MPI_Datatype datatype, int root, ^~~~~ In file included from /usr/local/include/parsec/datatype.h:13, from /usr/local/include/parsec.h:16, from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:19: /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1326:20: note: previous declaration of ‘MPI_Bcast’ was here OMPI_DECLSPEC int MPI_Bcast(void buffer, int count, MPI_Datatype datatype, ^~~~~ /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c: In function ‘parsec_zhetrf_sp1dplus_New’: /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:99:5: warning: passing argument 2 of ‘parsec_matrix_add2arena’ makes pointer from integer without a cast [-Wint-conversion] parsec_matrix_add2arena_rect( parsec_zhetrf_sp1dplus->arenas[PARSEC_zhetrf_sp1dplus_DEFAULT_ARENA], ^~~~~~~~ In file included from /home/vicknesh/PaStiX/pastix_src/build/sopalin/parsec/parsec_zhetrf.c:23: /usr/local/include/parsec/data_dist/matrix/matrix.h:210:71: note: expected ‘parsec_datatype_t’ {aka ‘struct ompi_datatype_t ’} but argument is of type ‘int’ int parsec_matrix_add2arena( parsec_arena_t arena, parsec_datatype_t oldtype,