kby*_*yrd 33
我为此使用了任务集。如果您安装了任务集,则类似于:
taskset -cp 0,2 45678
Run Code Online (Sandbox Code Playgroud)
会将 id 为 45678 的进程设置为与 cpu 1 和 3 具有亲缘关系。
在进程内部,调用将是sched_setaffinity(),或者对于 pthreads 的东西,pthread_setaffinity_np()
与此相关的是,如果您担心程序的 CPU 亲和性,那么关注它如何进行内存分配也是值得的。将内存连接到多个控制器(即多个 CPU 插槽,每个插槽都有自己的控制器)的较大系统在不同 CPU 内存对之间将具有可变的延迟和带宽。您还需要使用numactl命令或它使用的系统调用来查看 NUMA 关联。我参与的一个程序由此获得了 10% 的性能提升。
| 归档时间: |
|
| 查看次数: |
13766 次 |
| 最近记录: |