I believe that you can also add this to your LIB or LDFLAGS for 64-bit applications:

-Wl,-stack_addr,0xF10000000 -Wl,-stack_size,0x64000000


Warner Yuen
Scientific Computing
Consulting Engineer
Apple Computer
email: [email protected]
Tel: 408.718.2859
Fax: 408.715.0133



On Apr 25, 2008, at 1:11 PM, [email protected] wrote:

------------------------------

Message: 6
Date: Fri, 25 Apr 2008 14:10:57 -0600
From: Brian Barrett <[email protected]>
Subject: Re: [OMPI users] Memory question and possible bug in 64bit
        addressing under Leopard!
To: Open MPI Users <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes

On Apr 25, 2008, at 2:06 PM, Gregory John Orris wrote:

produces a core dump on a machine with 12Gb of RAM.

and the error message

mpiexec noticed that job rank 0 with PID 75545 on node mymachine.com
exited on signal 4 (Illegal instruction).

However, substituting in

float *X = new float[n];
for
float X[n];

Succeeds!


You're running off the end of the stack, because of the large amount
of data you're trying to put there.  OS X by default has a tiny stack
size, so codes that run on Linux (which defaults to a much larger
stack size) sometimes show this problem.  Your best bets are either to
increase the max stack size or (more portably) just allocate
everything on the heap with malloc/new.

Hope this helps,

Brian

--
  Brian Barrett
  Open MPI developer
  http://www.open-mpi.org/

Reply via email to