我有一个任务不可并行,我想尽快处理。此任务执行纯计算,无I/o。
当然,这个任务在多核系统上运行,许多其他进程同时做同样需要CPU使用的"事情"。
今天,我的任务被尽可能地优化了(让我们说它是完美的:-P),我的想法是再次提升它,为它的线程分配一个完整的CPU。
在这种情况下,没有其他线程会与它共享CPU,因此,没有上下文切换会中断我的任务;这样做应该能让它再一次不费吹灰之力地加快速度。(当然,这样做会损害其他进程,但这根本不是问题:最高优先级是给我的任务!)但是我怎样才能做我想做的呢?我知道如何设置我的任务线程的亲和性,以便将其分配给给定的CPU,但这个CPU可能会与其他线程共享;我的问题没有解决
谢谢你的帮助
在调查这个问题的过程中,我终于发现了以下有趣的链接:
- 男士套装(法语) 内核参数
- 为进程分配单个核心
- Cpuset Management Utility/tutorial
- 我的进程独占一个核心