繁体   English   中英

使用Pathos的分布式集群的Python多处理

[英]Python Multiprocessing with Distributed Cluster Using Pathos

我试图使在多个不同的计算机,其中多处理的使用pathos似乎朝着面向 :“悲怆是异构计算的框架它主要提供通信机制来配置和启动在异构资源的并行计算。” 但是,在查看文档时,我对如何启动和运行群集一无所知。 我正在寻找:

  1. 使用安全身份验证设置远程服务器或一组远程服务器。
  2. 安全地连接远程服务器。
  3. 使用简单的API(例如标准多处理程序包中的pool.map在远程服务器和本地计算机上的所有CPU上映射任务(例如此相关问题中的伪代码 )。

我没有看到(1)的示例,也没有理解为(2)提供的隧道示例 该示例实际上并未连接到localhost上的现有服务。 我还想知道是否/如何可以要求此通信附带某种密码/密钥,以防止他人连接到服务器。 我了解这使用SSH身份验证,但是缺少一个预先存在的密钥,该密钥只​​能确保流量在通过Internet时不会被读取,但不能阻止其他人劫持服务器。

我是pathos作家。 基本上,对于(1),您可以使用pathos.pp通过套接字连接连接到另一台计算机。 pathos.pp几乎一模一样的API为pathos.multiprocessing ,虽然与pathos.pp你可以给一个远程主机的IP地址和端口来连接,使用关键字servers建立时, Pool

但是,如果要与SSH建立安全连接,最好建立SSH隧道连接(如您所链接的示例),然后将localhost和本地端口号传递给Poolservers关键字。 然后,它将通过ssh隧道连接到远程pp-worker 参见: https : //github.com/uqfoundation/pathos/blob/master/examples/test_ppmap2.pyhttp://www.cacr.caltech.edu/~mmckerns/pathos.html

最后,如果您pathos.pp在远程服务器上使用pathos.pp ,则应该已经在做(3)。 但是, 嵌套并行映射会更高效(对于一组足够令人尴尬的并行作业)……因此,首先使用pathos.pp.ParallelPythonPool在服务器之间构建并行映射,然后使用A调用N作业使用pathos.pp映射的函数内部的pathos.multiprocessing.ProcessingPool并行映射。 这将最小化远程连接之间的通信。

另外,如果您使用的是ssh-agent,则无需提供SSH密码。 请参阅: http : //mah.everybody.org/docs/ssh Pathos假设要在远程服务器上进行并行映射,因此您将使用ssh-agent,并且每次连接时都无需输入密码。

编辑:在这里您的问题上添加了示例代码: 分布式集群的Python多处理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM