如何使用多核而不是多线程进行编程?

时间:2019-08-06 05:55:47

标签: c++ multithreading raspberry-pi

我正在研究一个项目(硬件:RaspberryPI 3B +),该项目具有大量的计算和并行处理。目前,我注意到代码性能有些滞后。因此,我一直在寻找有效的方法来改善代码及其性能。

当前,我正在使用C语言(因为我可以轻松访问和操作低级驱动程序)并开发自己的函数集,库和驱动程序,其运行速度比任何其他预定义或现成的库快或插件。

现在,我想使用单独的内核来执行相应的任务,而不是基于软件的多线程(Pthread)。那么,关于如何使用RaspberryPI的不同核心的任何建议或指导?

此外,如何检查CPU使用率以选择最佳内核来执行特定任务?

感谢您的问候, 阿提夫·谢赫(Aatif Shaikh)

1 个答案:

答案 0 :(得分:6)

在C / C ++级别,您无权访问哪个CPU内核将运行哪个线程。只需使用C ++ 11标准线程,然后让OS调度程序确定哪个线程在哪里运行即可。

也就是说,Linux有任务集工具来检查线程关联性,并且还有sched_setaffinity()函数。