簡體   English   中英

如何在python中進行非均勻並行處理?

[英]How to do a non-uniform parallel processing in python?

是否有一種有效的方法可以在 python 中進行非均勻並行處理,即當使用哪個並行進程/線程來處理每個輸入條目很重要時?

例子:
有一個消息隊列,它產生元組(x,n) ,其中x是某種數據, n是某種指標,指示哪個並行進程/線程適合處理這種數據。 數據處理對象保持某種狀態,因此不能只將數據提供給任何並行進程,而只能將其提供給上次處理相同類型數據的進程。

我知道,可以先將消息拆分為子隊列,然后啟動並行 python 進程並僅為它們自己的隊列訂閱每個進程。 但我想了解是否有更直接、更簡單的方法來做到這一點。

您可以使用asyncio庫來完成非統一執行但在高級編程語言中的並行編程概念與 c、c++ 等語言中描述的不同。 您解決問題的方法應該是將數據保存在同一個隊列中,而不是將數據保存在子隊列中。 應該有一個策略/ 適配器設計模式實現,盡可能在 asyncio 庫中將數據分發到自適應數據處理服務。 如果您采用這種方法,則應考慮將隊列實現為線程安全的。 它可以像在本機 python 庫中一樣,也可以根據您的功能要求對其進行擴展。

問題的其余部分看起來像是使用 asyncio 協程將其作為生產者-消費者來實現

如果問題集使用大數據,您也可以考慮在apache spark 中實現數據處理后端

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM