Parallel processing Ipython并行脚本运行并返回局部变量

Parallel processing Ipython并行脚本运行并返回局部变量,parallel-processing,ipython,cluster-computing,ipython-notebook,Parallel Processing,Ipython,Cluster Computing,Ipython Notebook,例如,我按顺序运行4个脚本: %run -i script1.py %run -i script2.py %run -i script3.py %run -i script4.py 执行每项任务的时间相当长。iPython笔记本中是否有任何方法可以并行运行脚本并从所有脚本返回局部变量(2或3个重要变量)?在顺序执行中,它工作得很好,但时间很长。先谢谢你 我尝试应用此代码,但仍停留在第一部分: def my_func(my_file): !python pgm.py my_file

例如,我按顺序运行4个脚本:

%run -i script1.py
%run -i script2.py
%run -i script3.py
%run -i script4.py
执行每项任务的时间相当长。iPython笔记本中是否有任何方法可以并行运行脚本并从所有脚本返回局部变量(2或3个重要变量)?在顺序执行中,它工作得很好,但时间很长。先谢谢你

我尝试应用此代码,但仍停留在第一部分:

def my_func(my_file):
      !python pgm.py my_file
就我而言:

 def my_func(my_file):
      %run -i $my_file

我可以看到代码正在执行,但在此之后,我无法看到这些脚本中的局部变量

假设您启动了4个引擎,并在每个引擎上发送4个脚本

之后

rc = parallel.Client()
view = rc.load_balanced_view()
r = view.map_async(my_func, ["script1.py", "script2.py", "script3.py", "script4.py"])
一旦完成,您就可以使用
pull
访问变量
a
b

var = rc[:].pull(["a","b"])
var.result # or var.r or var.result_dict
[[10, 12020.2], [11, 14], [1, 0], [1, 14425]]
在每次运行脚本后,对应于
a
b
的值

因此在
script1.py
中,最后是
a==10
b==12020.2

希望这有帮助


顺便说一下,我编辑了一点你提到的,有一个小错误:

def my_func(my_file):
      !python pgm.py my_file
应该是:

def my_func(my_file):
      !python pgm.py {my_file}