莫 理,柳本林,張樹保,羅 勇,劉代國
(1.西部檢修試驗分公司自動化檢修部,貴州 興義 562400;2.西部檢修試驗分公司生產技術部,貴州 興義 562400)
高擴展性的水電廠光纖測溫系統能夠處理海量數據流,高效分析水電廠光纖測溫數據,為水電廠光纖供電提供指導。
文獻[1]將系統可擴展性的優化問題轉換為全局通信開銷優化問題;利用迭代求解算法,實現系統并行擴展性。該方法的剖分結果不準確,導致系統并行擴展性較差。文獻[2]采用IP 溯源技術建立具有高擴展性的求解架構,動態確定溯源輕量。該方法未有效設計系統服務模塊,導致系統問題擴展性較差。基于以上理論,設計基于分布式K-means 算法的水電廠光纖測溫系統。根據實際可擴展加速比,優化系統可擴展性,提高水電廠的供電經濟效益。
1.1.1 計算系統通信可擴展加速比
系統執行程序時產生的通信開銷稱為真實情況[3]。假設程序執行的所有通信開銷為0,將其稱作理想情況。程序在真實情況和理想情況下的執行時間如圖1 所示。

圖1 系統程序的執行
設系統各個程序進程為i=1,2,…,a,理想執行時間為pi,真實執行時間為li,則系統程序的真實執行時間Pa、理想執行時間La的計算公式為:
通信開銷,是系統程序由于通信而增加的開銷[4]。定義通信開銷因子f為:
系統的實際加速比E為:
式中,S為系統程序串行版本的執行時間[5]。當系統規模增大時,實際加速比出現上確界。利用通信墻,定義E值上確界。當系統存在通信墻時,判定系統通信不可擴展;當系統不存在通信墻時,判定其可擴展。結合金錢加速比和實際加速比,得到通信可擴展加速比A為:
式中,c1為系統一個處理單元的金錢開銷,ci為i個系統處理單元的并行機金錢開銷[6]。由式(4)可知,使用頻率高的處理器,能增加系統處理單元數量,從而加快鏈路和路由器的運行速度,擴大網絡規模。至此完成系統通信可擴展加速比的計算。
1.1.2 計算系統能耗可擴展加速比
當系統規模增長時,僅將有效工作產生的能量消耗,視作負載均衡的理想系統能耗[7]。將系統實際運行的能量消耗,視作系統實際情況的能耗。能量消耗隨系統規模增長的變化情況如圖2 所示。

圖2 能耗隨系統規模增長的變化
設系統節點有效計算能耗為g1,網絡有效通信能耗為g2,網絡資源能耗為g3,節點空轉能耗為g4,其中g1不隨系統規模的增長而改變,則系統n個節點的理想能耗Mn、實際能耗Rn的計算公式為:
系統能耗因子b的表達式為:
設系統節點為j=1,2,…,n,系統能耗實際加速比u的計算公式為:
其中,Rj為系統在j個節點上運行產生的能量消耗,T1、Tj分別為系統在一個節點、j個節點上完成水電廠光纖測溫工作量所需要的時間[8]。分析性能增長與能耗增長的內在關系,利用能耗性能率度量額外能量消耗對光纖測溫系統計算性能的影響程度[9]。系統能耗可擴展加速比Z為:
其中,V為系統能耗性能率[10]。通過系統能耗可擴展加速比Z,體現系統有效計算能耗與并行引入額外總能耗之間的變化關系[11]。至此完成系統可擴展性模型的構建。
利用協同過濾系統可擴展性模型優化系統可擴展性。在模型中輸入水電廠光纖測溫的歷史數據,不斷擴大數據規模,通過分布式K-means 算法計算水電廠光纖測溫數據的相似度[12]。定義測溫數據的樣本集合Q為:
其中,xm=(xm1,xm2,…,xmd) 為第m項數據 的d個不同屬性,U為數據集合的樣本容量[13]。分布式Kmeans 算法的聚類中心B為:
其中,Ge為第e個簇類中心點,K為簇類個數[14]。計算模型樣本集合中,任意兩個數據xm和Ge之間的歐氏距離J(xm,Ge)為:
歐氏距離J(xm,Ge)越小,樣本數據的相似度越高[15]。
根據模型樣本集合的聚類數量,劃分系統并行計算的任務數目,聚合相似度高的樣本數據放在同一個任務中。分散模型的樣本數據集,并行處理多個任務[16]。將分散的數據集塊存儲在系統的多個節點上,使系統通過元數據節點交互數據,每個小數據集都可以并行操作,處理水電廠光纖測溫數據,實現系統的分布式擴展。至此完成基于分布式K-means 算法的系統可擴展性優化,實現基于分布式K-means算法的水電廠光纖測溫系統可擴展性優化方法設計。
將該文設計方法與文獻[1]、文獻[2]所提方法進行對比實驗,驗證三組方法優化系統可擴展性的有效性。
水電廠光纖測溫系統實驗環境包含兩個環境,分別為分布式運行環境和串行運行環境。分布式環境采用Hadoop 框架配置,版本為Cloudera Hadoop;串行環境采用普通PC 機。實驗平臺為多個節點組成 的Cluster,節點由18GB RAM 和2.98G 8 核Intel Xeom X9870 CPU 組成。系統搭建Hadoop 節點集群,集群通信基于MPI 庫實現。系統數據集選擇某水電廠測溫的開放數據集,該數據集提供多種規模數據集,將數據集寫入HDFS 中。實驗環境如表1 所示[17]。

表1 實驗環境配置
Hadoop 節點集群使用VMware 虛擬機,在PC 機上虛擬出15臺主機,命名為Master、Slavel1-Slavel14,模擬網絡可容納的節點數量,節點IP 地址分布如表2 所示。

表2 Hadoop集群節點IP地址
2.2.1 系統并行可擴展性實驗結果
固定系統測試的數據集規模,改變系統測溫程序的并行度,測試分布式運行環境和串行運行環境中各個并行度下的通信執行時間。通信時間占比越低,表示并行擴展性越好,實驗對比結果如圖3所示。

圖3 系統通信時間占比實驗結果
由圖3 可知,設計方法的通信時間占比,明顯低于文獻[1]、文獻[2]所提方法,并行擴展性優化效果更好。
2.2.2 系統問題可擴展性實驗結果
固定系統測溫程序的并行度,改變系統測試的數據集規模,測試分布式運行環境和串行運行環境中,各個問題規模下的總執行時間??倛绦袝r間占比越低,表示系統問題擴展性越好,實驗對比結果如圖4 所示。

圖4 系統總執行時間占比實驗結果
由圖4 可知,設計方法的總執行時間占比,要明顯低于文獻[1]、文獻[2]所提方法的總執行時間占比,問題擴展性優化效果更好。
2.2.3 系統響應時間對比結果
改變集群節點數量,采用450 GB 數據集,測試分布式環境和串行環境中的系統響應時間,實驗對比結果如表3 所示。

表3 系統響應時間實驗結果
由表3 可知,節點數目增加時,系統響應時間隨之減少。在分布式運行環境中,設計方法優化后,系統平均響應時間為151 s,響應時間最低。在串行運行環境中,設計方法響應時間為306 s,響應時間最短,提高了系統處理大規模數據的響應效率。
文中研究優化了水電廠光纖測溫系統可擴展性,充分利用分布式K-means 算法的技術優勢,提高了系統并行擴展性和問題擴展性的優化效果。但該研究仍存在一定不足,未來可以結合協同過濾推薦算法,緩解水電廠大數據稀疏性,進一步減少計算資源的浪費。