tutorial c++ c parallel-processing openmp

c++ - tutorial - OpenMP: ¿las variables locales son automáticamente privadas?



openmp c++ (2)

La razón para la cláusula privada es para que no tenga que cambiar su código .

La única forma de paralelizar el siguiente código sin la causa privada

int i,j; #pragma omp parallel for private(j) for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { //do something } }

es cambiar el código. Por ejemplo, así:

int i #pragma omp parallel for for(i = 0; i < n; i++) { int j; for(j = 0; j < n; j++) { //do something } }

Es un código C89 / C90 perfectamente válido, pero uno de los objetivos de OpenMP no es tener que cambiar el código, excepto para agregar declaraciones pragma que se pueden habilitar o deshabilitar en tiempo de compilación.

#pragma omp parallel { int x; // private to each thread ? } #pragma omp parallel for for (int i = 0; i < 1000; ++i) { int x; // private to each thread ? }

¡Gracias!

PD: Si las variables locales son automáticamente privadas, ¿cuál es el sentido de usar una cláusula privada ?