Parallel Programming by Hints (1/3)
A sequential program is difficult to parallelize often because of the complexity in its implementation and the uncertainty in its behavior. I will demonstrate a system for behavior-oriented parallelization (BOP), which allows a program to be parallelized based on partial information about program behavior, for example, a user reading just part of the source code, or a profiling tool examining merely one or few inputs. The basis of BOP is programmable software speculation, where a user or an analysis tool marks possibly parallel regions in the code, and the run-time system tries to run the annotated tasks in parallel as long as they produce the correct result — the same output as the sequential execution.




