我正在準備編寫一個光子模擬軟件包,該軟件包將運行在128節點的Linux和Windows羣集上,並使用基於Windows的客戶端來設計作業(類似於CAD)並將它們提交給羣集。C#適用於羣集計算繁重的應用程序嗎?
其中大部分內容都很好,但我很好奇C#如何在實數運算能力方面達到C++的水平。我對這兩種語言都很滿意,但是我發現C#與.NET或Mono的優越對象模型和框架支持令人難以置信的誘人。但是,在這個應用程序中,爲了開發人員的偏好,我無法犧牲處理能力。
有沒有人有這方面的經驗?有沒有可用的基準測試?我假設最終的機器代碼將使用相同的技術進行優化,無論它來自C#還是C++源代碼,尤其是因爲它通常發生在pcode/IL級別。
爲什麼要將高級(管理/調度)與使用相同語言的低級(數量加工)設施結合起來呢?如果在計算過程中使用c,不希望編譯器的彙編或彙編效率更高。如果您想要更好的工具來管理應用程序的高階組織和管理,請使用C#(.NET或Mono)或Python。 – 2010-06-21 22:03:59
@Evan當然,C給了一個好的程序員,會產生很好的結果,並且它具有跳過C#中幾個抽象層次的優點。但是,我想保留應用程序在一種語言出於幾個原因。可維護性*非常重要。與基於Web的報告工具的集成將非常棒 - 使用C#保留內容可以輕鬆地在任何其他上下文中重用爲羣集節點應用程序編寫的庫。永遠不要低估堅持單一平臺的好處。 – 2010-06-22 16:57:45
好吧,我只想指出,通常的做法是使用更高級別的語言作爲「膠水」語言,以獲得方便**和**表現(贏得勝利)。在Python中嵌入C/C++是科學計算領域的常見做法,因爲在Python中使用C/C++代碼非常簡單,您仍然可以在需要的地方利用性能。請參閱http://docs.python.org/release/2.5.2/ext/simpleExample.html。我只提供它作爲評論而不是答案,因爲儘管它不符合你的要求,但這不是一個壞的選擇。 – 2010-06-22 20:30:43