0

我实际上在我的项目上使用 SMP 编译器,并且想用 pthreads 编码并听说过许多并行的东西打开 mpi 等等,所以从调用 pthread 时如何将这个线程分配给核心开始,有什么办法给pthreads 到不同内核的线程?

4

3 回答 3

1

查看诸如此类的 pthreads教程。但总的来说,我建议使用比 pthreads 更高级别的库,因为使用它们会更简单/更系统。例如,Boost::Threads 或 Intel TBB。

于 2010-03-08T17:39:01.407 回答
0

最简单的答案是肯定的——通常不同的线程可能会在不同的内核上自动运行,而无需指定线程运行的位置。

在深入研究特定的线程库/思维方式之前,您似乎通常需要对多线程编程进行介绍/入门。在做任何其他事情之前,请阅读上面 Amit 的“什么是线程”部分,然后开始查看 POSIX 线程、Windows 线程、TBB、Boost 线程或任何其他你觉得有趣的库/包装器的细节。

于 2010-03-09T00:39:10.707 回答
0

系统会将线程分配给可用内核,如果其他地方有空闲资源,则将它们移动。

操作系统在分配资源方面通常比我做得好得多,但如果你真的想要,大多数操作系统都有一种将线程分配/限制到特定核心/处理器的方法。在 linux 上,使用sched_setaffinity

于 2010-03-08T18:16:11.100 回答