基于FPGA的實(shí)時(shí)金融指數行情并行計算
一、立項依據
(1)面臨的問(wèn)題與挑戰
中國金融市場(chǎng)已經(jīng)是全球最大的金融市場(chǎng)之一,隨著(zhù)市場(chǎng)規模的不斷擴大,金融市場(chǎng)的功能發(fā)揮日益明顯,服務(wù)相關(guān)產(chǎn)業(yè)和國民經(jīng)濟的能力不斷提高。金融是現代經(jīng)濟的核心,金融現代化、市場(chǎng)化和國際化程度不斷提高,與社會(huì )主義市場(chǎng)經(jīng)濟體制相適應的金融體制初步建立,并在優(yōu)化資源配置、支持經(jīng)濟改革、促進(jìn)經(jīng)濟持續發(fā)展和維護社會(huì )經(jīng)濟穩定方面發(fā)揮了重要作用。
金融交易系統(例如股票交易系統)具有交易時(shí)間相對集中、交易指令和數據密集的特點(diǎn),對交易系統處理速度具有很高的要求。近年來(lái),資本市場(chǎng)的快速發(fā)展和算法交易技術(shù)(尤其是高頻交易)在全世界范圍內的應用,使得交易所在低交易延時(shí)領(lǐng)域面臨著(zhù)巨大的技術(shù)挑戰。
交易所對于交易系統延時(shí)測量監控需求也越來(lái)越迫切,同時(shí)對于大規模數據密集型計算的實(shí)時(shí)性要求也越來(lái)越高。對于交易系統及環(huán)節的高精度延時(shí)測量,達到近實(shí)時(shí)的分析性能基本可以準確快速的監測股票交易系統性能和狀態(tài),但對于大規模實(shí)時(shí)交易數據分析,則需要達到更快的處理速度,實(shí)時(shí)性要求更高,直接關(guān)系到交易系統的服務(wù)質(zhì)量(QoS)。傳統的軟件技術(shù)或以軟件為核心的軟硬件加速技術(shù)難以滿(mǎn)足微秒級實(shí)時(shí)分析和實(shí)時(shí)響應的要求,采用FPGA專(zhuān)用硬件結構實(shí)現大規模數據密集型計算的并行加速稱(chēng)為提高交易系統服務(wù)質(zhì)量的迫切需求。
金融交易所通過(guò)加速應用軟件來(lái)獲得市場(chǎng)競爭優(yōu)勢.對金融應用軟件加速,金融交易所能夠比競爭對手更快更好地完成交易,更少出錯,大幅度提高收益.要提升性能首先得提高處理能力,全面提升性能 要求處理能力至少提高一個(gè)數量級。中國股票交易系統的現狀,本項目將圍繞股票交易的規則和方法,以上證50指數的數據分析為典型應用場(chǎng)景,通過(guò)專(zhuān)用硬件平臺實(shí)現大規模實(shí)時(shí)并行數據處理,根據特定計算模型實(shí)現快速進(jìn)行股票信息接受、數據處理、指數計算、行情更新等功能。擬采用FPGA為核心器件,研究交易數據的并行調度策略和計算模型,將相應速度提升3-4個(gè)數量級,并給出FPGA隨股票數據數量、計算模型復雜度提高的并行加速性能分析。
(2)與系統建設長(cháng)期規劃的關(guān)系
本項目的研究成果除股票交易的并行加速模型與系統設計外,還包括對股票交易系統其它業(yè)務(wù)處理的硬件加速論證方案,根據計算任務(wù)特點(diǎn)不同,給出合理的硬件加速平臺建設方案,股票指數實(shí)時(shí)更新只是其中的一個(gè)應用場(chǎng)景。
本項研究成果可以集成或獨立應用與股票交易業(yè)務(wù)應用,具有理論研究?jì)r(jià)值和實(shí)際應用推廣價(jià)值,同時(shí)將為股票交易所下一代交易系統核心撮合引擎在硬件并行加速方面的技術(shù)革新奠定基礎。
二、國內外研究現狀
在網(wǎng)絡(luò )以及網(wǎng)絡(luò )數據包處理相關(guān)問(wèn)題上,鏈路帶寬的劇增給高速網(wǎng)絡(luò )數據包處理帶來(lái)了極大的挑戰。傳統的純軟件網(wǎng)絡(luò )數據包處理在性能上已不能滿(mǎn)足需要。當前網(wǎng)絡(luò )處理器、多核芯片等針對高性能網(wǎng)絡(luò )數據包處理提供了硬件加速技術(shù),對多數網(wǎng)絡(luò )應用提供了高性能實(shí)現方法。 在對數據處理時(shí)延、 吞吐量、 丟包率等性能指標有更高要求的應用場(chǎng)合,還需要專(zhuān)用的加速硬件。目前基于現場(chǎng)可編程邏輯門(mén)陣列(FPGA)的通用高速網(wǎng)絡(luò )數據包處理硬件加速架構對數據采集通路進(jìn)行硬件加速,實(shí)現了高速鏈路數據報文的線(xiàn)速采集,通過(guò)專(zhuān)用硬件進(jìn)行數據包轉發(fā)和流量控制,針對后端多核服務(wù)器的并行處理進(jìn)行優(yōu)化,實(shí)現了控制和分析平面的高性能處理。該架構在流量采集、高精度時(shí)鐘同步、高速包分類(lèi)和流量控制等方面,充分卸載了服務(wù)器的處理負荷,能有效地提高應用系統的性能.
針對金融網(wǎng)絡(luò )數據處理的技術(shù)研究而言,國外已經(jīng)預言或實(shí)現了很多相關(guān)硬件加速和并行計算的FPGA實(shí)現,其中Altera公司2008年面向蒙特卡羅算法(QMC)的FPGA加速模型建立,對價(jià)格衍生證券的實(shí)時(shí)精確估計判斷做出了很大的促進(jìn)作用。此外,2009年英國帝國理工學(xué)院和英國金融加速解決方案供應商Celoxica合作,提出實(shí)現了一種叫“低延遲交易數據反饋計算模型”。針對現在越來(lái)越大的交易市場(chǎng)的變化數據(甚至超過(guò)gigabit),他們?yōu)橥顿Y者提供了網(wǎng)絡(luò )傳輸數據分析的FPGA加速處理方案,利用FGPA的可配置特點(diǎn),可選擇地實(shí)現對交易數據的壓縮,過(guò)濾,篩選。其性能優(yōu)越,每秒最多處理高達3.5M條信息,處理延遲也控制在微秒量級上。不但激活了投資者的投資熱情,同時(shí)也極大促進(jìn)了金融市場(chǎng)流動(dòng)性。
- FPGA的特點(diǎn)與應用
FPGA是20世紀80年代中期出現的一種新型的現場(chǎng)可編程邏輯器件,用戶(hù)可以自己編寫(xiě)程序配置FPGA,從而實(shí)現預定的邏輯功能。因為FPGA具有大規模數據并行處理能力、開(kāi)發(fā)周期短、可靠性高和現場(chǎng)可配置等特點(diǎn),所以在短短的幾十年里,現場(chǎng)可編程邏輯嵌入式系統設計技術(shù)已經(jīng)成為信息產(chǎn)業(yè)最熱門(mén)的技術(shù)之一,應用范圍遍及金融、航空航天、醫療、網(wǎng)絡(luò )通訊、安防、汽車(chē)電子、工業(yè)等多個(gè)熱門(mén)領(lǐng)域。在特定領(lǐng)域與傳統PC機相比,FPGA能夠將處理速度提高幾個(gè)數量級。
如圖1所示,FPGA主要由邏輯控制塊(CLB)、輸入輸出控制塊(IOB)和內部連線(xiàn)三大部分組成,同時(shí)芯片內部集成塊狀存儲器(BlockRAM)以及數字信號處理單元DSP以滿(mǎn)足高速數據處理應用環(huán)境的需求。
圖1 FPGA內部原理圖
三、項目?jì)热菖c研究目標
3.1研究?jì)热?/p>
- 實(shí)時(shí)金融指數行情計算模型與并行調度策略
研究實(shí)時(shí)金融指數(本計劃書(shū)以股票ETF50為例)股票推導的計算模型與計算方法,根據數據計算類(lèi)型的特點(diǎn)設計專(zhuān)用硬件處理單元的結構模型;
研究有限計算資源條件下的行情數據緩存與并行調度策略,研究硬件計算資源劃分與共享技術(shù);
研究透明數據接口技術(shù),包括輸入端旁路高速數據獲取技術(shù)與實(shí)現方法以及輸出端的應用接口技術(shù)。
- 基于FPGA的并行加速技術(shù)
研究基于FPGA的硬件千兆以太網(wǎng)數據獲取技術(shù),實(shí)現完全硬件的TCP/IP協(xié)議棧解析和數據包過(guò)濾;
研究行情驅動(dòng)的大規模專(zhuān)用套利數據處理單元結構、數據緩存與并行分發(fā)機制以及數據流水調度算法。
研究面向同構計算單元(同種計算模型)和異構計算單元(異種推導模型)協(xié)同的FPGA資源劃分技術(shù),對資源進(jìn)行優(yōu)化配置,在有限計算資源條件下獲得最高的并行加速性?xún)r(jià)比。
實(shí)時(shí)金融指數行情的可配置與可擴展技術(shù),充分考慮FPGA專(zhuān)用邏輯特點(diǎn)提供計算模型的配置與合約推導的擴展方案。
研究實(shí)時(shí)金融指數行情數據的高速分發(fā)及應用接口技術(shù),采用高速傳輸總線(xiàn)結構實(shí)現實(shí)時(shí)金融指數行情數據的提取和管理。
3.2研究目標
(1)實(shí)現實(shí)時(shí)金融指數的大規模硬件并行加速,將數據處理的性能提升3-4個(gè)數量級。給出數據獲取、數據分析、數據發(fā)布的總時(shí)間開(kāi)銷(xiāo)的最大加速比以及資源擴展性?xún)r(jià)比分析。
(2)實(shí)現基于FPGA的千兆以太網(wǎng)數據獲取與硬件協(xié)議棧解析,突破軟件協(xié)議棧解析的性能瓶頸;設計并實(shí)現行情驅動(dòng)的硬件數據緩存、數據分發(fā)、并行調度與管理;實(shí)現基于FPGA的異構與同構計算單元相結合的大規模數據并行處理,實(shí)現多粒度流水控制和資源復用。
(3)提出加速平臺集成方法,設計集成平臺的芯片級與板級的動(dòng)態(tài)擴展結構;給出FPGA并行處理性能隨計算模型復雜度、股票信息數量、數據傳輸速率變化的評測分析報告,以及股票交易系統業(yè)務(wù)類(lèi)型的硬件加速適應性分析報告。
四、實(shí)施方案與技術(shù)路線(xiàn)
本項目實(shí)施首先分別采用FPGA設計實(shí)時(shí)金融指數行情的并行處理結構,并通過(guò)測試數據和簡(jiǎn)化計算模型驗證系統的可用性,對比分析硬件并行的加速比并給出隨輸入條件變化的性能提升分析,然后設計基于FPGA加速平臺的系統結構和核心調度策略。
本項目的主要目標是降低“實(shí)時(shí)金融指數行情”的計算和傳輸延遲,達到實(shí)時(shí)的指標數據分析,因此性能評價(jià)是對數據獲取時(shí)間Tg、數據處理時(shí)間Ta、數據發(fā)布時(shí)間Ts的總時(shí)間Tt的評價(jià)公式(1)所示:
(1)
其中,基于FPGA的設計方案除采用并行結構降低Ta,還實(shí)現硬件的協(xié)議棧解析,從而大大降低Tg,同時(shí)也采用硬核方式降低Ts的延遲;而FPGA在內存交換的優(yōu)勢將有效降低Ts。
4.1基于FPGA的并行加速技術(shù)方案
(1)基于FPGA的并行加速總體結構
圖3-1為系統結構圖,主要由數據接收模塊、股票信息并行處理模塊、數據發(fā)送模塊組成。數據接收模塊主要負責協(xié)議包的跨層解析以及包過(guò)濾。股票信息并行處理模塊是整個(gè)系統的算法核心,采用高速并行方式分析股票信息,計算相關(guān)指數,并通過(guò)數據發(fā)送模塊快速發(fā)布。在股票信息并行處理模塊中,算法定向單元負責調度下層的異構邏輯塊,異構邏輯塊通過(guò)同構邏輯晶格完成最基礎的數據計算。在股票信息并行處理模塊中,將所有的數據存儲于FPGA內部的分布式RAM中,突破了IO傳輸的瓶頸。
圖7 FPGA計算系統結構圖
對于數據計算,每一種股票指數都有自己的指數計算的方法(本計劃書(shū)以上證50指數為例):
上證 50 指數采用派許加權方法,按照樣本股的調整股本數為權數進(jìn)行加權計算。計
算公式為:
Ip = Pa / base * 1000 (1)
Ip:報告期指數 Pa:報告期成份股的調整市值 base:基 期
其中,Pa = Σ(Pi× St) (2)
Pi:市價(jià) St:調整股數。
調整股本數采用分級靠檔的方法對成份股股本進(jìn)行調整。
上證50 指數的分級靠檔方
法如下表所示。
流通比例(%) ≤10 (10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,80] >80
加權比例(%) 流通比例 20 30 40 50 60 70 80 100
將上面計算方法進(jìn)行抽象可以得到:
(2)
其中xn為從股票信息中抽象出的向量,即為Pa。為多項式系數,將
表示為如公式(3)所示的向量形式:
(3)
對于向量以及
(
),定義如果其中
,則
同構算法,否則
異構算法。對所有的異構算法進(jìn)行等價(jià)類(lèi)劃分得到m個(gè)集合
。如圖2所示,在用FPGA實(shí)現時(shí),對m個(gè)異構算法采用并行實(shí)現方式。對于同構算法,在各異構結構中實(shí)現多個(gè)同構的計算晶格來(lái)提高同構算法的并行處理能力。若用[Tm]表示集合Tm中元素的數量,用
表示各異構結構中同構結構的實(shí)現數量,用
表示每一種同構計算晶格計算一次的時(shí)間,用ta表示分配k個(gè)計算序列
所消耗的時(shí)間,那么整個(gè)計算過(guò)程所需時(shí)間tlogic如公式(4)所示:
(4)
(2)可配置性與可擴展性設計
為了便于用戶(hù)自定義計算規則和業(yè)務(wù)擴展,從設計架構上采用讀入配置文件的方式并且提供擴展空間,實(shí)現配置性和擴展性。
可配置性:為用戶(hù)設計圖形化的配置界面軟件,當軟件接受用戶(hù)計算請求后會(huì )自動(dòng)生成相應的配置文件,來(lái)配置FPGA中的配置寄存器,實(shí)現不同要求不同需求、不同用途的運算。
可擴展性:在系統設計中,預留新合約擴展空間,以哈希表等數據結構存儲運算。運算過(guò)程中,行情數據包到來(lái)時(shí),FPGA會(huì )通過(guò)哈希函數查找哈希表,確定數據的有效性和計算規則,進(jìn)行邏輯判斷進(jìn)行選擇。
(3)基于FPGA的硬件以太網(wǎng)協(xié)議跨層解析
在數據分析獲取過(guò)程中,以太網(wǎng)的協(xié)議解析占據了很大的時(shí)間比例。如果采用一般的軟件解包方法,時(shí)間一般延遲包括每一網(wǎng)絡(luò )層的解包時(shí)間和中間數據的傳輸時(shí)間,時(shí)間延遲可達毫秒級甚至更高??紤]到降低整個(gè)系統的數據傳輸延遲,進(jìn)而提升處理性能,提出以下兩種解決方案。
1)使用FPGA集成的可配置IP核。FPGA的IP核基于硬件原理實(shí)現,在數據傳輸延遲和網(wǎng)絡(luò )數據解包能力上都大大優(yōu)于傳統的軟件處理過(guò)程,而且極大縮短了開(kāi)發(fā)周期,其可靠性,可配置性,通用性都相當出色。適合在項目的中前期作為數據輸入的模擬測試。但是具體面向此項目IP核也會(huì )有自身的冗余,在MAC層不能進(jìn)行自定義的協(xié)議解析,總的延遲大約在幾十微秒至幾百微秒。
2)針對本應用設計基于跨層解析的以太網(wǎng)數據分析模型。由于套利計算的數據源的包格式固定,封裝簡(jiǎn)單,而且屬于旁路數據,完全可以自行設計針對本應用的專(zhuān)用數據解析功能部分,方案優(yōu)勢和創(chuàng )新點(diǎn)在于在MAC層跨層解析數據以及包過(guò)濾,數據接收與解析時(shí)間重疊。采用狀態(tài)機逐層進(jìn)行包過(guò)濾,在有限機器周期內便可獲得需要計算的數據,時(shí)間延遲可控制在微秒級。
基于FPGA的硬件以太網(wǎng)協(xié)議跨層解析能夠降低傳統軟件協(xié)議棧的數據包處理固有延遲(可能占據整個(gè)延遲的80%以上開(kāi)銷(xiāo)),大大提高數據獲取和預處理效率。
(4)高速應用接口設計方案
板級數據輸出采用PCI-Express接口,PCI-Express接口具有擴展性強、低成本、低延遲、高速率等顯著(zhù)優(yōu)點(diǎn)。單根鏈路速率為2.5Gb/s,為了解決本系統的IO瓶頸,在系統輸出端擬采用8根鏈路與PC機通信。那么理論上速度可達到20Gb/s,能夠滿(mǎn)足系統的速度要求,同時(shí)也可以滿(mǎn)足系統升級后的速率要求。PCI-Express與PC機連接方式由圖8所示,可見(jiàn)PCI-Express的擴展性極強。
圖8 PCI-Express拓撲圖
在本系統中主要采用單點(diǎn)的PCI-Express Endpoint與PC機通信,PCI-Express Endpoint功能結構與接口如圖9所示,數據主要依次通過(guò)Transaction Layer、Data Link LayerPhysical Layer三層傳輸到另一端。用戶(hù)可以通過(guò)Configuration Interface對PCI-Express進(jìn)行配置。
圖9 PCI-Express
在數據傳輸密集時(shí),可以配置PCI-Express為突發(fā)傳輸模式,這樣,只需經(jīng)過(guò)起始的握手后,便可快速的進(jìn)行數據傳輸。如圖10所示,在PC機端擬采用乒乓數據緩沖池作為PCI-Express的數據接收緩沖區,當其中一個(gè)緩沖區滿(mǎn)時(shí),會(huì )產(chǎn)生DMA中斷通知PC機操作系統,PC機即可對數據進(jìn)行處理。這種乒乓緩沖池可以在突破PC機處理速度與本系統傳輸速度不一致的IO瓶頸的同時(shí),減少本系統的IO傳輸延遲等待。
圖10 PC端PCI-Express乒乓數據緩沖池
4.2關(guān)鍵技術(shù)與創(chuàng )新點(diǎn)
(1)基于FPGA的實(shí)時(shí)金融指數并行分析技術(shù)
基于FPGA的硬件跨層協(xié)議解析與包過(guò)濾技術(shù),在接收緩沖網(wǎng)絡(luò )數據包的同時(shí)完成期貨套利信息提取,大大降低軟件協(xié)議棧數據包解析的固有延遲。
行情驅動(dòng)的專(zhuān)用異構與同構計算單元的協(xié)同計算模型,充分挖掘信息計算的并行性,并具有可擴展性和可配置性。
靈活高速的套利合約發(fā)布應用接口技術(shù),有效保證信息發(fā)布的實(shí)時(shí)性。
評論