MoveUrBody (MUrB) n-body code

MUrB is an efficient and fine tuned n-body code for modern architectures. It provides collisional (perfectly elastic) and non-collisional implementations of the Newton gravity equations.

The code is written in C++ with templates and it supports different precisions for floating-point numbers (at the compilation time). The architecture of the code is generic and it is easy to modify or to add new implementations. The best current high performance implementation is fully parallelized with vector instructions (SSE, AVX and NEON compatible, based on MIPP ), threads (OpenMP) and processes (MPI).

The code is available (for non-commercial use only): MUrB code . The code documentation is also available: MUrB documentation .

Performance measurement

Following graphics have been made on a 2x 12 cores Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz node (Haswell architecture, NUMA node, 2 sockets). MUrB achieved a very good speed-up (23.2 for 24 cores with OpenMP) and almost half of the CPU peak performance (862 Gflop/s with single precision floating-point numbers): this is very high since the Haswell peak can only be achieved by using exclusively FMA (Fused Multiply and Accumulate) instructions. More measurements are coming.

List of contributors