Interaction Between Stampede Runtime and Operating Systems

View/Open

Date

Author

Metadata

Abstract

Emerging application domains such as interactive vision, animation, and multimedia collaboration display
dynamic scalable parallelism, and high computational requirements, making them good candidates for executing
on parallel architectures such as SMPs and clusters of SMPs. The necessity to reason about program
behavior along the time dimension is an important characteristic of these types of applications. Stampede is
a cluster programming system that is designed to meet many of the challenges in such applications. Stampede
supports time-sequenced data items, and thus facilitates temporally correlating data items from different
streams. The system performs automatic garbage collection of data items no longer needed by any application
thread. The Stampede system has been built as a runtime library on top of standard operating systems. In this
paper, we study the interaction between the Stampede runtime system and the underlying operating system.
The study is conducted on two identical hardware platforms running Solaris and Linux, respectively. A cycle
accurate event logging facility using the CPU cycle counter is at the core of this study. There are several interesting
insights coming from this study. First, memory allocation does not take up a significant amount of the
execution time despite the interactive and dynamic nature of the application domain. Second, the Stampede
runtime does not pose a significant overhead over raw messaging for structuring such applications. Third, the
results suggest that the thread scheduler on Linux may be more responsive than the one on Solaris. Fourth,
the messaging layer spends quite a bit of time in synchronization operations.