Copyright, 1996 © Dale Carnegie & Associates, Inc. Life with Hardware Threads to Burn Todd C. Mowry Intel Research Pittsburgh & Carnegie Mellon University ISCA Panel June 7, 2005
Todd C. Mowry ISCA Panel, June 7, Functional Correctness Trumps Performance oIf your software doesn’t behave correctly, it doesn’t matter how fast it runs. oWhat does matter (see “Software Engineering”): code development and testing time how quickly/easily a new developer can modify existing code achieving acceptable performance oMost programmers who choose not to write parallel code today are making a rational choice the cost/benefit ratio is unfavorable in too many cases
Todd C. Mowry ISCA Panel, June 7, Making Parallel Programming More Attractive oMinimizing programming complexity is the key: Consistency models: SC -> RC -> SC Machine models: PRAM -> logP -> ??? oBenchmarks 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? oA “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
Todd C. Mowry ISCA Panel, June 7, Use CMPs to Improve Functional Correctness oImpressive tools already exist to help identify/fix problems bugs, data races, memory leaks, faults, security violations, etc. oHowever, sophisticated tools can add significant runtime overhead oBy offloading these tools onto other threads, we can: run existing tools continuously enable new tools that are even more sophisticated