毛新健 呂旭煒
(交通運輸部東海航海保障中心上海航標(biāo)處,上海 201208)
AIS,即船舶自動識別系統(tǒng)(Automatic Identification System),是由岸基設(shè)施和船載設(shè)備共同組成的數(shù)字導(dǎo)助航系統(tǒng),根據(jù)國際海事組織(IMO)相關(guān)規(guī)定,船舶AIS 應(yīng)向適當(dāng)安裝的岸基臺站、其他船舶和航空器自動提供包括本船身份、船型、船位、航向、航速、航行狀態(tài)及其他與安全有關(guān)的信息,并自動收取此等信息。根據(jù)SOLAS公約的規(guī)定,從2002 年7 月1 日起相關(guān)船舶分階段安裝AIS 設(shè)備。目前,所有300 總噸以上國際航行的船舶和500 總噸以上非國際航行的船舶以及客船都已經(jīng)安裝AIS 設(shè)備。近年來,越來越多的內(nèi)貿(mào)船舶和漁船也安裝了AIS 設(shè)備。AIS 已成為目前航行船舶應(yīng)用最為普及的導(dǎo)助航系統(tǒng),針對AIS 大數(shù)據(jù)進行分析,無疑成為目前AIS 應(yīng)用的重要研究方向。
GPU,即為圖形處理器,Graphic Processing Unit 的英文縮寫,與CPU 中央處理器一樣,是計算機設(shè)備核心部件。最早的GPU 是計算機用于獨立進行圖形圖像計算處理的部件,但隨著GPU 圖形處理技術(shù)的不斷完善發(fā)展,人們逐漸發(fā)現(xiàn)相比起CPU,GPU 擁有高性能的多處理器陣列與高帶寬、隱藏延遲顯存系統(tǒng),這使得在大數(shù)據(jù)計算應(yīng)用上,GPU具有比CPU 更具優(yōu)勢,因此GPU 在大數(shù)據(jù)計算領(lǐng)域得到越來越廣泛的應(yīng)用。
CPU 中央處理器和GPU 圖形處理器,兩者都是為了完成計算任務(wù)而設(shè)計的芯片。但由于其設(shè)計目標(biāo)的不同,因此CPU 和GPU 分別適用于兩種不同的應(yīng)用計算場景。CPU 作為計算機最重要的核心,需要很強的通用性來處理各種不同的數(shù)據(jù)類型和進行不同判斷,計算能力只是CPU 的一部分功能。而GPU 面對的則是類型高度統(tǒng)一的、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計算環(huán)境,100%用于計算。
CPU 和GPU 的主要區(qū)別在于,芯片內(nèi)的緩存體系和數(shù)字邏輯計算單元的結(jié)構(gòu)差異。CPU 雖然也有多核,但最多也就局限于兩位數(shù),每個核都有足夠大的緩存和足夠多的數(shù)字和邏輯計算單元,性能強勁,并輔助有很多加速分支判斷,甚至更復(fù)雜的邏輯判斷的硬件;GPU 的核數(shù)遠超CPU,多達成百上千核。盡管每個核擁有的緩存相對小,數(shù)字邏輯計算單元也少且簡單。但在浮點計算方面,GPU 卻可以提供數(shù)十倍乃至于上百倍于CPU 的性能。
CPU 和CPU 之間浮點計算功能之所以存在如此之大的差異,原因就在于GPU 專為計算密集型、高度并行化的計算而設(shè)計,能使更多晶體管完全用于數(shù)據(jù)處理,而不用考慮數(shù)據(jù)緩存和流控制。GPU 非常適用于解決可表示為數(shù)據(jù)并行計算的問題,在許多數(shù)據(jù)元素上并行執(zhí)行程序.具有極高的計算密度。因為所有數(shù)據(jù)元素都執(zhí)行相同的程序,所以對精密流控制的要求不高。由于在許多數(shù)據(jù)元素上運行,且具有較高的計算密度,因而可通過計算隱藏存儲器訪問延遲,而不必使用較大的數(shù)據(jù)緩存。因此,對于一個計算任務(wù),任務(wù)中的子任務(wù)的數(shù)量越多,單個子任務(wù)計算工作量較小且大小等同,子任務(wù)之間數(shù)據(jù)交互越少,就越能充分發(fā)揮GPU并行計算優(yōu)勢。而CPU 剛好相反,適用于單個復(fù)雜的計算任務(wù)。簡單地說,需要對大量類似數(shù)據(jù)單獨進行同樣計算時,GPU 更合適,需要對同一數(shù)據(jù)進行不同類型的復(fù)雜計算,CPU 更好。
應(yīng)用GPU 替代傳統(tǒng)CPU 對AIS 大數(shù)據(jù)進行計算,正是由于AIS 報文數(shù)據(jù)的特性非常匹配GPU 并行計算的需求。
AIS 工作于AIS1(頻道87B-161.975MHz)和AIS2(頻道88B-162.025MHz)兩個頻道,帶寬25kHz。采用時分多址(TDMA)通信協(xié)議,將每個指配頻率上的1分鐘的時段(幀)分割成2 250 個時隙,2 個頻率共有4 500 個時隙。2 250 個時隙為一幀,每分鐘不斷重復(fù)。其時隙與世界協(xié)調(diào)時(UTC)嚴格同步,由全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)提供。
AIS 按規(guī)定根據(jù)其船舶航行狀況,占用時隙進行數(shù)據(jù)發(fā)送。AIS 數(shù)據(jù)以報文的形式展現(xiàn),根據(jù)船舶航行速度的不同發(fā)送頻率不一,例如:船舶移動速度在0~ 14 kn 為10mile發(fā)送一條AIS 報文,移動速度在14~ 23 kn 船舶,即6 s 發(fā)送一條AIS 報文,移動速度超過23 kn,則2 s 發(fā)送一條。報文內(nèi)容包括本船的靜態(tài)數(shù)據(jù)(船名、呼號、九位碼、船舶長度寬度、船型和GPS 天線位置等)、動態(tài)數(shù)據(jù)(船舶實時經(jīng)緯度位置、對地航向航速、船艏向、航行狀態(tài)等),以及航次數(shù)據(jù)(船舶吃水、危險貨物種類、目的港和預(yù)計抵達時間等)信息。根據(jù)國際電信聯(lián)盟(ITU)發(fā)布的ITU-R M.1371 建議書的標(biāo)準進行封裝和解析。當(dāng)一條條AIS 報文匯集起來,便形成了AIS 大數(shù)據(jù)。
針對AIS 大數(shù)據(jù)進行分析,首要就是將AIS 大數(shù)據(jù)進行再次分解,一組AIS 大數(shù)據(jù)所包含的AIS 船舶數(shù)量成千上萬,AIS 報文更是一個天文數(shù)字。但對于單艘船舶而言,其發(fā)送AIS 報文遵照規(guī)定標(biāo)準格式進行播發(fā),自由度不大,格式基本統(tǒng)一,且不同船舶之間AIS 設(shè)備自行播發(fā),互無關(guān)聯(lián),沒有影響。單條AIS 報文受限于AIS 帶寬,報文數(shù)據(jù)量相對較小,相應(yīng)計算量也較少。這正是最能充分發(fā)揮GPU 并行計算能力的優(yōu)勢領(lǐng)域。對于幾百上千核心的GPU而言,由每個GPU 核心負責(zé)一條AIS 報文數(shù)據(jù)的分析,這樣即使是較大水域范圍和較長時間段的AIS 數(shù)據(jù)計算需求,GPU 也只需要按任務(wù)進行浮點分配并行計算即可批量快速完成分析工作。
為實現(xiàn)基于GPU 高性能計算在AIS 大數(shù)據(jù)分析上的應(yīng)用,部署了4 臺GPU 服務(wù)器,每臺GPU 服務(wù)器配置8 塊GeForce RTX 2080 Ti,性能核心參數(shù)如下:
CUDA cores: 4,352;
Clock speed: 1350MHz base,1545MHz boost;
Memory capacity: 11GB GDDR6;
Memory path: 352 bits;
Memory bandwidth: 616GBps 。
4 臺GPU 服務(wù)器以Hadoop 為基礎(chǔ),以HBase 為核心、以Zookeeper 為管理,構(gòu)建分布式集群,應(yīng)用HDFS 分布式文件系統(tǒng)和HBase 列式存儲分布式數(shù)據(jù)庫進行AIS 數(shù)據(jù)流存儲,從而進一步加快AIS 大數(shù)據(jù)處理效率。
HDFS 分布式文件系統(tǒng)作為Hadoop 核心部件,負責(zé)分布式存儲數(shù)據(jù),規(guī)定集群中服務(wù)器即節(jié)點的用途,其中包括:
1)命名節(jié)點 (NameNode):用于指揮其他節(jié)點存儲的節(jié)點,用于儲存映射信息并提供映射服務(wù)的計算機,在HDFS系統(tǒng)中扮演唯一管理角色。
2)數(shù)據(jù)節(jié)點 (DataNode):使用來儲存數(shù)據(jù)塊的節(jié)點,具有儲存數(shù)據(jù)、讀寫數(shù)據(jù)的功能。
3)副命名節(jié)點 (Secondary NameNode):負責(zé)備份命名節(jié)點狀態(tài)數(shù)據(jù)。
集群依照HDFS 要求,進行服務(wù)器節(jié)點部署,如圖1所示。
圖1 HDFS 集群
GPU1 服務(wù)器部署了命名節(jié)點和數(shù)據(jù)節(jié)點;GPU2 服務(wù)器部署了副命名節(jié)點和數(shù)據(jù)節(jié)點;GPU3 和GPU4 各自部署了數(shù)據(jù)節(jié)點。
同時,4臺服務(wù)器組成一個HBase集群。部署如圖2所示。
圖2 Hbase 集群
GPU1-4 都部署Zookeeper;GPU1 部署為HBase Master節(jié)點;GPU2-4 部署為HBase RegionServer 節(jié)點。
1)Region Server:負責(zé)數(shù)據(jù)的讀寫服務(wù),通過與Region server 交互來實現(xiàn)對數(shù)據(jù)的訪問。
2)HBase Master:負責(zé)Region 的分配及數(shù)據(jù)庫的創(chuàng)建和刪除等操作。
3)Zookeeper:負責(zé)維護集群的狀態(tài)。
經(jīng)測試,基于GPU 構(gòu)建的Hadoop+HBase+Zookeeper 服務(wù)器集群對AIS 大數(shù)據(jù)進行計算,單用戶下,數(shù)據(jù)總量少于千萬條AIS 報文的請求,平均響應(yīng)時間不超過1 s;數(shù)據(jù)總量在千萬到一億條的請求,平均響應(yīng)時間不超過5 s;數(shù)據(jù)總量在一億到十億條以內(nèi)的平均響應(yīng)時間不超過20 s,相比起傳統(tǒng)的CPU 分鐘級的計算速度,計算效能提升了一個數(shù)量級。
同時,對經(jīng)過GPU 分布式集群高性能計算處理后的AIS 大數(shù)據(jù)軌跡流量結(jié)果通過AIS 大數(shù)據(jù)分析應(yīng)用軟件系統(tǒng)進行可視化顯示,實現(xiàn)AIS 水域內(nèi)任意時間、空間、類別的船舶AIS 密度、熱力、航線等多層次的流量統(tǒng)計分析應(yīng)用。
1)船舶流量分析:分析規(guī)定水域和時間內(nèi)AIS 船舶軌跡情況,利用顏色和航跡,標(biāo)識不同類型船舶的航行線路、水域分布等,如圖3 所示。
圖3 船舶流量分析
2)船舶信息統(tǒng)計:利用軌跡矢量化技術(shù)展現(xiàn)不同水域、港口及航道的交通流量;利用顏色、圖形圖示統(tǒng)計船舶類型、航速、噸位等相關(guān)信息,如圖4 所示。
圖4 船舶信息統(tǒng)計
3)最佳航路推薦:基于歷年AIS 大數(shù)據(jù)分析,根據(jù)船舶航跡相似性特征,為船舶規(guī)劃任意兩點間最優(yōu)航路推薦,并預(yù)測船舶航行距離、所需時間、關(guān)鍵轉(zhuǎn)向點等信息,如圖5 所示。
圖5 最優(yōu)航路推薦
4)信號覆蓋檢測:對指定水域規(guī)歷年AIS 大數(shù)據(jù)進行統(tǒng)計分析,直觀查看AIS 信號覆蓋狀況,通過航道斷裂跡象,檢測AIS 信號覆蓋質(zhì)量,如圖6 所示。
圖6 信號覆蓋檢測
近年來,大數(shù)據(jù)作為新興的信息技術(shù)在多個領(lǐng)域得到廣泛的應(yīng)用,創(chuàng)造了巨大的價值。航運業(yè)作為龐大的基礎(chǔ)性產(chǎn)業(yè),AIS 數(shù)據(jù)作為航運大數(shù)據(jù)的重要組成,每時每刻都在產(chǎn)生海量的數(shù)據(jù)。但傳統(tǒng)的CPU 計算模式在面對大數(shù)據(jù)處理時所消耗的資源和時長難以接受。因此,基于GPU 替代CPU 對AIS 大數(shù)據(jù)進行高性能計算處理,計算效率提升一個數(shù)量級,從而更為有效實現(xiàn)船舶軌跡跟蹤、船舶貨物交通流量分析、統(tǒng)計航路通航率統(tǒng)計等應(yīng)用需求,對海事監(jiān)管、船舶安全、航運經(jīng)濟、航道設(shè)計都具有極其重要的指導(dǎo)意義。