Jacques Du Toit
Jacques joined NAG in 2010 and has worked on implementing a wide range of numerical codes on CPU, GPU and Intel Xeon Phi, including as a consultant. In addition, Jacques has developed adjoint AD solutions for accelerator platforms and has helped integrate adjoint AD into financial risk systems. In recent years he has worked on combining clang tooling and source-to-source compilation ideas with accelerator and AD technologies to create products for solving PDEs. Jacques joined the commercial team as a product manager for FSI in 2020.
His main research and work areas are:
- Parallelization and multi/many core architectures
- Arbitrage free interpolation
- Algorithmic Differentiation
- Computational finance in general
- PDE solvers
Specific Technical Experience
Numerical code on GPUs
Jacques has delivered a number of numerical code projects for GPUs based around Monte Carlo applications. Key components included L’Ecuyer MRG32k3a, Mersenne Twister MT19937 and Sobol Generators, all with skip-aheads. The generators supported various distributions and were highly optimised for GPUs. The algorithms developed are suitable for many core processors in general and HPC systems.
Adjoint algorithmic differentiation on multi/many core platforms
Jacques has developed adjoint algorithmic differentiation solutions for heterogeneous platforms, in particular codes which span both CPUs and GPUs.
Jacques has developed training courses on writing numerical code in CUDA and OpenCL. He has delivered these courses for a range of different technical audiences in finance and other fields.
- Probability Theory
- Actuarial Science
- Financial Mathematics
- Algorithmic Differentiation
- Ph.D, Optimal Stopping Theory and Stochastic Analysis, 2006, Manchester University
- MSc, Financial Mathematics, 2004, Wits University, Johannesburg
- BSc, Statistics and Actuarial Science, 2000, Wits University, Johannesburg
Papers & Talks
An extension of the change of variable formula with local time on surfaces. Du Toit, J. (2009). Research Report No. 14, Probab. Statist. Group Manchester (55 pp)
The trap of complacency in predicting the maximum. Du Toit, J. and Peskir, G. (2007). Ann. Probab. 35 (340–365)
Predicting the time of the ultimate maximum for Brownian motion with drift. Du Toit, J. and Peskir, G. (2008). Proc. Math. Control Theory Finance (Lisbon 2007), Springer (95–112).
Selling a stock at the ultimate maximum. Du Toit, J. and Peskir, G. (2009). Ann. Appl. Probab. 19 (983–1014).
Predicting the last zero of Brownian motion with drift. Du Toit, J. Peskir, G. and Shiryaev, A. N. (2008). Stochastics 80 (229–245).
Local Volatility FX Basket Option on CPU and GPU. Du Toit, (NAG) and Isabel Ehrlich, (Imperial College, London).
Note on Monte Carlo model sensitivities to distributions sampled by Rejection. Du Toit, (NAG).
Adjoint Algorithmic Differentiation of a GPU Accelerated Application. Du Toit (NAG), Lotz (Aachen University) and Naumann (Aachen University).
Adjoint Algorithmic Differentiation Tool Support for Typical Numerical Patterns in Computational Finance. Du Toit (NAG) and Naumann (Aachen University).
Pricing Bermudan Swaptions on the LIBOR Market Model using the Stochastic Grid Bundling Method. Du Toit (NAG) and Maree (Delft University of Technology).
A Finite Volume - Alternating Direction Implicit Approach for the Calibration of Stochastic Local Volatility models. Du Toit (NAG) and Wyns (University of Antwerp).
Batched Least Squares of Tall Skinny Matrices on GPU. Du Toit (NAG) and Tim Schmielau (NAG).
CVA at Scale with Adjoint Sensitivities: Combining the NAG Library with dco/c++ and Origami. Du Toit (NAG), Mosenkis (NAG), Hotchkiss (Xifintiq) and Ware (NAG).
High Performance Tape–Free Adjoint AD for C++11: Introducing dco/map, a cross–platform, accelerator ready AAD tool. Du Toit (NAG), Lotz (RWTH), Leppkes (RWTH) and Naumann (RWTH).
From Runtime to Compile Time Adjoints C++11. Du Toit (NAG), Lotz (RWTH Aachen) and Mosenkis (NAG).