2011-09-07 21 views
10

Tengo una función compute() que ha parallelized multiplicación de matrices dentro de ella usando OpenMPOpenMP - Ejecución de código paralelo dentro de código paralelo

#pragma omp parallel for 

Esta función se denomina muchas veces en un bucle - que me gustaría correr en paralela. ¿Habrá algún problema al ejecutar código paralelo dentro de otro código paralelo?

Esto es C++ compilado en Ubuntu.

Respuesta

9

Funcionará bien, pero deberá habilitar la anidación de OpenMP para que funcione.

llamada

omp_set_nested(1); 

al inicio del programa y que le permitirá haya anidado regiones paralelas.

Sin embargo: tenga en cuenta que podría terminar ejecutando muchos más hilos de los que desea. Por lo tanto, querrá limitar el número de hilos de las regiones paralelas superior e interna.

+4

Esto es excelente. Olvidé la palabra anidada, y no pude encontrar nada útil. – Mikhail

Cuestiones relacionadas