我有一个任务要在Python中完成X次,我将使用LSF来加快速度。提交包含多个Python脚本的作业是否更好?这些脚本可以并行运行或一个使用多处理器模块的Python脚本?
我的问题是我不相信LSF知道如何将Python代码分成几个进程(我不确定LSF是如何做到这一点的)。但是,我也不想要几个Python脚本,因为它看起来效率低下且杂乱无章。
手头的任务包括解析六个非常大的ASCII文件,并将输出保存在Python dict中供以后使用。我想并行解析六个文件(每个文件大约需要3分钟)。 LSF是否允许Python告诉它类似于"嘿,这是一个脚本,但是你要将它分成这六个进程"? LSF 是否需要 Python告诉它或者它已经知道如何做到这一点?
如果您需要更多信息,请与我们联系。我很难平衡"足够的"并且"太多"背景
答案 0 :(得分:3)
一种(非常简化的)思考LSF的方式是作为一个启动流程的系统,让流程知道已经为其分配了多少个核心(可能在不同的主机上)。 LSF不能阻止你的程序做一些愚蠢的事情(例如,如果它的多个实例同时运行,并且一个实例覆盖了另一个实例)。
使用LSF的一些常用方法。
$LSB_MCPU_HOSTS
将告诉您为作业分配了多少个核心,因此您知道创建池的大小。我不确定这三种方式中哪一种最适合您的需要。但我希望这个解释可以帮助你做出决定。