- 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