是否有任何理由在多处理模块上将 Ipyparallel 用于通用 python 脚本(而不是 ipython 笔记本)?

Is there any reason to use Ipyparallel for common python script (not ipython notebook) over multiprocessing module?

是否有任何理由将 Ipyparallel 用于常见的 python 脚本(不是 ipython notebook)?

您可能会选择 IPython 并行的原因可能与您相关,也可能不相关:

  1. 有些东西 IPython 并行可以有效地序列化(numpy 数组),而多处理却做不到,因为它会腌制所有东西
  2. IPython 并行可以在多台机器上分配工作,而多处理则不能。
  3. IPython 并行管理每个引擎上的持久交互式名称空间(一个完整的 IPython 会话),这对于分段工作和调试很有用。

一般来说,如果您只是想在多核计算机上并行化少量代码,IPython 并行并不能为您提供多处理,以及启动和连接到IPython 群集不值得。但是,如果您可能想将它分布在更多机器上,IPython parallel 可以让您做到这一点。由于无论您使用一台计算机还是一百台计算机,它的工作方式都相同,您可以在笔记本电脑上制作原型,然后 运行 在更大范围内使用完全相同的代码,无需任何更改。