我试图在我的Linux机器上定期在C程序中指定的特定CPU上运行一个进程。我不确定如何在我的程序中指定进程需要在其上运行的特定CPU。我知道include/linux/sched.h目录中有task_struct。在检查结构时,我看到了关于CPU的多个字段。但我在(To access PCB of process in C)上看到,访问任务/进程信息并不是一件明智的事情,也根本不容易。
我想知道如何将N个独立的任务分配给一台有L个核心的机器上的M个处理器,其中L>M。我不想使用所有的处理器,因为我仍然希望有可用的I/O。我尝试过的解决方案似乎分布在所有处理器上,使系统陷入困境。我做数值模拟。我的背景是物理学,而不是计算机科学,所以不幸的是,我经常不能完全理解涉及服务器/客户端、生产者/消费者等标准任务模型的讨论。假设我有一个运行模拟的函数run_sim(**kwargs) (见下文),还有一长串用于模拟的kwarg,我有一台8核的机器。
from multiprocessing import Pool,
在linux内核3.0.0 (3.0.0-10- server )下,带有i7 CPU (Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz)的服务器通常工作正常,但当它处于重载状态时,它会过热(如“传感器”程序所示),并锁定(控制台上的大量"CPU温度过高“消息)。我有cpufreqd守护进程运行,它尽职尽责地节流CPU的速度从3060000赫兹到1596000赫兹。然而,这还不足以降低CPU的温度在沉重的负荷。我