当前位置: 首页 > 面试题库 >

使用多处理模块进行集群计算

澹台俊材
2023-03-14
问题内容

我对使用计算机集群运行Python程序感兴趣。过去我一直在使用Python
MPI接口,但是由于在编译/安装这些接口时遇到困难,我更喜欢使用内置模块(例如Python的多处理模块)的解决方案。

我真正想做的就是设置一个multiprocessing.Pool跨整个计算机集群的实例,并运行一个Pool.map(...)。这是可能/容易做到的事情吗?

如果这不可能,那么我至少希望能够Process从中央脚本在每个节点上为每个节点使用不同参数来启动实例。


问题答案:

如果通过集群计算来表示分布式存储系统(多个节点而不是SMP),那么Python的多重处理可能不是合适的选择。它可以产生多个进程,但它们仍将绑定在单个节点内。

您将需要一个框架来处理跨多个节点的进程,并为处理器之间的通信提供一种机制。(几乎是MPI所做的)。

有关有助于集群计算的框架列表,请参见Python
wiki
上的“并行处理”页面。

从列表中看,pp,jug,pyro和celery似乎是明智的选择,尽管由于我对它们中的任何一个都没有经验(我主要使用MPI),所以我不能亲自担保。

如果安装/使用的简便性很重要,那么我将从探索开始jug。它易于安装,支持常见的批处理群集系统,并且文件记录良好。



 类似资料:
  • 我试图编译和混淆两个项目,其中一个依赖于另一个,并且两个项目都是用Spring boot maven插件构建的。 为了简单起见,让我们将它们称为main和util项目。 因此,如果我首先尝试使用Spring boot maven插件重新打包项目,然后混淆包含util和主要项目的重新打包的jar,那么首先proguard提取重新打包的jar的内容,其中提取的内容将包含util jar。那么progu

  • 本文档描述了什么是多路处理模块以及它如何为Apache所使用。 简介 Apache HTTP服务器被设计为一个强大的、灵活的能够在多种平台以及不同环境下工作的服务器。不同的平台和不同的环境经常产生不同的需求,或是为了达到同样的最佳效果而采用不同的方法。Apache凭借它的模块化设计很好的适应了大量不同的环境。这一设计使得网站管理员能够在编译时和运行时凭借载入不同的模块来决定服务器的不同附加功能。

  • 本教程用于多代理kafka集群。我建立了三个经纪人: 本地主机:9092 本地主机:9093 本地主机:9094 问题是,如果我杀死,我就不能使用以下命令: 我知道端口被杀死了,但是--如何通过通用引导服务器来使它运行?我错过了什么? 编辑1: bin/kafka-console-consumer.sh--bootstrap-server localhost:9092,localhost:9093

  • 在多模块Android项目中,注释处理仍然是在任何编译完成之前的第一个任务,然后触发完整的编译。当然,这是在进入< code>app模块之前按模块完成的。 想象一下这样一种情况,一些子模块依赖于其他子模块,编译将会失败,因为依赖者还不能在它所依赖的模块中找到生成类的定义,仅仅因为它们还没有生成。 我想知道是否有一种方法可以使用<code>gradle</code>或任何其他方法强制执行所有子模块注

  • 本文向大家介绍深入理解NodeJS 多进程和集群,包括了深入理解NodeJS 多进程和集群的使用技巧和注意事项,需要的朋友参考一下 进程和线程 “进程” 是计算机系统进行资源分配和调度的基本单位,我们可以理解为计算机每开启一个任务就会创建至少一个进程来处理,有时会创建多个,如 Chrome 浏览器的选项卡,其目的是为了防止一个进程挂掉而应用停止工作,而 “线程” 是程序执行流的最小单元,NodeJ

  • 问题内容: 从文档 如果遇到需要插入1000 000行/对象的情况: 为什么我们应该使用这种方法?与StatelessSession一相比,它给我们带来了什么好处: 我的意思是,这个(“替代”)最后一个示例不使用内存,不需要进行同步,清除缓存,那么对于这样的情况,这应该是最佳实践吗?那么为什么要使用前一个呢? 问题答案: 从文档中,您链接到: 特别是,无状态会话不会实现第一级缓存,也不会与任何第二