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