OpenMP* の並列コード領域の実行をシリアル化して、各領域の実行を 1 スレッドに制限すると、不具合の原因が並列処理にあるのか、アルゴリズムにあるのかを特定するのに役立ちます。コード領域のシリアル化は動的に行うことができるため、OpenMP* アプリケーションの再コンパイルや再起動は必要ありません。
プログラムが並列領域を実行中にシリアル化を行うと、その領域はシリアル化されず、それ以降の領域がシリアル化されます。シリアル化を無効にすると、現在の場所よりも後ろにある領域は並列に戻ります。選択した領域をシリアル化する場合、その領域の前後にブレークポイントを設定すると便利です。これにより、選択した領域が実行される前にシリアル化を有効にし、次の領域が実行される前にシリアル化を無効にできます。選択した領域のみをシリアル化すると、アプリケーションの他の部分は並列のままなので、実行時間を短縮できます。
OpenMP* 並列領域をシリアル化するには、次の操作を行います。