2012-12-31 27 views
1

MPI新手,目前我沒有超級計算機(還)玩,有一件事我不知道,在集羣計算中如何處理DLL/SO?我們可以像使用PC一樣使用DLL/SO嗎?MPI和DLL(SO)函數

爲什麼有這麼幾臺超級計算機支持Windows HPC OS而不是Linux?目前我認爲,由於Visual Studio,Windows上的編程軟件要容易得多,但對於集羣計算而言看起來太糟糕了,Linux是目前的首選。

+0

對於你的第一個問題:簡短的回答是肯定的。 (雖然我很困惑你爲什麼會懷疑它不會?)。 – selbie

+0

對於第二個問題,也許你應該查看超級計算機的[TOP500](http://en.wikipedia.org/wiki/Top500)圖表及其操作系統選擇。當人們有選擇的時候,人們使用對他們最有效的東西;當他們沒有時,什麼對他們有用。 – WhozCraig

+0

你的第二個問題對Stack Overflow來說有點不合適,因爲它只會要求*與觀察沒有直接關係的觀點*。我的觀點*主要是關於兩件事情。價格是一個。 (比較Windows Server OS與免費Linux的成本)。另一個原因很簡單,因爲Unix有更長的歷史分佈式計算 – selbie

回答

2

要添加到你已經在評論你的問題告訴了什麼:

一)我認爲,對Linux的超級計算的世界霸主地位的原因一部分是,它是開源。一旦你爲10^6-CPU龐然大物開發了硬件,你可能需要調整o/sa位來優化它,以便設計和構建出特別酷的功能。

b)如果你喜歡在Visual Studio下開發,但想在超級計算機上運行你的代碼,你可以這樣做:在Visual Studio下開發代碼並在超級計算機上運行代碼。 (其實,我的僱主沒有真正有一個超級計算機,只是一個非常大的集羣或兩個,而是MEH

我有雙四核CPU的臺式PC,VS,在英特爾Fortran的安裝編譯器和各種英特爾庫,如MKL。我還安裝了英特爾MPI開發套件和PC的運行時間,這樣我就可以在開發它們的同時在我的PC上運行MPI程序。

然後,當我想將這些代碼轉移到生產環境中時,我將它們放在集羣上(我們有相同的編譯器和庫),然後他們走。我們嚴格遵守語言標準,所以我們不會構建可移植性問題。所以,我不明白爲什麼你應該不得不拋棄Visual Studio,如果你想在超級計算機代碼上工作。當然,你需要熟悉一下make以及Linux上的程序員編輯,但是他們不會比以前在Windows上的等同物更難以接受。

+0

是的,這是一種繞過它的方式,但是需要進行相當多的維護才能保持平臺之間的一致性。例如,pthread庫在Windows和Linux操作系統中的行爲往往不同,在這方面OpenMP更好,但它似乎無法提供pthread的豐富功能。 – 60080

+0

嗯,我不會碰觸帶有柱形杆的pthreads,所以你提出的問題對我來說不是問題,但是你是對的,平臺之間的差異會使開發變得更加困難。對我來說,跨平臺維護代碼和開發工具的負擔很輕微,而且好處很大。 –