Linux 3.2 Cross Memory Attach : our SMP1 performances would have been better!

By , the in OS - No comment
Linux 3.2 Cross Memory Attach : our SMP1 performances would have been better!
This news is coming a bit too late but reminds us a little bit of nostalgia … or anger … :D

The cross memory attach patch developed by Christopher Yeoh has been incomporated in 3.2 Linux Kernel.
The objective of this work is to improve the performances of the processus that rely on MPI (Message Passing Interface) layer. This norm is often used for high performance computing because it allows many processors in clusters to exchange messages to process data.

Yes you read it accurately, if we folders now have wonderful multithread implementations of Gromacs core, MPI no longer being used for Folding@Home since the switch to SMP2, the rest of the world is still using it ! To summerize the optimisation by Christophe Yeoh, MPI used to generate two copy operations for each message exchanged. The new implementation only requires one, which greatly reduces the amount of data exchanged between processes.

Christopher Yeoh modified the OpenMPI library in order to use the new cross memory attach feature and he ran a few benchmarks on a 64 cores machine using POWER6 CPUs. As expected when removing a costly copy operation, the tests show a big performance improvement:

Number of processus 4 8 16 32
MB/s without pach 1235 935 622 419
MB/s with CMA feature 4741 3769 1977 703

Those gains would have helped a lot our Core 2 Quad CPUs in the past ! Congratulations to Christopher Yeoh and to the other contributors to the Linux kernels to keep going further !

Even of we’re no longer using this technology in Folding@Home cores, some BOINC projects are working on SMP implementations of their scientific application using OpenMPI. We hope this technology will help to speed up their computations.

Source : Linux FR (in French)