Программа OpenMP работает медленнее, чем последовательная

Когда я пробую следующий код

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

, время выполнения составляет около 168 секунд, в то время как последовательная версия тратит всего 20 секунд.

Я все еще новичок в параллельном программировании. Как получить параллельную версию, которая быстрее последовательной?

7
задан Islam Hassan 16 May 2012 в 18:47
поделиться