2x performance improvement for SCM ADF code

Tuesday, June 27, 2017

ADF is the flagship code from Software for Chemistry and Materials (SCM) company based in The Netherlands. It is a computational chemistry application which uses density functional theory calculations to predict the structure and reactivity of molecules

A POP Audit and Performance Plan were carried out on their new Hartree-Fock exchange implementation which is an important new feature of the application. The application uses MPI and shared memory within a node to parallelise the problem.

The main issue located was the load imbalance due to unequal distribution of work, there was also low computational scalability but that was found to be an artefact of the time cores spent idle waiting to be distributed work. The communication efficiency was found to be good and did not need further investigation.

A recommendation was made to improve the load balancing algorithm with an expected performance improvement of a factor of two for good balance.

Figure 1. Original timeline of load balance for Hartree-Fock exchange, communication lines in black

On 128 cores the section of imbalanced work took 4.24s for 45 atoms. Dynamic load balancing was implemented by the SCM developers with a dedicated dispatcher process to farm out the work to all other cores, this reduced the runtime to 1.992s which is a performance improvement of over 2 times, as was estimated in the POP Performance Plan.