Fine-Grain and Multiprogramming-Conscious Nanothreading with the Solaris Operating System
Dimitrios S. Nikolopoulos, Eleftherios D. Polychronopoulos, Theodore S. Papatheodorou · 1999
Abstract This paper presents the architectural and implementation details of a nanothreads runtime system customized for the Solaris operating system. A nanothreads runtime system addresses jointly three major performance issues; exploitation of fine-grain parallelism, efficient execution of arbitrarily nested task and data parallelism and scalability of multithreaded programs in multiprogrammed shared-memory multiprocessors. The nanothreads runtime system in Solaris is implemented as a highly tuned, thin threading layer on top of Solaris threads and exploits effectively the Solaris kernel support for scheduler activations. Nanothreads are implemented with aggressive optimizations and several critical paths in the runtime system are either reduced or eliminated to make the common case fast. Solaris scheduler activations provide a fast communication path between the nanothreads runtime system and the Solaris kernel, which along with non-blocking synchronization enable the scalability of nanothreaded binaries in a multiprogrammed environment.