The performance of CSE applications depends on the model, discretization, numerical algorithm, input data, and implementation. This, when combined with heterogeneity and diversity in platform architecture makes performance portability an important topic in CSE.
Achieving good performance across a range of platforms is an important goal for high-performance CSE software.
Portability: An application code is portable if it can run on a diverse set of platforms without needing significant modifications to the source and can produce predictably similar output.
Performance portability: An application has portable performance if in addition to running on diverse platforms, it exhibits similar accuracy, stability, and reliability across these platforms for a given configuration. Moreover, the time to solution should reflect the efficient utilization of available computational resources on each platform.
The short article Understanding Performance Portability for CSE Applications introduces basic concepts in performance portability.