![]() |
1
1
1000是一个非常小的数字。另外,请记住,并行搜索只会随着内核数量的增加而加速。如果线程多于核心,则由于上下文切换和聚合信息,应用程序将再次开始减速。
对于您的问题,一个简单的解决方案是使用哈希连接。从生成哈希表
编辑 :作为对你的评论的回应,我的回答变化不大。只有当线程数等于处理器数,而不是超过处理器数时,才能线性加速。 如果您想要实现一个并行散列连接,这并不困难。首先构建X-1哈希表,其中X是您拥有的线程/处理器数量。使用第二个散列函数返回值modulo x-1,以确定每个元素应位于哪个散列表中。 在执行搜索时,您的主线程可以将辅助哈希函数应用于每个元素,以确定要将其传递给哪个线程进行搜索。 |
![]() |
2
1
只需对n进行排序。然后对m的每个元素进行二进制搜索,搜索排序后的n。即使对大小为12的未排序n进行线性搜索,在n中查找m项也是非常平行的。 |
![]() |
Sweepy Dodo · JSON lite的格式化 4 月前 |
![]() |
giantjenga · 优化整数向量到二进制向量的转换 6 月前 |
![]() |
Zegarek · Postgresql递归查询未提供预期结果 6 月前 |
![]() |
Joe · 为什么这两个查询之间的性能存在如此大的差异? 9 月前 |
![]() |
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 9 月前 |
![]() |
Mohan · 是否有一种更快的方法来编写代码,从1:N中提取许多随机样本? 10 月前 |
![]() |
user2980746 · 在C#字典中键入xyz对的最有效方法是什么? 10 月前 |