簡體   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