Runtime Research Questions
Below are the questions addressed in the Runtime Research Panel. Please add your comments (with you name) after each question.
How should a runtime system be designed to manage billions of threads?
How should locality optimization on exascale machines be supported at the runtime level?
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?
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?
How can different runtime components cooperatively manage shared resources? For example, cores can be used to support computation, communication and resilience.
How can a runtime support both user directives and automated adaptations in an integrated manner?
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?
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?