2014-02-13 26 views
2

我正在設計一個使用第三方電解算器的程序。 我想在大型電網上執行蒙特卡羅模擬,而大多數時間(我的)程序需要幾個小時。 因此,我認爲,如果我在其他計算機上創建客戶端,我可以從我的計算機調用(反之亦然),我會有一個很好的分佈式模擬器。設計分佈式仿真的最佳方法

因爲我缺少知識,我想知道什麼是最好的方法(如果可能的話)「invoque」安裝在本地網絡中的另一臺計算機上執行特定任務的程序:模擬一個文件,我發回並返回結果。這個想法是讓求解器一次可以說10臺計算機,並且異步收集結果。

我使用的語言是C#。

我希望我的問題很清楚。

+0

[傳遞數據到服務器進行計算]的可能的副本(http://stackoverflow.com/questions/21578993/passing-data-to-server-for-computation) – Samuel

+0

請參閱我對重複線程的評論以獲得提示如何接近任務。 – Samuel

+0

http://stackoverflow.com/questions/21578993/passing-data-to-server-for-computation描述了1對1的數據交換,我在這裏描述的是從n到n的數據交換,thre是n-1個差異 –

回答

0

最簡單的方法是在網絡上共享一個驅動器,所有計算機都可以訪問該驅動器。然後,您的應用程序會在共享驅動器上保存輸入文件(或每臺機器的一個輸入文件,取決於您想如何執行),然後您的應用程序會在每個客戶端上遠程啓動另一個應用程序。它監視每一個它開始的退出狀態。在它們全部退出之後,它將輸出文件並將它們組合並處理數據。任務完成。最簡單的「遠程過程」調用可能是通過psexec,您可以從technet下載,我們已經非常成功並且非常簡單地使用它。 How to execute process on remote machine, in C#的前兩個答案還有其他好的想法:我認爲你會發現它們更多的開銷(實施時間更長),但從長遠來看會給你更多的權力。