The parallel and panel sessions for our kickoff meeting depend on the questions that we, as a group, decide we need to address during the time allocated for these sessions. We will decide on 5-6 questions for the parallel sessions, and on 4 questions for each panel session.
For the 3 panel sessions, there are at least five panelists, each presenting four slides, one for each selected panel question. The envisioned process is the following:
- The moderator asks three panelists to answer question 1 (about 2 minutes per panelist, 6 minutes total)
- A 9 minute discussion among panelists, with questions from the audience follows.
- The moderator repeats the process for question 2 – 4.
The parallel sessions are working sessions: all participants should plan to contribute to the discussions. A moderator ensures that no one dominates the discussion and that all have the opportunity to speak and contribute.
Questions submitted: Corvette, ETI Brandywine, Global View Resilience, Traleika Glacier, High Level Representations, SLEEC, XPRESS
Panel Session 1
Moderator: Dan Quinlan Roles: Milind Kulkarni, David Padua, Andrew Lumsdaine, John Shalf, Vivek Sarkar, John Bell; and Tina has agreed to be our scribe.
- What is the role of DSLs within Exascale and what impact does this have on vendors?
- Will we see language extensions or new parallel languages from the Exascale program?
- Where in the software stack is resilience best addressed; or need it be addressed uniformly everywhere?
- What is the role of correctness in the development of Exascale software?
- How fast will hardware change, how fast do we expect software and programming models to adapt? (the software stack?)
Panel Session 2: Runtime Systems
Moderator: Saman Amarasinghe Panelists: Andrew Chien, Vijay Saraswat, Hartmut Kaiser, Vivek Sarkar, Wilf Pinfold
- We first need a common vocabulary to discuss the complex runtime system, which has many components. Can you come-up with a clear set of components for a runtime system (akin to the ISO 7 layers for networking)
- Can you explain your runtime solution w.r.t. these components
- In your opinion, what components are closes to get standardized (i.e. shared across all groups) and what needs lot more research/exploration?
- What are the top three challenges in building a runtime system exascale?
- Share some of the key ideas/technology you think will address these challenges.
Panel Session 3: Low-Level Representation: Synthesis, Refinements, Transformations, Resilience
Moderator: Armando Solar-Lezama (MIT) Scribe: Tina Macaluso (SAIC) Panelists: Koushik Sen (UC Berkeley), David Padua (UIUC), Mary Hall (Utah), Milind Kulkami (Purdue), Richard Lethin (Reservoir Labs), Vijay Saraswat (IBM)
- How can we get the programmer involved in refinement?
- How do we introduce automation without losing control?
- How do you provide situational awareness to the programmer guiding the refinement?
- What features are needed in the program representation to facilitate synthesis, transformation and refinement?
- How do we introduce learning into the refinement process? Should we?
Parallel Session I
Roles: Kathy Yelick will moderate, Tina Macaluso will scribe, Mary Hall will report out. Presentation: X-Stack Frontend
This session will be split into two discussions, the first on the interactions with application scientists (aka X-Stack users) and the second on the languages, compilers and tools. Here are some questions:
- How should we (X-stack) interact with users? This is both a technical question of what kinds of APIs / programming models they will accept and how we should interact with them in the mean time.
- Are different X-Stack projects addressing different types of users?
- How should memory and network hierarchy be managed?
- How can we predict the importance of locality at different levels, and which things should be exposed to users? Can we "virtualize" the hierarchy using a recursive model?
- Can DSLs help substantially?
- Should we be writing programs that generate code rather than code itself, i.e., train more compiler folks or build tools that makes this easier.
- Are there different types of tools that should be provided for exascale users?
One of the goals of this breakout is to collect a matrix of the approaches being used by each project.
Parallel Session II
Roles: Shekhar Borkar will moderate, Wilf Pinfold will be the scribe, and Andrew Chien will report out. Presentation: Back-end Reportout
- Programming productivity should not be compromised. Yet, expect Exascale hardware to be simpler than today for efficiency, potentially impacting programming productivity. What is your recommendation to tradeoff %-of productivity to %-of efficiency?
- Resiliency has become a popular buzz-word. Could the panel discuss and define the goals of a resilient Exascale system?
- Operating systems are bloated with unnecessary features, making them inefficient, and we have been relying more and more on nimble runtime systems. Should X-Stack take the route of extremely light-weight system software? Maybe even lighter than the runtime?