Label Cloud

Sunday, November 19, 2006

mpich with icc 8.1

from beowulf.org: http://www.beowulf.org/archive/2004-December/011486.html


Oops - sorry, I just showed my complete ignorance of the profiling
interface.

The configure option --disable-weak-symbols will give you separate
libpmpich.a and libmpich.a libraries, containing respectively the
"PMPI_xxx" and "MPI_xxx" versions of the code. The "PMPI_xxx" versions
are the "real" versions. The "MPI_xxx" versions allow implementation of
routines which intercept a given call, say to do profiling, and which
also call the "PMPI_xxx" versions.

If I'm interpreting the documentation correctly, with
"--disable-weak-symbols" if you want to profile some calls and not other
calls, you'd have to use a link command something like:
cc ... -lprof -lpmpi -lmpi
where libprof.a contains profiling versions of selected routines, eg,
MPI_Send, which in turn call the base version, PMPI_Send, resolved in
libpmpi.a. Other routines not defined in libprof.a would be resolved in
libmpi. With weak symbols, on the other hand, it is sufficient to use
cc ... -lprof -lmpi
and then an "MPI_xxx" symbol not defined in libprof.a will be resolved
by "PMPI_xxx" in libmpi.a

See, for example,
http://www.netlib.org/utk/papers/mpi-book/node190.html

I just checked on two versions of mvapich on one of my machines, one
built with the Intel 7.1 compiler and the other with the 8.1 compiler.
The latter required "--disable-weak-symbols". I verified that mpif77,
for example, explicitly linked with "-lpmpich -lmpich" on the 8.1
version, but only with "-lmpich" on the 7.1 version.

Don Holmgren
Fermilab

0 comments:

About

My photo
Taipei, Taiwan
3rd Year Ph.D Student in Chemical Biology and Biological Physics of Academia Sinica

Google Analytics