Compiling mpi C Pardiso

68 Views Asked by At

I am trying to compile: mpicc -o laplace laplace_mpi.c -L. -lpardiso600-GNU720-X86-64 -llapack -lrefblas -lgfortran -fopenmp -lpthread -ldl -lstdc++ -lm which works for gcc instead of mpicc but I get: /tmp/ccu1hut5.o: In function mpipardiso_driver': laplace_mpi.c:(.text+0x1250): undefined reference to pardiso_mpi_init_c_' Does anyone know a solution? Thanks, John

1

There are 1 best solutions below

0
Flusslauf On

I can only contribute that apparently the newer libpardiso libraries do not seem to export these symbols anymore (at least nm -gD does not show them) - so I would expect the linker error..

Sadly I cannot test Pardiso 4.1 (apparently the version that introduced the MPI component into Pardiso) since old binaries are not available for licensing/download.

Also - I cannot compile the above line with gcc instead of mpicc either - since it has an unresolved dependency to mpi. I think you mean you were able to compile the laplace.c example form the Pardiso examples? That should work since it does not use any pardiso_mpi symbols. Note that mpicc is just a wrapper and will still (at least on my machine) call gcc (see mpicc --showme).

I would assume that a some point Pardiso dropped the mpi symbols from their libraries. Meaning your problem cannot be solved and the example on the Pardiso webpage cannot be compiled with the current Pardiso executables.

I hope this at least gives you some insight as of why it does not work. I would suggest contacting the pardiso support and asking for the mpi version of pardiso.