We discuss diversity and heterogeneity in manycore computer systems,
and identify three distinct types of diversity, all of which
present challenges to operating system designers and application
writers alike. We observe that most current research work has concentrated
on a narrow form of one of these (non-uniform memory
access) to the exclusion of the others, and show with measurement
why this makes sense in the short term.
However, we claim that this is not viable in the long term given
current processor and system roadmaps, and present our approach
to dealing with both heterogeneous hardware within a single system,
and the increasing diversity of complete system configurations:
we directly represent detailed system information in an expressive
“system knowledge base” accessible to applications and
OS subsystems alike, and use this to control tasks such as scheduling
and resource allocation.