【发布时间】:2017-01-06 10:00:15
【问题描述】:
祝大家新年快乐,2017 年编码愉快。
我有 1M 的“任务”要使用 python 运行。每个任务大约需要 2 分钟,并且会处理一些本地图像。我想以自动方式尽可能多地并行运行。我的服务器有 40 个内核,所以我开始了解如何进行多处理,但我发现以下问题:
- 保存每个任务的日志并不容易(我正在努力,但到目前为止我没有成功,即使我在 stackoverflow 上找到了很多示例)
- 我如何知道我应该使用多少 CPU 以及应该将多少 CPU 留给服务器用于基本的服务器任务?
- 当我们在服务器上有多个用户时,如何查看已经使用了多少 CPU?
在我之前在 CERN 担任物理学家时,我们使用作业提交系统在许多集群上提交任务。当插槽可用时,任务被放入队列并处理。我们是否也有这样的 LINUX 服务器工具?我不知道这种工具的正确英文名称是什么(作业调度员?)。
最好的工具是我们可以配置为使用我们的 N CPU 作为“车辆”来处理并行任务(并保留所需的 CPU 以便服务器也可以运行基本任务),把工作队列中的所有用户都有优先级并处理它们“车辆”可用。奖励将是一种监控任务处理的方式。
我希望我用正确的词来描述我想要的东西。
谢谢 法比恩
【问题讨论】:
标签: server multiprocessing jobs submission