HPC for numerical probability
High performance computing for numerical probability
J´ erˆ
- me Lelong
Universit´ e de Grenoble Alpes – Ensimag / LJK
Thursday 15 October 2015
- J. Lelong (Univ. Grenoble Alpes)
15/10/2015 1 / 31
High performance computing for numerical probability J er ome - - PowerPoint PPT Presentation
HPC for numerical probability High performance computing for numerical probability J er ome Lelong Universit e de Grenoble Alpes Ensimag / LJK Thursday 15 October 2015 J. Lelong (Univ. Grenoble Alpes) 15/10/2015 1 / 31 HPC for
HPC for numerical probability
15/10/2015 1 / 31
HPC for numerical probability
15/10/2015 2 / 31
HPC for numerical probability
15/10/2015 3 / 31
HPC for numerical probability
◮ No more possible to double the density of transistors every 18
◮ Increasing frequency increases both the energy consumption
◮ Frequency stays almost constant, but the number of cores
15/10/2015 4 / 31
HPC for numerical probability
◮ Since the 70s, the frequency of CPUs has increased much
◮ When computing a[i] = b[i] + c[i] using an Intel Core
◮ Memory Bandwidth 34 GB/s, with 2 channels. ◮ Maximum turbo frequency 3.5 Ghz ◮ 4 adds per cycle ◮ Transferring data takes 3 ∗ 8/(34E9/2)/(1/3.5E9/4) = 19.7.
◮ When all the cores of processor are computing, the clock speed
◮ Memory bandwidth increases very slowly.
15/10/2015 5 / 31
HPC for numerical probability
◮ Scaling is often hard/bad mainly because of cache
◮ Programming is pretty easy at first sight (OPENMP) ◮ No need of message passing but some concurrent accesses.
◮ Scaling is better. ◮ Need of a specific communication protocol to exchange data
◮ Programming needs to handle data passing explicitly. ◮ Optimizing the ratio communication/computations requires
15/10/2015 6 / 31
HPC for numerical probability
◮ Programming is delicate with two different parallel paradigms. ◮ Optimizing is complex. ◮ Can achieve better performances.
15/10/2015 7 / 31
HPC for numerical probability
15/10/2015 8 / 31
HPC for numerical probability
◮ Low network. ◮ Only for applications with very little communication. ◮ Startup latencies.
◮ GPU: it requires to use a dedicated programming language. ◮ Intel MIC (Xeon Phi): 60–core with 8GB of RAM; pragmas
15/10/2015 9 / 31
HPC for numerical probability
15/10/2015 10 / 31
HPC for numerical probability
15/10/2015 11 / 31
HPC for numerical probability
◮ SMP (Symmetric Multi Processors). All units are plugged on a
15/10/2015 12 / 31
HPC for numerical probability
◮ NUMA (Non Uniform Memory Access). The memory topology
15/10/2015 13 / 31
HPC for numerical probability
15/10/2015 14 / 31
HPC for numerical probability
15/10/2015 15 / 31
HPC for numerical probability
◮ Reproducibility: rerun a scenario (at least with the same
◮ Independence of the numbers generated on different processing
◮ No communication between the generators (at least after
15/10/2015 16 / 31
HPC for numerical probability
15/10/2015 17 / 31
HPC for numerical probability
◮ It requires to be able to jump ahead at startup (usually only
◮ Shorter period. ◮ The way the sequential samples are spread on the processing
◮ Long range correlation may occur at short scale.
M M M M M
15/10/2015 18 / 31
HPC for numerical probability
◮ It requires to make a jump of size p at each call as quickly as
◮ Numbers used by each processing unit change with the number
◮ Elements of a sub stream are equally spaced in the original
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26
15/10/2015 19 / 31
HPC for numerical probability
◮ Nice, because of the huge period N = 219937 with negligible
◮ Hard to implement because of the computation of the nth
15/10/2015 20 / 31
HPC for numerical probability
◮ SPRNG (see [Mascagni and Scrinicasan, 00] and the references
◮ See [Matsumoto and Nishimura, 00] for parametrization of
15/10/2015 21 / 31
HPC for numerical probability
15/10/2015 22 / 31
HPC for numerical probability
15/10/2015 23 / 31
HPC for numerical probability
◮ Use a parallel linear algebra library for solving the linear
◮ Use a clever domain decomposition to solve smaller problems
◮ In any case, ask people from numerical analysis who have been
15/10/2015 24 / 31
HPC for numerical probability
time 0 time 1 time 2 time 3 time 4 time 5 time 6 time 7
15/10/2015 25 / 31
HPC for numerical probability
15/10/2015 26 / 31
HPC for numerical probability
15/10/2015 27 / 31
HPC for numerical probability
◮ sequential time: proportional to N(N + 1)/2. ◮ parallel time: proportional to 3/4 × N(N + 1)/2.
15/10/2015 28 / 31
HPC for numerical probability
◮ Dynamic programming equation
◮ OK for a small number of shared memory units, see
◮ Many GPU implementations, see [Abbas-Turki et al. 14]. ◮ The real difficulty comes from the regression part. ◮ Classification approach, see [Ibanez and Zapatero, 04];
15/10/2015 29 / 31
HPC for numerical probability
◮ Dynamic programming approach ◮ Picard’s iteration: a distributed memory approach, see
◮ Stratified regression, see [Gobet et al., 15].
15/10/2015 30 / 31
HPC for numerical probability
15/10/2015 31 / 31
HPC for numerical probability
15/10/2015 31 / 31
HPC for numerical probability
15/10/2015 31 / 31
HPC for numerical probability
15/10/2015 31 / 31
HPC for numerical probability
15/10/2015 31 / 31
HPC for numerical probability
15/10/2015 31 / 31
HPC for numerical probability
15/10/2015 31 / 31