Revisiting the Sequential Programming Model for Multi-Core
What is the problem?
- New capabilities needed:
- Automatically run sequential source code on a multi-core processor
- The need for new semantics to achieve this automated process for sequential code
- Current capabilities of the hardware towards solving the problem:
- Dependence/Alias speculation
- Value speculation
- Thread-level speculation (TLS) on a shared memory chip multi-processor (CMP) where the hardware maintains the speculative thread state (memory versioning)
- Efficient core-to-core communication
- FIFOs
Who are the intended users?
- Single-threaded code that requires performance:
- Existence of inherent parallelism is assumed.
- Code is written in sequential programming style without considering explicit parallelism.
- Not following purely sequential semantics:
- Results are non-deterministic.
- Timing is non-deterministic.
- “General purpose” code/productivity/performance
What is unique about this paper?
- Combines many previously known techniques:
- Combining task (pipeline) and data parallelisms have been done in the past. These solutions target pure streaming applications:
- StreamIt (MIT)
- Ptolemy (UC Berkeley)
- TLS - Data parallelism
- Decoupled software pipelining (DSWP) - Pipeline and task parallelism
- Added semantics to remove “unnecessary” determinism:
- Y-Branch:
- True path can always be executed and achieves forward progress.
- False path is very rare and impacts “quality” but not correctness. It allows refinement control. Paper has introduced the probibility of false path into the system.
- Commutative property
- Templatized (pipeline) parallelism
How is the idea evaluated?
- Positive points:
- Presented case studies of some SPEC CINT2000 applications
- Modified applications using new semantics
- Measured parallel speedup - Scalability to more cores
- Negative points:
- Didn’t compare to anything else
- Didn’t fully explain why things don’t scale
- No quantitative measurements of specific techniques - Very qualitative explanations
- “Magic” communication - Impacts scalability