gpt4 book ai didi

c++ - 如何并行嵌套循环以找到 OpenMP 中最近的两点?

转载 作者:行者123 更新时间:2023-11-30 04:04:04 25 4
gpt4 key购买 nike

<分区>

这个问题不是融合嵌套循环的重复。 OP 想要减少最大值并同时存储两个索引。融合循环不会解决 OP 问题。 OP 仍将在共享索引上具有竞争条件,并且将访问减少的值,该减少的值直到减少结束才合并(请参阅我对 OP 问题的一种解决方案的回答)。

我有一个二维矩阵X,X[i][j]表示点i和j之间的距离。下面的代码是根据嵌套循环中的余弦距离找到最近的两点:

//m,n is the rows,columns of X respectively
int mi,mj;
for(int i=0;i<m;i++)
{
for(int j=i+1;j<n;j++)
{
float distance = cosine_distance(i,j);
if(distance>max_distance)
{
max_distance=distance;
mi=i;
mj=j;
}
}
}

我是 OpenMP 的新手,想对其进行并行处理以获得最近的两点索引 i,j。只添加

#pragma omp parallel for reduction(max : max_distance) 

当然不行,因为 i,j 没有正确记录。

怎么做?许多坦克!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com