This is the mail archive of the
mailing list for the GCC project.
Re: libgomp: Thread creation failed: Invalid argument
On 8/15/06, Tim Schmielau <firstname.lastname@example.org> wrote:
On Tue, 15 Aug 2006, Asher Langton wrote:
> Tim Schmielau wrote on 08/15/06:
> > The problem appears for any OMP_NUM_THREADS value other than 1 (I tried
> > up to 8 on an 8-way machine).
> > Extracting a testcase from the 18.000 lines of code will probably require
> > some work, so I was looking for easier things to chek first. But I'll try
> > to do that, then.
> Are you using a lot of threadprivate variables? Try setting the
> GOMP_STACKSIZE environment variable to a large value (in kB) and see
> if the problem persists.
Yes, I do use a large set of threadprivate variables.
I tried different settings of GOMP_STACKSIZE before. However, I somehow
didn't hit a working setting as I didn't know it was measured in kB.
The program now works on x86_64 with SETENV GOMP_STACKSIZE 1048576.
On i686 I do not find a working stacksize, as for too large stacksizes the
program dies with a segfault. Wonder how PGI and ifort deal with the
limited address space.
Ifort has a similar environment variable, but I found that I didn't
actually need it.
On a side note: I just posted a patch on the fortran list that
implements threadprivate without using Thread Local Storage (so that
it works on Darwin, AIX, etc.). One unintended result was that I no
longer needed to set GOMP_STACKSIZE to compile programs with lots of
threadprivates. Would you mind trying your code against this patch,
and letting me know if it works (at all), and whether you still need
to set GOMP_STACKSIZE?