<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>pricing in local volatility models using parallel computing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sergey G. Shorokhov</string-name>
          <email>shorokhov-sg@rudn.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Peoples' Friendship University of Russia (RUDN University)</institution>
          ,
          <addr-line>6, Miklukho-Maklaya St., Moscow, 117198</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>108</fpage>
      <lpage>116</lpage>
      <abstract>
        <p>Pricing of options and other financial instruments is one of the most important problems in finance. To price an option, one needs first to choose the model of underlying asset price dynamics, usually in the form of a stochastic diferential equation depending on market parameters such as interest rate, asset volatility, etc., then find a solution of the chosen model in some form, and finally obtain the required option price. The asset volatility can be constant (Black-Scholes model), depend on the value of the underlying asset and time (local volatility model), or satisfy some other stochastic diferential equation (stochastic volatility model). Exact analytical formula for option price was obtained for Black-Scholes model and a few other models with local and stochastic volatility, but in general case one has to use approximations or numerical methods to evaluate options. We study the problem of European option pricing when volatility is a function of underlying asset value and time. To solve the problem, we use Monte Carlo method to construct the empirical distribution density of underlying asset and then determine the option value using Feynman-Katz formula. The issues of parallelization of the option pricing algorithm and its implementation on computers with multicore processors are discussed. Possible applications of local volatility models with parallel computing include modeling and management of large equity portfolios, assessing and managing market and credit risks.</p>
      </abstract>
      <kwd-group>
        <kwd>option</kwd>
        <kwd>local volatility</kwd>
        <kwd>Monte Carlo method</kwd>
        <kwd>parallel computing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>The increasing amount of data being processed and active use of machine learning methods
lead to a growing demand for high-performance computing (HPC) solutions in modern
financial industry [1]. The traditional applications of HPC in finance include pricing of financial
instruments (derivative securities), algorithmic high-frequency trading, market and credit risk</p>
      <p>© 2020 Copyright for this paper by its authors.</p>
      <p>CEUR
Workshop
Proceedings
htp:/ceur-ws.org
IS N1613-073</p>
      <p>CEUR Workshop Proceedings (CEUR-WS.org)
Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
However, the assumption of constant volatility and based on this assumption Black-Scholes
model fail to explain some important efects observed in financial markets, such as volatility
smiles [4] and fat tails of financial data distributions [ 5]. Therefore, alternative stochastic
models [6] with volatility depending on the value of the underlying asset and time (local
volatility models) should be examined to determine the most appropriate model for available
ifnancial data. However, for a general local volatility model, exact closed form formula for the
option price has not been derived and miscellaneous numerical methods have to be used.</p>
      <p>The paper considers the application of high-performance computing in calculating the value
of options under assumption that underlying asset price follows stochastic diferential equation
(SDE) with volatility, being a function of asset price and time.
2. Local volatility models
In risk-neutral framework the price  of underlying asset is supposed to follow SDE
where  &gt; 0 is the risk-free interest rate,  (,  ) &gt; 0 is a volatility function of underlying asset
value  and time  ,  is a Wiener random process, with initial condition
 =    +</p>
      <p>(,  )   ,
 ( 0) =  0 &gt; 0.
where</p>
      <p>We intend to determine the fair value of a derivative (option or other derivative instrument)
 ( 0,  0), being a function of the current price of the underlying asset  0 and current time
 0, with payment function  (,  ) =  ( ) at the time  &gt;  0 of execution (expiration) of the
derivative.</p>
      <p>
        Known local volatility models of the form (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) with non-constant asset price volatility and
exact closed form solutions for transition density and option price include shifted lognormal
model [7], normal (Ornstein–Uhlenbeck) model [8], CEV model [6], hyperbolic sine model [9].
      </p>
      <p>
        To find the value of an option (derivative) in model (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), one can use the risk-neutral pricing
(Feynman–Katz) formula:
 ( 0,  0) =  − ( − 0) ∫  ( ,  ;
      </p>
      <p>0,  0)  ( )  ,
+∞
−∞
where  ( ,  ;  0,  0) is the probability density of the transition from state ( 0,  0) to state ( ,  ).</p>
      <p>
        In Black–Scholes model [2, 3] the transition probability density function (pdf) is equal to
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
In shifted lognormal model [ 7] the volatility function is  (1 −    
) and the transition pdf is
a shifted version of the transition pdf for Black-Scholes model
exp {− 4  (− 0)
1
      </p>
      <p>(arsinh ( √2   ) − arsinh ( √2 
√2 √ 2 + 2   2√ −  0
√  2 + 2 and the transition pdf is</p>
      <p>2
 0)) }</p>
      <p>In normal (Ornstein–Uhlenbeck) model [8] the volatility function is  and the transition pdf</p>
      <p>
        In hyperbolic sine model [9] the volatility function is  2
√2 √ −  0 ( −     )
also assuming negative underlying asset values.
3. Monte Carlo method for option pricing in local volatility
The Feynman–Katz formula (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) for risk-neutral derivative pricing includes the transition
density function  ( ,  ;
      </p>
      <p>
        0,  0), which is the distribution density of the underlying asset  ( ) at
derivative execution (expiration) time  for fixed initial values  0 and  0. For a general local
volatility model (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) the distribution of  ( ), basically, is unknown.
      </p>
      <p>
        For approximate determination of the distribution density of the random variable  ( ), one
can use Monte Carlo method [10], which implies generation of a large number of realizations of
the random variable  ( ), namely, a large bundle of trajectories of SDE (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) with initial condition
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) with time varying from  0 to  .
      </p>
      <p>The time segment [ 0,  ] is divided into  equal parts of length △ =  − 0 .</p>
      <p>Let   =  0 +  △ ,  =</p>
      <p>
        1,  , then the simplest numerical approximation of the trajectories of
SDE (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) is Euler–Maruyama scheme [11]:
      </p>
      <p>+1 ≈   +    △ +  (  ,   )   √△ ,
where   =  (  ),  ∼</p>
      <p>
        (
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        )is a random variable with standard normal distribution. Examples
of more complex approximations of solutions of SDE (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) include Milstein scheme [12] and the
stochastic Runge–Kutta methods [13].
time  of the form  ( ) =
      </p>
      <p>Let  1 = min {</p>
      <p>parts of length ℎ =
( ) 
}
=1

,  2 = max {</p>
      <p>} . The segment [ 1,  2] is divided into  equal
into the last segment [ 1 + ( − 1 )ℎ,  1 +  ℎ ] for  = 
[ 1 + ( − 1 )ℎ,  1 +  ℎ ) for  = 1,  − 1 .</p>
      <p>
        Empirical distribution density of the random variable  ( ) can be obtained by the formula
 2− 1 and let   be the number of values from the set {
and half-intervals of the form

( ) 
}
=1
that fall
The simulation of trajectories of SDE (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) leads to a set of values of the underlying asset  at
( ),  = 1,  , where  is the number of simulated trajectories of SDE
 ( ,  ; 
0,  0) = ⎪ 1   ,
      </p>
      <p>1
⎧0,
⎩0,</p>
      <p>1 + ( − 1 )ℎ ⩽  &lt;  1 +  ℎ,  = 1,  − 1,
⎨⎪    ,  1 + ( − 1 )ℎ ⩽  ⩽  1 +  ℎ,

( )</p>
      <p>=1
 &lt;  1
 &gt;  2</p>
      <p>.
 

=1

∑
= [ − ℎ 1 + 1 ]
2
1
2
1
2</p>
      <p>
        (
        <xref ref-type="bibr" rid="ref9">9</xref>
        )
(
        <xref ref-type="bibr" rid="ref10">10</xref>
        )
(
        <xref ref-type="bibr" rid="ref11">11</xref>
        )
      </p>
      <p>
        Then, using the empirical density (
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) in risk-neutral pricing formula (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ), we obtain the
following approximation for the derivative value  ( 0,  0)
 ( 0,  0) ≈  − ( − 0) 2 −  1 ∑    ( 1 + ( −
) ℎ) .
      </p>
      <p>
        For a European call option with strike price  the payment function  ( ) is equal to max( −
 , 0) , so the price of call option is
 ( 0,  0) ≈  − ( − 0) 2 −  1
 
  ( 1 + ( −
) ℎ −  ) ,
where the square brackets in (
        <xref ref-type="bibr" rid="ref11">11</xref>
        ) stand for the integer part of the number.
computing in option pricing using formula (
        <xref ref-type="bibr" rid="ref10">10</xref>
        ) or formula (
        <xref ref-type="bibr" rid="ref11">11</xref>
        ).
      </p>
      <p>The values  
( )</p>
      <p>,  = 1,  can be calculated in parallel, and this makes it possible to use parallel
4. Parallel computing in Python
There are diferent ways to organize parallel computing in Python [ 14], including
multithreading (module t h r e a d i n g ) and multi-processor code execution (method f o r k of module
o s or module m u l t i p r o c e s s i n g ). If parallel processes do not interact with each other, then
parallel computations are better done using the m u l t i p r o c e s s i n g module API, which is a part of
the standard Python library.</p>
      <p>To execute multiple calls of the function l v m _ s d e , which returns the value  
l v m _ s d e is launched for parallel execution using method m a p , which applies the function l v m _ s d e
( ), in parallel,
to the list of input parameters i n p u t _ l i s t :
i m p o r t m u l t i p r o c e s s i n g a s m p
l v m _ p o o l = m p . P o o l ( )
r e s u l t = l v m _ p o o l . m a p ( l v m _ s d e , i n p u t _ l i s t )</p>
      <p>
        The number of calls of the function l v m _ s d e corresponds to the length of the i n p u t _ l i s t list.
The function l v m _ s d e for calculating  ( ) according to formula (
        <xref ref-type="bibr" rid="ref8">8</xref>
        ) is defined as follows:
i m p o r t n u m p y a s n p
d e f l v m _ s d e ( _ ) :
n p . r a n d o m . s e e d ( )
s _ t = s 0
t = t _ s t a r t
d t = ( t _ s t o p - t _ s t a r t ) / N
n o i s e = n p . r a n d o m . n o r m a l ( l o c = 0 . 0 , s c a l e = 1 . 0 , s i z e = N ) * n p . s q r t ( d t )
f o r e p s _ s q r t _ d t i n n o i s e :
s _ t + = d r i f t ( s _ t , t ) * d t + d i f f u s i o n ( s _ t , t ) * e p s _ s q r t _ d t
t + = d t
r e t u r n s _ t
      </p>
      <p>
        SDE simulation parameters (variables s 0 , t _ s t a r t , t _ s t o p , N and lambda expressions d r i f t ,
d i f f u s i o n ) are passed to the function l v m _ s d e as global variables.
5. Empirical distribution construction in local volatility models
Empirical pdf for random variable  ( ) can be obtained using Monte Carlo method for various
local volatility models of the form (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), including the models with theoretical transition probability
density functions, determined by (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ), (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ), (
        <xref ref-type="bibr" rid="ref7">7</xref>
        ).
      </p>
      <p>
        Simulation parameters for SDE (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) are the following:
 0 = 1,  0 = 0,  = 1,  = 7%,  = 30%,  = ±8%,  = 100 000,  = 10 000.
(
        <xref ref-type="bibr" rid="ref12">12</xref>
        )
      </p>
      <p>Theoretical probability density functions in local volatility models under consideration are
shown in Figure 1.</p>
      <p>
        Lambda expressions for simulation of SDE (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) are initialized as given below:
Black-Scholes model
shifted lognormal model ( &gt; 0)
shifted lognormal model ( &lt; 0)
Ornstein-Uhlenbeck model
hyperbolic sine model
0.5
1.0
1.5
2.0
2.5
3.0
      </p>
      <p>
        The simulation of SDE (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) by Monte Carlo method with parameters (
        <xref ref-type="bibr" rid="ref12">12</xref>
        ) for diferent volatility
functions confirms (see Figure 2) that empirical probability density functions obtained with the
simulation approximate well enough theoretical probability distribution density functions of
the underlying asset in local volatility models under consideration.
      </p>
      <p>1.0 1.5 2.0 2.5
Ornstein-Uhlenbeck model</p>
      <p>Empirical pdf
Theoretical pdf
3.0
0.0
0.5
1.0 1.5 2.0 2.5
Hyperbolic sine model</p>
      <p>Empirical pdf
Theoretical pdf
3.0
0.0
0.5
1.0
1.5
2.0
2.5
3.0
0.0
0.5
1.0
1.5
2.0
2.5
3.0</p>
      <p>Parallel computing using module m u l t i p r o c e s s i n g on MacBook Pro with 8-Core Intel Core i9
processor can significantly accelerate the execution of program code (see Table 1) with almost
full load of MacBook Pro i9 processor cores (see Figure 3).</p>
      <p>Further speedup of calculation of empirical distribution density can be gained using GPU
resources [15]. When using GPU, program code can be accelerated many times depending on
the task being solved. For instance, on MacBook Pro with Intel Core i9 processor and discrete
graphics card AMD Radeon Pro 5500M (1536 shader processors) the program code can be
accelerated hundreds or even thousands of times compared to sequential execution on CPU.</p>
      <p>Parallel GPU computing can be implemented in a Python program using the PyCUDA library
(for Nvidia graphics cards) or the PyOpenCL library (for AMD graphics cards) [16]. The idea
of using Monte Carlo method on a GPU for financial simulation was studied in a number of
papers [17], including applications to financial risk measurement [ 18]. Calculating multiple
trajectories of a multidimensional system of SDE in parallel using OpenCL is a subject of
research in [19].</p>
      <p>OpenCL framework lacks a standard random number generator, so in order to take advantages
of PyOpenCL library to build empirical distributions and evaluate options with a GPU, one has
to implement a pseudorandom number generator. The recognized random number generators
implemented on GPU are collected in Random123 library [20].</p>
    </sec>
    <sec id="sec-2">
      <title>Acknowledgments</title>
      <p>The publication has been prepared with the support of the “RUDN University Program 5–100”.
The research was funded by RFBR, grant No. 19-08-00261.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M. A. H.</given-names>
            <surname>Dempster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kanniainen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Keane</surname>
          </string-name>
          , E. Vynckier (Eds.),
          <article-title>High-Performance Computing in Finance, Chapman</article-title>
          and Hall/CRC,
          <year>2018</year>
          .
          <source>doi:1 0 . 1 2</source>
          <volume>0 1 / 9 7 8 1 3 1 5 3 7 2 0 0 6 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Black</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Scholes</surname>
          </string-name>
          ,
          <article-title>The Pricing of Options and Corporate Liabilities</article-title>
          ,
          <source>Journal of Political Economy</source>
          <volume>81</volume>
          (
          <year>1973</year>
          )
          <fpage>637</fpage>
          -
          <lpage>654</lpage>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>8 6 / 2 6 0 0 6 2 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R. C.</given-names>
            <surname>Merton</surname>
          </string-name>
          , Theory of Rational Option Pricing,
          <source>The Bell Journal of Economics and Management Science</source>
          <volume>4</volume>
          (
          <year>1973</year>
          )
          <fpage>141</fpage>
          -
          <lpage>183</lpage>
          .
          <source>doi:1 0 . 2 3</source>
          <volume>0 7 / 3 0 0 3 1 4 3 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Derman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Miller</surname>
          </string-name>
          , The Volatility Smile, John Wiley &amp; Sons, Inc.,
          <year>2016</year>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>0 2 / 9 7 8 1 1 1 9 2 8 9 2 5 8 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S. T.</given-names>
            <surname>Rachev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Menn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. J.</given-names>
            <surname>Fabozzi</surname>
          </string-name>
          ,
          <article-title>Fat-Tailed and Skewed Asset Return Distributions: Implications for Risk Management, Portfolio Selection</article-title>
          , and Option Pricing, Wiley,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Cox</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Ross</surname>
          </string-name>
          ,
          <article-title>The valuation of options for alternative stochastic processes</article-title>
          ,
          <source>Journal of Financial Economics</source>
          <volume>3</volume>
          (
          <year>1976</year>
          )
          <fpage>145</fpage>
          -
          <lpage>166</lpage>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>1 6 / 0 3 0 4 - 4 0 5 x ( 7 6 ) 9 0 0 2 3 - 4</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>Brigo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mercurio</surname>
          </string-name>
          ,
          <article-title>Fitting volatility skews and smiles with analytical stock-price models</article-title>
          , Seminar Paper, Institute of Finance, University of Lugano,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Uhlenbeck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. S.</given-names>
            <surname>Ornstein</surname>
          </string-name>
          ,
          <article-title>On the theory of the brownian motion</article-title>
          ,
          <source>Physical Review</source>
          <volume>36</volume>
          (
          <year>1930</year>
          )
          <fpage>823</fpage>
          -
          <lpage>841</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>0 3</volume>
          / p h y s r e v .
          <volume>3</volume>
          <fpage>6</fpage>
          . 8 2
          <fpage>3</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Shorokhov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Fomin</surname>
          </string-name>
          ,
          <article-title>Modeling of financial asset prices with hyperbolic-sine stochastic model</article-title>
          ,
          <source>in: Convergent Cognitive Information Technologies</source>
          , Springer International Publishing,
          <year>2020</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>10</lpage>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>0 7 / 9 7 8 - 3 - 0 3 0 - 3 7 4 3 6 - 5</volume>
          _
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Jäckel</surname>
          </string-name>
          , Monte Carlo Methods in Finance, The Wiley Finance Series, Wiley Finance,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>G.</given-names>
            <surname>Maruyama</surname>
          </string-name>
          ,
          <article-title>Continuous markov processes and stochastic equations</article-title>
          ,
          <source>Rendiconti del Circolo Matematico di Palermo</source>
          <volume>4</volume>
          (
          <year>1955</year>
          )
          <fpage>48</fpage>
          -
          <lpage>90</lpage>
          .
          <source>doi:1 0 . 1 0 0 7 / b f 0 2</source>
          <volume>8 4 6 0 2 8 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>G. N.</surname>
          </string-name>
          <article-title>Mil'shtejn, Approximate integration of stochastic diferential equations</article-title>
          ,
          <source>Theory of Probability &amp; Its Applications</source>
          <volume>19</volume>
          (
          <year>1975</year>
          )
          <fpage>557</fpage>
          -
          <lpage>562</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>3 7 / 1 1 1 9 0 6 2 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P. E.</given-names>
            <surname>Kloeden</surname>
          </string-name>
          , E. Platen, Numerical Solution of Stochastic Diferential Equations, Springer Berlin Heidelberg,
          <year>1992</year>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>0 7 / 9 7 8 - 3 - 6 6 2 - 1 2 6 1 6 - 5</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Palach</surname>
          </string-name>
          ,
          <article-title>Parallel Programming with Python</article-title>
          ,
          <source>Packt Publishing</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Grauer-Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Killian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Searles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cavazos</surname>
          </string-name>
          ,
          <article-title>Accelerating financial applications on the GPU</article-title>
          ,
          <source>in: Proceedings of the 6th Workshop on General Purpose Processor Using Graphics Processing Units - GPGPU-6</source>
          , ACM Press,
          <year>2013</year>
          , pp.
          <fpage>127</fpage>
          -
          <lpage>136</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>4 5 / 2 4 5 8 5 2 3 . 2 4 5 8 5 3 6 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Klöckner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Pinto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Catanzaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ivanov</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Fasih,
          <article-title>PyCUDA and PyOpenCL: A scripting-based approach to GPU run-time code generation</article-title>
          ,
          <source>Parallel Computing</source>
          <volume>38</volume>
          (
          <year>2012</year>
          )
          <fpage>157</fpage>
          -
          <lpage>174</lpage>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>1 6</volume>
          / j . p
          <source>a r c o . 2 0 1 1 . 0 9 . 0 0 1 .</source>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>L.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Ökten, High-performance financial simulation using randomized quasi-monte carlo methods</article-title>
          ,
          <source>Quantitative Finance</source>
          <volume>15</volume>
          (
          <year>2015</year>
          )
          <fpage>1425</fpage>
          -
          <lpage>1436</lpage>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>8 0 / 1 4 6 9 7 6 8 8 . 2 0 1 5 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Varela</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wehn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Desmettre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Korn</surname>
          </string-name>
          ,
          <article-title>Real-time financial risk measurement of dynamic complex portfolios with python and PyOpenCL</article-title>
          ,
          <source>in: Proceedings of the 7th Workshop on Python for High-Performance and Scientific Computing - PyHPC '17</source>
          , ACM Press,
          <year>2017</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>4 5 / 3 1 4 9 8 6 9 . 3 1 4 9 8 7 2 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>E.</given-names>
            <surname>Avramidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lalik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. E.</given-names>
            <surname>Akman</surname>
          </string-name>
          ,
          <string-name>
            <surname>SODECL:</surname>
          </string-name>
          <article-title>An Open Source Library for Calculating Multiple Orbits of a System of Stochastic Diferential Equations in Parallel</article-title>
          , arXiv:
          <year>1908</year>
          .
          <volume>03869</volume>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J. K.</given-names>
            <surname>Salmon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Moraes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. O.</given-names>
            <surname>Dror</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Shaw</surname>
          </string-name>
          ,
          <article-title>Parallel random numbers: as easy as 1, 2, 3</article-title>
          , in:
          <source>Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis on - SC '11</source>
          , ACM Press,
          <year>2011</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>4 5 / 2 0 6 3 3 8 4 . 2 0 6 3 4 0 5 .</volume>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>