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