Transcript slides

Life with Hardware Threads to Burn
Todd C. Mowry
Intel Research Pittsburgh &
Carnegie Mellon University
ISCA Panel
June 7, 2005
Copyright, 1996 © Dale Carnegie & Associates, Inc.
Functional Correctness Trumps Performance
o If your software doesn’t behave correctly, it doesn’t matter
how fast it runs.
o What does matter (see “Software Engineering”):
 code development and testing time
 how quickly/easily a new developer can modify existing code
 achieving acceptable performance
o Most programmers who choose not to write parallel code today
are making a rational choice
 the cost/benefit ratio is unfavorable in too many cases
ISCA Panel, June 7, 2005
-2-
Todd C. Mowry
Making Parallel Programming More Attractive
o Minimizing programming complexity is the key:
 Consistency models: SC -> RC -> SC
 Machine models: PRAM -> logP -> ???
o Benchmarks for a successful parallel programming model:
 does it work well when you’re modifying someone else’s code?
 can we teach it to freshmen in an Algs & Data Structures course?
o A “semi-automatic” approach seems like the sweet spot
 the programmer thinks about sources of parallelism at a high level
 the system does the heavy lifting and always preserves correctness
 programmer can tweak performance through localized changes
ISCA Panel, June 7, 2005
-3-
Todd C. Mowry
Use CMPs to Improve Functional Correctness
o Impressive tools already exist to help identify/fix problems
 bugs, data races, memory leaks, faults, security violations, etc.
o However, sophisticated tools can add significant runtime overhead
o By offloading these tools onto other threads, we can:
 run existing tools continuously
 enable new tools that are even more sophisticated
ISCA Panel, June 7, 2005
-4-
Todd C. Mowry