如何利用c中的多CPU?

前端之家收集整理的这篇文章主要介绍了如何利用c中的多CPU?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在实验室工作并使用std :: thread在C 11上编写了多线程计算程序.现在我有机会在多cpu服务器上运行我的程序.

服务器:

>运行ubuntu服务器
>拥有40个Intel cpu

我对多cpu编程一无所知.我想到的第一个想法是运行40个应用程序然后将它们的结果粘合在一起.这是有可能的,但我想更多地了解我的机会.

>如果我通过它的gcc编译器在服务器上编译我的代码,结果应用程序是否利用了多cpu
>如果#1答案取决于,我该如何检查?

谢谢!

解决方法

您的问题不仅仅是关于多线程,而是关于多cpu.

>基本上,操作系统会自动分散核心上的线程.你不需要做任何事情.
>一旦你使用C 11,你就可以调用std :: thread :: get_id()并识别不同的线程,但是你无法识别你正在使用的核心.为此,直接使用pthreads“cpu affinity”.

您可以谷歌搜索cpu亲和力”,了解有关如何控制它的更多详细信息.如果你想要这种精确度.您可以识别核心以及选择核心…您可以从这开始:http://man7.org/linux/man-pages/man3/pthread_setaffinity_np.3.html

原文链接:https://www.f2er.com/c/118326.html

猜你在找的C&C++相关文章