OpenMP を使用して、Visual Studio 2005 Professional で並列 for ループを作成しようとしています。omp.h をインクルードし、/openmp コンパイラ フラグを指定しました。ただし、最も単純な並列 for ループをコンパイルすることさえできません。
#pragma omp parallel for
for ( int i = 0; i < 10; ++i )
{
int a = i + i;
}
上記は #pragma 行でコンパイラ エラー C3005 を生成します。
Google はあまり役に立ちませんでした。同様の問題を抱えているユーザーがいるあいまいな日本語の Web サイトを 1 つだけ見つけました。解決策については言及されていません。
標準の並列ブロックは正常にコンパイルされます。
#prgram omp parallel
{
// Do some stuff
}
それは、for ループを追加しようとするまでです。
#pragma omp parallel
{
#pragma omp for
for ( int i = 0; i < 10; ++i )
{
int a = i + i;
}
}
上記により、コンパイラ エラー C3001 が発生します。「for」はコンパイラを混乱させるようですが、そうすべきではありません。何か案は?