Enabling Pinning Strategies for Stream Processing Applications on Multicores

Read the full article See related articles

Discuss this preprint

Start a discussion What are Sciety discussions?

Listed in

This article is not in any list yet, why not save it to one of your lists.
Log in to save this article

Abstract

Data stream processing (DSP) applications consist of data-flow graphs of operators that process data streams. These operators run as dedicated threads, either in parallel or concurrently, on computing platforms with multi-core CPUs. The decision of where to run threads of parallel programs, specifically which CPU core of the underlying architecture to use, is known as thread pinning, and it can significantly affect the application’s throughput. For DSP applications, finding an efficient pinning can be challenging as it depends on information about the data-flow structure, operator types, and communication patterns. Although thread pinning is a low-level optimization available in several parallel programming frameworks , DSP frameworks typically do not allow users to configure thread pinning, leaving the decision to the Operating System. This paper extends the WindFlow DSP library, and its FastFlow-based parallel runtime system, to expose thread pinning mechanisms through a usable API. The effectiveness of this approach is demonstrated through extensive evaluations of four applications, using six custom pinning strategies on a high-end server.

Article activity feed