Despite initiatives to improve the quality of scientific software, there still is a large presence of legacy code. The focus of such code is usually on domain‐science features, rather than… Click to show full abstract
Despite initiatives to improve the quality of scientific software, there still is a large presence of legacy code. The focus of such code is usually on domain‐science features, rather than maintainability or highest performance. Additionally, architecture specific optimizations often result in less maintainable code. In this article, we focus on the AIREBO potential from LAMMPS, which exhibits large and complex computational kernels, hindering any systematic optimization. We suggest an approach based on complexity‐reducing refactoring and hardware abstraction and present the journey from the C++ port of a previous Fortran code to performance‐portable, KNC‐hybrid, vectorized, scalable, and optimized code supporting full and reduced precision. The journey includes extensive testing that fixed bugs in the original code. Large‐scale, full‐precision runs sustain speedups of more than 4× (KNL) and 3× (Skylake). © 2019 Wiley Periodicals, Inc.
               
Click one of the above tabs to view related content.