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.

Where are Fortran 90 arrays allocated, stack or heap? I can't see us using malloc in our Fortran 90 codes, I need to understand this before I start configuring a new clusters, I was planning for it to run OS X instead of Linux. At the moment I don't have an OS X system with enough RAM to test this.

Michael

Reply via email to