首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于路径的分布式集群Python多处理

基于路径的分布式集群Python多处理
EN

Stack Overflow用户
提问于 2014-11-14 22:10:59
回答 1查看 2.2K关注 0票数 1

我试图在几台不同的计算机上使用多处理,pathos似乎是面向:“seems是一种异构计算的框架。它主要提供了跨异构资源配置和启动并行计算的通信机制。”然而,在查看文档时,我对如何建立和运行集群感到困惑。我希望:

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

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

EN

回答 1

Stack Overflow用户

发布于 2014-11-15 02:27:57

我是pathos的作者。基本上,对于(1)您可以使用pathos.pp通过套接字连接连接到另一台计算机。pathos.pp的API与pathos.multiprocessing几乎完全相同,尽管使用pathos.pp,您可以在设置Pool时使用关键字servers提供要连接到的远程主机的地址和端口。

但是,如果要与SSH建立安全连接,最好建立SSH隧道连接(如链接到的示例),然后将localhost和本地端口号传递给Pool中的servers关键字。然后通过ssh隧道连接到远程pp-worker。见:ppmap2.pyhttp://www.cacr.caltech.edu/~mmckerns/pathos.html

最后,如果您在远程服务器上使用pathos.pp,那么您应该已经在执行(3)了。但是,您可以更高效地嵌套并行映射…(对于一组令人尴尬的并行足够多的作业)。因此,首先使用pathos.pp.ParallelPythonPool构建跨服务器的并行映射,然后在与pathos.pp映射的函数中使用pathos.multiprocessing.ProcessingPool中的并行映射调用N-way作业。这将使远程连接之间的通信最小化。

此外,如果您有SSH代理为您工作,则不需要提供ssh密码。见:http://mah.everybody.org/docs/ssh。路径假设跨远程服务器的并行映射,您将让ssh代理工作,并且每次连接时都不需要输入密码。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26939704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档