Towards task-based implementation of MPAS-Ocean simulation code.
High Performance Computing Systems are moving heavily towards many-core processors with deep memory hierarchies. Accelerators like GPUs are widely being used for general purpose computing, and processor architectures are becoming more complex in an attempt to translate increasing transistor budgets into increased performance. Task-based programming models show promise in addressing exascale challenges, providing application developers with a productive and performant approach to programming on next generation systems. Empirical studies show that task-based models can overcome load-balancing issues that are inherent to traditional distributed-memory runtimes, and that task-based runtimes perform comparably to those systems when balanced. In this talk I will describe a CANGA project and results of porting MPAS-Ocean code to task-based run-time framework (FleCSI). FleCSI is a compile-time configurable framework designed to support multi-physics application development. FleCSI abstraction layer insulates developers from the underlying runtime, while allowing support for multiple runtime systems including MPI, Legion and HPX.