Computational science applications that I work with represent diverse science needs from climate, circuit simulations, mechanics and fluid simulations, and electromagnetics simulations.
Computational science applications that I work with are expected to run on the top 500 supercomputers in the world and on capacity clusters. These systems represent diverse architectures from different vendors, each relying on their own programming models and architectural quirks. Designing algorithms and developing implementations of these algorithms that can perform well on all these architectures has been a challenging problem.