CoMD is an open-source classical molecular dynamics code. One of its prime application areas is materials modeling. Think, for example, of using shock waves to create hard, thermally stable materials such as c-BN - this is where CoMD would be essential. CoMD uses the N-Body approach and supports a variety of physics models for inter-particle interaction. It is built with support for hybrid OpenMP*+MPI computing in clusters of multi-core computers.
In a recent presentation, we learned how CoMD performance had been improved even further with code modernization. The talk was given by Dr. Adetokunbo Adedoyin of the Los Alamos National Laboratory.
Dr. Adedoyin explained the challenges of code modernization and recommended some of his methods.
- Modern code can use abstraction to hide the complexity of communication, threading, and vectorization
- Software optimization tools are not trivial - what do you really need to learn
- Optimization is exhaustive and iterative - use proxy/mini apps
He also discussed the optimization techniques that he used for CoMD:
- Performance measurement in Intel® VTune™ combined with optimization report analysis to identify opportunities
- Directives and code transformation for vectorization
- SIMD-enabled functions to allow abstraction to coexist with performance
- and others.
Optimization of specific computational kernels resulted in up to 50% performance improvement.