Multi-core parallelism for ns-3 simulator Internship at INRIA Sophia-Antipolis, PLANETE team

The ability to quickly evaluate network protocols or infrastructure shapes on real-life scale simulations is a key factor for network researchers work. Since multi-core systems are now widely available and installed, doing multithreading parallelism is a simple but potentially efficient optimization for simulators performance, which may also be implemented so that the parallelism is completely transparent to the user. Consequently, we designed and implemented a seamless multithreaded simulator implementation for ns3, a next-generation network simulator for Internet systems intended as a replacement of the popular ns-2. We explain here the details of this implementation and describe its development process, which includes stating on the design choices, making the simulator thread-safe and optimizing the implementation.