Igo*_*lov 5 parallel-processing cluster-computing ipython ipython-notebook
例如,我按顺序运行4个脚本:
%run -i script1.py
%run -i script2.py
%run -i script3.py
%run -i script4.py
Run Code Online (Sandbox Code Playgroud)
每个执行时间都很长.在iPython笔记本中是否有任何方法可以并行运行脚本并从所有这些变量中返回局部变量(2或3个变量很重要)?在顺序执行中它工作正常但很长.先感谢您.
我试图应用这个主题的代码,但坚持第一部分:
def my_func(my_file):
!python pgm.py my_file
Run Code Online (Sandbox Code Playgroud)
或者在我的情况下:
def my_func(my_file):
%run -i $my_file
Run Code Online (Sandbox Code Playgroud)
我可以看到代码的执行正在发生但在此之后我无法从这些脚本中看到局部变量.
假设您启动了 4 个引擎,并且您将在每个引擎上发送 4 个脚本。
做完之后
rc = parallel.Client()
view = rc.load_balanced_view()
r = view.map_async(my_func, ["script1.py", "script2.py", "script3.py", "script4.py"])
Run Code Online (Sandbox Code Playgroud)
完成后,您可以访问变量a和b:pull
var = rc[:].pull(["a","b"])
var.result # or var.r or var.result_dict
[[10, 12020.2], [11, 14], [1, 0], [1, 14425]]
Run Code Online (Sandbox Code Playgroud)
它对应于每个脚本每次运行时a和之后的值。b
所以script1.py在最后,你有a==10和b==12020.2。
希望这可以帮助。
顺便说一下,我对你提到的链接进行了一些编辑,有一个小错误:
def my_func(my_file):
!python pgm.py my_file
Run Code Online (Sandbox Code Playgroud)
应该:
def my_func(my_file):
!python pgm.py {my_file}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |