perl – 修改后的命令调用工具 – 根据负载动态调节作业池 – 是否已经存在?

前端之家收集整理的这篇文章主要介绍了perl – 修改后的命令调用工具 – 根据负载动态调节作业池 – 是否已经存在?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Unix哲学家,

我在Perl中编写了一些工具,这些工具有一个可以并行运行的部分.我为他们配备了一个-j(工作)选项,如makeprove都有because that’s sensible.但是,很快我就因为两个原因对此感到不满.

>我指定–jobs = 2,因为我有两个cpu核心,但我不需要告诉计算机信息它可以自己解决.
>很少运行的工具占cpu的20%以上(I / O负载也很少),更不利用cpu浪费时间.

我进行了更多的修改添加负载测量,产生额外的工作,同时仍然有“容量”,直到达到负载阈值,这是当工作数保持或多或少不变时,但是在运行过程中的其他过程更高的优先级需要更多的cpu,随着时间的推移,产生的新工作量减少,因此工作量减少.

由于这个责任是工具中重复的代码,我按照nice et al.的精神将调度方面考虑成一个独立的工具.并行工具现在非常愚蠢,它们只有信号处理程序,通过它们被告知增加或减少作业池,而负载测量和确定何时控制池的智能驻留​​在调度程序中.

尝试界面的味道(我也想提供合理的默认值,因此可以省略选项):

run-parallel-and-schedule-job-pool \
    --cpu-load-threshold=90% \
    --disk-load-threshold='300 KiB/s' \
    --network-load-threshold='1.2 MiB/s' \
    --increase-pool='/bin/kill -USR1 %PID' \
    --decrease-pool='/bin/kill -USR2 %PID' \
    -- \
    parallel-something-master --MOAR-OPTIONS

在我努力进入last 90%之前,请告诉我,我是否复制了别人的工作?这个概念非常明显,所以它似乎应该已经完成​​了,但是我发现它不是一个单独的责任独立工具,只是作为更大的多用途系统管理员套件的深度集成部分.

奖金问题:我已经知道runNparallel.他们做并行执行,但没有动态调度(niceload进入那个领域,但是非常原始).如果不符合我的期望,独立工具还不存在,我最好自己扩展runN或者提出反对并行的愿望吗?

解决方法

我们的一些用户condor非常满意.它是一个根据其免费计算资源动态分配作业到其他工作站和服务器的系统.

猜你在找的Perl相关文章