我有一个启用超线程的多核。 每个物理核心都有两个逻辑核心。现在我可以用1核心及其逻辑核心运行我的程序吗?意味着我们的程序使用这一个核心的2个逻辑核心运行,但其他核心处于空闲状态。
答案 0 :(得分:1)
现在我可以用1核心及其逻辑核心运行我的程序吗?
是的,但要使用超过1的核心,您必须在多个线程中执行您的应用程序。 IE浏览器。如果您正在使用pthreads,那么使用pthread_setaffinity_np
来指定您的线程应该在哪个核心上执行。
如果您想让您的算法并行运行,请考虑使用OpenMP或TBB(线程构建模块)。这些库允许将顺序执行的应用程序轻松转换为并行应用程序。 IE浏览器。而不是使用for
,而是使用parallel_for
。此外,您的代码将自动使用所有可用(或配置)的内核数 - 无论CPU是2个内核还是16个内核。