0

I've got a for loop I want to parallelize with something like PLINQ's Parallel.ForEach().

The key here is that the C++ library i'm calling to do the computation is decidedly not thread safe, therefore, any plans to parallelize this need to do so across multiple processes.

I was thinking about using WCF to create a "distributor" process to which the "client" and multiple "calculators" could both connect and add/remove items to/from a queue and then the "calculator" sends the results directly back to the client which could update the gui as it receives them. This architecture would allow me to bring as many "calculators" online as I have processors and as I see it even bring them up across multiple computers creating a potential farm of processing power to which all the clients could share.

I'm just wondering if anyone has had any experience doing this and if there are existing application blocks or frameworks that I can use to build this for me. PLINQ does it within the process. is there like a DPLINQ (distributed) or something?

Also if that doesn't exist, does anybody want to give an opinion on my proposed architecture? Any obvious pitfalls? Does anyone think it will work!?!?!?

4

2 に答える 2

3

ドライアドを探しているようですね。現在はマイクロソフトの研究プロジェクトですが、「アカデミック リリース」が利用可能です。私の理解では、彼らは 2011 年末近くのいつか、RTM 向けの製品化 (おそらく Azure との何らかの統合) の改善も進めているとのことです。これについては、Mary Jo Foley が詳しく説明しています.

于 2011-02-25T02:20:08.650 に答える