我正在寻找以下问题的最佳解决方案: 我正在开发一个集群,我想将交互式作业生成到集群。 但是,我想生成大约7,000个这样的作业,而且我无法并行运行它们。
我想拥有一个流程/线程池,它可以交互式地运行作业(比如一次4个),我希望我的程序“等待”所有7,000个作业完成运行。 / p>
除线程池外还需要队列吗? 实现目标的最佳方法是什么? 这是我目前的代码。
results = []
with open(input_file_location, "r") as input_file:
log("Spawnning jobs")
for filename in input_file:
cmd = config.command_templates["some_cmd"] % (filename)
results.append(pool.apply_async(run_job, (cmd,)))
# Close the pool and wait for each running task to complete
pool.close()
pool.join()