|
Object Oriented Programming (OOP) increases modularity, improves reuse and encourages better software engineering practices. But it is rarely claimed that OOP leads to higher performance. To the contrary, the use of OOP in systems software is seen as trading off performance for an increase in flexibility and manageability, where modularity and information hiding reduce performance and are barriers to optimization. Counter to this intuition, we argue that for parallel systems, OOP can be used to improve performance dramatically. In this talk, we describe how OOP is used to improve performance and scalability, and allow for customizability (which is critical for good performance) in K42, a Linux compatible research system designed for shared memory multiprocessors. OO design and an OO structure called Clustered Objects are key to achieving high performance in K42 on both small scale Uniform Memory Access (UMA) and large scale Non-Uniform Memory Access (NUMA) multiprocessors. We present performance results which illustrate and motivate our approach. Jonathan Appavoo, has a Master of Computer Science degree from the University of Toronto where he is currently enrolled in the PhD program. He has spent the last four years working on K42 and its predecessor Tornado. Jonathan works closely with the K42 team at IBM's T.J. Watson Lab where he has interned. His research has focused on multiprocessor operating system performance. |