我有一個c#多線程蒙特卡洛模擬,應用程序已經構建,它可以被分割成獨立執行的任務,TaskController執行任務,彙總中間結果,檢查收斂(提前終止標準),然後返回最終結果,這當前使用ThreadPool實現。.net分佈式網格計算遷移,對庫的建議,體系結構
我想喜歡利用多臺計算機來幫助計算。我沒有批准或基礎設施來使用IIS(這是政策不會改變),但我可以使用例如WCF與NetTcpBinding端點綁定,我測試了這種通信服務器,它有適當的權限和作品。
要開始我想有一個主exe(控制檯應用程序)和其他服務器上的幾個奴隸作爲專職工人(應該是exes或windows服務?),最終我可以讓這個集合運行在數百(以及服務器)在公司內空閒時間(或當屏幕保護程序處於活動狀態時)。
我可以自己寫這個,但我必須處理通信,1,2路?提前終止(中間收斂結果檢查),取消不再需要的任務,部署工作,發現可用和準備好部署工作的機器,如果工作站不再閒置時節流/暫停工作?分佈式系統中的其他一切?
如果主人(任務控制器)知道所有從屬工人的地址(ip),並告訴他們工作(如果他們可用),或者如果從屬工人知道主地址並請求工作有能力這樣做,還是溝通應該流向雙方?這將運行在24小時制,每天啓動大約9次運行以支持不同的商業區域。
我在尋找關於.net網格/分佈式庫的建議,可以幫助您和這項工作中的某些架構建議。
更新
具有使用以下任何人的經驗?
http://www.digipede.net/ (commercial)
http://www.gridbus.org/~alchemi/
http://ngrid.sourceforge.net/
http://www.osl.iu.edu/research/mpi.net/
或使用的JavaSpaces,Jini的從.NET或中找到對應的.NET技術
http://java.sun.com/developer/technicalArticles/tools/JavaSpaces/
http://www.jini.org
感謝
Jini和Javaspaces技術看起來非常有趣。這些容易在Windows基礎架構上託管嗎?他們是Windows服務嗎?一個.net等價物將會非常好。 – m3ntat 2009-08-04 11:19:58