Debugging Multithread Programs Overview

The debugging of multithreaded program discussed in this section applies to both the OpenMP* Fortran API and the Intel® Fortran parallel compiler directives. When a program uses parallel decomposition directives, you must take into consideration that the bug might be caused either by an incorrect program statement or it might be caused by an incorrect parallel decomposition directive. In either case, the program to be debugged can be executed by multiple threads simultaneously.

To debug the multithreaded programs, you can use:

Other best known debugging methods and tips include:

Debugger Limitations for Multithread Programs

Debuggers such as Intel Debugger (IDB) for IA-32 and Intel Debugger (IDB) for Itanium-based applications support the debugging of programs that are executed by multiple threads. However, the currently available versions of such debuggers do not directly support the debugging of parallel decomposition directives, and therefore, there are limitations on the debugging features.

Some of the new features used in OpenMP are not yet fully supported by the debuggers, so it is important to understand how these features work to know how to debug them. The two problem areas are:

The Intel Debugger (IDB) is not aware of and currently does not handle unique OpenMP features that relate to multi-threading.