Je suis en train d'apprendre la tâche de la bibliothèque OMP programmation basée et comme un exemple que je copié et collé le code ci-dessous tiré d'un livre et des erreurs sortiestâches OpenMP dans Visual Studio
'task' : expected an OpenMP directive name
et
'taskwait' : expected an OpenMP directive name
Je peux exécuter omp parallèle pour les boucles mais pas les tâches. Savez-vous si omp tasking a besoin d'autres ajustements dans Visual Studio?
#include "stdafx.h"
#include <omp.h>
int fib(int n)
{
int i, j;
if (n<2)
return n;
else
{
#pragma omp task shared(i) firstprivate(n)
i=fib(n-1);
#pragma omp task shared(j) firstprivate(n)
j=fib(n-2);
#pragma omp taskwait
return i+j;
}
}
int main()
{
int n = 10;
omp_set_dynamic(0);
omp_set_num_threads(4);
#pragma omp parallel shared(n)
{
#pragma omp single
printf ("fib(%d) = %d\n", n, fib(n));
}
}