我是python脚本的初学者,我有一个脚本,其中一个函数被多次调用,每次都传递不同的参数集。执行按顺序进行。为了使它们并行运行(因为在调用这些函数时没有依赖),我想到使用bsub命令调用这些函数使它在多台机器上运行以便更快地执行。
def func(a,b):
do_something...
bsub -n2 func(A1,B1);
bsub -n2 func(A2,B2);
bsub -n2 func(A3,B3);
我看到以下错误:
意外令牌附近的语法错误`('
我也尝试过使用多处理 来自多处理导入过程 这导致在同一台机器上启动多个作业,这可能会减慢执行速度。
如果你们中的任何一个人有更好的方法做同样的事情,你能不能对它们说些什么?
答案 0 :(得分:0)
我认为你正在将Python命令与shell的命令混合在一起。它们不是同一个东西,因此您无法将Python函数调用传递给bsub
,也不能直接在Python代码中使用bsub
。
您可以创建一个调用该函数的脚本,并在其上使用bsub
,但命令行可能需要类似于bsub -n2 my_script.py
(函数调用发生在{{1}内}})。
很遗憾,我对您正在使用的my_script.py
计划一无所知,所以我不知道如何使用它来为脚本传递不同的参数(这样它就知道要用于Python函数的参数)。您应该阅读其文档。
还有可能有一个Python库可用于与您的集群架构连接。它可能能够在多个系统上并行运行任意Python代码。