汪澤宇
(三亞學(xué)院 海南 三亞 572022)
隨著計算機領(lǐng)域的不斷發(fā)展,近年來計算機已經(jīng)深入居民生活的各個領(lǐng)域,加之物聯(lián)網(wǎng)和移動應(yīng)用的普及,人們?nèi)粘I钪袝a(chǎn)生各類各樣的數(shù)據(jù)[1]。自2019年以來,國家推行工業(yè)互聯(lián)網(wǎng)平臺建設(shè),生產(chǎn)制造企業(yè)各個自動化設(shè)備均在實現(xiàn)互聯(lián)互通,為了實現(xiàn)設(shè)備的健康管理等,每日需要采集海量設(shè)備和生產(chǎn)相關(guān)數(shù)據(jù)[2]。以某一企業(yè)為例,其設(shè)備數(shù)據(jù)每日產(chǎn)生的量級已經(jīng)達到TB級別,可以稱之為大數(shù)據(jù)。如何實現(xiàn)對大數(shù)據(jù)的深入挖掘,完成基于大數(shù)據(jù)處理的規(guī)則識別,為方向決策提供數(shù)據(jù)支撐是當(dāng)今大數(shù)據(jù)應(yīng)用中的重要環(huán)節(jié)[3]。
盡管現(xiàn)如今能夠相對較容易地獲取形式多樣的數(shù)據(jù),但是從數(shù)據(jù)量角度而言,與大數(shù)據(jù)相比較仍然差距很大。在開發(fā)過程中,僅僅借助傳統(tǒng)的方式從海量數(shù)據(jù)中得到對自身有價值的數(shù)據(jù)是非常不現(xiàn)實的[4]。對于海量大數(shù)據(jù)的分析,是未來發(fā)展的主要方向。使用大數(shù)據(jù)分析技術(shù),可以協(xié)助人類快速發(fā)現(xiàn)事物的常規(guī),為正確把握事物發(fā)展方向,滿足自身利益做準(zhǔn)備[5]。為了得到大數(shù)據(jù)更好的處理效果,開發(fā)過程中一般采用并行計算的方式,并行計算是以計算模型為載體的,計算性能的優(yōu)劣取決于模型搭建的優(yōu)劣,因此需要對計算模型進行深入研究和分析,對模型進行不斷的優(yōu)化,提升大數(shù)據(jù)處理過程中的效率,使人們可以充分享受大數(shù)據(jù)為人們生活和工業(yè)生產(chǎn)帶來的便利。
模型算法是并行計算的核心,其載體是數(shù)據(jù),數(shù)據(jù)的存儲是關(guān)鍵。隨著大數(shù)據(jù)的不斷發(fā)展,存儲的日益嚴(yán)峻性已經(jīng)變得非常突出。目前,國內(nèi)計算機產(chǎn)業(yè)結(jié)構(gòu)的發(fā)展是存儲和數(shù)據(jù)處理分離的局面,近年來數(shù)據(jù)處理技術(shù)在以每年9%的速度飛速發(fā)展,但存儲技術(shù)的發(fā)展停滯不前,目前存儲和數(shù)據(jù)處理之間已經(jīng)存在近50%的差距。兩者之間的差距仍然在不斷拉大,因此未來在進行大數(shù)據(jù)處理計算模型研究時,存儲性能的研究將會是重點方向。
隨著計算機原理的不斷發(fā)展,僅僅依靠單核技術(shù)已經(jīng)無法滿足大數(shù)據(jù)的處理效率。目前,多核技術(shù)已經(jīng)成為主流方向。多核技術(shù)是將多個內(nèi)核同時集成在一個處理器內(nèi)部,每個內(nèi)核分別完成不同的計算任務(wù),這便使得每個CPU均可完成多個計算任務(wù)。對于多核計算機,其計算密度比較高,并且并行處理能力非常強,在相同的狀態(tài)下所使用的功率更加低,能夠滿足實際的需求。
現(xiàn)如今,異構(gòu)眾核集成技術(shù)已經(jīng)在并行計算模型中使用十分普遍。通常,模型都使用CPU和MIC相結(jié)合的方式,其中涉及到計算邏輯比較復(fù)雜的部分CPU處理,針對于密集運算則是有兩種方式共同負(fù)責(zé)完成,然而密集運算的典型特征為分支比較少并且并行程度較高,此種架構(gòu)為超級計算機的發(fā)展奠定了基礎(chǔ)條件。
服務(wù)器技術(shù)逐步向著集群化方向發(fā)展,其價格更加便宜?,F(xiàn)如今各個互聯(lián)網(wǎng)公司和網(wǎng)絡(luò)運營企業(yè)在進行系統(tǒng)硬件選擇時,選擇大規(guī)模服務(wù)廉價集群系統(tǒng)。此種集群服務(wù)的最大特點是可以自動地將故障狀態(tài)切換為常態(tài),其主要原理是如果集群中的一部分發(fā)生故障,不會影響系統(tǒng)的整體性能。另外,此集群可以支撐硬件擴容,或者在系統(tǒng)中增加資源存儲,或者直接加入新機器便可實現(xiàn)異構(gòu)硬件的擴展。系統(tǒng)可以根據(jù)實際情況,對資源或者機器進行自動的調(diào)用,此過程不會對系統(tǒng)產(chǎn)生額外影響。
隨著計算機編程技術(shù)的不斷發(fā)展,大數(shù)據(jù)處理計算模型已經(jīng)得到了不錯的發(fā)展,模型主要被應(yīng)用在數(shù)據(jù)的分析和處理中,但現(xiàn)如今對于并行計算的模型研究并不多,急需解決的問題如下:
(1)對于成本函數(shù)和機器參數(shù)的研究需要深入。兩個重要的要素可以作為模型是否成熟的標(biāo)志,其一是機器參數(shù),包含CPU和節(jié)點規(guī)模信息,其二是成本函數(shù),是代表機器參數(shù)的函數(shù)。對以上兩個要素進行深入研究,才可以對并行計算模型的發(fā)展提供豐富的依據(jù)。
(2)盡管現(xiàn)如今采用大數(shù)據(jù)編程模型大幅提升了計算機的計算性能,能夠為系統(tǒng)資源提供橫向擴展支撐,另外程序中還攜帶容錯方法,如果出現(xiàn)節(jié)點時效等情況可以及時進行處理,盡管這種方式在某種程度上提高了系統(tǒng)的應(yīng)對能力,但編程的擴展性和容錯機制僅僅是針對某一個具體的案例進行描述的,所以并不存在統(tǒng)一的模型標(biāo)準(zhǔn)。所以大數(shù)據(jù)處理的并行計算模型需要對擴展性和容錯機制進行標(biāo)準(zhǔn)化定義,使用統(tǒng)一的標(biāo)準(zhǔn)進行能力判別。
(3)大數(shù)據(jù)處理的效率影響因素眾多,例如并行的級別、系統(tǒng)的通訊和存儲問題,現(xiàn)如今所知的性能優(yōu)化大多是對于某一個框架或者一個模型來講的,不存在完整統(tǒng)一的理論,但是面向大數(shù)據(jù)處理的并行計算模型便需要解決此問題,采用統(tǒng)一的優(yōu)化機制,制定能夠面向所有模型的算法。
此模型是以BPS為基礎(chǔ)生成的,且分三層。第一是D-layer層,即數(shù)據(jù)層,整個系統(tǒng)的結(jié)構(gòu)呈現(xiàn)出分布式,在各個數(shù)據(jù)節(jié)點上可以進行數(shù)據(jù)的存儲。第二層是O-layer層,即計算層,例如q作為計算機的某個階段,那么此階段內(nèi)的所有節(jié)點便會同時進行單獨的運算工作,各個節(jié)點都僅僅需要處理本節(jié)點所需要處理的數(shù)據(jù),節(jié)點的數(shù)據(jù)中不僅僅包含最初的輸入數(shù)據(jù),還包括計算值生成的中間數(shù)據(jù),這樣便可以進行并行運算,從而將得到的中間結(jié)果存儲在運算模型中。第三是通信層,在此層內(nèi),通信操作子會自動進行模型消息的傳遞,在傳遞過程中遵循點對點的原則,因為此階段中所有節(jié)點計算均可以產(chǎn)生一個中間結(jié)果,在通信操作子的作用下,一系列計算結(jié)果便會被傳遞到下一個階段,即上階段的輸出結(jié)果會被當(dāng)作下一階段的輸入數(shù)據(jù),如果不存在下一個階段,則最終輸出的數(shù)據(jù)便作為最終結(jié)果存儲在計算機中。對p-DOT模型的優(yōu)化方法可以從以下三個層次進行。
(1)D-Iayer層 為了提升系統(tǒng)的容錯機制,在系統(tǒng)運行過程中需要對數(shù)據(jù)進行備份操作。由于操作人員出現(xiàn)備份失誤或者系統(tǒng)本身出現(xiàn)恢復(fù)問題,系統(tǒng)運行過程中隨時會出現(xiàn)數(shù)據(jù)大批量丟失的現(xiàn)象。一般的備份會存在三份,每份數(shù)據(jù)都存在不同的場所中,如果數(shù)據(jù)層出現(xiàn)問題便使用備份數(shù)據(jù)進行恢復(fù),對于備份數(shù)據(jù)使用如下數(shù)據(jù)存儲結(jié)構(gòu),在對數(shù)據(jù)塊進行存儲時,每個數(shù)據(jù)庫的復(fù)本僅可以存儲在其相應(yīng)的數(shù)據(jù)塊節(jié)點中,另外若集群系統(tǒng)中的數(shù)目不多,某個機器便能夠完成該數(shù)據(jù)塊的一個及其以上復(fù)本的存儲。根據(jù)此種數(shù)據(jù)存儲策略可知,數(shù)據(jù)的復(fù)本的存儲方式和原有數(shù)據(jù)的存儲方式是相同的,數(shù)據(jù)節(jié)點是核心,并且按照分散性存儲的方式展現(xiàn),
(2)O-Layer層 此層主要負(fù)責(zé)任務(wù)的處理,為了提升計算機的性能,近年來逐漸采用多核技術(shù),系統(tǒng)的并行處理水平得到大幅增強,其計算密度也得到很大的提升,對其硬件資源的使用效率也得到大幅提高。傳統(tǒng)的并行計算模型一般是采用并行通信的方式進行,在對O-Layer層完成優(yōu)化以后,主要采用線程控制實現(xiàn)通信。優(yōu)化后,在維持通信開銷穩(wěn)定的情況下,計算性能得到大幅提升。
(3)T-l ayer層 模型的不斷迭代更新是每個算法的核心問題,對于分布式的平臺來講,進行一次迭代便需要一次全局范圍內(nèi)的通信,然而此種情況又比較多,另外模型中存在大量的權(quán)重和唯一參數(shù)。以卷積神經(jīng)網(wǎng)絡(luò)模型為例,其迭代次數(shù)在45萬次上下,占用系統(tǒng)通信開銷非常大。
隨著大數(shù)據(jù)及其分析技術(shù)的不斷發(fā)展,采用并行機制進行大數(shù)據(jù)處理已經(jīng)成為當(dāng)今時代發(fā)展的大趨勢。模型是并行處理數(shù)據(jù)的核心,模型可以按照層級的方式進行優(yōu)化,模型的優(yōu)化是提升大數(shù)據(jù)處理效率的核心所在。本文以p-DOT模型為例,研究了其內(nèi)部三個層次的模型算法優(yōu)化方法。