He agregado OpenMP a una base de código existente para paralelizar un ciclo for. Varias variables se crean dentro del ámbito de la región parallel for
, incluyendo un puntero:¿Los punteros son privados en las secciones paralelas de OpenMP?
#pragma omp parallel for
for (int i = 0; i < n; i++){
[....]
Model *lm;
lm->myfunc();
lm->anotherfunc();
[....]
}
En los archivos de salida resultantes he notado inconsistencias, presumiblemente causadas por una condición de carrera. Finalmente resolví la condición de carrera usando un omp critical
. Mi pregunta sigue siendo: ¿es lm
privado para cada hilo, o se comparte?
Gracias por la respuesta. Al leer la especificación, parece _ como si ese fuera el caso, pero no estaba claro. – argoneus