Report Open Access
Hesam, Ahmad; Rademakers, Fons
In this project a brain simulation code has been ported from Java to C++ (BioDynaMo). The porting is now finished and the project goes into the next phase of code optimization and ROOT (https://root.cern.ch) integration. The summer student’s task is to integrate ROOT I/O technology to make the simulation output persistent, so that simulations can be stopped and restarted. This is important to be able to snapshot very long running simulations to not lose many hours or days of work in case the program crashes or a machine goes down. In addition, I/O is important to be able to distribute simulation state between nodes running one large simulation in parallel. ROOT I/O is the key I/O technology used to store all scientific experimental data at CERN and in other HEP labs. The student should be good in C++ programming and will learn how advanced cell growth codes work and how they can be used to simulate certain common diseases.
A brain simulation platform called BioDynaMo has been made data persistent using the I/O features of CERN’s Big Data software framework ROOT. During runtime of a simulation the entire simulation state can be written to file and read back whenever required. This result preserves computational resources, because in case of a crash in simulation runtime, a persisted simulation state can be reloaded in memory, instead of repeating the simulation up till the crash. For several simulations it has been measured that the overhead for writing a simulation state to file is between 1.0 - 1.4 seconds. Persisting the state every half hour makes this overhead negligible. The files generated to hold the persistent state is sized between 6 kB - 1.6 MB, which is up to 15 smaller than files in JSON format holding the same information. A data persistent BioDynaMo also allows for distributing the simulation state over multiple computer nodes that run the simulation in parallel. This however still needs to be explored in more depth.