並列サイトに 1 つのタスク

並列サイトが実行されましたが、アクティブな並列サイトの動的エクステントで 1つのタスク・インスタンスのみのアノテーションが実行された場合に発生します。これは、予期された動作であるか、アノテーションの配置や並列処理に適していないデータセットに関するエラー示す可能性があります。

ID

コードの場所

説明

1

並列サイト

並列サイトの場所と関連するコールスタックを示します。並列サイトが実行されましたが、アクティブな並列サイトの動的エクステントで単一のタスク・インスタンスのみのアノテーションが実行されました。警告は、プログラムの実行中に検出されたサイトとタスクのアノテーションを基づいています。これは予期される動作であるかもしれません。あるいは、この警告は、アノテーションの配置や並列処理に適していないデータセットに関するエラー示す可能性があります (単一のタスク・インスタンスは並列実行のスピードアップに貢献しません)。

int global; 
extern arg_map parse_args(int argc, char ** argv); 
void main(int argc, char * argv[]) { 
     int x; 
     parse_args(argc, argv); 
     int y = arg_map.get(“iterations”);    // コマンドラインは 1 反復を指定    
     ANNOTATE_SITE_BEGIN(loopsite);   // 並列サイト 
          for (x=0; x<y; x++) { 
               ANNOTATE_ITERATION_TASK(task); 
                    … 
          } 
     ANNOTATE_SITE_END(); 
}

この例では、選択したデータセットは、ループを 1 回のみ反復します。ループの複数の反復間に依存関係はありません。

修正方法

並列サイト内の実行パスを調査し、この並列サイトのタスクが 1 つのみであることを確認します。必要であれば、ループ構造とスケーリング特性 (スータビリティー・ツールで報告されます) を調査して、この並列サイトには追加のタスクが必要でないことを確認します。データセットが小さすぎて問題が発生している場合、データセットのサイズを増やしてください。