Python 并行化的正确工作流是什么:在集群上运行还是在多进程上运行?

Python 并行化的正确工作流是什么:在集群上运行还是在多进程上运行?,python,parallel-processing,ipython-parallel,joblib,Python,Parallel Processing,Ipython Parallel,Joblib,我想调用一个类似于parallelize.map(function,args)的函数,该函数返回一个结果列表,用户对实际进程一无所知。我想要并行化的函数之一是将子进程调用到另一个受益于多核的unix程序 我首先尝试了ipython cluster helper。这在我的设置中运行良好,但在其他几台机器上安装时遇到问题。在安装过程中,我还必须询问集群的名称。我还没有看到其他程序在集群上为您启动工作,所以我不知道这是否是公认的做法 joblib似乎是并行化的标准,但它一次只能使用一个集群或一台计算机

我想调用一个类似于parallelize.map(function,args)的函数,该函数返回一个结果列表,用户对实际进程一无所知。我想要并行化的函数之一是将子进程调用到另一个受益于多核的unix程序

我首先尝试了ipython cluster helper。这在我的设置中运行良好,但在其他几台机器上安装时遇到问题。在安装过程中,我还必须询问集群的名称。我还没有看到其他程序在集群上为您启动工作,所以我不知道这是否是公认的做法

joblib似乎是并行化的标准,但它一次只能使用一个集群或一台计算机。这也可以工作,但速度要慢得多,因为它不使用集群

此外,我正在运行此代码的服务器会抱怨程序运行时间过长,无法确保人们使用集群。如果我使用了joblib,我是否需要编写另一个脚本来仅在集群上运行此程序

现在,我在setup.py中添加了特殊参数,以添加集群名称,并在必要时安装ipython cluster helper。当调用map时,它首先检查ipython集群助手和集群名称是否可用,使用它们,否则使用joblib

实现这一目标的其他方式有哪些?我正在寻找一种标准的方法来实现这一点,它可以在大多数有集群或没有集群的机器上运行,因此我可以发布代码并使其易于使用

谢谢