OpenMP比串行慢

时间:2017-11-26 08:46:22

标签: c openmp

给出下一次迭代:

double calculateClusterDistance(Cluster* cluster, const int NUM_OF_DIMENSIONS)
{
    double tempRadius = 0;
    int i, j;
    #pragma omp parallel for private (i, j) shared(cluster)
    for(i = 0 ; i < cluster->numOfPoints ; i++)
    {
        for(j = 0 ; j < cluster->numOfPoints ; j++)
        {
            if(i != j)
            {
                double calculatedRadius = getDistanceBetweenTwoPoints(cluster->points[i], cluster->points[j], NUM_OF_DIMENSIONS);
                if(calculatedRadius > tempRadius)
                {
                    tempRadius = calculatedRadius;
                }
            }
        }
    }
    return tempRadius;
}

当我发表评论时,程序运行得更快。 平均而言,cluster-&gt; numOfPoints在60-70之间。 有什么帮助吗?

编辑:

我使用

衡量时间
clock_t start, finish;  
start = clock();  
finish = clock();

在此功能之前和之后。

没有omp,它将是大约1.8秒 对于omp,它将是大约3.2~sec

0 个答案:

没有答案