The size of thread level storage under OpenMP.
Tobias Burnus
burnus@net-b.de
Fri May 23 20:25:00 GMT 2008
Toon Moene wrote:
> I have an OpenMP enabled Fortran program that dies a quick death when
> compiled with -fopenmp
A classical problem with OpenMP is that one runs out of stack memory.
The current stack setting can be queried using the sh/bash using "ulimit
-s" and using the (t)csh using "limit stacksize". Try to set it to
"unlimited". Often systems limit the available stack memory; A soft
limit of 8192 kbytes is a typical value under Linux.
The problem is that with -fopenmp all local variables are put on the
stack (instead of using static memory), which means that the needed
memory might be large as this includes all arrays which are not
dynamically allocated (allocatable, pointer, automatic arrays). The
variables must not use the static memory as otherwise wrong results are
obtained if several threads access the same procedure simultaneously.
However, there are tons of other things which can go wrong ...
Tobias
More information about the Fortran
mailing list