Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Debugging OpenMP Linux programs

pbkenned1
Employee
884 Views
Dear Threading team...
I use the Thread Checker on Windows* to debug OpenMP programs compiled with the Intel C++ and Fortran compilers -- it is a truly outstanding tool.

What is the equivalent product, or combination of products, to use on Linux? Vtune Linux can give me a lot of performance-related thread info, but it can't detect data races, deadlocks, etc like Thread Checker can.

I know I could use the Assure OpenMP Analyzer, except I think that requires compilation with the Guide OpenMP Compiler, and I need to use the Intel compilers.
Thanks, patrick

0 Kudos
2 Replies
Intel_C_Intel
Employee
884 Views
Hi Patrick,

To debug pthread application compiled with Intel Linux Compiler, you may want to give TotalView from Etnus a try. You can go to www.etnus.com for the trial version. It's one of the best debugging tools for OpenMP and MPI applications.

Regards,

Shuo
0 Kudos
ClayB
New Contributor I
884 Views
Patrick -

At some time in the future, there will be a Linux version of the Intel Thread Checker. (I think I can get away with saying that much and still keep my job. :-)

Until that time, the suggestion of TotalView from Etnus might be doable. However, it doesn't have the advantage of Thread Checker being tailored for OpenMP debugging. So, this solution may be only useful if you are able to routinely encounter a problem. Introduction of debugging can alter the execution profile to mask even errors that you are able to reproduce.

The Assure tool is probably the better option, if you have this available. I believe that you can actually use the Intel compiler to compile all your source files, but you will need make sure the Assure library is linked in ahead of any other OpenMP library the Intel compiler would use. I'm not 100% sure that this is valid since Assure hasn't been updated to new versions of Linux and the library may be out of date to work as expected with the Intel compiled objects.

Of course, if you have the Assure library, you should have the Assure "compiler". Just set up the Intel compilers as the backend compilers for Assure and things should work out. Check out the system requirements for Assure to make sure you have an appropriate Linux version.

-- clay
0 Kudos
Reply