使用逻辑线程运行程序

时间:2015-08-13 09:49:59

标签: c++ linux multithreading multicore

我有一个启用超线程的多核。 每个物理核心都有两个逻辑核心。现在我可以用1核心及其逻辑核心运行我的程序吗?意味着我们的程序使用这一个核心的2个逻辑核心运行,但其他核心处于空闲状态。

1 个答案:

答案 0 :(得分:1)

  

现在我可以用1核心及其逻辑核心运行我的程序吗?

是的,但要使用超过1的核心,您必须在多个线程中执行您的应用程序。 IE浏览器。如果您正在使用pthreads,那么使用pthread_setaffinity_np来指定您的线程应该在哪个核心上执行。

如果您想让您的算法并行运行,请考虑使用OpenMP或TBB(线程构建模块)。这些库允许将顺序执行的应用程序轻松转换为并行应用程序。 IE浏览器。而不是使用for,而是使用parallel_for。此外,您的代码将自动使用所有可用(或配置)的内核数 - 无论CPU是2个内核还是16个内核。