CN103425746A - 基于fpga的实时金融指数行情并行计算方法 - Google Patents
基于fpga的实时金融指数行情并行计算方法 Download PDFInfo
- Publication number
- CN103425746A CN103425746A CN2013103030659A CN201310303065A CN103425746A CN 103425746 A CN103425746 A CN 103425746A CN 2013103030659 A CN2013103030659 A CN 2013103030659A CN 201310303065 A CN201310303065 A CN 201310303065A CN 103425746 A CN103425746 A CN 103425746A
- Authority
- CN
- China
- Prior art keywords
- parallel
- contract
- futures
- fpga
- arbitrage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明基于FPGA的实时金融指数行情并行计算方法属于金融期货领域,涉及一种实时金融指数行情的计算分析方法,尤其是对高频的金融期货交易信息进行并行行情分析。该方法将期货套利快速分析、合约推导和行情更新等功能由传统的计算机迁移到FPGA硬件平台上进行并行加速计算。在FPGA硬件平台上,针对期货套利计算实时性要求高、交易信息关联度大、套利计算独立性强的特点,将关键计算方法划分为三部分:(1)基于千兆以太网非对称协议栈的跨层解析;(2)细粒度的Aho-Corasick(AC)自动机合约匹配;(3)期货套利合约模块的并行,在特定的期货套利计算中进行并行处理。该方法缩短计算时延,将期货交易数据处理的性能提升3个数量级以上。
Description
技术领域
本发明属于金融期货领域,涉及一种实时金融指数行情的计算分析方法,尤其是对高频的金融期货交易信息进行并行行情分析。
背景技术
期货套利是指利用相关市场或者相关合约之间的价差变化,在相关市场或者相关合约上进行与交易方向相反的交易,以期在价差发生有利变化而获利的交易行为,一般分为跨市套利、跨期套利和跨商品套利。第一,期货套利计算实时性要求高,在最短的时间内计算出套利合约是赢得第一手权威交易数据的筹码。第二,交易信息关联度大,每个交易合约会和若干合约关联,多关联查找成为分配计算的关键。第三,套利计算独立性强,各个合约存在可并行部分,设计出有效的并行计算模型,可有效缩短计算延迟。传统的软件技术或以软件为核心的软硬件加速技术难以满足微秒级实时分析和实时响应的要求。从促进市场繁荣角度,提高面向投资者服务质量角度,以及交易系统核心撮合引擎在硬件并行加速方面的技术革新奠定基础的角度,市场迫切需要利用硬件并行加速技术开发针对投资商行情分析的解决方案。
发明内容
本发明要解决的技术难题是克服现有技术的缺陷,发明一种基于FPGA的实时金融指数行情并行计算方法,采用了一种跨层的包解析技术,在数据链路层中,除了简化数据链路层中相对本系统冗余的载波侦听和冲突检测之外,针对期货专用的应用包协议格式,在数据链路层解析包同时,直接将网络层,传输层,应用层包信息剥离,减少了包处理过程中的时间消耗。本发明基于千兆以太网非对称协议栈的跨层解析减少了传统基于存储转发网络协议栈的延迟;细粒度的Aho-Corasick(AC)自动机匹配算法有效优化了交易条目对应的查找表在片上的存储资源和匹配效率;期货套利合约模块的并行方案在特定的期货套利计算中进行并行处理,缩短计算时延。实现期货套利合约分析的大规模硬件并行加速,解决并实现期货套利快速分析、合约推导和行情更新等问题。
本发明采用的技术方案为基于FPGA的实时金融指数行情并行计算方法,其特征是,将期货套利快速分析、合约推导和行情更新功能在FPGA硬件平台上进行并行加速计算;将关键计算方法划分为三部分;
(1)基于千兆以太网非对称协议栈的跨层解析:在数据链路层中,除了简化数据链路层中相对本系统冗余的载波侦听和冲突检测之外,针对期货专用的应用包协议格式,在数据链路层解析包同时,直接将网络层,传输层,应用层包信息剥离,减少了包处理过程中的时间消耗,减少了传统基于存储转发网络协议栈的延迟;
(2)细粒度的Aho-Corasick自动机合约匹配:针对FPGA可以并行匹配的特点,采用基于Nibble位的AC自动机合约匹配,在并行调度模块控制下每次并行匹配四位,同时跳转到下一个匹配状态,直至遇到终止状态;过程为:
①将待匹配的关键字写入一个文件中;然后通过电脑程序读取文件分析并生成查找表;
②FPGA主程序在片内RAM中写入或者更新查找表;
③开始对输入的交易数据进行匹配。匹配到的交易数据便可以进行套利合约的计算,求出最优的合约订单;
④如若匹配不到,则视为错误数据,自动抛弃交易数据包;
有效优化了交易条目对应的查找表在片上的存储资源和匹配效率;
(3)期货套利合约模块的并行:核心模块为同构计算单元,设计并行化计算单元和并行分配单元;数据通过算法分配单元将数据进行并行化划分,每个单元单独并行工作,互不干扰,最终将计算结果放入缓存中,交由数据发送控制端发送回主机显示;并行计算的单元中,每一个模块之内为同构计算单元,使用相同的计算逻辑计算同一类的套利计算;每个同构计算单元内都共享AC搜索匹配单元和一个查找表,匹配不同合约之间的套利关系生成,用于查找合约之间的计算关系,同时每次并行计算之前遍历查找表,若表中存在合约关系,便分配一个计算单元进行并行计算,直至查找表遍历完毕;最终将结果放入缓存后,通过千兆以太网发送端口统一发回主机显示;在特定的期货套利计算中进行并行处理,缩短计算时延。
本发明具有以下明显效果:(1)通过专用FPGA硬件平台实现大规模实时并行数据处理和网络数据包的快速解析;(2)根据特定计算模型达到期货套利快速分析、合约推导和行情更新等功能。(3)将期货交易数据处理的性能提升3个数量级以上。
附图说明
图1是平台整体结构,图2是期货套利目标平台模块划分,图3是MAC层协议解析模块,图4是基于Nibble位的AC搜索匹配算法模块,图5合约并行调度和基本计算模块。
具体实施方式
以下结合技术方案和附图对本发明进行详细说明,在附图1中,主机通过网络套接字应用程序和驱动将交易信息从主机的千兆以太网卡发送到目标平台的千兆以太网卡,经过数据链路层的MAC协议解析①将有效的交易数据②交给并行调度模块。并行调度模块使用AC自动机算法③搜索交易条目,然后并行地分配给基本计算单元PE(Process Element)进行并行计算。最后计算的结果汇总到数据缓存中④,最后将套利方案通过以太网模块返回到主机显示。
在附图2中,将期货套利快速分析、合约推导和行情更新等功能由传统的计算机迁移到FPGA硬件平台上进行并行加速计算。在FPGA硬件平台上,针对期货套利计算实时性要求高、交易信息关联度大、套利计算独立性强的特点,将关键技术方案划分为三部分(1)基于千兆以太网非对称协议栈的跨层解析:可以大大减少了传统基于存储转发网络协议栈的延迟;(2)细粒度的Aho-Corasick(AC)自动机合约匹配:有效优化了交易条目对应的查找表在片上的存储资源和匹配效率;(3)期货套利合约模块的并行过程,在特定的期货套利计算中进行并行处理,缩短计算时延。
在附图3中,传统以太网基于分层的结构,由下至上分别为物理层-数据链路层-网络层-传输层-应用层五层,当网络数据传输到目标平台上时,必须要经过每一层的:存储-包解析-转发的过程后,才能最后得到有效的应用层数据。虽然这种方式通用性好,但其中的过程造成了大量的时间浪费,导致系统处理延迟变大,不适合本应用背景。
本发明针对这一问题,针对本应用的特殊性,发明了一种跨层的包解析技术,在数据链路层中,除了简化数据链路层中相对本系统冗余的载波侦听和冲突检测之外,针对期货专用的应用包协议格式,在数据链路层解析包同时,直接将网络层,传输层,应用层包信息剥离,减少了包处理过程中的时间消耗。所谓的非对称是指发送和传统的IOS网络五层架构的层次结构相对应的而接收为跨越层次解析。其中:交易数据从左侧通过千兆以太网物理层芯片获得,交由千兆以太网非对称协议栈进行跨层解析,直接可获取应用层数据,MAC层模块为针对本应用定制的具有灵活性的解析模块,解析后将应用层数据提交给并行调度模块,大大缩短了包解析时间。与此对应,应用层数据由千兆以太网发出时,首先交由给上层UDP/IP协议栈,对应用层数据依次进行UDP包封装,IP包封装,链路层包封装,交由以太网物理层芯片发送。
在附图4中,由于期货套利合约数量多,关系复杂,传统的基于软件的匹配算法基于串行匹配思想,不但速度很难满足实时性要求,存储表所占的大量空间也很难在FPGA中实现。因此,针对FPGA可以并行匹配的特点,采用基于Nibble位(4位,半字节)的AC自动机合约匹配,在并行调度模块控制下每次并行匹配四位,同时跳转到下一个匹配状态,直至遇到终止状态。过程为:
①将待匹配的关键字写入一个文件中;然后通过电脑程序读取文件分析并生成查找表;
②FPGA主程序在片内RAM中写入或者更新查找表。
③开始对输入的交易数据进行匹配。匹配到的交易数据便可以进行套利合约的计算,求出最优的合约订单;
④如若匹配不到,则视为错误数据,自动抛弃交易数据包。
基于Nibble的AC匹配自动状态机每次匹配合约信息4位,共有16种跳转可能,每次匹配只需要16位存储空间,很适合在FPGA片内Block RAM中存储。FPGA首先对输入的交易数据进行匹配,匹配到的多条交易数据便可以进行套利合约的计算,求出最优的合约订单;如若匹配不到,则视为错误数据,自动抛弃交易数据包。
在附图5中,期货套利合约模块的并行:主要的核心模块为同构计算单元。针对期货交易独立性强的特点,设计并行化计算单元和并行分配单元。数据通过算法分配单元将数据进行并行化划分,每个单元单独并行工作,互不干扰,最终将计算结果放入缓存中,交由数据发送控制端发送回主机显示。并行计算的单元中,每一个模块之内为同构计算单元,使用相同的计算逻辑计算同一类的套利计算(如所有的单级合约套利计算便属于同一类计算)。每个同构计算单元内都共享AC搜索匹配单元和一个查找表,匹配不同合约之间的套利关系生成,用于查找合约之间的计算关系,同时每次并行计算之前遍历查找表,若表中存在合约关系,便分配一个计算单元进行并行计算,直至查找表遍历完毕。最终将结果放入缓存后,通过千兆以太网发送端口统一发回主机显示。
本发明基于千兆以太网非对称协议栈的跨层解析减少了传统基于存储转发网络协议栈的延迟;细粒度的Aho-Corasick(AC)自动机匹配算法有效优化了交易条目对应的查找表在片上的存储资源和匹配效率;解决并实现期货套利快速分析、合约推导和行情更新等问题。
Claims (1)
1.一种基于FPGA的实时金融指数行情并行计算方法,其特征是,该计算方法将期货套利快速分析、合约推导和行情更新功能在FPGA硬件平台上进行并行加速计算;将关键计算方法划分为三部分:
(1)基于千兆以太网非对称协议栈的跨层解析:在数据链路层中,除了简化数据链路层中相对本系统冗余的载波侦听和冲突检测之外,针对期货专用的应用包协议格式,在数据链路层解析包同时,直接将网络层,传输层,应用层包信息剥离,减少了包处理过程中的时间消耗,减少了传统基于存储转发网络协议栈的延迟;
(2)细粒度的Aho-Corasick自动机合约匹配:针对FPGA可以并行匹配的特点,采用基于Nibble位的AC自动机合约匹配,在并行调度模块控制下每次并行匹配四位,同时跳转到下一个匹配状态,直至到终止状态;过程为:
①将待匹配的关键字写入一个文件中;然后通过电脑程序读取文件分析并生成查找表;
②FPGA主程序在片内RAM中写入或者更新查找表;
③开始对输入的交易数据进行匹配。匹配到的交易数据便可以进行套利合约的计算,求出最优的合约订单;
④如若匹配不到,则视为错误数据,自动抛弃交易数据包;
有效优化了交易条目对应的查找表在片上的存储资源和匹配效率;
(3)期货套利合约模块的并行:核心模块为同构计算单元,设计并行化计算单元和并行分配单元;数据通过算法分配单元将数据进行并行化划分,每个单元单独并行工作,互不干扰,最终将计算结果放入缓存中,交由数据发送控制端发送回主机显示;并行计算的单元中,每一个模块之内为同构计算单元,使用相同的计算逻辑计算同一类的套利计算;每个同构计算单元内都共享AC搜索匹配单元和一个查找表,匹配不同合约之间的套利关系生成,用于查找合约之间的计算关系,同时每次并行计算之前遍历查找表,若表中存在合约关系,便分配一个计算单元进行并行计算,直至查找表遍历完毕;最终将结果放入缓存后,通过千兆以太网发送端口统一发回主机显示;在特定的期货套利计算中进行并行处理,缩短计算时延。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103030659A CN103425746A (zh) | 2013-07-18 | 2013-07-18 | 基于fpga的实时金融指数行情并行计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103030659A CN103425746A (zh) | 2013-07-18 | 2013-07-18 | 基于fpga的实时金融指数行情并行计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103425746A true CN103425746A (zh) | 2013-12-04 |
Family
ID=49650485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103030659A Pending CN103425746A (zh) | 2013-07-18 | 2013-07-18 | 基于fpga的实时金融指数行情并行计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103425746A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104599185A (zh) * | 2015-02-02 | 2015-05-06 | 恒生电子股份有限公司 | 交易方法、终端及系统 |
CN105023185A (zh) * | 2015-08-04 | 2015-11-04 | 武汉旷腾信息技术有限公司 | 一种基于fpga的期货交易盘口数据实时解析系统 |
CN105989539A (zh) * | 2015-09-22 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种金融交易行情获取系统以及获取方法 |
CN105989538A (zh) * | 2015-07-28 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种金融产品自动交易系统及自动交易方法 |
CN108269188A (zh) * | 2016-12-30 | 2018-07-10 | 上海金融期货信息技术有限公司 | 一种基于fpga的交易所行情信息处理方法和系统 |
CN108289117A (zh) * | 2017-09-25 | 2018-07-17 | 上海金融期货信息技术有限公司 | 一种基于fpga的多方接入系统及处理方法 |
CN110019561A (zh) * | 2018-05-14 | 2019-07-16 | 网联清算有限公司 | 交易数据汇总方法、装置及计算机设备 |
CN110610099A (zh) * | 2018-06-15 | 2019-12-24 | 上海仪电(集团)有限公司中央研究院 | 基于fpga硬件加速的金融风险智能预警与风控系统 |
CN110611624A (zh) * | 2018-06-15 | 2019-12-24 | 上海仪电(集团)有限公司中央研究院 | 一种基于fpga的海量行情数据加速系统及加速方法 |
CN111600731A (zh) * | 2020-07-27 | 2020-08-28 | 南京艾科朗克信息科技有限公司 | 一种期货行情档位快速处理系统和方法 |
CN111815445A (zh) * | 2020-06-29 | 2020-10-23 | 浪潮电子信息产业股份有限公司 | 一种行情数据的重构方法及相关装置 |
CN111861742A (zh) * | 2020-06-24 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种fpga平台及一种数据处理系统 |
CN112559812A (zh) * | 2020-12-24 | 2021-03-26 | 中国船舶集团有限公司 | 一种基于cpu+fpga的大数据输出方法及系统 |
CN112634041A (zh) * | 2020-12-28 | 2021-04-09 | 深圳华云信息系统有限公司 | 基于fpga的金融交易方法、装置及系统 |
CN114004611A (zh) * | 2021-10-29 | 2022-02-01 | 郑州师范学院 | 一种基于fpga的流式支付加速方法、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246194A (zh) * | 2008-11-10 | 2011-11-16 | 索莫亚私人有限公司 | 改进的自动交易系统 |
CN102376068A (zh) * | 2010-08-19 | 2012-03-14 | 朱顺平 | 股指期货的期现套利行情分析方法 |
US8332307B1 (en) * | 2005-05-31 | 2012-12-11 | Navigate Fund Solutions LLC | Variants of NAV-based trading for less closely-linked components of index arbitrage complexes |
-
2013
- 2013-07-18 CN CN2013103030659A patent/CN103425746A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8332307B1 (en) * | 2005-05-31 | 2012-12-11 | Navigate Fund Solutions LLC | Variants of NAV-based trading for less closely-linked components of index arbitrage complexes |
CN102246194A (zh) * | 2008-11-10 | 2011-11-16 | 索莫亚私人有限公司 | 改进的自动交易系统 |
CN102376068A (zh) * | 2010-08-19 | 2012-03-14 | 朱顺平 | 股指期货的期现套利行情分析方法 |
Non-Patent Citations (1)
Title |
---|
王洁等: "基于FPGA的期货套利并行实时分析方法及实现", 《计算机科学》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104599185A (zh) * | 2015-02-02 | 2015-05-06 | 恒生电子股份有限公司 | 交易方法、终端及系统 |
CN105989538A (zh) * | 2015-07-28 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种金融产品自动交易系统及自动交易方法 |
CN105989538B (zh) * | 2015-07-28 | 2021-11-02 | 盛立安元科技(杭州)股份有限公司 | 一种金融产品自动交易系统及自动交易方法 |
CN105023185A (zh) * | 2015-08-04 | 2015-11-04 | 武汉旷腾信息技术有限公司 | 一种基于fpga的期货交易盘口数据实时解析系统 |
CN105023185B (zh) * | 2015-08-04 | 2019-03-08 | 武汉旷腾信息技术有限公司 | 一种基于fpga的期货交易盘口数据实时解析系统 |
CN105989539B (zh) * | 2015-09-22 | 2019-10-25 | 盛立金融软件开发(杭州)有限公司 | 一种金融交易行情获取系统以及获取方法 |
CN105989539A (zh) * | 2015-09-22 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种金融交易行情获取系统以及获取方法 |
CN108269188A (zh) * | 2016-12-30 | 2018-07-10 | 上海金融期货信息技术有限公司 | 一种基于fpga的交易所行情信息处理方法和系统 |
CN108289117B (zh) * | 2017-09-25 | 2021-04-06 | 上海金融期货信息技术有限公司 | 一种基于fpga的多方接入系统及处理方法 |
CN108289117A (zh) * | 2017-09-25 | 2018-07-17 | 上海金融期货信息技术有限公司 | 一种基于fpga的多方接入系统及处理方法 |
CN110019561A (zh) * | 2018-05-14 | 2019-07-16 | 网联清算有限公司 | 交易数据汇总方法、装置及计算机设备 |
CN110610099A (zh) * | 2018-06-15 | 2019-12-24 | 上海仪电(集团)有限公司中央研究院 | 基于fpga硬件加速的金融风险智能预警与风控系统 |
CN110611624A (zh) * | 2018-06-15 | 2019-12-24 | 上海仪电(集团)有限公司中央研究院 | 一种基于fpga的海量行情数据加速系统及加速方法 |
CN111861742A (zh) * | 2020-06-24 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种fpga平台及一种数据处理系统 |
CN111815445A (zh) * | 2020-06-29 | 2020-10-23 | 浪潮电子信息产业股份有限公司 | 一种行情数据的重构方法及相关装置 |
CN111600731A (zh) * | 2020-07-27 | 2020-08-28 | 南京艾科朗克信息科技有限公司 | 一种期货行情档位快速处理系统和方法 |
CN112559812A (zh) * | 2020-12-24 | 2021-03-26 | 中国船舶集团有限公司 | 一种基于cpu+fpga的大数据输出方法及系统 |
CN112559812B (zh) * | 2020-12-24 | 2022-03-08 | 中国船舶集团有限公司 | 一种基于cpu+fpga的大数据输出方法及系统 |
CN112634041A (zh) * | 2020-12-28 | 2021-04-09 | 深圳华云信息系统有限公司 | 基于fpga的金融交易方法、装置及系统 |
CN114004611A (zh) * | 2021-10-29 | 2022-02-01 | 郑州师范学院 | 一种基于fpga的流式支付加速方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103425746A (zh) | 基于fpga的实时金融指数行情并行计算方法 | |
CN103247003B (zh) | 面向事件处理的分布式程序化交易系统 | |
CN103336808B (zh) | 一种基于bsp模型的实时图数据处理系统及方法 | |
GB2576461A (en) | Financial derivative contract execution platform, system and method | |
US8949810B2 (en) | Method for high-performance data stream processing | |
CN103699606B (zh) | 一种基于顶点切割与社区聚集的大规模图划分方法 | |
CN102255962B (zh) | 一种分布式存储方法、装置和系统 | |
CN102169505A (zh) | 基于云计算的推荐系统构建方法 | |
CN103109271A (zh) | 一种平台间迁移应用的实现方法及系统 | |
CN104424013A (zh) | 在计算环境中部署虚拟机的方法和设备 | |
CN102662639A (zh) | 一种基于Mapreduce的多GPU协同计算方法 | |
CN102082692A (zh) | 基于网络数据流向的虚拟机迁移方法、设备和集群系统 | |
CN108093652A (zh) | 应用的模拟 | |
CN103455633A (zh) | 一种海量网络发票明细数据分布式分析方法 | |
CN106293944A (zh) | 虚拟化多核环境下基于非一致性i/o访问系统和优化方法 | |
CN104601711A (zh) | 用于云服务器的基于fpga的数据存储方法和系统 | |
US11157795B2 (en) | Graph partitioning and placement for multi-chip neurosynaptic networks | |
CN106155822A (zh) | 一种处理能力评估方法及装置 | |
CN201804331U (zh) | 一种基于协处理器的重复数据删除系统 | |
CN110413561A (zh) | 数据加速处理系统 | |
CN106227465B (zh) | 一种环结构的数据放置方法 | |
CN105426119A (zh) | 一种存储设备及数据处理方法 | |
CN112449021B (zh) | 一种互联网资源的筛选方法及装置 | |
CN108572787A (zh) | 一种数据存储、读取的方法及装置 | |
US20190122114A1 (en) | Hardware-software co-design of neurosynaptic systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131204 |