如何将父子进程保持在同一核心上

时间:2013-01-23 03:40:00

标签: c linux performance fork scheduling

我了解进程(父级)可以使用sched_setaffinity固定到核心,然后分叉进程会继承关联,也会被固定在同一个核心上。但是,我不想永远将它们固定在同一个核心上。理想情况下,我想要的是让他们在同一个 CPU 上保持在一起,即如果父调度程序迁移了父级,则子级应该跟随父级并转移到与父级相同的CPU。

一种可能的方法是让shared variable父级定期更新其当前CPU。然后,子节点可以定期查找此变量,并sched_setaffinity迁移到与父节点相同的CPU。但是,这看起来有点hacky,并且可能涉及它们在不同的CPU上运行的时段。有没有更好的方法来实现这个目标?

2 个答案:

答案 0 :(得分:1)

是否可以在线程中而不是在自己的进程中运行子进程?

答案 1 :(得分:0)

Gang计划会有帮助吗?然后父母和孩子将共同安排。