繁体   English   中英

不同网络上不同机器上的 Python 代码并行化

[英]Parallelization of Python code on different machines on different networks

我希望在不同网络上的两台计算机上使用并行代码来执行一批任务,但不确定如何在 Python 中执行此操作。

假设我在两个不同的网络上有两台计算机,计算机 A 和计算机 B,我有一批 100 个任务要完成。 天真地,我可以分配计算机 A 和计算机 B 各自执行 50 个任务,但如果计算机 A 在计算机 B 之前完成它的任务,我希望计算机 A 承担计算机 B 的一些剩余任务。 两台计算机都应将其任务的结果返回到我的本地计算机。 如何才能做到这一点?

  • 您需要创建一个可以跨不同网络工作的分布式队列。 像rabbit-mq这样的东西
  • 将您的所有任务放入队列中。
  • 创建一个中央工作人员管理工具,让您可以在计算机 A 和计算机 B 上创建和管理工作人员。工作人员将处理您的任务。
  • 您还需要注意工人的可用性以实现您所说的 - if Computer A finishes its tasks before Computer B, I would like Computer A to take on some of Computer B's remaining tasks

幸运的是,python 有一个优秀的库“Celery”,它可以让你完全实现你想要的。 这是一个有据可查的图书馆,拥有庞大而多样化的用户和贡献者社区。 您只需要设置一个代理(或队列)并配置 celery。

Celery 中有很多功能可以根据您的要求使用 - 监控/调度作业/Celery 画布等等。

https://docs.celeryproject.org/en/stable/getting-started/introduction.html https://medium.com/swlh/python-developers-celery-is-a-must-learn-technology-heres-how -to-get-started-578f5d63fab3

暂无
暂无

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

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