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