У меня есть некоторые глобальные переменные, которые мне нужно использовать в параллельном разделе моей программы. Так что я написал это:pragma omp ярлыки в c
#define N 2000
int x[N], matrix[N][N]
int main(int argc, char **argv)
...
#pragma omp parallel
{
#pragma omp privatethread(x,matrix)
#pragma omp for
for(int k=0; k<100;++k)
/*some function to modify values of x and matrix differently
from run to run*/
...
}
...
Является частью с #pragma эквивалентно:
...
#pragma omp privatethread(x,matrix) parallel for
...
Есть ли разница между объявляя #pragma OMP параллельно затем #pragma OMP privatethread и объявив сначала #pragma omp privatethread, а затем #pragma omp parallel для? Должен ли я положить {после части privathread?
#pragma omp privatethread(x,matrix)
{ //<-- here
#pragma omp for
Наконец, в том, что хороший способ работать с большими векторами в с или лучше использовать таНос внутри моей прагма OMP и удалить privatethread часть? (пожалуйста, дайте мне знать, если лучше, если я задам этот вопрос в новом сообщении)