slides - Pages
Download
Report
Transcript slides - Pages
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