Определить коэффициент ускорения OpenMP? - PullRequest
0 голосов
/ 05 ноября 2019

Я написал этот последовательный код. Как я могу получить это значение, используя OpenMP.

Я хочу знать, сколько времени потребуется программе для вычисления значения интеграла.

Integral is:

#include <iostream>
#include <omp.h>
#include <iomanip>
#include <math.h>


using namespace std;

const int TOTAL_STEPS = 100000;

const double DELTA = 0.5;
const double STEP_DELTA = (double)(1.0d/TOTAL_STEPS);
const double INT_FACTOR = 4.0d;
const int TOTAL_THREADS = 50;

double getIntResult();

int main(int argc, char** argv)
{ 
    double intResult = getIntResult();

    cout << "integral result is: " << setprecision(25) << intResult << endl;


    return 0;
}

double getIntResult()
{
    double x, pi;
    double  totalSum = 0.0d;

    for(int i = 0; i < TOTAL_STEPS; i++)
    {
        x = (i + DELTA)*STEP_DELTA;
        totalSum += INT_FACTOR/(1.0 + x*x);

    }//end-for(0)

    pi = STEP_DELTA * totalSum;

    return pi;
}

Iхотел бы сравнить экономию, которую приносит распараллеливание, используя openMp.

...