地磁計算指南角度
在開發用於科學的應用程式時,有時您需要超越台式電腦,但是也可以使用快速的單節點系統。 在我擔任研究人員和科學軟體開發人員的那段時間裡,我有機會研究各種不同的系統,從舊系統到資料流再到地球上一些最大的超級計算機。
由於許可限制,硬體預算以及許多其他因素,單個系統非常普遍,並且它們以非常特殊的方式進行管理。 它們可能需要用於nvidia圖形卡的特殊驅動程式,但除此之外,它們已經安裝並配置為可以很好地執行一些應用程式。 他們還依賴少數研究人員之間的臨時資源共享,並由學生, 博士後研究人員或某些情況下的研究人員進行更新和維護。 這是讓我對gentoo感興趣的一件事:從系統中擠出最大效能。 那時64位處理器還很新,因此執行64位非常理想 。
這些系統通常設定為在不連線監視器的情況下執行,而linux是帶有ssh的遠端訪問和管理的明顯選擇。 少數人(或者我通常只有我)已經生根,其他人將登入並進行工作。 他們僅暴露於本地網路,並且檔案通過scp傳輸。 一兩個共享samba ,使windows和mac使用者更容易使用他們自己熟悉的工具共享檔案。 單個系統允許針對特定目的進行大量專業化,並且在研究組環境中非常有效地共享。
這種設定非常普遍,既可以是特定研究小組的專用集群的混合,也可以購買額外的節點集以新增到更大的部門集群中。 這些機器可以由專職人員管理,也可以歸研究組成員所有。 通常,通過排程程式中更高的優先順序,可以為您提供對所購買機器的更大訪問許可權,一段時間內的獨佔訪問許可權,安裝定製軟體的能力或針對特定任務優化硬體的能力。
群集的典型設定是使用者登入到頭節點(或登入節點),並且通常甚至對超級計算機也適用。 這些是可從網路訪問的唯一節點,也是使用者可以直接登入並進行互動的唯一節點。 群集的大部分由計算節點組成,它們位於專用網路上,其排程由某種作業排程程式控制,例如可攜式批處理系統(pbs),sun grid engine,torque或slurm。 使用者帳戶是所有節點共有的帳戶,共享檔案系統使您可以輕鬆地往返於計算節點獲取資料,並且許多計算節點具有更快的本地磁碟儲存,但只能從該節點訪問。
如果需要編譯自定義**,通常在頭節點上完成。 在我使用的某些系統上,體系結構與計算節點不匹配,因此我們不得不使用交叉編譯,但是如今這已經不那麼普遍了。 計算節點通常使用快速的網路結構,例如infiniband ,並且有必要鏈結到自定義訊息傳遞介面(mpi)和通訊庫,以獲得最佳效能。 機器通常設計為盡可能異構,通常使用較舊的linux發行版和過時的庫。 通過使用環境模組可以在一定程度上緩解這種情況。 使用模組系統,您可以執行將定製庫,編譯器或任何所需新增到環境中的命令。 它們在較大的集群和超級計算機上經常使用,如果軟體需要互斥的庫版本,則較小的集群可以使用它們。
過去幾年中,我一直在努力的事情之一就是使科學家在工作中更容易使用集群和超級計算機。 對於研究人員來說,登入到head / login節點,安排他們的工作並使用命令列工具對其進行監視仍然非常典型。 一些較大的專案會編寫作業執行指令碼,但這仍然是乙個手動過程。 與ssh和其他安全性限制相關聯的兩因素身份驗證系統通常會使這種情況變得更加困難,而這些限制不會使自己被任何更高階別的系統使用。 時間的分配通常基於共享協議或大型超級計算機的建議。
系統管理員確保已將批處理排程程式設定為記錄使用情況,並強制執行對各種系統使用者的分配。 超級計算機通常設定為並行執行大量工作,通過使用分布式記憶體程式設計模型來利用機器的很大一部分。 越來越多的這些還要求使用本地共享記憶體並行性,在最極端的情況下,可能需要三種並行模型:分布式記憶體,cpu上的共享記憶體和gpgpu共享記憶體。 有乙個範圍,當將正確的編譯器用於集群或超級計算機時, openacc規範會提供一些**的自動並行性。 超級計算機和集群變得越來越複雜,在多個級別上進行並行化變得越來越重要。 對網路結構的大量投資可實現節點之間的低延遲和高頻寬通訊。 這使磁碟i / o成為乙個日益嚴重的瓶頸。
超級計算社群當前的推動力是億億次計算 。 這是計算能力的下乙個飛躍,需要巨大的能力並需要提高功率效率和容錯能力。 隨著系統的變大和磁碟頻寬的增加,人們正在探索緩解這些問題的新穎方法,例如突發緩衝區,非易失性ram和可將需要寫入磁碟的內容減至最少的原位處理技術 。
開源對超級計算社群和集群(在較小程度上)具有極其重要的意義。 許可模型通常無法很好地擴充套件到這些應用程式,並且使執行大型作業變得困難。 除了許可費用和模型之外,開源的更大優勢是能夠修改源,針對超級計算機或集群對其進行優化,針對自定義mpi庫,數學庫等進行重新編譯以及與其他計算中心公開共享這些結果的能力。 。 這樣就可以實現快速的進步,並且可以不受阻礙地共享為超級計算機優化**的主要成功和某些失敗。
隨著社群發展至萬億級,我認為這將變得越來越重要。 可以修補,更新不一定要考慮到超級計算機的庫,並且在許多情況下可以合併這些更改。 超級計算機面臨著更廣泛的社群所關注的一些問題,例如,記憶體量相對較小的計算節點以分布式方式執行許多**副本,這使得必須優化記憶體佔用量和啟動時間的關鍵點。 這些優化還可以使相同庫的嵌入式應用程式受益,例如手機,平板電腦和片上系統(例如raspberry pi)。
超級計算機和集群通常需要不尋常的構建環境,需要移植到較不常見的編譯器,並努力從專用硬體中獲得最大收益。 過去,我不得不編譯相當大的軟體堆疊才能使**在科學的計算資源上執行,但是隨著容器,虛擬化和其他解決方案的探索,情況正在發生變化。 雲資源還補充或在某些情況下替代了學術界/研究中的計算需求,但通常遭受通訊速度降低和節點/例項之間的延遲增加的困擾。
希望我能在我對這些系統上的系統管理和軟體部署方面的經驗中止步之旅能提供有用的見解。
翻譯自:地磁計算指南角度
科學簡史2 計算機系統
1 計算機系統三大核心 硬體 cpu 軟體 作業系統 網路 tcp ip協議 注意 指令系統是軟硬體分介面 x86 arm指令集 2 cpu基本器件 電晶體 cpu是在特別純淨的矽材料上製造的。乙個cpu晶元包含上百萬個精巧的電晶體。人們在一塊指甲蓋大小的矽片上,用化學的方法蝕刻或光刻出電晶體。電晶...
1 1 雲計算系統管理 雲網路基礎
tcp ip協議簡介 主機 主機之間通訊的三要素 b 位址組成 點分十進位制 i.一共32個二進位制位 ipv4 表示為4個十進位制數,以 隔開 ii.ipv6一共128個二進位制位。現在通常用的是tcp ipv4 版本4 tcp ipv6 版本6 可能也會開始用。ipv4位址總數42億 iii.i...
作業系統管理計算機資源
作業系統作為計算機系統資源的管理者 一 處理機管理 程序管理 因為處理機的分配和執行都以程序為基本單位,所以對處理機的管理可以歸結為對程序的管理 程序管理的主要功能 程序控制 包括程序建立 程序終止 程序的阻塞和喚醒 程序切換 程序同步 主要涉及p,v操作 程序通訊 包括共享儲存 訊息傳遞 管道通訊...