Estoy usando OpenMP para mejorar la eficiencia de mi programa en loops.OpenMP: uso condicional de #pragma
Pero recientemente descubrí que en los bucles pequeños el uso de esta biblioteca disminuía el rendimiento y que el uso normal era mejor.
De hecho, me gustaría utilizar OpenMP sólo si se cumple una condición, mi código es
#pragma omp parallel for
for (unsigned i = 0; i < size; ++i)
do_some_stuff();
Pero lo que yo quiero hacer es desactivar el #pragma si tamaño es lo suficientemente pequeño es decir:
if (size > OMP_MIN_VALUE)
#pragma omp parallel for
for (unsigned i = 0; i < size; ++i)
do_some_stuff();
pero no funciona, la mejor manera es escribir el bucle dos veces, pero no quiero hacer de esa manera ...
if (size > OMP_MIN_VALUE)
{
#pragma omp parallel for
for (unsigned i = 0; i < size; ++i)
do_some_stuff();
}
else
{
for (unsigned i = 0; i < size; ++i)
do_some_stuff();
}
¿Cuál es la mejor manera de hacerlo?
Utilicé #pragma omp parallel para if (size> = OMP_MIN_VALUE) – Arthur