簡體   English   中英

在多種谷物之間分配繁重的工作(微軟奧爾良)

[英]Distribute heavy work between multiple grains (Microsoft Orleans)

我想計算一個簡單的可並行計算(例如Mandelbrot),其中Orleans在不同的晶粒上平行並且一旦晶粒完成就將結果合並在一起。 但是,我不知道如何做到這一點,或者奧爾良是否是解決此類問題的正確框架。 另外,我要提一下,這不會是任何將投入生產的項目,我只是在玩奧爾良。

到目前為止,這是我的想法:我有一個graintype(讓我們稱之為“maingrain”),這是客戶端的入口點(也可能是一個粒子)。 然后,這種谷物估計所需處理能力的數量,並將任務分成較小的部分,這些部分從另一種谷物類型分配給其他谷物(我稱之為“亞粒子”)。 讓這些子晶片完成工作並等待可以返回給客戶端的結果沒什么大不了的,但是我不知道如何處理子晶粒。

可以說,有一個電話我想要使用10個亞晶粒。 我通過一個新的GUID得到每一個並讓它們工作。 他們完成了,客戶得到了結果。 現在有一個我想要使用X亞晶粒的電話:

  • 我應該簡單地使用X個新GUID激活X個新的底色並讓垃圾收集器進行清理嗎?
  • 我應該以某種方式重復使用先前激活的亞晶粒(某種池),我怎么知道亞晶粒已經可以重復使用(=不繁忙)?
  • 如果我想使用多個maingrains會發生什么。 每個都處理它自己的亞晶粒嗎?

你會怎么做? 謝謝。

您可以使用Orleans.Concurrency.StatelessWorkerAttribute將子圖標記為“StatelessWorker”。 然后,當它的隊列中存在積壓的消息時,這將自動擴展粒度(創建相同粒度的多個實例),允許並行處理這些子任務。

發現這對於無國籍工人非常有趣: http//encloudify.blogspot.co.uk/2014/05/grains-grains-and-more-grains.html

暫無
暫無

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

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