摘" 要:隨著人工智能和大數(shù)據(jù)時代的到來,超大規(guī)模數(shù)據(jù)處理成了一個重要的研究領域。該文主要探討并行計算技術在超大規(guī)模數(shù)據(jù)處理中的應用,首先詳細闡述并行計算和超大規(guī)模數(shù)據(jù)處理的基本理論與概念,特別是并行計算的編程模型與工具,最后通過分析并行計算在搜索引擎、氣象預報和金融分析等中的實際案例,闡述并行計算技術在超大規(guī)模數(shù)據(jù)處理中的實際應用。
關鍵詞:并行計算技術;超大規(guī)模數(shù)據(jù)處理;編程模型與工具;實際案例;具體應用
中圖分類號:TP309" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2024)17-0181-04
Abstract: With the advent of artificial intelligence and big data era, ultra-large-scale data processing has become an important research field. This paper mainly discusses the application of parallel computing technology in ultra-large-scale data processing. Firstly, the basic theories and concepts of parallel computing and ultra-large-scale data processing are described in detail, especially the programming models and tools of parallel computing. Finally, through the analysis of practical cases such as search engine, weather forecast and financial analysis, the practical application of parallel computing technology in ultra-large-scale data processing is described.
Keywords: parallel computing technology; very large-scale data processing; programming models and tools; practical cases; specific applications
隨著自媒體技術、人工智能技術和信息技術的迅猛發(fā)展,各行各業(yè)、各大平臺都在不斷產(chǎn)生大量數(shù)據(jù),這些數(shù)據(jù)的規(guī)模已經(jīng)達到了超大規(guī)模,傳統(tǒng)數(shù)據(jù)處理方法已經(jīng)無法滿足需求。為了高效處理這些超大規(guī)模數(shù)據(jù),就需要采用更為高效的計算方法和技術。而并行計算技術[1]是一種可以同時處理多個計算任務的技術,被廣泛應用于超大規(guī)模數(shù)據(jù)處理中。
在超大規(guī)模數(shù)據(jù)處理中,傳統(tǒng)的序列化算法不僅耗時長,而且在處理海量數(shù)據(jù)時效率也不高。而并行計算技術可以將一個大問題分解為許多小問題,可以將處理時間和計算量分散到許多并行的計算節(jié)點,顯著加速數(shù)據(jù)處理速度。
目前,國內(nèi)外對于并行計算技術在超大規(guī)模數(shù)據(jù)處理中的應用及其性能優(yōu)化已經(jīng)進行了大量的研究。比如,南京航空航天大學梁維泰教授等[2]在《對稱帶狀矩陣的并行Cholesky分解及相應線性方程組的并行計算》一文中提出算法MPLDLT,發(fā)現(xiàn)在YH-1機上通過對實例的計算,當矩陣的階數(shù)僅為1666階時,算法MPLDLT比相應串行算法計算速度快25倍,算法MCSA比相應串行算法計算速度快47倍。此外,中國科學院計算技術研究所開發(fā)的曙光系列超級計算機[3],也采用了最先進的并行計算技術,用于進行超大規(guī)模數(shù)據(jù)分析和計算。
在并行計算技術應用方面,國外研究起步較早,成果豐碩。例如,美國斯坦福大學和美國加州大學伯克利分校合作開發(fā)的BOINC(Berkeley Open Infrastructure for Network Computing)平臺[4],是一個基于網(wǎng)格計算的并行計算平臺,可以用于進行超大規(guī)模數(shù)據(jù)處理和科學計算。此外,美國橡樹嶺國家實驗室開發(fā)的Cray系列超級計算機,采用并行計算技術進行超大規(guī)模數(shù)據(jù)分析和計算。
未來,并行計算技術在超大規(guī)模數(shù)據(jù)處理中的應用及其性能優(yōu)化將繼續(xù)成為研究的熱點和難點。研究將更加注重并行計算的可解釋性和透明度、并行計算的安全性和隱私保護、并行計算的自適應性和靈活性。為了在有限的時間內(nèi)高效地完成處理任務,并行計算技術應運而生。本文主要探討了并行計算技術在超大規(guī)模數(shù)據(jù)處理中的應用。
1" 并行計算技術與超大規(guī)模數(shù)據(jù)處理
1.1" 并行計算技術
并行計算利用多個計算資源(如處理器、計算機或計算集群)并行執(zhí)行計算任務,提高計算效率。使用如消息傳遞接口(MPI)、OpenMP、CUDA等不同編程模型來實現(xiàn)。并行計算的計算模型有很多。PRAM模型[5](Parallel Random Access Machine)就是一種理想的并行計算模型,有多個處理器同時訪問一個共享存儲器時,包括同步PRAM和異步PRAM 2種。另外,用于大規(guī)模數(shù)據(jù)處理的并行計算模型MapReduce模型[6],將計算任務劃分為2個階段:Map階段和Reduce階段。在Map階段,每個處理器都獨立地處理一部分數(shù)據(jù),并將結果寫入一個共享存儲器。在Reduce階段,每個處理器將Map階段處理的結果進行合并和分析總結處理,再得到最終的結果。
1.2" 并行計算的編程模型與工具
并行計算的編程模型與工具也有很多。像提到的并行編程模型MPI,應用非常廣泛,非常適合于分布內(nèi)存的多處理器系統(tǒng),優(yōu)點是靈活性和可移植性,缺點是需要程序員手動管理通信和數(shù)據(jù)傳輸。而使用一組編譯器指令來實現(xiàn)并行化模型OpenMP,這些編譯器指令可以插入到C、C++或Fortran代碼中,優(yōu)點是易于使用和高效,但是不適合于分布內(nèi)存系統(tǒng)。此外,CUDA可以說非常著名,在人工智能領域同樣廣受青睞,機器學習算法模型實現(xiàn)及深度學習模型訓練測試也都有其身影。
再有,開放的并行計算框架OpenCL[7],該計算框架應用相當廣泛,涉及面也很寬,其允許開發(fā)者可以使用不同類型的硬件(如CPU、GPU、FPGA等)進行并行計算。同樣,OpenCL同CUDA一樣,也使用類似于C的語言進行編程,支持多種數(shù)據(jù)類型和算法,并且也提供了豐富的數(shù)學庫和工具包,兩者在性能上有諸多區(qū)別,應用的方向大同小異。
并行計算的變成模型和工具還有Hadoop,其是大數(shù)據(jù)集群不可或缺的一部分,主要基于MapReduce模型進行并行計算,使用Java語言,支持多種數(shù)據(jù)類型和算法,集群包含的工具組件也非常多,比如Flume、Flink等,并且Hadoop提供了豐富的工具和庫。還有Spark[8]分布式計算框架,其是一種基于內(nèi)存計算和優(yōu)化了迭代算法,使用的是Scala語言,支持多種數(shù)據(jù)類型和算法,如機器學習算法決策樹、隨機森林、聚類等都可以通過其實現(xiàn),Spark也提供了如SparkCore、SparkSQL、SparkStreaming、MLlib等非常豐富的工具和庫,其中MLlib就是常用的機器學習算法庫。此外,這些編程模型和工具各有其優(yōu)點和適用范圍,當然,選擇合適的模型和工具取決于具體的應用場景和需求。
1.3" 超大規(guī)模數(shù)據(jù)處理
超大規(guī)模數(shù)據(jù)處理目標是從海量的數(shù)據(jù)中提取有用、關鍵、感興趣、有價值的信息,以解決實際問題或支持決策制定。因此,具有數(shù)據(jù)規(guī)模巨大、處理復雜、數(shù)據(jù)類型多樣、實時性要求高等特點。
超大規(guī)模數(shù)據(jù)處理技術在搜索引擎中,需要將網(wǎng)頁文檔切分為多個小片,并在數(shù)千個處理器上同時進行處理和分析,以實現(xiàn)高效的索引和搜索;在氣象預報中,需要將氣象數(shù)據(jù)分割為多個區(qū)域,并在數(shù)百個處理器上同時進行處理和分析,以快速地生成氣象預報;在金融分析中,需要將數(shù)據(jù)分割為多個部分,并在多個處理器上同時進行處理和分析,以實現(xiàn)準確的投資決策和風險管理。
然而,面臨挑戰(zhàn)也是必然的。首先,海量的數(shù)據(jù)量本身就是一種挑戰(zhàn),需要解決數(shù)據(jù)存儲、計算成本和管理等問題。其次,數(shù)據(jù)的復雜性和多樣性也需要考慮,這需要開發(fā)更加先進的數(shù)據(jù)處理和分析方法。此外,數(shù)據(jù)的實時性和安全性也是需要考慮的問題,現(xiàn)如今已經(jīng)有很多相關的技術來解決此類問題,比如,本文闡述的并行計算技術和超大規(guī)模數(shù)據(jù)處理技術,大算力、大模型、大數(shù)據(jù)都是為了解決這些問題做準備的。
總的來說,超大規(guī)模數(shù)據(jù)處理是一項非常重要及關鍵核心的技術,在現(xiàn)代社會中得到了廣泛的應用,并為企業(yè)和組織提供了巨大的商業(yè)價值和社會價值。比如,智能推薦、大數(shù)據(jù)分析、用戶畫像刻畫和用戶行為分析等。而且,超大規(guī)模數(shù)據(jù)的處理與分析需要使用高效、可靠的并行計算技術和算法進行處理,以提高數(shù)據(jù)處理的速度和效率。
2" 實際案例分析
本文通過一些具體案例闡述并行計算在超大規(guī)模數(shù)據(jù)處理中的應用。
2.1" 搜索引擎
搜索引擎(圖1)是一個典型的超大規(guī)模數(shù)據(jù)處理應用場景,其需要處理海量的網(wǎng)頁文檔和用戶查詢請求。為了快速響應用戶查詢請求并返回相關結果,搜索引擎采用了并行計算技術對網(wǎng)頁文檔進行索引和搜索。具體來說,搜索引擎利用并行計算技術進行大規(guī)模數(shù)據(jù)處理主要體現(xiàn)在以下幾個方面。
1)數(shù)據(jù)預處理。搜索引擎將原始網(wǎng)頁數(shù)據(jù)進行清洗、去重、索引和異常值檢測等預處理操作。具體做法:分析網(wǎng)頁文件的HTML代碼中的各個元素,去除標簽、程序等元素,提取出可以用于網(wǎng)頁排名的文字內(nèi)容。將抓取到的頁面中的文字提取出來后,對文字進行拆分重組。根據(jù)頁面被指向鏈接的數(shù)量,以及頁面內(nèi)容的原創(chuàng)性來進行綜合判斷,從而計算出頁面的重要程度。
2)索引構建。將預處理后的網(wǎng)頁數(shù)據(jù)構建成索引,建立關鍵詞和頁面之間的對應關系,以便于用戶可以通過關鍵詞搜索快速找到相關的網(wǎng)頁。索引構建是搜索引擎的核心技術之一,采用并行計算技術可以提高索引的構建速度和處理能力。
3)搜索查詢處理。當用戶輸入查詢請求時,搜索引擎需要快速處理查詢請求,并在索引中查找相關的網(wǎng)頁。為了提高查詢速度和處理效率,搜索引擎采用并行計算技術對查詢請求進行處理和優(yōu)化。
4)并行搜索。為了提高搜索速度和響應時間,搜索引擎采用并行搜索技術對多個查詢請求同時進行處理。這種技術利用多個處理器同時進行搜索計算,從而實現(xiàn)高效的并行搜索。在搜索引擎中采用并行計算技術可以大幅提高搜索速度和響應時間,但是也存在一些挑戰(zhàn)和技術難點。比如,如何進行數(shù)據(jù)分割和任務調度,如何保證搜索結果的準確性和一致性等等。這些還都需要更為深入的研究和探索。
2.2" 氣象預報
氣象預報是一種涉及大量數(shù)據(jù)的場景,需要對氣象數(shù)據(jù)進行快速處理和分析以生成氣象預報結果。氣象預報采用了并行計算技術來提高處理效率和分析精度。具體來說,氣象預報利用并行計算技術進行大規(guī)模數(shù)據(jù)處理主要體現(xiàn)在以下幾個方面。
1)數(shù)據(jù)收集和處理。氣象預報處理包括氣象觀測數(shù)據(jù)、衛(wèi)星數(shù)據(jù)、氣象模型數(shù)據(jù)等,其從中國氣象共享網(wǎng)站獲取。將收集到的數(shù)據(jù)進行預處理、數(shù)據(jù)糾錯,保證數(shù)據(jù)的可靠性和準確性,可采用機器學習技術中的特征工程和數(shù)據(jù)清洗方法,或者大數(shù)據(jù)技術中的數(shù)據(jù)預處理技術。但是,使用本文提出的超大規(guī)模數(shù)據(jù)處理中的并行計算技術完全可以加快數(shù)據(jù)預處理的速度和效率。
2)數(shù)據(jù)分析和預測。在傳統(tǒng)的方法中,氣象預報通常采用串行算法進行計算,這往往會受到數(shù)據(jù)規(guī)模大、計算時間長、精度不足等問題的影響。使用并行計算技術分割任務,將其分割成多個區(qū)域利用Hadoop集群進行數(shù)據(jù)計算、分析和預測,以提高計算效率和準確性。
3)并行計算模型。氣象預報中常用的并行計算模型包括網(wǎng)格計算、集群計算、分布式計算等。例如,網(wǎng)格計算可以將全球氣象數(shù)據(jù)分割成多個網(wǎng)格進行并行計算,提高計算速度和效率。此外,基于高性能計算(HPC)和并行計算原理,進行任務分解,然后計算節(jié)點分配實際情況,各任務實行并行計算方法,也就是每個計算節(jié)點獨立處理一部分數(shù)據(jù),并通過高速網(wǎng)絡進行數(shù)據(jù)交換和協(xié)同計算。
4)并行算法優(yōu)化。為了更好地利用并行計算技術,氣象預報還需要對并行算法進行優(yōu)化。這包括數(shù)據(jù)分割策略的優(yōu)化、任務調度策略的優(yōu)化、通信開銷的優(yōu)化等。通過對這些方面進行優(yōu)化,進一步提高氣象預報的計算效率和準確性。
2.3" 金融分析
金融分析是一種涉及大量數(shù)據(jù)的場景,需要對數(shù)據(jù)進行處理和分析以支持投資決策和風險管理。金融分析同樣可以采用并行計算技術來提高處理效率和分析精度。具體來說,金融分析將數(shù)據(jù)分割為多個部分,并在多個處理器上同時進行處理和分析,這恰好就是本文所提出的觀點。此外,金融分析還采用了基于輪轉法的任務調度策略對任務進行調度以進一步提高處理效率和分析精度,具體來說,金融分析利用并行計算技術進行大規(guī)模數(shù)據(jù)處理主要體現(xiàn)在以下幾個方面。
1)數(shù)據(jù)存儲和處理。金融分析需要處理包括股票價格數(shù)據(jù)、市場行情數(shù)據(jù)、公司財務數(shù)據(jù)等等。金融分析特別注重數(shù)據(jù)質量、時間序列和隱私安全問題,所以存儲采用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫技術,還會用到云存儲技術來處理海量數(shù)據(jù),對于缺失數(shù)據(jù)、異常值、噪聲等問題,利用工具進行去重、檢驗和消除,包括數(shù)據(jù)歸一化、標準化、特征編碼等處理方法,特別是使用并行計算技術,可以提高數(shù)據(jù)存儲和處理的效率。
2)數(shù)據(jù)分析和挖掘。金融分析和挖掘,使用并行計算技術將大規(guī)模數(shù)據(jù)分割成多個部分進行并行處理和分析,利用已經(jīng)處理好的數(shù)據(jù),提取特征、設立目標標簽,選擇合適的機器學習算法模型,比如,回歸模型用來輔助做趨勢預測,神經(jīng)網(wǎng)絡系列模型輔助進行分類預測,提高分析效率和分析精度。
3)模型構建和優(yōu)化。金融分析可構建各種模型對數(shù)據(jù)進行處理和分析,比如股票價格預測模型、風險管理模型等等,使用并行計算技術對模型進行并行處理和評估,提高模型的效率和準確性。
4)并行算法優(yōu)化。為了更好地利用并行計算技術,金融分析還需要對并行算法進行優(yōu)化。這同樣也包括數(shù)據(jù)分割策略的優(yōu)化、任務調度策略的優(yōu)化、通信開銷的優(yōu)化等。通過對這些方面進行優(yōu)化,提高金融分析的計算效率和準確性。
3" 面臨的挑戰(zhàn)與未來的發(fā)展方向
并行計算技術在超大規(guī)模數(shù)據(jù)處理中應用廣泛,但仍面臨一些挑戰(zhàn)和發(fā)展方向。首先是數(shù)據(jù)存儲和訪問問題。海量的數(shù)據(jù)需要高效地存儲和讀取,如何設計更為優(yōu)化的數(shù)據(jù)存儲和訪問策略,以減少存儲和訪問的開銷,提高計算效率,是亟待解決的重要問題。
其次,并行算法的設計和優(yōu)化問題。針對不同類型的數(shù)據(jù)和計算任務,需要設計更為高效和穩(wěn)定的并行算法,以滿足實際應用的需求。同時,還需要進一步優(yōu)化并行算法的性能,提高計算效率。
再者,系統(tǒng)性能的優(yōu)化問題。并行計算技術需要處理海量的數(shù)據(jù),如何提高系統(tǒng)的性能,減少計算任務的等待時間,是并行計算技術的重要挑戰(zhàn)。需要進一步研究和優(yōu)化并行計算系統(tǒng)的性能,提高計算效率。
還有,數(shù)據(jù)安全和隱私保護。隨著數(shù)據(jù)量的不斷增加,數(shù)據(jù)安全和隱私保護問題越來越突出。如何在實現(xiàn)數(shù)據(jù)高效處理的同時,保障數(shù)據(jù)的安全和隱私,是并行計算技術需要考慮的重要問題。
最后,適應性并行計算技術的研究方面。針對不同類型的數(shù)據(jù)和計算任務,需要研究更為智能和自適應的并行計算技術,以自動識別數(shù)據(jù)特征和計算任務類型,自動選擇合適的并行算法和策略,提高計算效率和穩(wěn)定性。
總的來說,并行計算技術在超大規(guī)模數(shù)據(jù)處理中具有重要的應用價值和前景。未來需要不斷加強研究和探索,解決面臨的挑戰(zhàn),提高并行計算技術的效率和穩(wěn)定性,以更好地滿足實際應用的需求。
4" 總結與展望
本文主要研究了并行計算技術在超大規(guī)模數(shù)據(jù)處理中的應用,通過詳細描述并行計算和超大規(guī)模數(shù)據(jù)處理的理論知識理清思路。通過對3個實際案例的處理過程的深入分析,闡述了并行計算技術在超大規(guī)模數(shù)據(jù)處理中的實際應用,并指出了現(xiàn)如今還面臨的挑戰(zhàn),最后指明了未來的發(fā)展方向。
參考文獻:
[1] BISCHOF C H, H. MARTIN B CKER, GIBBON P, et al.Parallel Computing: Architectures, Algorithms and Applications, ParCo 2007, Forschungszentrum Jülich and RWTH Aachen University, Germany, 4-7 September 2007[J]." 2008.
[2] 梁維泰,周樹荃.對稱帶狀矩陣的并行Cholesky分解及相應線性方程組的并行計算[J].南京航空航天大學學報,1991(2):133-138.
[3] 歷軍.中國超算產(chǎn)業(yè)的發(fā)展現(xiàn)狀與展望[J].中國科學院院刊,2015,30(1):16-23,15.
[4] RIES C B, HILBIG T, SCHRNDER C. A modeling language approach for the abstraction of the Berkeley Open Infrastructure for Network Computing (BOINC) framework[C]//International Multiconference on Computer Science amp; Information Technology.IEEE, 2010.
[5] 賀成,施華君.基于PRAM并行模型最大值查找的方法與改進[J].計算機系統(tǒng)應用,2019,28(10):138-144.
[6] ZAHARIA M, CHOWDHURY M, FRANKLIN M J, et al.Spark: Cluster computing with working sets[C]//IEEE International Conference on Cloud Computing Technology and Science.USENIX Association,2010.
[7] 王陽.基于OpenCL的AES算法并行化研究[J].自動化應用,2023,64(14):241-244,247.
[8] 蘇立偉,劉振華,杜禮鋒,等.基于GPU+Spark的電力大數(shù)據(jù)分析算法[J].沈陽工業(yè)大學學報,2023,45(4):371-375.