【问题标题】:Ipython parallel scripts running and return the local variablesIpython 并行脚本运行并返回局部变量
【发布时间】:2015-08-27 13:46:26
【问题描述】:

例如,我依次运行 4 个脚本:

%run -i script1.py
%run -i script2.py
%run -i script3.py
%run -i script4.py

每次执行的时间都挺长的。 iPython notebook 中是否有任何方法可以并行运行脚本并从所有脚本中返回局部变量(重要的 2 或 3 个变量)?在顺序执行中,它工作得很好但很长。先感谢您。

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

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

或者在我的情况下:

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

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

【问题讨论】:

    标签: parallel-processing ipython cluster-computing ipython-notebook


    【解决方案1】:

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

    做完之后

    rc = parallel.Client()
    view = rc.load_balanced_view()
    r = view.map_async(my_func, ["script1.py", "script2.py", "script3.py", "script4.py"])
    

    完成后,您可以访问,比如说变量abpull

    var = rc[:].pull(["a","b"])
    var.result # or var.r or var.result_dict
    [[10, 12020.2], [11, 14], [1, 0], [1, 14425]]
    

    分别对应每个脚本运行后ab的值。

    所以在script1.py 中,最后有a==10b==12020.2

    希望这会有所帮助。


    顺便说一下,我编辑了一下你指的link,有一个小错误:

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

    应该是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      相关资源
      最近更新 更多