【问题标题】:Execute process for n cpu cycles执行 n 个 cpu 周期的进程
【发布时间】:2015-01-06 19:42:43
【问题描述】:

如何在 Linux 上执行 n 个 cpu 周期的进程?我在多核服务器上有一个批处理系统,并希望确保每个任务获得完全相同的 cpu 时间。一旦消耗了 cpu 量,我想停止该过程。到目前为止,我尝试使用 /proc/pid/stats utime 和 stime 做一些事情,但没有成功。

【问题讨论】:

  • 尝试手动(或通过脚本)执行此操作很可能会导致所有作业的运行速度比它们可能的慢。你最好只给它们所有相同的优先级并让 Linux 内核调度程序整理细节。除非您编写了调度程序,否则您可以手动完成比它更好的工作的机会是低端...

标签: linux process scheduling proc ps


【解决方案1】:

我相信这是不可能的(为多个进程提供完全相同的周期数;一个 CPU 周期通常不到一纳秒)。您可以执行一个进程 x CPU 秒。为此使用setrlimit(2)RLIMIT_CPU

您的批处理器也可以自己管理时间,请参阅time(7)。您可以使用计时器(参见timer_create(2)timerfd_create(2)),在poll(2) 周围有一个event loop,用clock_getttime(2) 测量时间

我不确定编写自己的batch processing 系统是否有用。您可以使用现有的batchslurmgnqs(另请参阅pbsworkslsf 等商业产品。)

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多