Computer Studies Bldg. Room 703
Correctness of speculative parallelization depends on monitoring the all program access to shared data. Automatic solutions use either program instrumentation, which can be costly; or hardware-based triggering, which incurs false sharing. In addition, not all access requires monitoring. It is worth considering a manual approach in which programmers insert access annotations for parallelization as they insert type declarations for safety checking.
This informal talk is about a parallel execution model and its user interface, and the semantics of access annotation. I'll show a quadratic-cost verification tool to help a user ensure correct parallel semantics. I'll uses a series of examples to show that explicit annotation may be more efficient, precise, and generally applicable than automatic solutions are.