OpenMP-Programm ist langsamer als sequentiell

Wenn ich den folgenden Code versuche

double start = omp_get_wtime();

long i;

#pragma omp parallel for
    for (i = 0; i <= 1000000000; i++) {
        double x = rand();
    }

    double end = omp_get_wtime();

    printf("%f\n", end - start);

Die Ausführungszeit beträgt ca. 168 Sekunden, während die sequentielle Version nur 20 Sekunden benötigt.

Ich bin immer noch ein Neuling in der Parallelprogrammierung. Wie könnte ich eine parallele Version bekommen, die schneller ist als die sequentielle?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage