- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have this program:
With gfortran 4.4, I can see a permutation of 1 thru 16. But with ifort 12.1.{01}, I see a lot of other values.
[fortran]program test integer i !$omp parallel private(i) !$omp single do i = 1, 16 call f(i) end do !$omp end single nowait !$omp end parallel contains subroutine f(x) integer :: x !$omp task firstprivate(x) print *, x !$omp end task end subroutine end program [/fortran]
With gfortran 4.4, I can see a permutation of 1 thru 16. But with ifort 12.1.{01}, I see a lot of other values.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I believe this may be a bug in the compiler. The TASK construct is a new OpenMP* 3.0 feature and may be erroneous here. If I replace the function call f(i) with an explicit print statement surrounded by a TASK construct, then the correct values are printed.
What do the OpenMP* experts on this forum think?
Best!
-Udit
What do the OpenMP* experts on this forum think?
Best!
-Udit
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
looks like a bug to me. This appears to be a standard sample, I found the same code in C on the internet.
I'll start a bug report.
BUG id DPD200176160
ron
I'll start a bug report.
BUG id DPD200176160
ron
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just to close this out - this bug has been fixed in the most recent 12.1 updates ( Updates 10 and 9)
ron
ron

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page