LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Brian Barrett (brbarret_at_[hidden])
Date: 2005-03-21 20:23:21


On Mar 21, 2005, at 6:18 PM, Lily Li wrote:

> We've encountered SIGSEGV in LAM's malloc() function problem with LAM
> 7.1.1.
> The same application works fine with LAM 7.0. I know our application
> is not
> very clean regarding using  realloc() ( we may give a null pointer to
> realloc()).
> Is there a way that we don't use LAM's wrapper functions for the
> malloc() etc. ?
> e.g. how do we build our applications not to use LAM's malloc() ?

That's kind of worrisome - usually ptmalloc shouldn't get in the way
(and should handle realloc with a NULL first pointer just fine). To
answer your question, you can give the option --without-memory-manager
to configure to build without any internal memory management. Of
course, you will not be able to use Myrinet or InfiniBand with LAM in
that case.

If you are using Linux, you might want to compile with --with-purify
and use Valgrind or Purify to make sure you don't have some latent
memory bug that can easily be cleaned up. The --with-purify option
slows LAM down slightly by zeroing out all structures before use. LAM
uses many structures with fields that are not always applicable (or may
be filled in on the receiving side), so without the purify option, LAM
will cause read from uninitialized warnings that aren't critical.

Hope this helps,

Brian

-- 
   Brian Barrett
   LAM/MPI developer and all around nice guy
   Have an LAM/MPI day: http://www.lam-mpi.org/