999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

天文數(shù)據(jù)處理流水線可視化建模的研究與實(shí)現(xiàn)

2023-05-30 08:49:09唐家寧吳開超張曉麗
電腦知識(shí)與技術(shù) 2023年3期

唐家寧 吳開超 張曉麗

關(guān)鍵詞:流水線建模;數(shù)據(jù)處理自動(dòng)化;快速射電暴;gRPC;布局管理

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2023)03-0060-06

1 引言

天文學(xué)是一門以觀測(cè)為基礎(chǔ)的學(xué)科,從觀測(cè)數(shù)據(jù)中搜尋信號(hào)總結(jié)規(guī)律,因而對(duì)數(shù)據(jù)運(yùn)算處理都有很大需求。天文數(shù)據(jù)處理的流程復(fù)雜,傳統(tǒng)上多依賴人工,處理效率較低。當(dāng)前觀測(cè)數(shù)據(jù)規(guī)??焖僭鲩L(zhǎng),現(xiàn)有處理方式難以滿足PB級(jí)天文數(shù)據(jù)的快速處理要求。500米口徑球面射電望遠(yuǎn)鏡FAST(Five-hundredmeterAperture Spherical radio Telescope) 是我國(guó)于2016年建成的世界上單口徑最大、靈敏度最高的射電望遠(yuǎn)鏡[1],每年觀測(cè)產(chǎn)生的數(shù)據(jù)量達(dá)15PB??焖偕潆姳‵ast Radio Bursts,F(xiàn)RB) [2]是FAST的主要科學(xué)目標(biāo)之一,也是當(dāng)前射電天文領(lǐng)域的熱點(diǎn)研究方向,F(xiàn)RB搜索計(jì)算處理的算力需求大、流程復(fù)雜、人工依賴性較強(qiáng),需提升計(jì)算處理效率,以加快科研成果的產(chǎn)出。

為解決以FRB搜索為代表的天文數(shù)據(jù)處理中存在的問(wèn)題與挑戰(zhàn),在對(duì)其處理過(guò)程復(fù)雜、冗長(zhǎng)、數(shù)據(jù)算法獨(dú)立性較高等特點(diǎn)深入分析的基礎(chǔ)上,設(shè)計(jì)了流水線(Pipeline) 模型,將整個(gè)數(shù)據(jù)處理過(guò)程分為若干步驟,每一個(gè)步驟都設(shè)計(jì)為獨(dú)立的數(shù)據(jù)處理模塊,整個(gè)模型采用流水線工作模式[3]將所有處理模塊以有向無(wú)環(huán)圖(DAG,Directed Acyclic Graph) 串聯(lián)起來(lái),通過(guò)設(shè)計(jì)流水線處理引擎,來(lái)驅(qū)動(dòng)對(duì)流水線DAG模型的自動(dòng)化處理。

基于此構(gòu)建天文數(shù)據(jù)處理自動(dòng)化流水線平臺(tái)。流水線平臺(tái)主要包括流水線處理引擎和支持與科學(xué)家交互的流水線建模工具軟件。本文主要研究天文數(shù)據(jù)處理中的流水線建模技術(shù)以及建模中的可視化交互及可視化呈現(xiàn)?;谄脚_(tái)分布式架構(gòu),通過(guò)對(duì)接流水線處理引擎,實(shí)現(xiàn)流水線模型自動(dòng)化執(zhí)行,進(jìn)而減少人工操作。

2 可視化建模相關(guān)研究工作

可視化建模中涉及模型自身與模型可視化表達(dá),基于經(jīng)典的MVC模型開展相關(guān)研究是其中重要的研究?jī)?nèi)容;流水線建模應(yīng)用涉及大量數(shù)據(jù)交互,gRPC(Google Remote Procedure Call) 支持高效的數(shù)據(jù)序列化,是當(dāng)前最重要的分布式對(duì)象協(xié)議之一,可為分布式的流水線建模應(yīng)用提供底層支撐;模型圖中的部件自動(dòng)布局管理也是模型可視化的重要研究?jī)?nèi)容。

2.1 MVC模型

MVC 設(shè)計(jì)模式由Trygve Reenskaug于1970年代在Xerox Parc首次提出,其根本目的是構(gòu)建人類用戶理解的業(yè)務(wù)模型和計(jì)算機(jī)數(shù)字模型的橋梁[4]。1988年Krasner和Pope詳細(xì)解釋了smalltalk中的MVC模式,如果在構(gòu)建應(yīng)用程序時(shí)考慮模塊化,盡可能將功能單元彼此隔離,使應(yīng)用邏輯設(shè)計(jì)更易于理解和修改,而無(wú)須了解其他邏輯單元[5]。按MVC模式,可將用戶應(yīng)用程序分為三個(gè)部分:主應(yīng)用域模型、模型數(shù)據(jù)展示和用戶交互。MVC模型結(jié)構(gòu)如圖1所示。

1) 模型Model

模型負(fù)責(zé)管理與數(shù)據(jù)相關(guān)的所有任務(wù):驗(yàn)證、會(huì)話狀態(tài)和控制,引入模型管理可降低應(yīng)用代碼的復(fù)雜性。模型層負(fù)責(zé)應(yīng)用程序的業(yè)務(wù)邏輯,通過(guò)封裝訪問(wèn)數(shù)據(jù)(SQL/NoSQL/文件等)的方法,提供一個(gè)可重用的代碼庫(kù)[6]。

通常一個(gè)模型是用數(shù)據(jù)構(gòu)建的頭腦中的抽象,驗(yàn)證和認(rèn)證,由定義感興趣領(lǐng)域的代碼組成,封裝存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)及其操作,并與不同數(shù)據(jù)源的交互,執(zhí)行業(yè)務(wù)規(guī)則。通過(guò)有效設(shè)計(jì)使得模型在應(yīng)用程序間變得高度可重用。

2) 視圖View

視圖負(fù)責(zé)圖形界面管理。針對(duì)Web應(yīng)用,所有表單、按鈕、圖形元素和應(yīng)用程序內(nèi)部的所有其他HTML元素,可用于生成RSS聚合器。通過(guò)將應(yīng)用程序的設(shè)計(jì)與應(yīng)用程序的邏輯分離,當(dāng)設(shè)計(jì)師決定改變應(yīng)用程序的界面時(shí),可降低出錯(cuò)的風(fēng)險(xiǎn)[6]。

Web應(yīng)用中視圖層控制數(shù)據(jù)顯示方式和用戶交互模式,并提供收集用戶數(shù)據(jù)的方法。視圖通常不應(yīng)包含屬于應(yīng)用邏輯的元素,以使其更容易供設(shè)計(jì)師使用。視圖層通常利用模板技術(shù)來(lái)實(shí)現(xiàn),模板中使用特殊的HTML基于相關(guān)內(nèi)容來(lái)插入和生成注釋,設(shè)計(jì)人員可看到渲染視圖之前的整個(gè)標(biāo)記,這使得模型處理對(duì)于前端開發(fā)人員透明。

3) 控制器Controller

控制器負(fù)責(zé)事件處理,事件則由用戶交互或系統(tǒng)進(jìn)程觸發(fā)??刂破鹘壎ㄋ袘?yīng)用邏輯,將View的顯示與View的功能綁定。模型則負(fù)責(zé)檢索數(shù)據(jù)并為視圖建立執(zhí)行路徑。控制器還負(fù)責(zé)統(tǒng)一的錯(cuò)誤處理。控制器接受用戶交互請(qǐng)求后,訪問(wèn)模型的功能,與模型交互檢索所需數(shù)據(jù)生成視圖,并解釋接收到的數(shù)據(jù),準(zhǔn)備相應(yīng)的數(shù)據(jù)格式,以便在視圖中顯示。

2.2 gRPC通信

gRPC是一個(gè)高性能、通用的開源RPC框架,基于ProtoBuf(Protocol Buffers) 序列化協(xié)議開發(fā),且支持眾多開發(fā)語(yǔ)言。面向服務(wù)端和移動(dòng)端,基于HTTP/2設(shè)計(jì),具有諸如雙向流、流控、頭部壓縮、單TCP連接上的多復(fù)用請(qǐng)求等特征[7]。

在gRPC 里客戶端應(yīng)用可以像調(diào)用本地對(duì)象一樣,直接調(diào)用其他不同機(jī)器上的服務(wù)端應(yīng)用的方法,能夠更容易地創(chuàng)建分布式應(yīng)用和服務(wù),請(qǐng)求流程如圖2所示。

1) 客戶端(gRPC Stub) 調(diào)用M方法,發(fā)起RPC調(diào)用。

2) 對(duì)請(qǐng)求信息使用Protobuf 進(jìn)行對(duì)象序列化壓縮(IDL) 。

3) 服務(wù)端(gRPC Server) 接收到請(qǐng)求后,解碼請(qǐng)求,進(jìn)行業(yè)務(wù)邏輯處理并返回。

4) 對(duì)響應(yīng)結(jié)果使用Protobuf進(jìn)行對(duì)象序列化壓縮(IDL) 。

5) 客戶端接受到服務(wù)端響應(yīng),解碼請(qǐng)求體?;卣{(diào)被調(diào)用的M方法,喚醒正在等待響應(yīng)(阻塞)的客戶端調(diào)用并返回響應(yīng)結(jié)果。

對(duì)于技術(shù)選型,流水線平臺(tái)基于gRPC進(jìn)行前后端通信,有如下優(yōu)勢(shì):

1) 性能好,傳輸效率高:流水線模型運(yùn)行過(guò)程中數(shù)據(jù)層和視圖層的數(shù)據(jù)規(guī)模都比較大,需要在前后端頻繁通信,gRPC通過(guò)Protocol Buffers定義接口,基于ProtoBuf可將數(shù)據(jù)序列化為二進(jìn)制格式,減少數(shù)據(jù)量,大幅度提升性能[8],且gRPC采用HTTP/2.0協(xié)議進(jìn)行傳輸,可以減少TCP連接次數(shù),更加節(jié)省網(wǎng)絡(luò)帶寬。總體上傳輸效率相較json數(shù)據(jù)流快6倍。

2) 簡(jiǎn)化編程,編碼效率高:流水線平臺(tái)客戶端基于JavaScript實(shí)現(xiàn),服務(wù)端基于Java實(shí)現(xiàn),gRPC可以跨語(yǔ)言使用,支持多種語(yǔ)言,基于proto文件可生成客戶端和服務(wù)端目標(biāo)代碼,通過(guò)前后端對(duì)象的序列化實(shí)現(xiàn)通信,序列化反序列化直接對(duì)應(yīng)程序中的數(shù)據(jù)類,不需要解析后再進(jìn)行映射,前端可直接調(diào)用后端接口方法,簡(jiǎn)化流水線建模工作平臺(tái)工作流程,提高編碼效率。

2.3 圖表布局管理(Diagram Layout Management)

數(shù)據(jù)流建模中數(shù)據(jù)流模型以圖表形式展示并與用戶交互,基于布局管理算法實(shí)現(xiàn)圖表的自動(dòng)繪制,使得其具有良好可讀性,并符合美學(xué)要求。自動(dòng)布局算法接收指定圖表元素之間連接關(guān)系的抽象圖(DAG)作為輸入,并根據(jù)美學(xué)產(chǎn)生相應(yīng)的圖表作為輸出?;静呗允侵鸩綐?gòu)建布局,首先構(gòu)建好拓?fù)浣Y(jié)構(gòu),減少邊之間的交叉;隨后,圖表的形狀根據(jù)沿邊緣出現(xiàn)的角度做調(diào)整;最后給圖賦予維度,得到圖的網(wǎng)格骨架[9]。

數(shù)據(jù)流模型通常都是手動(dòng)生成的,或者使用圖形編輯器生成;在這兩種情況下,圖表的布局都由設(shè)計(jì)者負(fù)責(zé)[10]。自動(dòng)布局管理在以下方面對(duì)建模過(guò)程非常有用:降低制作和維護(hù)圖表的成本;自動(dòng)生成符合美學(xué)的圖表,增加圖解表示的表達(dá)能力;整合圖表的構(gòu)思和制作階段;圖文文檔自動(dòng)統(tǒng)一管理,增加用戶和設(shè)計(jì)者之間的通信帶寬。常見(jiàn)的自動(dòng)布局管理如表1所示[11]。

3 流水線可視化建模的設(shè)計(jì)與實(shí)現(xiàn)

3.1 設(shè)計(jì)思路及方法

流水線平臺(tái)主要包括流水線處理引擎和支持與科學(xué)家交互的流水線建模工具軟件。本文聚焦于天文數(shù)據(jù)處理中的流水線建模技術(shù)以及建模中的可視化交互及可視化呈現(xiàn)。向上面向科學(xué)家用戶的使用需求,研究數(shù)據(jù)處理全生命周期的建模管理,提供圖形化管理界面,支持?jǐn)?shù)據(jù)處理流水線的可視化交互及可視化呈現(xiàn);向下對(duì)接流水線處理引擎,完成對(duì)流水線模型的驅(qū)動(dòng)。驅(qū)動(dòng)過(guò)程主要依靠后端調(diào)度算法,具體實(shí)現(xiàn)過(guò)程不是本文研究重點(diǎn),不做具體介紹。流水線建模實(shí)現(xiàn)主要通過(guò)構(gòu)建流水線建模工作臺(tái),完成Pipeline模型繪制,得到可視化模型數(shù)據(jù)結(jié)構(gòu),經(jīng)過(guò)Pipeline 執(zhí)行流程,賦予模型計(jì)算能力并且得到流水線處理引擎可工作的DAG模型數(shù)據(jù)結(jié)構(gòu)?;谀P凸芾?,完成流水線啟動(dòng)以及運(yùn)行過(guò)程可視化展示,輔助用戶分析。基于此,提出具體設(shè)計(jì)思路、實(shí)現(xiàn)方案及方法。

1) 基于DAG的流水線模型設(shè)計(jì)

流水線平臺(tái)實(shí)現(xiàn)數(shù)據(jù)處理自動(dòng)化的關(guān)鍵在于模型數(shù)據(jù)結(jié)構(gòu)定義,需構(gòu)建各計(jì)算任務(wù)間的依賴關(guān)系,完成流水線處理引擎數(shù)據(jù)驅(qū)動(dòng)。天文數(shù)據(jù)處理流水線是由一系列串行的、數(shù)據(jù)驅(qū)動(dòng)的處理模塊組成的數(shù)據(jù)處理過(guò)程。流水線的數(shù)據(jù)流程中通常不存在分支或循環(huán)。第一個(gè)模塊將原始數(shù)據(jù)作為輸入,對(duì)其進(jìn)行處理,并將其結(jié)果發(fā)送到第二個(gè)過(guò)程,依此類推,最終以最后一個(gè)模塊產(chǎn)生的最終結(jié)果結(jié)束。軟件平臺(tái)層面上可理解為由相互連接的數(shù)據(jù)集和處理模塊組成的有向無(wú)環(huán)圖,因此流水線數(shù)據(jù)結(jié)構(gòu)可基于DAG進(jìn)行定義,以yml文件形式進(jìn)行保存。模塊封裝和數(shù)據(jù)組織是流水線定義的重要環(huán)節(jié),因此可定義兩類節(jié)點(diǎn),數(shù)據(jù)集節(jié)點(diǎn)和處理模塊節(jié)點(diǎn)。DAG的起點(diǎn)和終點(diǎn)為數(shù)據(jù)集,數(shù)據(jù)集和處理模塊交叉互聯(lián)。數(shù)據(jù)集中應(yīng)包含數(shù)據(jù)集名稱節(jié)點(diǎn)實(shí)體路徑等信息,處理模塊應(yīng)包含處理模塊名稱、輸入輸出數(shù)據(jù)集、下級(jí)處理節(jié)點(diǎn)、工作基礎(chǔ)鏡像等信息,yml文件具體定義形式如下所示:

2) 流水線建模工具的構(gòu)建

流水線建模工具包括流水線建模工作臺(tái)以及流水線相關(guān)管理界面,主要基于MVC模式實(shí)現(xiàn)模型構(gòu)建與模型輸出功能。Model模型層用于數(shù)據(jù)處理、邏輯處理,View視圖層用于顯示用戶界面,Control控制層作用于模型和視圖上,控制數(shù)據(jù)流向模型對(duì)象,并在數(shù)據(jù)變化時(shí)更新視圖。

針對(duì)流水線可視化建模需求,視圖層需要為用戶提供一個(gè)通過(guò)簡(jiǎn)單拖拽節(jié)點(diǎn)組件來(lái)構(gòu)建Pipeline模型的工作臺(tái),構(gòu)建好的Pipeline模型可保存、可復(fù)現(xiàn)、可創(chuàng)建流水線實(shí)例,提供模型啟動(dòng)、模型執(zhí)行過(guò)程、輸出結(jié)果可視化的模型管理界面。Pipeline模型結(jié)構(gòu)需與數(shù)據(jù)層相匹配,模型中包含的相關(guān)數(shù)據(jù)應(yīng)有節(jié)點(diǎn)、連線、位置等信息,各節(jié)點(diǎn)默認(rèn)配置項(xiàng)、配置參數(shù)選項(xiàng)等?;诖耍瑢⑸鲜龉δ軇澐?,應(yīng)用于視圖層設(shè)計(jì),模塊結(jié)構(gòu)設(shè)計(jì)如圖3所示。

①節(jié)點(diǎn)組件。

節(jié)點(diǎn)組件可理解為流水線建模過(guò)程中的模型算子根據(jù)Pipeline定義形式,定義兩類節(jié)點(diǎn)組件:數(shù)據(jù)集節(jié)點(diǎn)和處理節(jié)點(diǎn)。

a) 數(shù)據(jù)集節(jié)點(diǎn):此類節(jié)點(diǎn)為用戶提供數(shù)據(jù)處理所需的數(shù)據(jù),包括建模流程交互功能和實(shí)例創(chuàng)建后數(shù)據(jù)管理功能。建模流程交互功能允許用戶拖拽至流水線建模工作臺(tái),作為算子使用;數(shù)據(jù)管理功能在模板實(shí)例創(chuàng)建后,可顯示數(shù)據(jù)列表,支持?jǐn)?shù)據(jù)詳情查看等。

b) 處理節(jié)點(diǎn):此類節(jié)點(diǎn)用于封裝數(shù)據(jù)處理過(guò)程中的各類算法,實(shí)現(xiàn)對(duì)單位數(shù)據(jù)實(shí)體(單個(gè)實(shí)體、一組實(shí)體)的數(shù)據(jù)變換、數(shù)據(jù)過(guò)濾、數(shù)據(jù)傳輸?shù)忍幚砉δ?。該?jié)點(diǎn)允許用戶在建模流程交互功能中拖拽至流水線建模工作臺(tái),作為算子使用。允許用戶在模板實(shí)例創(chuàng)建后查看處理過(guò)程任務(wù)列表,支持任務(wù)詳情查看。

②流水線建模工作臺(tái)

流水線建模工作臺(tái)為用戶提供Pipeline模型構(gòu)建功能。選用HTML5交互性圖形庫(kù)中圖表布局管理技術(shù),支持用戶在圖形編輯界面進(jìn)行編輯,支持用戶拉取具備連接關(guān)系的數(shù)據(jù)自動(dòng)生成拓?fù)鋱D。用戶可通過(guò)圖形編輯界面構(gòu)建流水線模型,也可通過(guò)導(dǎo)入具備一定連接關(guān)系的數(shù)據(jù)自動(dòng)生成流水線模型,數(shù)據(jù)結(jié)構(gòu)參考下文提到的可視化數(shù)據(jù)結(jié)構(gòu),自動(dòng)布局無(wú)需節(jié)點(diǎn)位置關(guān)系。

圖形編輯界面建模主要涉及拖拽節(jié)點(diǎn)、節(jié)點(diǎn)配置、節(jié)點(diǎn)間連線形成模板。下面主要對(duì)拖拽實(shí)現(xiàn),節(jié)點(diǎn)連線實(shí)現(xiàn),模板數(shù)據(jù)結(jié)構(gòu)定義進(jìn)行介紹。

a) 拖拽技術(shù)實(shí)現(xiàn):將節(jié)點(diǎn)組件拖拽至建模工作區(qū)域。應(yīng)用JS庫(kù)的拖拽技術(shù),單擊組件模塊中的節(jié)點(diǎn)算子選中節(jié)點(diǎn),拖動(dòng)操作開始執(zhí)行,拖動(dòng)過(guò)程中選擇合適位置放置目標(biāo),拖拽結(jié)束時(shí),結(jié)束鼠標(biāo)單擊事件,節(jié)點(diǎn)組件放置在適當(dāng)位置。

b) 節(jié)點(diǎn)連線實(shí)現(xiàn):通過(guò)使用JS庫(kù)中的鏈接功能為節(jié)點(diǎn)組件間生成可視化工作流。在節(jié)點(diǎn)事件綁定時(shí),為節(jié)點(diǎn)添加輸入、輸出錨點(diǎn)。每個(gè)錨點(diǎn)允許引入多個(gè)數(shù)據(jù)流。節(jié)點(diǎn)連線時(shí),可由一個(gè)節(jié)點(diǎn)的輸出錨點(diǎn)引入另一個(gè)節(jié)點(diǎn)的輸出錨點(diǎn),數(shù)據(jù)流向?yàn)檩敵龅捷斎?,在輸出?jié)點(diǎn)處添加數(shù)據(jù)流向箭頭。

c) 模板數(shù)據(jù)結(jié)構(gòu)定義模板數(shù)據(jù)結(jié)構(gòu)分為基于DAG的模型數(shù)據(jù)結(jié)構(gòu)和可視化數(shù)據(jù)結(jié)構(gòu)。基于DAG的模型數(shù)據(jù)結(jié)構(gòu)用于配合數(shù)據(jù)層完成任務(wù)執(zhí)行功能,可視化數(shù)據(jù)結(jié)構(gòu)用于模型復(fù)現(xiàn),具體定義形式如下所示:

③流水線管理界面

流水線管理界面與流水線建模工作臺(tái)相結(jié)合,通過(guò)流水線建模工作臺(tái)完成流水線實(shí)例創(chuàng)建后,基于可視化數(shù)據(jù)結(jié)構(gòu),流水線管理界面通過(guò)自動(dòng)布局管理將流水線數(shù)據(jù)流模型以圖表形式展示。該頁(yè)面為流水線實(shí)例提供了啟動(dòng)、執(zhí)行過(guò)程展示、執(zhí)行錯(cuò)誤修正,執(zhí)行結(jié)果展示等功能。在模型節(jié)點(diǎn)交互功能中,為模型節(jié)點(diǎn)綁定了點(diǎn)擊事件,右擊可選擇點(diǎn)擊任務(wù)查看/數(shù)據(jù)查看,并結(jié)合數(shù)據(jù)類型,利用可視化插件生成圖表相關(guān)信息[12-13],實(shí)現(xiàn)數(shù)據(jù)展示多樣化,輔助用戶分析。

3) Pipeline執(zhí)行流程

設(shè)計(jì)Pipeline 執(zhí)行流程的目的在于為平臺(tái)的Pipeline模型和流水線處理引擎之間搭建橋梁以及為Pipeline模型提供計(jì)算能力。執(zhí)行流程如圖4所示。通過(guò)流水線建模工作臺(tái)得到Pipeline模型及其可視化結(jié)構(gòu)配置數(shù)據(jù),經(jīng)過(guò)模型翻譯,對(duì)可視化結(jié)構(gòu)數(shù)據(jù)遍歷解析,得到DAG形式的可執(zhí)行數(shù)據(jù)結(jié)構(gòu),以yml文件形式存儲(chǔ);對(duì)天文數(shù)據(jù)處理算法進(jìn)行模塊化封裝構(gòu)建獨(dú)立的容器鏡像,并以低耦合的形式加入天文數(shù)據(jù)處理模型的執(zhí)行流程中[14],滿足Pipeline模型計(jì)算的需求;平臺(tái)接收到流水線實(shí)例創(chuàng)建指令后,控制層對(duì)yml文件進(jìn)行解析,構(gòu)建Pipeline、DataSet、Job 等基本信息,平臺(tái)接收到流水線實(shí)例啟動(dòng)指令后,流水線處理引擎開始工作,根據(jù)構(gòu)建的流水線相關(guān)信息,遵循流水線處理流程,拉取Job工作鏡像,數(shù)據(jù)源開始注入。受DataSet實(shí)時(shí)數(shù)據(jù)的驅(qū)動(dòng),產(chǎn)生需要計(jì)算的任務(wù),分配到計(jì)算資源中,當(dāng)任務(wù)隊(duì)列為空時(shí),流水線執(zhí)行結(jié)束。

3.2 應(yīng)用案例具體實(shí)現(xiàn)

本部分以FRB實(shí)例進(jìn)行展示流水線建模過(guò)程,通過(guò)對(duì)FRB數(shù)據(jù)處理過(guò)程算法模塊進(jìn)行封裝,提供模塊計(jì)算能力,設(shè)計(jì)模型流向圖,進(jìn)行流水線模型構(gòu)建,進(jìn)而創(chuàng)建流水線實(shí)例,具體操作如下。

1) 算法模塊化

天文數(shù)據(jù)處理算法復(fù)雜、冗長(zhǎng),可劃分為若干個(gè)處理模塊。FRB搜索工作其數(shù)據(jù)處理過(guò)程涉及以下算法模塊:數(shù)據(jù)補(bǔ)全、轉(zhuǎn)換合并、GPU消色散、候選體篩選、結(jié)果繪圖。考慮部署、移植、底層環(huán)境適配等因素,模塊化封裝采用輕量級(jí)、啟動(dòng)快、操作簡(jiǎn)單的Docker容器技術(shù),通過(guò)定義Dockerfile文件形式[15],為每個(gè)處理模塊構(gòu)建獨(dú)立的容器鏡像,為流水線實(shí)例創(chuàng)建提供模塊計(jì)算能力,Dockerfile構(gòu)建鏡像通用模板實(shí)例如下所示:

2) 數(shù)據(jù)流向設(shè)計(jì)

流水線建模過(guò)程需構(gòu)建模塊間依賴關(guān)系,考慮FRB搜尋數(shù)據(jù)處理流水線實(shí)例,其數(shù)據(jù)源與處理模塊間的模型數(shù)據(jù)流向設(shè)計(jì)如圖5所示。

3) 模型構(gòu)建

用戶通過(guò)流水線建模工作臺(tái)依照FRB流水線數(shù)據(jù)流向設(shè)計(jì)圖拖拽節(jié)點(diǎn)進(jìn)行繪制,并對(duì)節(jié)點(diǎn)進(jìn)行參數(shù)配置,綁定交互事件,提供FRB流水線模型保存功能以及實(shí)例創(chuàng)建功能。構(gòu)建方式可利用前文介紹的節(jié)點(diǎn)組件進(jìn)行建模,建模過(guò)程主要涉及選擇節(jié)點(diǎn),定義節(jié)點(diǎn)參數(shù),節(jié)點(diǎn)間連線形成模板流程。具體操作如下:

①節(jié)點(diǎn)拖拽,用戶在節(jié)點(diǎn)面板中開始拖拽節(jié)點(diǎn),拖拽至目標(biāo)位置,拖拽開始則觸發(fā)節(jié)點(diǎn)位置信息獲取事件,節(jié)點(diǎn)位置信息隨之變化,拖拽結(jié)束,節(jié)點(diǎn)位置信息保存,同時(shí)生成唯一的節(jié)點(diǎn)ID。有分組需求的,先拖拽分組節(jié)點(diǎn),再將其他節(jié)點(diǎn)拖拽至分組節(jié)點(diǎn)內(nèi)。

②節(jié)點(diǎn)事件綁定,單擊顯示節(jié)點(diǎn)配置信息,右擊提供節(jié)點(diǎn)刪除事件,并為節(jié)點(diǎn)添加輸入點(diǎn)(節(jié)點(diǎn)上方),輸出點(diǎn)(節(jié)點(diǎn)下方)。

③節(jié)點(diǎn)數(shù)據(jù)初始化,填寫節(jié)點(diǎn)配置信息,如數(shù)據(jù)集節(jié)點(diǎn)所需的英文名name,中文名label,容器鏡像base_image,保存在節(jié)點(diǎn)信息中,配置信息中可定義變量,實(shí)現(xiàn)模板重復(fù)利用。

④添加節(jié)點(diǎn)間連線,為節(jié)點(diǎn)添加輸入輸出關(guān)系,每個(gè)節(jié)點(diǎn)允許多個(gè)輸入,允許多個(gè)輸出。對(duì)節(jié)點(diǎn)間連線綁定刪除事件,同時(shí)綁定節(jié)點(diǎn)數(shù)據(jù)信息更新事件,添加連線,刪除連線時(shí)觸發(fā)。

4) 模型執(zhí)行交互

完成流水線模型構(gòu)建后,對(duì)FRB流水線模型進(jìn)行模板保存和實(shí)例創(chuàng)建,具體操作下:

①模板保存:用于模板復(fù)現(xiàn)和更新維護(hù),用戶點(diǎn)擊模板保存按鈕,獲取節(jié)點(diǎn)、位置、連線等信息,以可視化數(shù)據(jù)結(jié)構(gòu)json數(shù)組形式保存。

②實(shí)例創(chuàng)建:用戶選擇FRB流水線模板,當(dāng)含有參數(shù)時(shí),賦予參數(shù)實(shí)例,點(diǎn)擊模板實(shí)例創(chuàng)建按鈕觸發(fā)模板實(shí)例化事件??刂茖荧@取模板json數(shù)組信息進(jìn)行處理,轉(zhuǎn)化為可執(zhí)行數(shù)據(jù)結(jié)構(gòu)DAG形式,以yml文件格式進(jìn)行保存。實(shí)例化的流水線模板可進(jìn)行啟動(dòng),每個(gè)模板可實(shí)例化多條流水線。流水線實(shí)例啟動(dòng),流水線處理引擎開始工作,提供查看各節(jié)點(diǎn)任務(wù)執(zhí)行進(jìn)程、結(jié)果以及出錯(cuò)信息等功能。

4 流水線可視化建模工具應(yīng)用

4.1 流水線建模工作臺(tái)

平臺(tái)采用拖拽式的建模方式,可使用基礎(chǔ)節(jié)點(diǎn)組件進(jìn)行模型新建,使用已有模板復(fù)現(xiàn)進(jìn)行模型構(gòu)建,使用已有模板進(jìn)行模板實(shí)例創(chuàng)建。建模操作主頁(yè)如圖6所示,左側(cè)為已建立模板列表,中間區(qū)域?yàn)榻9ぷ鲄^(qū)域,包括各類型節(jié)點(diǎn)以及流水線模板構(gòu)建圖,右側(cè)為節(jié)點(diǎn)配置信息,用戶在該區(qū)域配置節(jié)點(diǎn)相關(guān)信息。建模工作區(qū)域上方提供了新建模板,模板保存,實(shí)例保存等功能,實(shí)現(xiàn)模板可新建,可復(fù)看,可進(jìn)行實(shí)例創(chuàng)建。

模板新建時(shí),用戶可在組件導(dǎo)航中選擇符合數(shù)據(jù)處理模型需求的組件拖拽至建模工作區(qū)域,拖拽節(jié)點(diǎn)的輸出鏈接線至其他節(jié)點(diǎn)的輸入鏈接線完成數(shù)據(jù)流向。對(duì)節(jié)點(diǎn)進(jìn)行點(diǎn)擊,可在節(jié)點(diǎn)配置區(qū)域?qū)?jié)點(diǎn)基本信息進(jìn)行配置保存。節(jié)點(diǎn)、鏈接線可選中按delete鍵進(jìn)行刪除。

用戶通過(guò)使用流水線建模工作臺(tái)將整個(gè)數(shù)據(jù)處理過(guò)程自動(dòng)串聯(lián)起來(lái),數(shù)據(jù)自動(dòng)化驅(qū)動(dòng),減少人工操作,簡(jiǎn)化了數(shù)據(jù)處理流程,提高了工作效率。

4.2 流水線模型實(shí)例流水線實(shí)例

創(chuàng)建后,用戶可對(duì)流水線實(shí)例進(jìn)行啟動(dòng)。流水線運(yùn)行界面如圖7所示,左側(cè)為處理節(jié)點(diǎn)、數(shù)據(jù)集節(jié)點(diǎn)運(yùn)行過(guò)程中數(shù)據(jù)變化、運(yùn)行狀態(tài)展示,可查看Job名稱、總數(shù)量、已完成數(shù)量、運(yùn)行狀態(tài)。右側(cè)為流水線實(shí)例數(shù)據(jù)流向展示,處理模塊可點(diǎn)擊查看模塊任務(wù)全時(shí)刻運(yùn)行進(jìn)度。

用戶通過(guò)流水線運(yùn)行界面監(jiān)測(cè)數(shù)據(jù)處理各模塊運(yùn)行狀態(tài),完成度,便于發(fā)現(xiàn)錯(cuò)誤及時(shí)處理,保證數(shù)據(jù)處理的準(zhǔn)確性,減少數(shù)據(jù)的誤差。

用戶可對(duì)流水線運(yùn)行過(guò)程中節(jié)點(diǎn)全時(shí)刻運(yùn)行進(jìn)度進(jìn)行查看,ntasks_ready準(zhǔn)備運(yùn)行的任務(wù)、ntasks_running運(yùn)行中的任務(wù)、ntasks_ok運(yùn)行結(jié)束的任務(wù)、ntasks_app_arr運(yùn)行出錯(cuò)的任務(wù),如圖8所示。

用戶通過(guò)回顧各模塊全時(shí)刻處理進(jìn)度,便于總體分析數(shù)據(jù),通過(guò)圖表展示讓數(shù)據(jù)更為直觀,可提高分析進(jìn)度,加快科研產(chǎn)出。

5 結(jié)束語(yǔ)

天文數(shù)據(jù)處理自動(dòng)化流水線軟件平臺(tái)將使得FAST巡天快速射電暴搜索工作流程得到簡(jiǎn)化并大大提高搜索效率,能夠?qū)崿F(xiàn)科學(xué)數(shù)據(jù)處理分析的自動(dòng)化、可重復(fù)、可管理,為加快科學(xué)進(jìn)步提供了好的契機(jī)。本文研究天文數(shù)據(jù)處理中的流水線建模及建模中的可視化交互及可視化呈現(xiàn),設(shè)計(jì)了基于流水線模式的建模工作臺(tái),定義Job、DataSet及其相互關(guān)系,采用可視化交互構(gòu)建完整的Pipeline。用圖形化界面管理流水線模型,為數(shù)據(jù)處理全生命周期提供支持,簡(jiǎn)化了數(shù)據(jù)處理流程的管理,降低了數(shù)據(jù)分析復(fù)雜度,提升了數(shù)據(jù)處理速度和計(jì)算資源利用率,滿足了FRB搜索及同類應(yīng)用的計(jì)算處理需求。后期將繼續(xù)完善現(xiàn)有軟件平臺(tái),從數(shù)據(jù)處理算法種類、平臺(tái)數(shù)據(jù)結(jié)構(gòu)優(yōu)化、可視化圖表樣式、自動(dòng)布局管理等方面出發(fā),為用戶提供更有效的數(shù)據(jù)處理方式以及更好的視覺(jué)效果體驗(yàn),讓其發(fā)揮出更好的作用。

主站蜘蛛池模板: 女人毛片a级大学毛片免费| 91精品国产91久久久久久三级| 国产对白刺激真实精品91| 国产亚洲精品无码专| 国产性爱网站| 91po国产在线精品免费观看| 欧美日本中文| 一级不卡毛片| 无码AV高清毛片中国一级毛片| 国产门事件在线| 播五月综合| yjizz国产在线视频网| 精品国产成人国产在线| 内射人妻无码色AV天堂| 欧美乱妇高清无乱码免费| 91在线国内在线播放老师 | 蜜桃臀无码内射一区二区三区| 国产精品成人观看视频国产| 久久黄色视频影| 亚洲精品在线观看91| 性69交片免费看| 久久综合色播五月男人的天堂| 亚洲A∨无码精品午夜在线观看| 欧美爱爱网| 亚洲欧洲AV一区二区三区| 欧美日本在线播放| 网友自拍视频精品区| 日韩欧美中文亚洲高清在线| 国产在线自在拍91精品黑人| 国产一区二区色淫影院| 国产激爽大片高清在线观看| 欧美日本不卡| 欧美日韩福利| 久久久久久国产精品mv| 亚洲欧洲综合| 伊人久久婷婷| 亚洲精品桃花岛av在线| 亚洲欧美成aⅴ人在线观看| 高清无码一本到东京热| 国产91视频观看| 国产成人夜色91| 四虎永久在线精品国产免费| 国产网站一区二区三区| 青青国产在线| 久久精品女人天堂aaa| 国产白浆一区二区三区视频在线| 99999久久久久久亚洲| 久久精品国产国语对白| 丁香六月综合网| 这里只有精品在线| 九九九九热精品视频| 亚洲人成网7777777国产| 无码专区国产精品第一页| 久久精品这里只有精99品| 在线免费看片a| 欧美亚洲香蕉| 91久久夜色精品国产网站| 国内精品视频| 久久视精品| 国产丝袜啪啪| 亚洲精品片911| 欧美亚洲一区二区三区导航| 99久久免费精品特色大片| 欧美在线黄| 婷婷六月在线| 最新加勒比隔壁人妻| 福利姬国产精品一区在线| 中美日韩在线网免费毛片视频| 国产91小视频在线观看| 国内精品视频在线| 中国一级特黄视频| 久久永久免费人妻精品| 蝌蚪国产精品视频第一页| 新SSS无码手机在线观看| 亚洲av片在线免费观看| 97免费在线观看视频| www.亚洲一区二区三区| jizz亚洲高清在线观看| 久久国产精品娇妻素人| 91精品国产丝袜| 国产永久在线视频| 国产在线观看91精品亚瑟|