Exploit phase boundaries in iterative apps
Many parallel programs exhibit phased behaviors, with differing patterns of computation, communication, and memory usage in each. Being aware of the completion of phases or time steps in the application can be useful to the runtime system. Various mechanisms in the runtime will benefit from exploiting phase boundary information. However, this cannot be achieved without help from the application programmer. This task is to discuss, design and implement the necessary support for identifying and exploiting phase boundaries in an application. This involves:
- provide mechanisms for user to identify one or more phases within an app
- provide mechanisms for user to annotate app execution by marking phase boundaries ( think more flexible atsync(), but not just for chare arrays )
- provide API for multiple runtime components to listen to these phase boundary events
As a start, we can think of phases to simply mean time step boundaries in an iterative application. However, we definitely want to consider a finer resolution of different phases within a step.
#2 Updated by Phil Miller about 6 years ago
I don't think there's any realistic chance of that happening. We're starting from no design, grand ambitions, and numerous people who are leaving for internships in the next couple weeks, with finals and term projects to finish before then. Pushing on it just means that we'll end up with something half-baked.