我見的代碼如下:OpenMP和嵌套與循環continue語句
int myArray[] = {0, 0, 0, 0, 0, 0};
double EV = 0;
for(short a1 = 1; a1 <= 6; ++a1)
{
++myArray[a1-1];
if(....)
{
--myArray[a1-1];
continue;
}
EV = myEVFunc();
if(EV...)
{
for(short a2 = 1; a2 <=6 ; ++a2)
{
++myArray[a2-1];
if(....)
{
--myArray[a2-1];
continue;
}
EV = myEVFunc();
if(EV...)
{
for(short a3 = 1; a3 <= 6; ++a3)
{
++myArray[a3-1];
if(....)
{
--myArray[a3-1];
continue;
}
EV = myEVFunc();
}
}
}
}
}
我想使用的OpenMP並行化循環。代碼編譯罰款時,我把 #pragma omp parallel for
在最外面的for循環前面。但是它會給出不正確的結果我懷疑兩個問題循環內的continue語句和嵌套循環中有共享變量的事實。 是否有可能在這段代碼中使用OpenMP,如果有的話,任何人都可以給我正確的語法。提前致謝。