[Openmp-dev] [fortran OpenMP hangs in the last subroutine] Race condition ?
David Van Aelst via Openmp-dev
openmp-dev at lists.llvm.org
Tue May 24 07:41:06 PDT 2016
Hello from Toulouse, France, so please excuse my sometimes poor or
hesitant English; I want to parallelize a fortran tool that
post-processes finite elements stress results, and it does not yet work
correctly; I already posted a message on this list, under the same
title : [fortran OpenMP hangs in the last subroutine]. The serial
version of the tool is Ok, but a run lasts five days, and the machine
should be able to reduce that to half a day with OpenMP.
The problem is that the program enters an endless loop while ran on
several processors, even with as few as a twentieth of the full data set
that it should finally process. But it behaves perfectly well with an
even smaller set of data.
I suspect a race condition on one of the variables used by that
subroutine, because it never enters that endless loop at the same step
within this last subroutine.
So, I would like to check before any assignation of any variable, if it
would not use a memory location which would be already used elsewhere in
a previous subroutine.
Would it be better to scan every already used variable, whith the
following logical function which checks if two pointers do have the same
target : C_ASSOCIATED(C_PTR_1, C_PTR_2) with C_PTR_1 aiming at the
variable to test, and C_PTR_2 aiming in a loop at all previously used
Or, I also imagine to create a C-function which would recieve a pointer
to the new variable, and return its real memory location obtained by the
"&" unary C-operator, and I could later check that memory location
against all those that would have been already used.
I hope this is clear enough for somebody to give me an advice,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Openmp-dev