给大家的第一个新年快乐和2017年的快乐编码。如何在服务器上并行提交“任务”
我有1M个“任务”使用python运行。每个任务将需要大约2分钟,并将处理一些本地图像。我想尽可能以自动的方式并行运行。我的服务器有40个核心,所以我开始看如何做多,但我看到了以下问题:
- 保持每个任务的日志是不容易的(我的工作,但到目前为止,我没有成功即使我在stackoverflow上找到很多示例)
- 如何知道应该使用多少个CPU以及应该将多少CPU留给服务器以执行基本的服务器任务?
- 当我们在服务器上有多个用户时,我们如何看到已经使用了多少个CPU?
在我以前的CERN物理学家的生活中,我们使用作业提交系统在许多集群上提交任务。当插槽可用时,任务被放入队列并进行处理。我们是否也有用于LINUX服务器的工具?我不知道这样的工具(作业调度员)的正确英文名称是什么?
最好的将是一个工具,我们可以配置使用我们的N CPU作为“车辆”来并行处理任务(并保留所需的CPU,以便服务器也可以运行基本任务),将作业的所有用户在队列中具有优先权并处理它们“车辆”可用。奖金将成为监控任务处理的一种方式。
我希望我用正确的词来描述我想要的。
感谢 法比安斯基
谢谢。我正在使用python多处理模块,但是我不清楚我们是否有3个用户在服务器上运行,我怎么知道有多少进程正在运行以及有多少个空闲空闲。对于服务器的单个用户来说,它似乎是一个很好的工具,但是如果所有用户独立使用所有线程,我们将会使服务器崩溃。我误解了某些事件是因为我们在同一台服务器上有多个用户需要同时使用所有资源? –
更新了答案。 – noxdafox
非常感谢这个伟大的总结。我会看看你所建议的所有工具。 –