c - 如何在具有多个处理器的机器上并行化算法?

标签 c algorithm sorting parallel-processing mergesort

  • Intel Core2Duo ,例如应该有一个芯片但两个核心

  • 因此,应该可以控制在哪个内核上处理什么,这意味着可以指示我的算法并行使用两个内核。

问题是如何?

我是否需要在内核级别下才能执行此操作,还是有更简单的方法?更具体地说,实现双核合并排序需要什么?

最佳答案

从您过去的问题来看,我会说您希望用 C/C++ 实现,但我相信无论使用哪种语言,答案都大致相同。

如果要并行化任何操作,请将其设为多线程。您可以拥有与内核一样多的并行、并发线程。

这是一个相关的问题: How to implement divide and conquer algorithms in C# using multithreading?

据我了解,将特定线程绑定(bind)到核心或处理器称为 processor affinity .这通常不是一个好主意,因为操作系统的目的是在处理器之间兼顾线程。您不太可能在这方面做得比操作系统更好。

关于c - 如何在具有多个处理器的机器上并行化算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3587570/

相关文章:

c - 打印正方形而不是平行四边形

algorithm - Strassen 的 n 位数字乘法算法(2way split 与 3way split)

ios - Swift:从 EKEventStore 获取到 tableView 数据后对 EKEvents 进行日期排序

c++ - 广义排序函数和使用 binary_function

android - 如何杀死 C (Android NDK) 中的子线程?

python - C 服务器 - Python 客户端。连接被拒绝

c - 字符串文字 : Where do they go?

algorithm - 在 BDD 表示的关系中扩展查找唯一元组

algorithm - WA on SCUBADIV spoj

c++ - 将 'sort' 与字符数组一起使用 (C++)