

摘要:在長期分析研究高密度數據處理項目作業運行特點的基礎上,歸納常規處理和偏移處理兩大類應用下,不同處理方法實現模塊的資源需求特點及處理員的作業模式,優化組合集群計算、存儲、網絡三元素技術發展路線及產品性能參數,搭建了硬件架構上適用于地震勘探處理應用的高性能GPU計算集群系統。綜合應用鏡像管理、多種子點分發等多種集群管理及作業調度技術,實現異構集群統一管理及監控,實現油田高性能計算資源共享,高效提升處理生產大規模計算能力,實現綠色高效體系建設。
關鍵詞:高性能計算;GPU;XCAT;集群管理
一、前言
地震勘探處理集群是指利用高性能計算(HPC)和并行處理技術,通過集群計算機系統對地震數據進行高效處理的技術體系。集群技術被廣泛應用于地震數據的疊前時間偏移、深度偏移、層析反演等關鍵處理環節,在地震勘探中發揮重要作用,能夠顯著提升地震數據處理的速度和精度,從而支持更復雜、更精細的地質解釋和資源勘探。
基于高密度地震采集數據量和地震資料處理計算量呈幾何級數增長,偏移處理等大規模并行計算的資源需求越來越龐大,本企業勘探處理集群自2012年投產以來已高效運行數年。現有舊的大規模CPU、GPU集群組合架構已無法適應復雜地質目標研究需求及高密度數據和高精度成像數據處理工作。如何在異構計算架構中打造高效、高性能計算集群運行平臺,優化處理大規模并行計算任務,實現高效的資源調度和管理是下一步的工作目標。本次重點探討GPU集群搭建及實施應用體系建設。
GPU集群是一種由多個圖形處理單元(GPU)組成的高性能計算系統,廣泛應用于科學計算、深度學習、圖形渲染、數據分析等領域[1]。它有強大的并行計算能力,通過多個GPU的協同工作,能夠顯著提升計算效率和處理能力,使其特別適合處理大規模并行計算任務。同時通過GPU集群運行的深度學習模型可以大幅提高訓練效率,同時支持更復雜的模型和更大的數據集。GPU集群在圖形渲染和視頻處理中具有顯著優勢,能夠快速生成高質量的圖像和視頻內容,在地震地質解釋圖形、3D建模和虛擬現實等領域尤為重要。GPU集群憑借強大的并行計算能力、高效的資源利用和廣泛的應用場景,在現代高性能計算領域中發揮著至關重要的作用。
隨著計算機技術迅速發展,技術路線各異,實現產品眾多。新技術、新產品引進得當與否決定了集群的實際生產效能。GPU集群搭建是一個復雜且多方面的任務,涉及硬件選擇、網絡配置、軟件部署以及管理等多個方面。它通過高性能計算、并行處理、人工智能和三維可視化等先進技術,大幅提升了地震數據處理的速度和精度。
綜上,搭建GPU集群是一項需要綜合考慮硬件、軟件、網絡和成本的復雜工程。通過合理規劃和選擇合適的配置,可以有效提升計算能力和效率,滿足深度學習、科學計算和大規模數據處理的需求。
二、集群構成
高性能集群(High-Performance Computing,HPC)的構成要素主要包括硬件、軟件和管理三大部分,其核心目標是通過多臺計算機協同工作,提供高效的計算能力、高可擴展性和高可靠性。
(一)集群計算節點
集群計算節點是指在高性能計算集群中,通過高速網絡連接的獨立計算機節點,它們共同協作完成大規模計算任務[2]。這些節點可以是CPU節點、GPU節點或其他類型的計算資源。CPU節點用于處理通用計算任務,GPU節點用于加速深度學習、科學計算等并行計算任務,存儲節點提供共享存儲資源,用于存儲數據和結果。每個計算節點通常包含處理器、內存和存儲設備,通過高速互聯網絡連接,以實現高效的數據傳輸和任務分配,負責執行具體的計算任務,如數值模擬、數據處理等。集群計算節點是高性能計算系統的核心,通過合理的硬件配置和動態管理,能夠高效地完成大規模計算任務,如圖1所示。
在集群環境中,計算節點通常通過以下流程完成任務:用戶通過登錄節點提交作業;管理節點接收作業請求,并將其分配到合適的計算節點;計算節點讀取存儲節點上的數據,執行計算任務;計算結果返回存儲節點或直接返回給用戶。
集群計算節點相比單機計算具有顯著優勢:
性能提升:通過多節點協同工作,顯著提高計算速度。
擴展性:可以根據需求動態擴展計算資源。
容錯能力:通過冗余設計,提高系統的穩定性和可靠性。
為保障處理集群長期穩定提供高效服務,項目組長期跟蹤研究集群技術發展和地震資料處理方法新進展,越來越多的工作負載需要利用加速器性能,對GPU密度的需求也隨之增加。歷經多年集群產品選型和應用效果評估,計算處理節點本方案選定聯想SR670服務器,聯想ThinkSystem SR670能為人工智能(AI)和高性能計算(HPC)工作負載提供最佳性能,同時維持較低的總擁有成本(TCO)。SR670每個2U節點可容納四個雙寬或八個單寬GPU,可滿足機器學習(ML)和深度學習(DL)或計算密集型工作負載需求。圖形解釋服務器采用聯想SR860服務器,SR860可以支持從業務整頓到數據虛擬化、數據分析和科學/技術在內的廣泛工作負載。此外,SR860支持大量超快內存、存儲和適配器插槽以及多個NIC外形,甚至是兩個GPU。靈活適應各種工作負載,許多類型的工作負載可以受益于GPU加速的計算。數以千計的處理解內核和并行架構使GPU非常適合計算密集型應用,如機器學習、人工智能、分析、3D建橫和曾經需要超計算機的其他應用。
(二)集群軟件及數據庫節點
集群軟件主要用于管理和監控集群中的節點狀態,以及調度資源以保證系統的高可用性和性能[3]。數據庫節點在不同系統中具有不同的角色和功能,包括數據節點(Data Node)負責存儲數據并執行數據操作;SQL節點(SQL Node)負責提供SQL接口,處理SQL查詢并返回結果;元數據節點(Meta Node)負責維護集群的元數據信息,如角色分配、配置管理等;協調節點(gcluster節點)在GBase中,負責解析和執行計劃。存儲技術方面需要選型擴展性好、性價比高、基于開源文件系統的X86通用服務器構建的分布式存儲系統,用以滿足勘探處理集群海量數據存儲需求。
軟件及數據庫節點采用了ThinkSystem SR670服務器,每臺計算節點配置了2個Intel Xeon Gold 6242R處理器(20核,3.1GHz)、24根16GB ECC DDR4 2Rank內存、2塊960G企業級SSD硬盤做RAID1用于安裝操作系統,2塊1.92TB企業級SSD硬盤用于存儲數據。軟件及數據庫節點的硬盤RAID1,1+1冗余電源等冗余特性保障了軟件及數據庫節點的可靠性。
集群軟件及數據庫節點的設計目標是提高系統的可靠性和可擴展性。通過合理的架構設計(如主從備份、負載均衡、一致性機制),可以有效應對大規模數據處理需求[4]。同時,不同系統中的節點類型(如數據節點、元數據節點、協調節點等)承擔不同的職責,共同協作以實現集群的高效運行。
(三)集群網絡
高性能集群網絡(High-Performance Computing Cluster Network)是高性能計算(HPC)的核心組成部分,其主要目的是通過高速網絡連接多個計算節點,以實現大規模并行計算任務的高效處理。高性能集群網絡搭建需要從需求分析到硬件選型、網絡規劃、軟件配置、集群部署、性能優化以及安全防護等多個方面綜合考慮。通過科學合理的規劃和實施,可以構建出高效、可靠的高性能計算平臺。
針對海量地震數據處理,存儲系統和網絡交換設備也不同于通用集群,通常采用專為高性能計算設計的高速互連技術,如InfiniBand、RDMA(遠程直接內存訪問)和100Gbps以上的高速以太網等,以確保節點間通信的高帶寬和低延遲。Inifiniband網絡能夠提供更高的網絡傳輸速率和更短的網絡延時,但受限于目前主流勘探處理軟件均未使用其最重要的兩個特性技術(RDMA、GPUdirect),處理集群網絡引入IB交換設備除了導致更加復雜的網絡架構以外無法獲取IB的特性技術優勢,故現階段勘探處理集群網絡采用了單一的以太網絡設備。本方案采用了思科Nexus C9336C-FX2數據中心交換機,搭建100GE高速計算數據網絡,它支持7.2 Tbps帶寬和2.8bpps以上的吞吐量,集群中的GPU節點使用100GbE網絡進行并行計算,使用管理網絡進行操作系統管理、信任關系配置、目錄共享等,實現了計算節點間的高速通信和數據的高效傳輸。
(四)集群管理
集群管理是一個復雜且多方面的領域,涉及對多個計算節點或設備的協調、調度、監控和維護,其目標是通過高效的資源調度、實時監控和容錯的機制確保了集群的穩定運行和性能優化。無論是基于Agent的傳統方式還是現代的自動化工具,集群管理都需要根據具體需求進行定制化設計和實施。集群管理的核心任務是確保資源分配、負載均衡、監控、故障恢復以及性能優化等集群高效、穩定地運行。具體包括:
資源調度:將任務合理分配到不同的節點上,優化資源利用率,實現負載均衡。
監控與日志記錄:實時監控集群運行狀態,包括節點健康狀況、資源使用情況等,并記錄日志以便后續分析。
故障恢復與容錯:通過冗余設計和自動故障切換機制,確保集群在發生故障時能夠快速恢復。
安全與訪問控制:保護集群免受未授權訪問,同時確保數據的安全性和完整性。
GPU集群在異構計算架構中實現高效的資源調度和管理,主要依賴于多種技術手段和策略,包括資源池化、細粒度調度、自動化管理工具以及異構資源的統一管理。異構計算架構通常包含CPU、GPU等多種計算資源,這些資源需要通過統一的管理平臺進行調度和優化。在節點部署上,綜合應用系統鏡像管理技術、多種子點分發技術、配置文件批量修改等技術,建立了地震勘探處理應用軟件平臺快速部署系統。
XCAT是一種開源的集群管理和配置工具,主要用于大規模計算機集群的自動化部署、擴展和管理。支持多種操作系統和硬件平臺,適用于高性能計算(HPC)、云計算、大數據分析等領域。通過XCAT,簡化了集群管理流程,減少手動配置的時間和錯誤。同時利用監控工具實時監控集群狀態,及時發現和解決問題,實現從創建到監控的全過程自動化管理,既滿足1套處理集群復用不同處理應用軟件的需求,也滿足油氣勘探高精度成像對比研究的科研、生產需求。
三、性能評估(測試)
應用軟件運行環境約束條件下,在高性能LINPACK(HPL)測試、理論浮點峰值(Rpeak)、組網測試3個關鍵性能測試上領先國內石油行業。
(一)驗證測試條件
在所有計算節點上執行which mpirun命令,查看是否存在該命令。mpirun命令為英特爾Parallel Studio XE安裝目錄(本例中為/opt/intel)的子目錄。若無錯誤輸出,運行以下命令進行英特爾Parallel Studio環境設置。
source /opt/intel/bin/iccvars.sh intel64
source /opt/intel/impi/2019.1.144/intel64/bin/mpivars.sh intel64 source /opt/intel/bin/compilervars.sh intel64
(二)運行測試腳本
進入配置腳本所在目錄,執行./run_1_node_dgx1_v100x4命令。
# cd /softs/xhpl_cuda
# ./run_1_node_dgx1_v100x4
理論浮點峰值是該計算機理論上能達到的、每秒鐘能完成浮點計算的最大次數,主要由CPU本身規格和CPU數量決定:Rpeak = CPU主頻(標準頻率)×CPU每個時鐘周期執行浮點運算的次數×系統中CPU的總核數,以配置2顆2.8GHz的10核Intel E5-2680 v3 CPU為例,理論浮點峰值計算如下:2.8×20×16=896GFLOPS,抽取5個節點測試結果,見表1。
四、結語
后期針對集群“好建難用”的業界難題,以用戶需求為導向,借鑒IT服務管理,結合集群運維技術和協同管理平臺技術,圍繞處理員和系統管理員,以知識管理為核心建立了適用于地震勘探處理解釋工作環境的集群運維體系,保障處理集群高效穩定運行。
通過研究TB級數據遠程傳輸模式、遠程三維圖像顯示技術、集群隊列管理和作業分發技術、容器和虛擬機技術、NIS+用戶管理體系等云計算管理技術,從“云—邊—端”三元素入手,在保障勘探處理工作順利開展的前提下,吸收融合尖端計算機技術發展成果,繼續探索勘探處理集群向科學計算云平穩高效融合的道路,提出的科學計算云“多中心分布”建設模式,將勘探處理集群有序融入科學計算云,進一步推動油田高性能計算、存儲資源科學計算云體系建設項目發展。
參考文獻
[1]Rajkumar Buyya.高性能集群計算: 第二卷[M].北京:電子工業出版社,2001.
[2]陳云霽.智能計算系統[M].北京:機械工業出版社,2020.
[3]Alex Vrenios. Linux集群體系結構[M].北京:機械工業出版社,2003.
[4]黃傳河.計算機網絡應用設計[M].武漢:武漢大學出版社,2004.
作者單位:新疆油田公司勘探開發研究院地球物理研究所
責任編輯:王穎振 鄭凱津