インテル® Advisor の依存関係解析は各種データ共有の問題を特定しメッセージを出力します。このリファレンス・セクションでは、これらの問題とメッセージについて説明し、回避方法を示します。
| 問題タイプ名 | 重要度と原因 |
|---|---|
エラー。タスクが終了する前にロックを解放しないと発生します。 |
|
エラー。異なるタスクが読み取りを行う値にタスクが書き込みを行った際に発生します。並列コードへの移行前に問題を解決しないと、データ通信の問題はデータ競合を引き起こす可能性があります。 |
|
エラー。別のタスク (子タスク) が読み取りを行う値に、タスクが書き込みを行うと発生します。並列コードへの移行前に問題を解決しないと、データ通信の問題はデータ競合を引き起こす可能性があります。 |
|
警告。タスクの実行が、別のロックの制御下でメモリー位置に複数回アクセスすると発生します。 |
|
警告。2 つのタスク実行が異なる順番で 2 つ以上のロックを取得しようとすると発生します。プログラムが並列実行されるとデッドロックに繋がる可能性があります。 |
|
エラー。2 つのタスクが同じ共有メモリー位置に書き込みを行うと発生します。タスクは新しい値を変数に書き込みますが、先行するタスクによって書き込まれた値を読み取りません。並列コードへの移行前に問題を解決しないと、メモリー再利用の問題はデータ競合を引き起こす可能性があります。 |
|
エラー。2 つのタスクが共有メモリー位置へ書き込みを行うと発生します。親タスクは、それ以前に実行された同じサイトの子タスクで読み取られた変数に新しい値を上書きします。並列コードへの移行前に問題を解決しないと、この子タスクでのメモリー再利用の問題はデータ競合を引き起こす可能性があります。 |
|
リマーク。タスクがANNOTATE_OBSERVE_USESアノテーションでマークされたメモリーにアクセスすると発生します。この場合、問題は情報を示すだけでありアクションは必要ありません。これは、タスクの実行中に参照されるメモリー位置の使用を特定するのに役立ちます。 |
|
エラー。サイト開始アノテーションが実行され、対応するサイト終了アノテーションが実行される前にスレッドやアプリケーションが終了すると発生します。 |
|
エラー。タスク開始アノテーションが実行され、対応するタスク終了アノテーションが実行される前にサイト、スレッド、アプリケーションが終了すると発生します。 |
|
エラー。サイト終了アノテーションが実行され、アクティブなサイトが存在しないと発生します。 |
|
エラー。タスク終了アノテーションが実行されましたが、アクティブなタスクが存在しません。 |
|
警告。並列サイトが実行されましたが、アクティブな並列サイトの動的エクステントでタスク・アノテーションが実行されていません。 |
|
警告。並列サイトが実行されましたが、アクティブな並列サイトの動的エクステントで単一のタスク・インスタンスのみのアノテーションが実行されました。これは、予期された動作であるか、アノテーションの配置や並列処理に適していないデータセットに関するエラー示す可能性があります。 |
|
エラー。アクティブな並列サイト外でタスク開始アノテーションが実行されると発生します。 |
|
リマーク。プログラムの並列サイトの入口で生成されます。これにより、プログラムとそのデータが、依存関係解析の実行中に挿入したアノテーションを実行していることを確認できます。この場合、メッセージは情報を示すだけであり、アクションは必要ありません。 |
|
リマーク。この場合、メッセージは情報を示すだけであり、アクションは必要ありません。 |
|
エラー。アプリケーション・プログラムをクラッシュさせる未処理の例外が検出されると発生します。 |