The DISAR (Dynamic Investment Strategy with Accounting Rules) system - an Asset-Liability Management software for monitoring portfolios of life insurance policies - has been proven to be extremely efficient on a grid of conventional computers. However, when executed on multicore architectures, it is fundamental to face new challenges, due to the machine characteristics, in order to improve the performance of the code. Further, since in the future an increasing number of cores per-chip - tens and even hundreds - and smaller per-core resources, as memory, are expected, it seems necessary, in the implementation of very large-scale financial applications, to employ an hybrid programming model which uses OpenMP for parallelization inside the node and MPI for message passing between the nodes. We discuss our experiences on two different multicore architectures - an UMA machine and a NUMA one - and we present a set of techniques and software tools that we implement to face the associated problems, including thread binding and correct memory association. We present results using both pure MPI and various hybrid MPI/OpenMP models.
Hybrid MPI/openMP application on multicore architectures: the case of profit-sharing life insurance policies valuation
DE ANGELIS, Pasquale Luigi;PERLA, Francesca;ZANETTI, Paolo
2013-01-01
Abstract
The DISAR (Dynamic Investment Strategy with Accounting Rules) system - an Asset-Liability Management software for monitoring portfolios of life insurance policies - has been proven to be extremely efficient on a grid of conventional computers. However, when executed on multicore architectures, it is fundamental to face new challenges, due to the machine characteristics, in order to improve the performance of the code. Further, since in the future an increasing number of cores per-chip - tens and even hundreds - and smaller per-core resources, as memory, are expected, it seems necessary, in the implementation of very large-scale financial applications, to employ an hybrid programming model which uses OpenMP for parallelization inside the node and MPI for message passing between the nodes. We discuss our experiences on two different multicore architectures - an UMA machine and a NUMA one - and we present a set of techniques and software tools that we implement to face the associated problems, including thread binding and correct memory association. We present results using both pure MPI and various hybrid MPI/OpenMP models.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.