- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I got a few questions about Inspector XE I use with the Fortran Compiler 12.0.3.175.
a)
Is there a way to only check for races in the dynamical context of a certain TASK/Parallel construct?
b)
Does Inspector understand OpenMP TASK, MASTER and Parallel constructs?
An example where it seems not to be the case.
When I do similar to
-----------
COMMON/matrix/A(m,m),b(m)
Zero A, x and b
!$OMP Parallel
!$OMP master
loop row
!$OMP TASK
Each task compute its own row of matrix A and element of answer b.
!$OMP END TASK
end loop row
!$OMP TASKWAIT
Solve Ax=b
!$OMP END master
!$OMP END Parallel
------------
Inspector indicate a race between assembling A and solving the system of equations, I do not believe this is a true race, how do I avoid it being reported so.
To avoid many falsely detected problems I previously moved Zeroing from just before the TASK region to the serial part before the Parallel region, I hope there is a smoother way.
c)
If I understand correctly; annotations could be used in my code to help Inspector understand the program and give better reports.
Is there a example where annotations is used in Fortran code that I could learn from, I do not speak C/C++ ?
d)
Many of the reported problems state as "Focus Code Location" the beginning of a OpenMP region, for example the !$OMP TASK line. What might this mean?
Best Regards,
Magnus
I got a few questions about Inspector XE I use with the Fortran Compiler 12.0.3.175.
a)
Is there a way to only check for races in the dynamical context of a certain TASK/Parallel construct?
b)
Does Inspector understand OpenMP TASK, MASTER and Parallel constructs?
An example where it seems not to be the case.
When I do similar to
-----------
COMMON/matrix/A(m,m),b(m)
Zero A, x and b
!$OMP Parallel
!$OMP master
loop row
!$OMP TASK
Each task compute its own row of matrix A and element of answer b.
!$OMP END TASK
end loop row
!$OMP TASKWAIT
Solve Ax=b
!$OMP END master
!$OMP END Parallel
------------
Inspector indicate a race between assembling A and solving the system of equations, I do not believe this is a true race, how do I avoid it being reported so.
To avoid many falsely detected problems I previously moved Zeroing from just before the TASK region to the serial part before the Parallel region, I hope there is a smoother way.
c)
If I understand correctly; annotations could be used in my code to help Inspector understand the program and give better reports.
Is there a example where annotations is used in Fortran code that I could learn from, I do not speak C/C++ ?
d)
Many of the reported problems state as "Focus Code Location" the beginning of a OpenMP region, for example the !$OMP TASK line. What might this mean?
Best Regards,
Magnus
- Tags:
- CC++
- Debugging
- Development Tools
- Fortran
- Intel® Inspector
- Optimization
- Parallel Computing
- Vectorization
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a) All data races will be checked, not only in TASK/Parallel region.
b) I suppose matrix A and array b are not global variables, and used in each task. Absolutely data races will happen in my view.
c) I don't think that Inspector XE relies on annotation code for Fortran programming.
d) Inspector XE should report data races in global variables, e.g. comput matrix A, array b. Please provide a workable test case, so we investigate the problem in detail.
Regards, peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is investigating result, I verified - that is true.
"I believe that the issue is that the attached project was using static linking. When I modified the Configuration->LIbraries->Runtime Library from Debug Multithreaded to Debug Multithreaded DLL, I can no longer see any data races.Threadchecker really isn't designed for static linking with system libraries."
"I believe that the issue is that the attached project was using static linking. When I modified the Configuration->LIbraries->Runtime Library from Debug Multithreaded to Debug Multithreaded DLL, I can no longer see any data races.Threadchecker really isn't designed for static linking with system libraries."

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