QUESTIONS 1. What are the target applications and what is the expected sophistication of the target users (naive, knowledgeable, expert)? 2. List the set of features/concepts of your programming model and divide them into two sets: What is the minimum set of things a new user need's to learn to become productive? What are the more advanced features a user can potentially take advantage of? 3. How do you decide whether a new application is a good fit? What metrics do you use to evaluate whether an application is implemented well in your model? 4. What is the plan for interoperability with MPI, OpenMP, Kokkos, etc.? If you could add requirements to MPI, what would those be? 5. What is the plan for performance portability? 6. What is the plan for fault tolerance? 7. What static analyses and transformations could you do? What do you do today? 8. Questions about task graphs: * When is the task graph generated (compile-time, load-time, run-time)? * How do you manage task graph generation vs. task graph execution? * What is the value of non-ready tasks in the DAG? * Do you exploit the repetitiveness of iterative applications that repeatedly execute the same task graph? 9. Questions about tasks: * How is task granularity managed? * What is the life-cycle of a task? 10. What is the relationship between task and data parallelism --- can one be invoked from the other arbitrarily or are there restrictions? 11. Where exactly is concurrency (meaning the ability to have races and deadlocks) exposed to the programmer, if at all? 12. Legion: What are the plans for people to be able to write mappers more productively?