CN102930471A - 基于倒向随机微分方程的期权定价方法及装置 - Google Patents

基于倒向随机微分方程的期权定价方法及装置 Download PDF

Info

Publication number
CN102930471A
CN102930471A CN2012103481201A CN201210348120A CN102930471A CN 102930471 A CN102930471 A CN 102930471A CN 2012103481201 A CN2012103481201 A CN 2012103481201A CN 201210348120 A CN201210348120 A CN 201210348120A CN 102930471 A CN102930471 A CN 102930471A
Authority
CN
China
Prior art keywords
time
bsde
space
option
theta
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
Application number
CN2012103481201A
Other languages
English (en)
Inventor
卢晓伟
张清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN2012103481201A priority Critical patent/CN102930471A/zh
Publication of CN102930471A publication Critical patent/CN102930471A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种基于倒向随机微分方程的期权定价方法及装置,其中,该期权定价方法包括:众核(MIC)处理器获得中央处理器(CPU)端构建的空间离散网格和等腰三角形模型以及根据该空间离散网格获得的终端条件;所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值。上述基于倒向随机微分方程的期权定价方法及装置,利用BSDE方式和MIC处理器强大的并行计算能力,可以在较短周期内,较容易地、大幅度地加速期权定价的运算。

Description

基于倒向随机微分方程的期权定价方法及装置
技术领域
本发明涉及期权定价方法,尤其涉及一种基于倒向随机微分方程(Backward Stochastic Differential Equation,BSDE)的期权定价方法及装置。
背景技术
英特尔(Intel)公司推出的众核(Many Integrated Core,MIC)处理器,跟通用的多核至强处理器相比,MIC众核架构具有更小的内核和硬件线程,众核处理器计算资源密度更高,片上通信开销显著降低,更多的晶体管和能量,能够胜任更为复杂的并行应用。Intel MIC产品基于X86架构,基于重核的众核处理器,包含50个以上的核心,以及512bit的向量位宽,双精性能超过1TFlops。
MIC拥有极其灵活的编程方式,MIC卡可以作为一个协处理器存在,也可以被看作是一个独立的节点。基本的MIC编程模型是将MIC看作一个协处理器,中央处理器(CPU)根据程序的指令,将一部分代码运行在MIC端。此时存在两类设备,即CPU端和MIC众核协处理器端。
在这种模型下,CPU和MIC协同工作。CPU负责进行逻辑性强的事务处理和串行计算,MIC则负责执行并行化的任务。CPU和MIC各自拥有自己独立的存储器地址空间:主机端内存和MIC端内存。主机端与MIC端的数据交换通过应用程序编程接口(API)函数或者编译器指令实现。在MIC端内部使用内存时,可以使用与主机端几乎完全相同的方式,不需要对现有代码和编程习惯有多少改变。MIC端采用了多指令流多数据流(MIMD)架构,即既可以支持单指令多数据流(SIMD)的并行方式,也可以通过多线程(pThread)、消息传递接口(MPI)等方式,实现在不同计算核心上运行不同指令。
蒙特卡洛法(Monte Carlo Method)是一个通过统计采样来解决问题的算法。在早期,该算法被应用于二次世界大战期间原子弹的研制中。对大于六维的任意函数的积分计算,蒙特卡洛法是唯一实用的方法。它还有许多其他的应用,譬如解偏微分方程,锐化卫星图片,对细胞群体建模,以及在多项式时间界里找到NP问题(即可在多项式时间内验证一个解是否正确的问题)的近似解。
蒙特卡洛法是针对待求问题并根据物理现象本身的统计规律或人为地构造一个合适的依赖随机变量的概率模型,使某些随机变量的统计量为待求问题的解,而进行大统计量N→∞的统计实验方法或计算机随机模拟方法。
倒向随机微分方程(BSDE),即“巴赫杜(Pardoux)-彭方程”,在随机分析、随机控制和金融数学界内已获得很高的国际知名度,它能够解决非线性期权定价问题。
BSDE数值求解的一般形式为:
一dYt=f(Yt,Zt,t)dt-ZtdWt,t∈[O,T]
YT=ξ
其中,Wt是定义在完备概率空间上的布朗运动,YT是BSDE的终端条件;在期权定价中Yt为在t时刻的期权价格,Zt值用来帮助风险度量,生成函数f(*)是Yt和Zt以及时间t的函数;ξ是最后一层终端条件的值,以此值为基准来可算出下一层的Yt
期权(Option),是一种选择权,是一种能在未来某特定时间以特定价格买入或卖出一定数量的某种特定商品的权利。它是在期货的基础上产生的一种金融工具,给予买方(或持有者)购买或出售标的资产(underlying asset)的权利。期权的持有者可以在该项期权规定的时间内选择买或不买、卖或不卖的权利,他可以实施该权利,也可以放弃该权利,而期权的出卖者则只负有期权合约规定的义务。
按期权的权利划分,有看涨期权(Call Options)和看跌期权(Put Options)两种类型。其中,看涨期权是指期权的买方向卖方支付一定数额的权利金后,便拥有在期权合约的有效期内按事先约定的价格买入一定数量的合约规定的商品的权利,但不负有必须买进的义务。而期权卖方有义务在期权规定的有效期内应期权买方的要求以期权合约规定的价格卖出合约规定的商品。看跌期权是指期权的买方向期权的卖方支付一定数额的权利金后,便拥有在期权合约的有效期内按事先约定的价格卖出一定数量的合约规定的商品的权利,但不负有必须卖出的义务。而期权卖方有义务在期权规定的有效期内应期权买方的要求以期权合约规定的价格买入合约规定的商品。
布莱克-斯克尔斯期权定价模型(B-S,Black Scholes Option PricingModel),为各种衍生的金融工具在包括股票、债券、货币以及商品的新兴金融市场中基于市价变动的合理定价奠定了基础。
在采用BSDE方法的期权定价串行方法来解决期权定价问题时,大部分的时间都消耗在这个步骤中:即根据终端(即最终可能的结局)条件,在相邻层之间使用蒙特卡洛(Monte-Carlo)方法对每个时间层倒推,来求解计算数学期望,如图1所示。由于对每个网格点的蒙特卡洛模拟次数多,导致这个步骤不仅执行次数多,而且要计算的数据量大;同时,这些数据的计算只能满足单指令单数据的特点,而难以满足单指令多数据(SIMD,SingleInstruction Multiple Data)的特点。因此,采用BSDE的期权定价串行方法解决期权定价问题,具有一定的性能瓶颈。
发明内容
本发明提供了一种期权定价方法,以克服采用现有BSDE的期权定价串行方法执行周期长的缺陷。
本发明提供了一种基于倒向随机微分方程(BSDE)的期权定价方法,该方法包括:
众核(MIC)处理器获得中央处理器(CPU)端构建的空间离散网格和等腰三角形模型以及根据该空间离散网格获得的终端条件;
所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值。
优选地,所述空间离散网格为所述CPU以多线程并行的方式在时间层上对所述BSDE进行theta-格式离散后构建的。
优选地,所述终端条件为所述CPU采用多线程并行的方式,利用空间剖分数、布朗运动在空间网格点的值、波动率、期望收益率以及利率获得的。
优选地,所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值,包括:
所述MIC处理器利用所述等腰三角形的底边获得空间剖分数M=2*ps*N,其中,Ps=C/Δh,
Figure BDA00002155683000041
c是一个常量,Δt为时间步长,Δh为空间步长,Δt=Δh,N表示时间剖分数,且为正整数;
所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,并采用所述等腰三角模型从第(N-1)层到第0层使用第一公式和第二公式逐层递推,所述第一公式为:
y i n = E h , t n t n , x i [ y n + 1 ] + Δ t n { ( 1 - θ 1 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) ] + θ 1 n f ( t n , y i n , z i n ) }
所述第二公式为:
0 = E h , t n t n , x i [ y n + 1 Δ W t n + 1 ] + Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) Δ W t n + 1 ] } - Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ z n + 1 ] + θ 2 n z i n }
其中,θi(i=1~n+1)表示为所述等腰三角形的底角且大小相等,ti(i=1~n+1)表示时间,yi为在i时刻的期权价格,zi值用来帮助风险度量,表示定义在完备概率空间上的布朗运动;
所述MIC处理器使用第三公式计算出时间层第0层的期权价格的数学期望值,所述第三公式为:
E h , t n t n , x i [ y n + 1 ] = Σ k = 1 N E I h y n + 1 ( X ^ i k ) N E
其中,Ih为用插值方法获得的非空间网格点的值。
优选地,所述MIC处理器在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,包括:
所述MIC处理器并行调用p个线程对当前时间层上的p个空间网格点进行NE次蒙特卡洛模拟,p为正整数。
本发明还提供了一种基于倒向随机微分方程(BSDE)的期权定价装置,该装置位于众核(MIC)处理器中,该装置包括:
获得模块,用于获得中央处理器(CPU)端构建的空间离散网格和等腰三角形模型以及根据该空间离散网格获得的终端条件;
处理模块,用于根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值。
优选地,所述空间离散网格为所述CPU以多线程并行的方式在时间层上对所述BSDE进行theta-格式离散后构建的。
优选地,所述终端条件为所述CPU采用多线程并行的方式,利用空间剖分数、布朗运动在空间网格点的值、波动率、期望收益率以及利率获得的。
优选地,所述处理模块,具体用于:利用所述等腰三角形的底边获得空间剖分数M=2*ps*N,其中,Ps=C/Δh,c是一个常量,Δt为时间步长,Δh为空间步长,Δt=Δh,N表示时间剖分数,且为正整数;
根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,并采用所述等腰三角模型从第(N-1)层到第0层使用第一公式和第二公式逐层递推,所述第一公式为:
y i n = E h , t n t n , x i [ y n + 1 ] + Δ t n { ( 1 - θ 1 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) ] + θ 1 n f ( t n , y i n , z i n ) }
所述第二公式为:
0 = E h , t n t n , x i [ y n + 1 Δ W t n + 1 ] + Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) Δ W t n + 1 ] } - Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ z n + 1 ] + θ 2 n z i n }
其中,θi(i=1~n+1)表示为所述等腰三角形的底角且大小相等,ti(i=1~n+1)表示时间,yi为在i时刻的期权价格,zi值用来帮助风险度量,
Figure BDA00002155683000054
表示定义在完备概率空间上的布朗运动;
使用第三公式计算出时间层第0层的期权价格的数学期望值,所述第三公式为:
E h , t n t n , x i [ y n + 1 ] = Σ k = 1 N E I h y n + 1 ( X ^ i k ) N E
其中,Ih为用插值方法获得的非空间网格点的值。
优选地,所述处理模块,具体用于:并行调用p个线程对当前时间层上的p个空间网格点进行NE次蒙特卡洛模拟,p为正整数。
上述基于倒向随机微分方程的期权定价方法及装置,利用BSDE方式和MIC处理器强大的并行计算能力,可以在较短周期内,较容易地、大幅度地加速期权定价的运算。
附图说明
图1为现有基于BSDE的期权定价方法的流程图;
图2为本发明基于BSDE的期权定价方法实施例的流程图;
图3为本发明构建的等腰三角模型;
图4为本发明采用的BSDE并行策略
图5为本发明基于BSDE的期权定价装置实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明首先分析用BSDE方法进行期权定价的缺陷和采用BSDE方法且基于等腰三角模型的期权定价串行方法来解决期权定价问题的性能瓶颈,找到耗时的热点代码,测试其在期权定价整个过程中所占的时间比例以及分析提高整个方法性能的难度以及开发轴端。
分析研究表明,在采用BSDE方法且基于等腰三角模型的期权定价串行方法来解决期权定价问题时,大部分的时间消耗在根据终端条件,在相邻层之间使用蒙特卡洛(Monte-Carlo)方法基于等腰三角模型,对每个时间层倒推,来求解计算数学期望这个步骤中。由于对每个网格点的蒙特卡洛模拟次数多,导致这个步骤不仅执行次数多,而且要计算的数据量大,同时,数据的计算要满足单指令多数据(SIMD,Single Instruction Multiple Data)的特点。因此,本发明将这个步骤作为采用MIC众核架构并行编程技术进行性能提优的重点。
基于上述分析,本发明提供了一种基于BSDE的期权定价方法,如图2所示,该方法包括如下步骤:
步骤一、众核(MIC)处理器获得中央处理器(CPU)端构建的空间离散网格和等腰三角形模型以及根据该空间离散网格获得的终端条件;
在该步骤一之前,CPU端需完成以下操作,如图2所示:
步骤101、CPU端在时间层上对BSDE进行theta-格式离散;
在步骤101中,X是存放几何布朗运动各空间网格点的对应值,存放着空间网格点的位置,是float型的,实际是一数组,存放每一时间层上的网格的值,该数组的大小也根据每个时间层的网格点数目逐层减少或者增加的,所以该数组大小是动态大小分配的,而数组中的各个值是根据终端时间层上空间网格的剖分数,也就是最大空间步数M和空间步长dh一起进行计算的,由于网格空间以0轴为分界线分为上下两个界,所以X数组是从下到上的所有值,包括负值、0和正值,具体实现为:
为了更好地提高执行效率,CPU可以以多线程并行的方式在时间层上对所述BSDE进行theta-格式离散,建立Brown运动的空间网格模型,具体步骤如下:
建立存放Brown运动各空间网格点的对应值的空间X,以float型存放空间网格点的位置,使得后续的计算统一、方便,在该模块中对X进行赋值,X中数值包括正值,0和负值。设计其并行的OMP算法,只对最外层的for并行,即添加#pragma omp parallel for private(...)语句。
Figure BDA00002155683000081
步骤102、等腰三角模型构建以及在最大时刻T上的空间步长数的计算;
期权定价模型是一种等腰三角模型,构造此模型时,如图3所示,高是已知的,即时间T,等腰三角形底角的正切值是可计算出来,由这两个元素来获得三角形的底边,即最大时刻的空间步长,tanθ=dt/ps,M=2*T/tanθ=2*(T/(dt/ps))=2*ps*T/dt=2*ps*N,平行于底边时间层,将三角形的高分成以dt为单位分成T+1列,每列的网格点数根据等腰三角形进行几何计算,从而获得,至此等腰三角模型建立完成;
步骤103、根据离散网格,实现终端条件;
根据下列公式获得每个网格点上的资产价格St
St=起始价格*exp(波动率*X[i]+(期望收益率-0.5*波动率的平方)*最大时刻);根据期权类型和相应的计算公式,来判断敲定价格和资产价格之差与0的最大值,将其赋值给期权价格Yt,如果期权类型是看涨期权,那么该网格点的终端期权价格Yt取值为资产价格和敲定价格之差与0的最大值,如果期权类型是看跌期权,那么该网格点的终端期权价格Yt取值为敲定价格和资产价格之差与0的最大值,从而计算在最大时刻T的期权价格Yt值和帮助风险度量的Zt值,作为方法实现的终端条件;
另外,为了提高执行效率,可以采用多线程并行方式,利用空间剖分数,布朗运动在网格点的值,波动率,期望收益率以及利率,来进行终端条件的计算,具体过程如下:
上述步骤101到步骤103这三个步骤不需要大量的计算,取NE=40000,N=64,这三个步骤所用的时间0.3ms,相比整个程序的运行时间来说,这部分时间无疑是不重要的,所以这三步骤是安排在CPU上运行;
步骤二、MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值。
记N=TIME_GRID为时间剖分数,即表示分了多少时间层;记NE=SIM_TIMES为每个空间点上Monte-Carlo模拟的次数,即每一时间层上的每一个点都要进行Monte-Carlo模拟的次数;记dt=T/N为时间步长,记dh=dt为空间步长,记c=5.0*sqrtf(dt)为每个时间步上布朗(brown)运动的上下界,记Ps=c/dh+1为每个时间步上布朗运动向上或向下的最大空间网格数,X为敲定价格,ST为到期时间T的资产价格,记Yt为在t时刻的期权价格,Zt值用来帮助风险度量,YT是BSDE的终端条件,记X为存放几何布朗运动各空间网格点的对应值,存放空间网格点的位置,是float型的,该数组值是在进行theta-格式离散时进行赋值的,进一步需要说明的,记M=N*Ps*2为空间剖分数(空间层数为M+1),即最后一个时间层上空间网格数(即空间步数),需要特别说明的一点:在整个过程中,M是未知的。逐层计算之后,求出T=0时刻的期望值,便是期权定价的最终值。
所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值,包括:
所述MIC处理器利用所述等腰三角形的底边获得空间剖分数M=2*ps*N,其中,Ps=C/Δh,
Figure BDA00002155683000101
c是一个常量,Δt为时间步长,Δh为空间步长,Δt=Δh,N表示时间剖分数,且为正整数;
所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,并采用所述等腰三角模型从第(N-1)层到第0层使用第一公式和第二公式逐层递推,所述第一公式为:
y i n = E h , t n t n , x i [ y n + 1 ] + Δ t n { ( 1 - θ 1 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) ] + θ 1 n f ( t n , y i n , z i n ) }
所述第二公式为:
0 = E h , t n t n , x i [ y n + 1 Δ W t n + 1 ] + Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) Δ W t n + 1 ] } - Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ z n + 1 ] + θ 2 n z i n }
其中,θi(i=1~n+1)表示为所述等腰三角形的底角且大小相等,ti(i=1~n+1)表示时间,yi为在i时刻的期权价格,zi值用来帮助风险度量,表示定义在完备概率空间上的布朗运动;
所述MIC处理器使用第三公式计算出时间层第0层的期权价格的数学期望值,所述第三公式为:
E h , t n t n , x i [ y n + 1 ] = Σ k = 1 N E I h y n + 1 ( X ^ i k ) N E
其中,Ih为用插值方法获得的非空间网格点的值。
在时间层ti上,对应于每个空间点上的期权价格需要NE次蒙特卡洛模拟,在整个串行算法中这一步骤是最耗时的。而且,在每一个时间层上,不同空间点的期权定价过程可以被无依赖地分别执行,因此这一步骤是非常适合并行化的一个过程。采用MIC众核并行编程技术来实现这一步骤的并行算法。
上述MIC并行编程技术并没有单独的编程语言,MIC编程是对C/C++/Fortran语言进行扩展,加入编译指导/指导命令,使用最简单的方法让现有程序在尽量不做改动的情况下,能够利用MIC的计算资源。这点十分类似于开放多平台(OpenMP)。当然,MPSS(
Figure BDA00002155683000111
MIC PlatformSoftware Stack,英特尔MIC平台软件栈)也提供一些高级的API函数接口(包括一些汇编指令),根据应用需要,可以进行有针对性但更加复杂的性能优化。但要满足个性化需求,则需要深入地研究和理解。
为了使用MIC众核协处理器并行完成步骤二,让一个热点函数计算一个时间层上的所有网格点,该热点函数被MIC众核协处理器的各个核心来运算,每个核心物理上起一个线程,每个线程计算一个空间网格点的期权价格,线程的数目等于在时间层N上的空间网格点的数目,使用MIC众核协处理器的详细并行策略如图4所示。
在图4中,矩形框包含了在时间层i上的所有空间网格点,热点函数的功能就是计算当前时间层上的所有网格点的期权价格。黑色填充圆点代表一个需要在当前时间层上被计算的空间网格点,这个计算由一个活动的线程来完成。椭圆包含的是为了计算在时间层i上的某个网格点的期权价格而需要被读取计算的时间层i+1上的网格点。当从时间层i+1到i,处理计算的时候,根据等腰三角模型,热点函数处理的空间网格点会逐渐减少。未填充的圆点代表在当前时间层上不需要被计算的网格点,对于这些点,线程无需做任何工作。
另外,对上述步骤二还可以进行优化:
具体优化方法1:在整个空间网格中,顺序执行每一个时间层上的网格点,由一个for循环控制,为了提高并发性,循环的递减量为2,在每个循环里,执行两次热点函数,即两个时间层上的期权定价运算,每一层的起始索引由表达式Ps*(N-j)控制,Y和Z的值由两组Y1、Z1和Y2、Z2交替存放各时间层计算的Y和Z值,进而协助完成每次循环执行两次内核函数,如图3所示。实施过程如下:
Figure BDA00002155683000121
具体优化方法2:在当前时间层上的某个空间网格点,一个线程对其进行NE次模拟,每次模拟的实现包括以下几个步骤:
计算线程与空间网格点的对应关系
在循环外并行计算一组(0,1)分布的随机数,以供每次模拟时使用
Figure BDA00002155683000122
Figure BDA00002155683000131
进一步地,根据应用需要,还可以进行有针对性但更加复杂的性能优化,具体地:
对于调优1:网格点的蒙特卡罗计算,获得期望值(current_solution)存在两层for循环,由于OpenMP是用于共享存储并行程序设计的应用程序接口,依赖于派生-会合类型的并行性。如果在内层循环插入parallel for编译指导语句,并行程序虽然会正确执行,但是性能表现却令人不满,因为这将导致(M-2*ii+1)次线程派生-会合,即外层循环每迭代一次就执行一次派生-会合。这样便只对外层for循环进行并行,即在外层循环前添加#pragma ompparallel for private(...)语句;
具体调优2:在current_solution(...)中调用了Ih函数和function_f函数,分别是空间网格点的插值算子和定义BSDE的f函数,在定义这两个函数时,必须标记为_attribute_((target(mic))),才能被offload到卡上时被执行。
对于建立空间网格过程,循环结构相对简单,数据的访问形式是按行访问,经过代码调整和编译选项-O2的加入,Intel编译器可以自动向量化。
对于终端条件计算过程中存在if/else语言,在icc编译器编译的时候,它们被认为存在潜在的数据依赖,但是实际上从代码来看,没有这样的情况发生,所以加上#pragma ivdep语言,可以实现强制向量化,使得编译器忽略任何它认为的数据依赖,实现自动向量化。
再进一步地,原current_solution(...)算法中do while代码段中,数据之间存在依赖关系,所以导致无法向量化。为了向量化,在进行网格点蒙特卡罗的每次计算中,得到一个随机数,这些随机数符合0-1正态分布。在保证算法的原态和结果的正确性,为了使内层循环完全向量化,将代码进行如下调整:
(1)每次循环的随机数生成放在了CPU段进行完成,而且是生成一组足够多的、符合正态分布的一组数,在一个空间中保存。在开始offload的时候,将该数组传到MIC卡上,那么每次循环的d_wt值就由数组相应的索引来赋值即d_wt=Random_matrix[k],这样,该段代码不存在数据依赖,而且按行顺序访问,可完全向量化。
(2)在内层循环中调用了空间网格点的线性插值函数和定义BSDE的f函数,向量化的规则是调用函数应该是内联的。所以定义这两个函数时,定义成内联(inline)或者在内层循环中调用的部分将函数完全展开,都可实现向量化。
(3)内层循环结构复杂,计算量大,在icc编译器进行编译的时候会认为存在潜在的数据依赖。但是实际上从代码来看,没有这样的情况发生,所以在内层for循环前加上#pragma ivdep语言,可以实现强制向量化,使得编译器忽略任何它认为的数据依赖,实现自动向量化。
本发明还提供了一种基于倒向随机微分方程(BSDE)的期权定价装置,如图5所示,该装置包括获得模块51和处理模块52,其中:
获得模块,用于获得中央处理器(CPU)端构建的空间离散网格和等腰三角形模型以及根据该空间离散网格获得的终端条件;
处理模块,用于根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值。
其中,所述空间离散网格为所述CPU以多线程并行的方式在时间层上对所述BSDE进行theta-格式离散后构建的;所述终端条件为所述CPU采用多线程并行的方式,利用空间剖分数、布朗运动在空间网格点的值、波动率、期望收益率以及利率获得的。
另外,所述处理模块,具体用于:利用所述等腰三角形的底边获得空间剖分数M=2*ps*N,其中,Ps=C/Δh,c是一个常量,Δt为时间步长,Δh为空间步长,Δt=Δh,N表示时间剖分数,且为正整数;
根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,并采用所述等腰三角模型从第(N-1)层到第0层使用第一公式和第二公式逐层递推,所述第一公式为:
y i n = E h , t n t n , x i [ y n + 1 ] + Δ t n { ( 1 - θ 1 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) ] + θ 1 n f ( t n , y i n , z i n ) }
所述第二公式为:
0 = E h , t n t n , x i [ y n + 1 Δ W t n + 1 ] + Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) Δ W t n + 1 ] } - Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ z n + 1 ] + θ 2 n z i n }
其中,θi(i=1~n+1)表示为所述等腰三角形的底角且大小相等,ti(i=1~n+1)表示时间,yi为在i时刻的期权价格,zi值用来帮助风险度量,
Figure BDA00002155683000161
表示定义在完备概率空间上的布朗运动;
使用第三公式计算出时间层第0层的期权价格的数学期望值,所述第三公式为:
E h , t n t n , x i [ y n + 1 ] = Σ k = 1 N E I h y n + 1 ( X ^ i k ) N E
其中,Ih为用插值方法获得的非空间网格点的值。
进一步地,所述处理模块,具体用于:并行调用p个线程对当前时间层上的p个空间网格点进行NE次蒙特卡洛模拟,p为正整数。
上述期权定价装置位于MIC处理器中。
本发明在提供了上述方法实施例和装置实施例后,根据期权定价的数据规模,选取合适的CPU和KNF MIC处理器分别进行BSDE方法的期权定价的运算测试,其中CPU采用了Intel公司的双路4核Intel(R)Xeon(R)CPUE5630,每个CPU可以启动两个CPU线程,MIC采用Intel公司的KNF MIC,其详细参数见表1。
表1测试环境
Figure BDA00002155683000163
表2测试用例
  时间剖分层数   MC模拟次数   到期时间   执行价格   起始价格
  128   1024*32   0.33   100
在MIC的实验机器上运行BSDE算法,测得的性能如表3所示。BSDE算法中的热点是网格点的蒙特卡罗计算,计算时间大约占到99.9%,其余计算所占比例较少。所以表3中所列项目是热点函数和整体运行的情况。对于串行程序,进行了调整,已经完全向量化了,采用向量化之后性能提高3.15倍,OpenMP的整体性能达到9.7倍,MIC程序的整体性能达到19倍。
表3实验结果
  Time(s)   Speedup
  current_solution   current_solution
  BSDE   401.8811   3.15(相对于无向量化的)
  BSDE_omp   41.1616   9.7
  BSDE_mic   23.5996   19
其中,current_solution表示热点函数。
由本发明给出的上述测试结果可以看出,在MIC众核架构平台上,基于等腰三角模型,利用BSDE方式和MIC众核协处理器强大的并行计算能力,可以在较短周期内,较容易地、大幅度地加速期权定价的运算。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于倒向随机微分方程(BSDE)的期权定价方法,其特征在于,该方法包括:
众核(MIC)处理器获得中央处理器(CPU)端构建的空间离散网格和等腰三角形模型以及根据该空间离散网格获得的终端条件;
所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值。
2.根据权利要求1所述的方法,其特征在于:
所述空间离散网格为所述CPU以多线程并行的方式在时间层上对所述BSDE进行theta-格式离散后构建的。
3.根据权利要求1所述的方法,其特征在于:
所述终端条件为所述CPU采用多线程并行的方式,利用空间剖分数、布朗运动在空间网格点的值、波动率、期望收益率以及利率获得的。
4.根据权利要求1-3任一权利要求所述的方法,其特征在于:
所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值,包括:
所述MIC处理器利用所述等腰三角形的底边获得空间剖分数M=2*ps*N,其中,Ps=C/Δh,
Figure FDA00002155682900011
c是一个常量,Δt为时间步长,Δh为空间步长,Δt=Δh,N表示时间剖分数,且为正整数;
所述MIC处理器根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,并采用所述等腰三角模型从第(N-1)层到第0层使用第一公式和第二公式逐层递推,所述第一公式为:
y i n = E h , t n t n , x i [ y n + 1 ] + Δ t n { ( 1 - θ 1 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) ] + θ 1 n f ( t n , y i n , z i n ) }
所述第二公式为:
0 = E h , t n t n , x i [ y n + 1 Δ W t n + 1 ] + Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) Δ W t n + 1 ] } - Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ z n + 1 ] + θ 2 n z i n }
其中,θi(i=1~n+1)表示为所述等腰三角形的底角且大小相等,ti(i=1~n+1)表示时间,yi为在i时刻的期权价格,zi值用来帮助风险度量,
Figure FDA00002155682900022
表示定义在完备概率空间上的布朗运动;
所述MIC处理器使用第三公式计算出时间层第0层的期权价格的数学期望值,所述第三公式为:
E h , t n t n , x i [ y n + 1 ] = Σ k = 1 N E I h y n + 1 ( X ^ i k ) N E
其中,Ih为用插值方法获得的非空间网格点的值。
5.根据权利要求4所述的方法,其特征在于:
所述MIC处理器在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,包括:
所述MIC处理器并行调用p个线程对当前时间层上的p个空间网格点进行NE次蒙特卡洛模拟,p为正整数。
6.一种基于倒向随机微分方程(BSDE)的期权定价装置,其特征在于,该装置位于众核(MIC)处理器中,该装置包括:
获得模块,用于获得中央处理器(CPU)端构建的空间离散网格和等腰三角形模型以及根据该空间离散网格获得的终端条件;
处理模块,用于根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点进行蒙特卡洛模拟,并采用所述等腰三角模型对所有时间层逐层倒推,最终推算出期权价格的数学期望值。
7.根据权利要求6所述的装置,其特征在于:
所述空间离散网格为所述CPU以多线程并行的方式在时间层上对所述BSDE进行theta-格式离散后构建的。
8.根据权利要求6所述的装置,其特征在于:
所述终端条件为所述CPU采用多线程并行的方式,利用空间剖分数、布朗运动在空间网格点的值、波动率、期望收益率以及利率获得的。
9.根据权利要求6-8任一权利要求所述的装置,其特征在于:
所述处理模块,具体用于:利用所述等腰三角形的底边获得空间剖分数M=2*ps*N,其中,Ps=C/Δh,c是一个常量,Δt为时间步长,Δh为空间步长,Δt=Δh,N表示时间剖分数,且为正整数;
根据所述终端条件,在相邻时间层之间对每一时间层上的每个空间网格点上的期权价格进行NE次蒙特卡洛模拟,并采用所述等腰三角模型从第(N-1)层到第0层使用第一公式和第二公式逐层递推,所述第一公式为:
y i n = E h , t n t n , x i [ y n + 1 ] + Δ t n { ( 1 - θ 1 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) ] + θ 1 n f ( t n , y i n , z i n ) }
所述第二公式为:
0 = E h , t n t n , x i [ y n + 1 Δ W t n + 1 ] + Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ f ( t n + 1 , y n + 1 , z n + 1 ) Δ W t n + 1 ] } - Δ t n { ( 1 - θ 2 n ) E h , t n t n , x i [ z n + 1 ] + θ 2 n z i n }
其中,θi(i=1~n+1)表示为所述等腰三角形的底角且大小相等,ti(i=1~n+1)表示时间,yi为在i时刻的期权价格,zi值用来帮助风险度量,
Figure FDA00002155682900034
表示定义在完备概率空间上的布朗运动;
使用第三公式计算出时间层第0层的期权价格的数学期望值,所述第三公式为:
E h , t n t n , x i [ y n + 1 ] = Σ k = 1 N E I h y n + 1 ( X ^ i k ) N E
其中,Ih为用插值方法获得的非空间网格点的值。
10.根据权利要求9所述的装置,其特征在于:
所述处理模块,具体用于:并行调用p个线程对当前时间层上的p个空间网格点进行NE次蒙特卡洛模拟,p为正整数。
CN2012103481201A 2012-09-18 2012-09-18 基于倒向随机微分方程的期权定价方法及装置 Pending CN102930471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012103481201A CN102930471A (zh) 2012-09-18 2012-09-18 基于倒向随机微分方程的期权定价方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012103481201A CN102930471A (zh) 2012-09-18 2012-09-18 基于倒向随机微分方程的期权定价方法及装置

Publications (1)

Publication Number Publication Date
CN102930471A true CN102930471A (zh) 2013-02-13

Family

ID=47645262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012103481201A Pending CN102930471A (zh) 2012-09-18 2012-09-18 基于倒向随机微分方程的期权定价方法及装置

Country Status (1)

Country Link
CN (1) CN102930471A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104266657A (zh) * 2014-09-12 2015-01-07 海华电子企业(中国)有限公司 基于cpu和mic协同计算的最短路径规划并行化方法
CN113220806A (zh) * 2021-03-15 2021-08-06 中山大学 一种基于衍生平行线段的大规模路网方向判定方法及系统
CN115131120A (zh) * 2022-09-02 2022-09-30 合肥本源量子计算科技有限责任公司 基于最小二乘法的量子期权估算方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609879A (zh) * 2012-02-13 2012-07-25 浪潮(北京)电子信息产业有限公司 基于倒向随机微分方程的期权定价方法及装置
CN102663207A (zh) * 2012-04-28 2012-09-12 浪潮电子信息产业股份有限公司 一种利用gpu加速介观体系物理问题求解的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609879A (zh) * 2012-02-13 2012-07-25 浪潮(北京)电子信息产业有限公司 基于倒向随机微分方程的期权定价方法及装置
CN102663207A (zh) * 2012-04-28 2012-09-12 浪潮电子信息产业股份有限公司 一种利用gpu加速介观体系物理问题求解的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
程松林等: "基于Black-Scholes模型的蒙特卡洛模拟期权定价分析", 《上海电机学院学报》 *
董艳等: "基于已实现波动的蒙特卡洛美式期权定价模型", 《阴山学刊》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104266657A (zh) * 2014-09-12 2015-01-07 海华电子企业(中国)有限公司 基于cpu和mic协同计算的最短路径规划并行化方法
CN104266657B (zh) * 2014-09-12 2017-08-04 海华电子企业(中国)有限公司 基于cpu和mic协同计算的最短路径规划并行化方法
CN113220806A (zh) * 2021-03-15 2021-08-06 中山大学 一种基于衍生平行线段的大规模路网方向判定方法及系统
CN113220806B (zh) * 2021-03-15 2022-03-18 中山大学 一种基于衍生平行线段的大规模路网方向判定方法及系统
CN115131120A (zh) * 2022-09-02 2022-09-30 合肥本源量子计算科技有限责任公司 基于最小二乘法的量子期权估算方法及相关装置

Similar Documents

Publication Publication Date Title
Stein et al. The mass-Peak Patch algorithm for fast generation of deep all-sky dark matter halo catalogues and its N-body validation
Rossi et al. The completed SDSS-IV extended Baryon Oscillation Spectroscopic Survey: N-body mock challenge for galaxy clustering measurements
Abbas-Turki et al. XVA principles, nested Monte Carlo strategies, and GPU optimizations
Odeh et al. Planning in a changing environment: Applications of portfolio optimisation to deal with risk in the electricity sector
EP1316893A2 (en) Generator libraries
Dang et al. A parallel implementation on GPUs of ADI finite difference methods for parabolic PDEs with applications in finance
Vellekoop et al. A tree-based method to price American options in the Heston model
Albanese et al. Coherent global market simulations and securitization measures for counterparty credit risk
Cruz et al. Design of a parallel genetic algorithm for continuous and pattern-free heliostat field optimization
Hutchinson et al. Financial simulations on a massively parallel connection machine
Dang et al. Graphics processing unit pricing of exotic cross‐currency interest rate derivatives with a foreign exchange volatility skew model
CN102930471A (zh) 基于倒向随机微分方程的期权定价方法及装置
CN102609879A (zh) 基于倒向随机微分方程的期权定价方法及装置
CN102930473A (zh) 一种基于倒向随机微分方程的期权定价方法
Svyetlichnyy Neural networks for determining the vector normal to the surface in CFD, LBM and CA applications
Wang et al. Three-dimensional nonlinear force-free field reconstruction of solar active region 11158 by direct boundary integral equation
CN102163319A (zh) 一种实现迭代重构图像的方法及系统
Al-Shafei et al. A review of high-performance computing and parallel techniques applied to power systems optimization
Dang Pricing of cross-currency interest rate derivatives on Graphics Processing Units
Wang et al. A massive parallel cellular GPU implementation of neural network to large scale Euclidean TSP
Marshall Valuation of multiple exercise options
Nord et al. Monte Carlo option pricing with graphics processing units
Marshall et al. Simulation valuation of multiple exercise options
CN110288124A (zh) 土地利用格局的优化方法及装置
Zenios et al. Computing price paths of mortgage-backed securities using massively parallel computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20130213

RJ01 Rejection of invention patent application after publication