Object Oriented Programming for
Multiprocessor Performance

Jonathan Appavoo

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 soft-ware
is seen as trading off performance for an increase in flex-ibility
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 achiev-ing
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.