張 輝,謝曉堯,李 菂,劉志杰,王 培,于徐紅,游善平,許余云,姜家濤
(1. 貴州師范大學貴州省信息與計算科學重點實驗室,貴州 貴陽 550001;2. 中國科學院國家天文臺,北京 100101;3. 貴州師范大學數(shù)學科學學院,貴州 貴陽 550001;4. FAST早期科學數(shù)據(jù)中心,貴州 貴陽 550001;5. 中國科學院大學,北京 100049;6. 貴州水利水電職業(yè)技術(shù)學院管理工程分院,貴州 貴陽 551416)
1967年,劍橋大學在讀博士喬瑟琳·貝爾(Jocelyn Bell)和導師休伊什(Hewish)等人首次在狐貍星座發(fā)現(xiàn)了射電脈沖星PSR B1919 + 21[1],這項20世紀重大的天文學發(fā)現(xiàn)于1974年12月獲得了諾貝爾物理學獎,以表彰休伊什教授等人在射電天體物理學領(lǐng)域的開創(chuàng)性研究。人類至今已探測發(fā)現(xiàn)脈沖星約3 000顆,它們的自行速度可達每秒數(shù)百千米[2]。脈沖星強磁場、高密度、高能輻射、超強引力場、伴隨恒星演化和超新星爆發(fā)過程等極端物理性質(zhì)是地面人工實驗室無法實現(xiàn)的。脈沖星的發(fā)現(xiàn)為核物理、粒子物理、天體物理、愛因斯坦相對論和宇宙學的檢驗提供了天然理想的實驗室。對脈沖星進行深入研究,有希望獲得許多重大物理學問題的答案。脈沖星的自轉(zhuǎn)周期極其穩(wěn)定,具有精準的時鐘信號,可為引力波探測、航天器導航等重大科學技術(shù)應用提供理想工具。
脈沖星獨特的物理性質(zhì)和科學價值使其很快成為天體物理學最活躍的研究領(lǐng)域之一。為了更深入研究這類天體,望遠鏡的大量時間用于開展巡天項目,以期發(fā)現(xiàn)更多的樣本數(shù)據(jù)。過去,受望遠鏡設備、數(shù)據(jù)采集系統(tǒng)、計算搜索理論和技術(shù)等因素限制,單個巡天項目采集的觀測數(shù)據(jù)總量通常介于GB和TB之間。1997~2003年澳大利亞帕克斯望遠鏡采用13波束接收機巡天(Parkes Multi-beam Pulsar Survey, PMPS)[3],采集到49 700余個PSRFITS格式的數(shù)據(jù)文件,數(shù)據(jù)總量約5 TB,探測發(fā)現(xiàn)新脈沖星超過1 122顆。2012年南賽(Nan?ay)望遠鏡開展的SPAN512項目,采集的數(shù)據(jù)總量約50 TB。2010~2012年開展的高時間分辨宇宙(The High Time Resolution Universe, HTRU)系列巡天項目,因同時提高了時間分辨率和頻率分辨率,每個波束(Beam)文件達16 GB,采集數(shù)據(jù)總量約1 PB。如今,500 m口徑球面射電望遠鏡已投入使用,可探測頻率覆蓋70 MHz至3 GHz,它的靈敏度更高,綜合探測能力更強,具備19波束同時掃描巡天能力,配備更高時間分辨率和頻率分辨率的超寬帶接收機,單波束數(shù)據(jù)采樣頻率由原來的1 024 Hz拓展至4 096 Hz。若19個波束同時工作,以100 μs為時間采樣分辨率,頻率帶寬400 MHz,采用8 bit記錄數(shù)據(jù),日采集數(shù)據(jù)量可達100 TB。2017年7月~2018年5月,500 m口徑球面射電望遠鏡多科學目標同時掃描巡天(The Commensal Radio Astronomy FAST Survey, CRAFTS)[4]記錄0~1 GHz、1~2 GHz兩個頻段的數(shù)據(jù),系統(tǒng)性脈沖星巡天觀測數(shù)據(jù)已達數(shù)PB,其中,超寬帶脈沖星漂移掃描數(shù)據(jù)約0.8 PB,19波束巡天數(shù)據(jù)約2 PB,加上數(shù)據(jù)處理分析過程產(chǎn)生的中間數(shù)據(jù),總計已經(jīng)超過3 PB。數(shù)據(jù)存于FAST早期科學數(shù)據(jù)中心集群磁盤陣列和磁帶庫中。預計500 m口徑球面射電望遠鏡在射電脈沖星領(lǐng)域采集的數(shù)據(jù)總量在10~100 PB,巡天數(shù)據(jù)已邁入PB時代[5]。
500 m口徑球面射電望遠鏡面臨大規(guī)模數(shù)據(jù)異地傳輸、存儲、快速處理和結(jié)果數(shù)據(jù)管理等實際問題。針對PB量級數(shù)據(jù)分析處理加速問題,本文提出了一種基于PRESTO的分布式并行計算方法,并據(jù)此研發(fā)了一套并行計算加速系統(tǒng),系統(tǒng)命名為Craber,以紀念中國科學家發(fā)現(xiàn)Crab脈沖星和科學工作者的開拓創(chuàng)新精神。
從觀測數(shù)據(jù)中搜索脈沖星涉及多個必要步驟,包括去干擾、消色散、時頻信號轉(zhuǎn)換、周期信號搜索、數(shù)據(jù)折疊和候選體篩選識別等。從計算機處理數(shù)據(jù)的角度看,搜索流程可概括為(1)獲取數(shù)據(jù)文件,計算節(jié)點讀取一個觀測原文件;(2)分析處理數(shù)據(jù),按照預先設定的參數(shù)空間和搜索策略,執(zhí)行分析指令;(3)生成結(jié)果,生成可供識別的候選體集合;(4)讀取下一個待處理文件,并重復執(zhí)行(1)、(2)、(3)步,詳細的搜索流程和理論見文[6]。文[7]在脈沖星搜索加速方面做過嘗試,取得了一定的加速效果。目前,較成熟的脈沖星搜索數(shù)據(jù)處理軟件有PRESTO[8],SIGPROC[9]和基于圖形處理器技術(shù)的Peasoup等,但存在如下幾方面不足:
(1)軟件并行程度不夠。在一般的搜索中,消色散方法主要有兩大類:相干消色散和非相干消色散[10]。這些方法需嘗試數(shù)百個甚至上千個色散值,計算量成百上千倍增加?,F(xiàn)有軟件因開發(fā)歷史較早,基于當時較小的數(shù)據(jù)規(guī)模,搜索流程中大多采用分步串行、單機計算方式。
(2)計算結(jié)果整理、統(tǒng)計和歸檔能力弱。計算參數(shù)、中間數(shù)據(jù)、結(jié)果數(shù)據(jù)、日志數(shù)據(jù)等缺乏科學化管理,數(shù)據(jù)歸檔同步不及時,數(shù)據(jù)分享和統(tǒng)計分析困難。
(3)計算資源整合能力差。觀測數(shù)據(jù)以FITS格式存儲,搜索中伴隨產(chǎn)生眾多臨時文件,且多為小文件,帶來頻繁讀寫磁盤,計算任務具有數(shù)據(jù)密集型和計算密集型雙重特點?,F(xiàn)有搜索軟件缺乏整合計算資源的能力,特別是不具備整合異地異構(gòu)計算資源的方法。
針對現(xiàn)有搜索軟件存在的問題,結(jié)合數(shù)據(jù)搜索特點和實際應用,對計算可行性分析如下:
(1)任務可并行。從搜索流程分析,不同觀測文件間不存在數(shù)據(jù)耦合關(guān)系,且處理過程中也保持數(shù)據(jù)相互獨立。因此,全體待處理觀測文件構(gòu)成一個任務集合,單個觀測文件為其中一個子計算任務。
(2)計算節(jié)點間可并行。通過網(wǎng)絡技術(shù)將單個計算節(jié)點特別是異地計算節(jié)點整合起來,形成一定計算力的集群系統(tǒng),各單節(jié)點上并行處理任務。
(3)軟件程序可并行。根據(jù)PRESTO模塊化程序設計和分步串行計算特點,經(jīng)分析發(fā)現(xiàn)它具備改為并行運算的可能,可通過在各節(jié)點上部署優(yōu)化過的PRESTO,并行調(diào)度子程序進行計算。
(4)搜索數(shù)據(jù)庫協(xié)同計算和數(shù)據(jù)管理。異地計算資源協(xié)同計算和多任務并行處理面臨數(shù)據(jù)一致性和歸檔問題,可通過建立搜索數(shù)據(jù)庫系統(tǒng)協(xié)同管理和結(jié)果回收。
FAST早期科學數(shù)據(jù)中心由貴州師范大學與國家天文臺聯(lián)合建設,目標是解決500 m口徑球面射電望遠鏡數(shù)據(jù)存儲、分析處理和開展前沿科學研究。早期科學數(shù)據(jù)中心至臺址兩地數(shù)據(jù)中心通過2 GB專網(wǎng)連接,橫跨州、縣、鎮(zhèn)20多個中轉(zhuǎn)節(jié)點,傳輸距離300多千米,采用波分復用和雙路通信容錯技術(shù)保障數(shù)據(jù)傳輸?shù)目捎眯?。?shù)據(jù)中心致力于改善軟件可用性的同時,也設計、定制和組裝滿足望遠鏡未來一段時期計算需求的計算資源。
如表1,數(shù)據(jù)中心已分步建成A, B, C, D 4類不同子網(wǎng)計算集群,配備1.5 PB磁盤存儲系統(tǒng)和1 PB磁帶庫,部署在數(shù)據(jù)中心寶山、花溪兩地機房。計算集群采用中央處理器 + 圖形處理器異構(gòu)并行計算體系架構(gòu),包含154個中央處理器,288塊圖形處理器顯卡,共計1 384個中央處理器核心和955 392個圖形處理器核心,并對臺式計算機進行改造,擴展顯卡插槽,加裝圖形處理器顯卡、大容量磁盤和內(nèi)存資源等,強化單節(jié)點計算能力,共同組成分布式并行化計算集群,由任務管理節(jié)點統(tǒng)一調(diào)度,極大地解決了500 m口徑球面射電望遠鏡當前一段時期的數(shù)據(jù)分析問題。
表1 FAST早期科學數(shù)據(jù)中心中央處理器 + 圖形處理器異構(gòu)系統(tǒng)計算集群算力統(tǒng)計Table 1 Statistics for computational power of computing cluster in FAST Early Science Data Center
根據(jù)數(shù)據(jù)中心已有的軟硬件資源,整合結(jié)構(gòu)化數(shù)據(jù)庫、搜索軟件和網(wǎng)絡資源,解決如何調(diào)度、如何管理、如何抗錯等問題,系統(tǒng)設計思路和方法如下:
(1)優(yōu)化PRESTO程序套件,開發(fā)一套并行計算任務調(diào)度系統(tǒng),調(diào)度部署在各節(jié)點上的PRESTO程序分步搜索指令,并行地分析處理子任務;
(2)整合利用FAST早期科學數(shù)據(jù)中心位于貴州師范大學寶山、花溪兩校區(qū)兩校區(qū)子網(wǎng)計算集群,構(gòu)建一個對外透明的分布式并行計算集群;
(3)以單個觀測數(shù)據(jù)文件劃分計算任務單元,建立任務隊列,經(jīng)任務調(diào)度分發(fā)程序和數(shù)據(jù)庫協(xié)同具體搜索工作;
(4)建立面向搜索過程和數(shù)據(jù)管理的專門數(shù)據(jù)庫,進行任務分發(fā)、計算協(xié)同、日志數(shù)據(jù)和結(jié)果數(shù)據(jù)回收管理,解決異地計算資源參與計算時的數(shù)據(jù)一致性和歸檔問題,供后續(xù)應用程序開展候選體識別和篩選。
如圖1,Craber并行加速計算系統(tǒng)按照功能不同,邏輯上劃分為:(1)1個數(shù)據(jù)源節(jié)點,用于存放觀測數(shù)據(jù)文件;(2)1個任務控制節(jié)點,用于計算任務的協(xié)調(diào)控制;(3)N個并行計算節(jié)點,負責具體計算搜索任務;(4)1個數(shù)據(jù)庫節(jié)點,承擔數(shù)據(jù)管理和協(xié)同計算;(5)1個非結(jié)構(gòu)化結(jié)果數(shù)據(jù)節(jié)點,負責存放過程數(shù)據(jù);(6)1個網(wǎng)絡應用節(jié)點,提供配置交互。各節(jié)點間通過高速網(wǎng)絡進行通信和數(shù)據(jù)交換,調(diào)度系統(tǒng)采用客戶端/服務端(C/S)體系架構(gòu)實現(xiàn)。
圖1 Craber加速計算系統(tǒng)功能結(jié)構(gòu)圖Fig.1 Structure diagram of the Craber parallel accelerated computing system
計算節(jié)點主動與數(shù)據(jù)庫和任務控制節(jié)點通信和獲取計算任務。任務節(jié)點負責從數(shù)據(jù)庫任務隊列中獲取參數(shù),分發(fā)給計算節(jié)點,如數(shù)據(jù)文件地址、計算參數(shù)、處理指令集。計算節(jié)點作為客戶端,通過配置文件獲取參數(shù)信息,與服務器通信后進入計算狀態(tài),執(zhí)行PRESTO套件程序指令,進行脈沖星數(shù)據(jù)的計算工作,并將計算結(jié)果提交任務控制服務器和計算結(jié)果文件服務器。如表2,節(jié)點上配置文件規(guī)定了此節(jié)點用于去干擾、消色散、周期搜索、數(shù)據(jù)折疊等步驟的線程分配方案、各步等待時間以及數(shù)據(jù)同步情況。
表2 配置文件參數(shù)列表說明Table 2 Configuration file parameter list and description
單個節(jié)點的計算能力體現(xiàn)為可用的線程數(shù)量。任務服務器給計算節(jié)點分配數(shù)個任務,廣播計算參數(shù)。如圖2,計算節(jié)點根據(jù)任務參數(shù),從數(shù)據(jù)節(jié)點中讀取對應觀測數(shù)據(jù)文件并處理。計算節(jié)點依據(jù)線程分配方案和數(shù)據(jù)庫中任務ID值,并行執(zhí)行圖中1~6步流程,由數(shù)據(jù)庫和任務控制節(jié)點完成數(shù)據(jù)同步。
如圖3,單個計算節(jié)點圖形處理器/中央處理器異構(gòu)系統(tǒng)開展單個任務計算數(shù)據(jù)處理流程。在每個計算節(jié)點上通過指定圖形處理器核心分配方案,分別用于PRESTO子程序并行地進行消除干擾(RFIFIND)、消除色散(PRESUBBAND)、周期搜索、數(shù)據(jù)折疊等步驟。因消色散耗時相對較長,系統(tǒng)指定較多核心數(shù)專門用于消色散,較少核心數(shù)用于周期搜索、數(shù)據(jù)折疊等步驟進行流水化作業(yè)。
Craber系統(tǒng)的任務狀態(tài)和任務數(shù)據(jù)的維護通過數(shù)據(jù)庫實現(xiàn)。搜索數(shù)據(jù)庫解決的問題包括:(1)在分布式計算任務中,保證調(diào)度的任務數(shù)據(jù)一致性,提高容錯能力;(2)為原始數(shù)據(jù)、處理日志、結(jié)果整理和統(tǒng)計提供基礎(chǔ)平臺;(3)為后續(xù)利用人工智能(Artificial Intelligence, AI)開展候選體篩選識別提供數(shù)據(jù)支持和輔助工具。作為Craber系統(tǒng)重要組成部分之一,我們專門設計了面向搜索過程的搜索數(shù)據(jù)庫(詳細內(nèi)容另文發(fā)表),它主要包含F(xiàn)ITS觀測數(shù)據(jù)文件信息表、任務執(zhí)行時間狀態(tài)信息表、任務指令參數(shù)表等10余個不同用途的數(shù)據(jù)庫表,其中,文件信息表記錄FITS文件的編號、文件名、文件路徑、格式、觀測設備和處理狀態(tài)等。通過調(diào)用PRESTO中readfile指令獲取數(shù)據(jù)集中全體待計算FITS頭文件信息,并寫入數(shù)據(jù)庫任務指令參數(shù)表,記錄一個任務ID對應的計算參數(shù),以及PRESTO子程序指令rfifind,prepsubband,realfft,accelsearch,prepfold步驟編號,用來表示 prepsubband 的子步驟。
圖2 單個計算節(jié)點內(nèi)的計算流程Fig.2 Search process of one single compute node in the cluster
圖3 基于圖形處理器/中央處理器的異構(gòu)系統(tǒng)并行計算加速流程Fig.3 GPU + CPU-based parallel computing acceleration process for heterogeneous systems
如圖4,Craber集成一個大容量數(shù)據(jù)文件服務器,存放經(jīng)預處理后的FITS文件,為了方便計算節(jié)點快速讀取觀測文件,數(shù)據(jù)源利用網(wǎng)絡文件系統(tǒng)(Network File System, NFS)實現(xiàn)管理,節(jié)點內(nèi)使用臨時文件系統(tǒng)(Temporary File System)提高輸入輸出能力,部署一個任務控制服務器,用于計算的協(xié)調(diào)控制、任務分發(fā)和參數(shù)廣播,數(shù)據(jù)中心4個計算子網(wǎng)分布式部署,負責具體的計算搜索業(yè)務。搜索數(shù)據(jù)庫采用大型關(guān)系型數(shù)據(jù)庫ORACLE進行結(jié)果數(shù)據(jù)管理和計算參數(shù)設定。一個文件服務器存放中間數(shù)據(jù)文件及候選體判別圖,一個前端網(wǎng)絡應用程序進行作業(yè)期間的實時監(jiān)控。
圖4 當前FAST早期科學數(shù)據(jù)中心Craber計算加速系統(tǒng)網(wǎng)絡部署拓撲示意圖Fig.4 Network deployment topology of Craber acceleration system of FAST Early Science Data Center
如表3,帕克斯多波束巡天項目采用96個頻率通道,子帶寬3 MHz,積分時間2 100 s,單個文件100 MB。500 m口徑球面射電望遠鏡CRAFTS數(shù)據(jù)集經(jīng)過頻域分割數(shù)據(jù)預處理,頻率范圍269.125~396.875 MHz,頻道數(shù)512,帶寬128 MHz,單波束掃描時間26.214 4 s,單個文件128 MB。
表3 來自帕克斯多波束巡天和500 m口徑球面射電望遠鏡CRAFTS巡天項目的測試數(shù)據(jù)文件樣例Table 3 Two sample test files from PMPS and CRAFTS
如圖5,隨機選取400個帕克斯多波束巡天數(shù)據(jù)文件,消色散的色散量步數(shù)設為768。以單線程單機處理,單個文件耗時約6 000 s,采用8線程OMP(OpenMP)處理,單個文件平均耗時3 530 s。啟用Craber子網(wǎng)計算集群D中55個計算節(jié)點,每個節(jié)點配置Intel酷睿i7處理器、32 GB內(nèi)存和1 TB硬盤,總耗時約14 550 s,平均36 s處理一個數(shù)據(jù)文件,即集群整體吞吐速度是36 s。
圖5 分別使用單機單線程、OPM 8線程、Craber加速集群系統(tǒng)對400個PMPS數(shù)據(jù)文件處理耗時測試
500 m口徑球面射電望遠鏡超寬帶漂移掃描巡天數(shù)據(jù)分析的結(jié)果顯示,單個128 MB數(shù)據(jù)文件平均處理時間22 s。2017年10月至今參與處理數(shù)據(jù)文件66 000多個,相關(guān)結(jié)果數(shù)據(jù)統(tǒng)一存儲于系統(tǒng)集成的搜索數(shù)據(jù)庫和文件服務器中。500 m口徑球面射電望遠鏡通過多套獨立的脈沖星搜索流程,已探測到超過100顆優(yōu)質(zhì)脈沖星候選體,該系統(tǒng)輔助探測到其中數(shù)十個候選體,經(jīng)后隨觀測認證,首批認證兩顆脈沖星[11],其中,第1顆脈沖星J1859-01(FP1),自轉(zhuǎn)周期1.83 s,距離地球約1.6萬光年[12],第2顆脈沖星編號J1931-01(FP2),自轉(zhuǎn)周期0.59 s,距離地球約4 100光年,兩顆脈沖星由500 m口徑球面射電望遠鏡在南天銀道面通過漂移掃描發(fā)現(xiàn),更詳細的參數(shù)結(jié)果見文[13]。另有部分候選體處于國際射電天文臺認證階段,具體參數(shù)結(jié)果還在進一步分析中。
Craber計算加速系統(tǒng)是針對處理500 m口徑球面射電望遠鏡海量數(shù)據(jù)、完成脈沖星搜索主要科學目標而開發(fā)的專用計算系統(tǒng),包含154個中央處理器,288塊圖形處理器顯卡,為500 m口徑球面射電望遠鏡脈沖星搜索項目的數(shù)據(jù)處理提供了有力保障,集成的面向搜索過程的數(shù)據(jù)庫系統(tǒng)在協(xié)同計算任務中,保證調(diào)度的任務數(shù)據(jù)一致性,提高容錯能力,并為原始數(shù)據(jù)、處理日志、結(jié)果整理和統(tǒng)計提供基礎(chǔ)平臺,同時,也為下一步人工智能程序開展學習訓練、候選體識別提供數(shù)據(jù)支持,大幅減少結(jié)果數(shù)據(jù)整理統(tǒng)計和管理工作量。系統(tǒng)應用于帕克斯巡天數(shù)據(jù)處理,單個100 MB文件平均耗時36 s,應用于500 m口徑球面射電望遠鏡脈沖星漂移掃描巡天數(shù)據(jù)處理,單個文件平均耗時22 s。500 m口徑球面射電望遠鏡使用多套獨立的脈沖星搜索流程,確認發(fā)現(xiàn)114顆脈沖星,其中,該系統(tǒng)已輔助發(fā)現(xiàn)數(shù)十顆新脈沖星,包括一些具有特殊輻射特征的脈沖星[14]。系統(tǒng)可經(jīng)適當計算參數(shù)調(diào)整后用于FAST單脈沖(RRATs, FRBs)搜索,以及搜尋模式、跟蹤模式和漂移掃描模式下的大規(guī)模脈沖星數(shù)據(jù)分析處理加速。隨著5 G技術(shù)的成熟和硬件成本進一步降低,大規(guī)模數(shù)據(jù)的異地協(xié)同計算將變得更易操作。下一步計劃持續(xù)向Craber集群系統(tǒng)增加更多計算節(jié)點,在黔西南州新增計算子網(wǎng),并入此計算集群系統(tǒng)。優(yōu)化搜索數(shù)據(jù)庫功能結(jié)構(gòu)和計算節(jié)點中的中央處理器/圖形處理器調(diào)度方案,以應對500 m口徑球面射電望遠鏡今后PB量級數(shù)據(jù)集的快速處理,改善數(shù)據(jù)中心存儲壓力,輔助探索發(fā)現(xiàn)更多新脈沖星樣本。
致謝:感謝Scott Ransom博士提供的PRESTO程序套件,以及來自帕克斯望遠鏡的數(shù)據(jù)支持。同時,特別感謝貴陽學院張正東博士、澳大利亞聯(lián)邦科學與工業(yè)研究組織(Commonwealth Scientific and Industrial Research Organization, CSIRO)George Hobbs教授、王晨教授、代實博士以及網(wǎng)易的張翔工程師對本文的建設性建議和幫助。