Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Brian Barrett (bbarrett_at_[hidden])
Date: 2007-06-26 22:33:47


On Jun 7, 2007, at 9:04 PM, Code Master wrote:

> nction `_int_malloc':
> : multiple definition of `_int_malloc'
> /usr/lib/libopen-pal.a(lt1-malloc.o)(.text+0x18a0):openmpi-1.2.2/
> opal/mca/memory/ptmalloc2/malloc.c:3954: first defined here
> /usr/bin/ld: Warning: size of symbol `_int_malloc' changed from
> 1266 in /usr/lib/libopen- pal.a(lt1-malloc.o) to 1333 in /home/
> 490_research/490/src/mpi.optimized_profiling//lib/libopen-pal.a(lt1-
> malloc.o)
>
>
> so what could go wrong here?
>
> Is it because openmpi has internal implementatios of system-
> provided functions (such as malloc) that are also used in my
> program, but the one the client program use is provided by the
> system whereas the one in the library has a different internal
> implementation?
>
> In such case, how could I do the static linking in my client
> program? I really need static linking as far as possible to do the
> profiling.

Yup, you guessed right. The easiest solution is to compile Open MPI
without the memory manager code. This disables some optimizations
for InfiniBand (OpenFabrics and MVAPI) and Myrinet/GM, but for other
networks has no impact. YOu can disable the memory manager with the
--without-memory-manager option to configure.

Hope this helps,

Brian

-- 
   Brian W. Barrett
   Networking Team, CCS-1
   Los Alamos National Laboratory