François Legendre - MSL, a library written in C++ and dedicated to microsimulation models
Presenting author: François Legendre (Érudite, Université Paris-Est Créteil)
Authors: François Legendre
Topic: Microsimulation modeling platforms
Micro-simulation models are computationally and data intensive computer applications. The hardware architecture of modern computers is characterised by a large main memory, several levels of cache memory and many processors. The aim of MSL, a library dedicated to micro-simulation models written in C++, is to take advantage of this hardware architecture. This library has the following five salient features. Firstly, using the library requires two steps. In the first stage, a specialised library, specific to the micro-simulation model used, is built from a parameter file which, in particular, gives the names of the model’s variables. In the second stage, this specialised library is used to develop the model. Secondly, the library offers a particularly effective model for ensuring data persistence. The population is stored on the external medium in a form compressed into several fragments. The population is loaded into memory in parallel and decompressed on each of the computer’s processors. Thirdly, the individuals are identified by their reference in memory, as for example in the Python language. This solution is simple and effective: it avoids the need to manipulate raw pointers. Fourthly, the library can be used to create total partitions of the population, such as families or tax households. It offers constructs for browsing all the families in the model and, within each family, each member of the family. Finally, the library facilitates distributed computing by providing tools for implementing the map and reduce algorithm.