首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用并行处理计算2D中每对点之间的距离

使用并行处理计算2D中每对点之间的距离
EN

Stack Overflow用户
提问于 2020-08-12 05:50:01
回答 1查看 152关注 0票数 2

在我的问题中,在2D空间中有多组点。

即,第1组10分,第2组10分,第3组10分。

我需要计算每组中点之间的所有距离。即)

distance (1,2,1,1):组1中点1与组2中点1之间的距离

距离(1,2,1,2):组1中的点1与组2中的点2之间的距离

距离(1,2,1,3):组1中的点1与组2中的点3之间的距离

……

距离(2,3, 10 , 10 ):组2中的点10与组3中的点10之间的距离

该距离覆盖所有组中的所有点。

目前,我使用了4-4个循环,如下所示,但它需要太多的时间。

代码语言:javascript
复制
distt = [[] for i in range(ball_number)]
for m in range(group_number-1):
    for n in range(m+1, group_number):
        for i in range(ball_number):
            for j in range(ball_number):
                    distt[i].insert(j, distance between point[i] and point[j])

有个人建议我这样做:“使用多个线程(组的相同数量)和类,并用一个线程计算单个组的所有距离”,但我不知道如何做到这一点。

有没有人可以帮助我多线程的快速计算方法或任何建议?

EN

回答 1

Stack Overflow用户

发布于 2020-08-12 09:59:15

假设只有3组点,您可以创建3个进程。

这3个过程将分别计算集合(1,2),(2,3)和(1,3)之间的每一对点之间的距离。

通常,如果有n集,那么我们可以生成一个带有min(num_processor, n*(n-1) / 2)子进程的进程池,以获得最大的并行度,其中num_processor是计算机中的物理核心数。

这并不是说我们需要多处理而不是多线程,因为这是一个CPU限制的操作,而不是IO限制的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63366841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档