Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.

Linking MPICH2 with MKL

mamey4
Beginner
441 Views
Hi,

in addition to the thread available under http://software.intel.com/en-us/forums/showthread.php?t=66299&p=1#144543, I have a problem linking MPICH2 and MKL with my Visual Studio 2008 project (Intel Fortran 11 compiler).
I link a number of libraries to my project - if I do that without /assume:underscore, I get a whole lot of linker errors about unresolved symbols, whose names all start with an underscore (but don't end with one).

error LNK2001: unresolved symbol "_MPI_Allreduce". mkl_blacs_mpich2.lib(dgsum2d_.oo)

If I use /assume:underscore, however, all the imported symbols are fine, but I get linker errors in the object file of my program. The unresolved symbols here start and end with an underscore.

error LNK2001: unresolved symbol "_MPI_NULL_COPY_FN_". test.obj

From what I understood there are two calling conventions here. Is there a way to fix this problem without using other libraries?

Martin
0 Kudos
1 Reply
Dmitry_K_Intel2
Employee
441 Views
Hi Martin,

Looks you have code compiled for different platforms.
If you compile your application for Intel64 architecture you need to link with mkl_blacs_mpich2_lp64.lib.
32-bit version of of the mkl_blacs_mpich2.lib contains names with underscore and that's OK.

BTW: mpich2 should be compiled for the same architecture.

Regards!
Dmitry
0 Kudos
Reply