Runtime Research Questions
From Modelado Foundation
Concurrency
How should a runtime system be designed to manage billions of threads?
Locality
How should locality optimization on exascale machines be supported at the runtime level?
Granularity
How much of the burden of selecting the right granularity of parallelism for a given platform should be placed on the runtime?
Robustness to Architecture Change
Can exascale binaries be "forward scalable" by default so that hardware changes in parallelism/locality can be exploited entirely in the runtime without requiring re-programming or re-compilation?
Memory Management
How will runtime memory management support (e.g., malloc/free) be designed for exascale? Will automatic techniques like concurrent garbage collection be more or less relevant at exascale?
Resource Management
How can different runtime components cooperatively manage shared resources? For example, cores can be used to support computation, communication and resilience.
User directives
How can a runtime support both user directives and automated adaptations in an integrated manner?
Relaxed Synchronization
What role can "relaxed synchronization" play in exascale software e.g., allowing tasks to execute even in the presence of data races so long as the probability of wrong answers is shown to be (or made) low?
Transactional Memory
What role can transactional memory and related ideas for optimistic concurrency play in exascale software? How about actors?
Runtime / OS interoperation
What assumptions should exascale runtimes make about exascale operating systems?