Interaction Between Stampede Runtime and Operating Systems
Mackenzie, Kenneth M.
MetadataShow full item record
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.