As we look ahead to next generation platforms and exascale computing, both applications and hardware will be characterized by dynamic behavior, increased heterogeneity, and a marked increase in overall system concurrency. Asynchronous many task (AMT) programming models and runtime systems show promise to mitigate these challenges at the runtime system-level, providing application developers with a productive and performant approach to programming on next generation platforms. The AMT research community is very active and our recent study confirmed these systems' performance potential. However, the report also highlighted current runtime system gaps with respect to productivity, in particular noting requirements gaps and deficiencies in existing application programming interfaces (APIs). The report also highlighted the need for development of best practices within the AMT community, to 1) accelerate adoption of AMT runtimes by application developers, and 2) provide concise (application-informed) AMT requirements to researchers and vendors providing lower-level components of the runtime software stack. The DARMA AMT portability layer is being developed to serve as vehicle that supports community-based co-design resolution to these issues. The layer aims to:
- insulate applications from runtime system and hardware idiosyncrasies,
- improve AMT runtime programmability by co-designing an API directly with application developers,
- synthesize application co-design activities into meaningful requirements for runtimes, and
- facilitate AMT design space characterization and definition, accelerating the development of AMT best practices.
We seek to engage a broad set of application and runtime teams in the co-design of the portability layer. Contact us if you are interested in learning about ways to get involved - or visit our github page.