Doc*_*sha 7 c++ cpu multithreading cpu-usage c++11
我在实验室工作并编写了多线程计算程序,在C++ 11上使用std::thread.现在我有机会在多CPU服务器上运行我的程序.
服务器:
我对多CPU编程一无所知.第一个想法,我想到了运行40个应用程序然后将它们的结果粘合在一起.这是可能的,但我想更多地了解我的机会.
谢谢!
如果您的程序运行多线程,则操作系统应自动关注它使用可用的CPU.
确保将您必须完成的工作分配给可以使用的CPU数量相同的线程.确保它不仅仅是一个执行工作的线程,而其他线程只是在等待此线程的终止.
你的问题不仅是关于多线程,而且是关于多CPU。
基本上,操作系统会自动将线程分布在核心上。你不需要做任何事情。
一旦你使用C++11,你就std::thread::get_id()可以调用和识别不同的线程,但你无法识别你正在使用的核心。为此直接使用pthreads+“cpuaffinity”。
您可以在 google 上搜索“CPU 亲和力”,了解有关如何控制它的更多详细信息。如果你想要这种精度。您可以识别核心并选择核心...您可以从以下开始:http ://man7.org/linux/man-pages/man3/pthread_setaffinity_np.3.html
| 归档时间: |
|
| 查看次数: |
1835 次 |
| 最近记录: |