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