マルチスレッド・プログラムのデバッグの概要

ここで説明するマルチスレッド・プログラムのデバッグは、OpenMP* Fortran API とインテル® Fortran 並列コンパイラ・ディレクティブの両方に適用されます。プログラムが並列分解ディレクティブを使用するとき、誤った文または不正な並列分解ディレクティブのいずれかによって、バグが発生する可能性があることを考慮する必要があります。どちらの場合でも、デバッグするプログラムは、同時にマルチスレッドで実行できます。

次のアプリケーションなどを使用して、マルチスレッド・プログラムをデバッグすることが可能です。

その他のよく知られているデバッグ方法とヒントは次のとおりです。

マルチスレッド・プログラムに対するデバッガの制限

IA-32 アプリケーション用のインテル・デバッガ (IDB) や Itanium ベース・アプリケーション用のインテル・デバッガ (IDB) などのデバッガは、マルチスレッドで実行されるプログラムのデバッグをサポートしています。しかし、これらのデバッガの現在のバージョンは、並列分解ディレクティブのデバッグを直接的にはサポートしていません。つまり、デバッグの機能には制限があります。

OpenMP で使用される新しい機能のいくつかは、まだ完全にデバッガにはサポートされていません。 よって、デバッグ方法を知るために、これらの機能がどのように動作するかを理解することは重要です。問題となる個所は次の 2 つです。

インテル・デバッガ (IDB) は、マルチスレッドに関連した独自の OpenMP 機能を処理しません。