Brian,
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!

Regards,
Greg

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];
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/


_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to