2014-05-08 9 views
9

Ich versuche, OMP-Bibliothek Aufgabe basierte Programmierung und als Beispiel zu lernen, ich kopiert und eingefügt den Code aus einem Buch entnommen und es gibt FehlerOpenMP Aufgaben in Visual Studio

'task' : expected an OpenMP directive name 

und

'taskwait' : expected an OpenMP directive name 

Ich kann omp parallel for Schleifen aber nicht Aufgaben ausführen. Wissen Sie, ob omp tasking im Visual Studio noch weitere Anpassungen benötigt?

#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)); 
    } 
} 

Antwort

Verwandte Themen