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

圖1 HDFS 集群
GPU1 服務(wù)器部署了命名節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn);GPU2 服務(wù)器部署了副命名節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn);GPU3 和GPU4 各自部署了數(shù)據(jù)節(jié)點(diǎn)。
同時(shí),4臺(tái)服務(wù)器組成一個(gè)HBase集群。部署如圖2所示。

圖2 Hbase 集群
GPU1-4 都部署Zookeeper;GPU1 部署為HBase Master節(jié)點(diǎn);GPU2-4 部署為HBase RegionServer 節(jié)點(diǎn)。
1)Region Server:負(fù)責(zé)數(shù)據(jù)的讀寫(xiě)服務(wù),通過(guò)與Region server 交互來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn)。
2)HBase Master:負(fù)責(zé)Region 的分配及數(shù)據(jù)庫(kù)的創(chuàng)建和刪除等操作。
3)Zookeeper:負(fù)責(zé)維護(hù)集群的狀態(tài)。
經(jīng)測(cè)試,基于GPU 構(gòu)建的Hadoop+HBase+Zookeeper 服務(wù)器集群對(duì)AIS 大數(shù)據(jù)進(jìn)行計(jì)算,單用戶下,數(shù)據(jù)總量少于千萬(wàn)條AIS 報(bào)文的請(qǐng)求,平均響應(yīng)時(shí)間不超過(guò)1 s;數(shù)據(jù)總量在千萬(wàn)到一億條的請(qǐng)求,平均響應(yīng)時(shí)間不超過(guò)5 s;數(shù)據(jù)總量在一億到十億條以內(nèi)的平均響應(yīng)時(shí)間不超過(guò)20 s,相比起傳統(tǒng)的CPU 分鐘級(jí)的計(jì)算速度,計(jì)算效能提升了一個(gè)數(shù)量級(jí)。
同時(shí),對(duì)經(jīng)過(guò)GPU 分布式集群高性能計(jì)算處理后的AIS 大數(shù)據(jù)軌跡流量結(jié)果通過(guò)AIS 大數(shù)據(jù)分析應(yīng)用軟件系統(tǒng)進(jìn)行可視化顯示,實(shí)現(xiàn)AIS 水域內(nèi)任意時(shí)間、空間、類別的船舶AIS 密度、熱力、航線等多層次的流量統(tǒng)計(jì)分析應(yīng)用。
1)船舶流量分析:分析規(guī)定水域和時(shí)間內(nèi)AIS 船舶軌跡情況,利用顏色和航跡,標(biāo)識(shí)不同類型船舶的航行線路、水域分布等,如圖3 所示。

圖3 船舶流量分析
2)船舶信息統(tǒng)計(jì):利用軌跡矢量化技術(shù)展現(xiàn)不同水域、港口及航道的交通流量;利用顏色、圖形圖示統(tǒng)計(jì)船舶類型、航速、噸位等相關(guān)信息,如圖4 所示。

圖4 船舶信息統(tǒng)計(jì)
3)最佳航路推薦:基于歷年AIS 大數(shù)據(jù)分析,根據(jù)船舶航跡相似性特征,為船舶規(guī)劃任意兩點(diǎn)間最優(yōu)航路推薦,并預(yù)測(cè)船舶航行距離、所需時(shí)間、關(guān)鍵轉(zhuǎn)向點(diǎn)等信息,如圖5 所示。

圖5 最優(yōu)航路推薦
4)信號(hào)覆蓋檢測(cè):對(duì)指定水域規(guī)歷年AIS 大數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,直觀查看AIS 信號(hào)覆蓋狀況,通過(guò)航道斷裂跡象,檢測(cè)AIS 信號(hào)覆蓋質(zhì)量,如圖6 所示。

圖6 信號(hào)覆蓋檢測(cè)
近年來(lái),大數(shù)據(jù)作為新興的信息技術(shù)在多個(gè)領(lǐng)域得到廣泛的應(yīng)用,創(chuàng)造了巨大的價(jià)值。航運(yùn)業(yè)作為龐大的基礎(chǔ)性產(chǎn)業(yè),AIS 數(shù)據(jù)作為航運(yùn)大數(shù)據(jù)的重要組成,每時(shí)每刻都在產(chǎn)生海量的數(shù)據(jù)。但傳統(tǒng)的CPU 計(jì)算模式在面對(duì)大數(shù)據(jù)處理時(shí)所消耗的資源和時(shí)長(zhǎng)難以接受。因此,基于GPU 替代CPU 對(duì)AIS 大數(shù)據(jù)進(jìn)行高性能計(jì)算處理,計(jì)算效率提升一個(gè)數(shù)量級(jí),從而更為有效實(shí)現(xiàn)船舶軌跡跟蹤、船舶貨物交通流量分析、統(tǒng)計(jì)航路通航率統(tǒng)計(jì)等應(yīng)用需求,對(duì)海事監(jiān)管、船舶安全、航運(yùn)經(jīng)濟(jì)、航道設(shè)計(jì)都具有極其重要的指導(dǎo)意義。