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

2024-06-24 13:10:16 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

重复该过程,直到没有更多的数据到达主节点。可以用下图来举例:A high-level view of the desired distributed architecture.

所以两者都存在

(1)工人和主节点之间以及

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

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


Tags: 数据代码框架目标节点环境过程计算机
1条回答
网友
1楼 · 发布于 2024-06-24 13:10:16

查看^{}作为一个简单的选项:

Celery: Distributed Task Queue

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. The execution units, called tasks, are executed concurrently on a single or more worker servers using multiprocessing, Eventlet, or gevent. Tasks can execute asynchronously (in the background) or synchronously (wait until ready).

Celery is used in production systems to process millions of tasks a day.

相关问题 更多 >