跨n核分布Python程序的最佳框架

时间:2015-10-26 11:11:29

标签: python apache-spark distributed-computing

我是分布式系统的新手,其任务是分发一段现有的Python代码。目标是将代码视为二进制文件或库,并编写两种不同的包装器:

  • Wrapper 1:从环境中接收大型数据流,调用Python代码对其执行一些计算,然后将其分解并发送数据块(和工作节点的其他一些事情。在主节点中运行。
  • Wrapper 2:接收这些数据块,调用Python代码对它们进行一些计算,当满足特定条件时,将数据发送回主数据节点。

重复该过程,直到没有其他数据进入主节点。它可以通过下图来举例说明:A high-level view of the desired distributed architecture.

所以两者都存在

(1)工作人员与主节点之间的通信需求以及

(2)需要调用现有的Python代码。

整个框架非常重要地看待“节点”的概念,因为它需要在节点等同于核心(物理或虚拟)的个人计算机上运行,​​或者在集群上运行,其中节点可以是整个每台计算机都有多个核心。因此,我正在寻找一种可以帮助我实现这么多目标的技术。我已经在研究Apache Spark,但我不完全确定Spark是否允许我以简化的方式执行Python代码,并且正在寻找想法。

1 个答案:

答案 0 :(得分:0)

celery视为一个简单的选项:

  

Celery:分布式任务队列

     

Celery是一个异步任务   基于分布式消息传递的队列/作业队列。它专注于   实时操作,但也支持调度。执行   单位,称为任务,在一个或多个单元上同时执行   使用多处理,Eventlet或gevent的工作服务器。任务可以   异步执行(在后台)或同步执行(等待   直到准备好了)。

     

Celery在生产系统中用于处理数百万美元   一天的任务。