Thanks, and my apologies.
This is an issue once known to me on an old CRAY/SGI, but lost in the
mists of time (>10 years). Stack size increase did the trick. Of
course putting everything on the heap via new and malloc would work
for arrays, but that creates such an inelegant looking code.
Couple of things though, 1. Default stack size on our Linux boxes is
10240 while on Leopard it's 8192. Not much of a difference. Could not
increase stack size beyond 32kB (not that I'll need that much) on
Leopard?!? 2. Problem seemed to only occur within OMPI at the level of
memory usage I was incurring. I'm assuming more stack is chewed up in
overhead as compared to serial code. Yes/No?
Again sorry for the faulty memory and seemingly stupid question!
On Apr 25, 2008, at 4:10 PM, Brian Barrett wrote:
> 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];
>> float X[n];
> 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 Barrett
> Open MPI developer
> users mailing list