- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
HI,
I try to locate a problem in my OpenMP version of a old FORTRAN program.
I use a TASK construct going through a linked list to parallelize.
!$OMP TASK default(none) ...
..
lots of code
..
!$OMP END TASK
I find there is a problem when using many cores*, so I try OMP_SET_NUM_THREADS(1) just before entering thisparallel region, and then the code works. But if I use a CRITICAL section to narrow down the problem the program fail even when its the whole TASK region.
!$OMP TASK default(none) ...
!$OMP CRITICAL(NAME)
..
lots of code
..
!$OMP END CRITICAL(NAME)
!$OMP END TASK
Why might this be?
Any suggestions going forward?
I already tried Inspector and parallel:debug looking for overlapping mem access, with no success...yet...
I guess ORDERED do not work for TASK.
Best Regards,
Magnus
*using 8 threads on my 4+4 hyper threads CPU.
I try to locate a problem in my OpenMP version of a old FORTRAN program.
I use a TASK construct going through a linked list to parallelize.
!$OMP TASK default(none) ...
..
lots of code
..
!$OMP END TASK
I find there is a problem when using many cores*, so I try OMP_SET_NUM_THREADS(1) just before entering thisparallel region, and then the code works. But if I use a CRITICAL section to narrow down the problem the program fail even when its the whole TASK region.
!$OMP TASK default(none) ...
!$OMP CRITICAL(NAME)
..
lots of code
..
!$OMP END CRITICAL(NAME)
!$OMP END TASK
Why might this be?
Any suggestions going forward?
I already tried Inspector and parallel:debug looking for overlapping mem access, with no success...yet...
I guess ORDERED do not work for TASK.
Best Regards,
Magnus
*using 8 threads on my 4+4 hyper threads CPU.
Link Copied
0 Replies

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