Back to Search
Start Over
Load-balancing for load-imbalanced fine-grained linear pipelines
- Source :
- Parallel Computing. 85:178-189
- Publication Year :
- 2019
- Publisher :
- Elsevier BV, 2019.
-
Abstract
- Pipelining is a well-known technique to overlap loop iterations by partitioning the loop body into a sequence of stages. A large class of programs can be expressed as linear pipelines if data dependences only flow from earlier to later stages. Various pipelining techniques have been explored but reconciling load-balancing and efficient execution is still a challenge for two main reasons. First, partitioning of the loop body into stages that lead to load-balancing may depend on the data set as well as system properties, e.g., number of cores. Second, the configuration of the runtime system is far from obvious. In this article, we present Pipelight, a technique that achieves load-balancing for linear pipelines. Pipelight relies on a way of mapping stages onto threads that simplifies partitioning and enables the design of a lightweight algorithm for dynamic scheduling. Furthermore, Pipelight introduces a concurrent data structure that exploits the properties of data dependences presented in linear pipelines to provide efficient communication and synchronization. This data structure simplifies the configuration of the runtime system and makes Pipelight a practical solution. The evaluation on a 44-core system shows the efficiency of Pipelight for a set of programs selected from widely-used collections. Although Pipelight simplifies parallelization of linear pipelines, it performs similarly to the most efficient properly configured state-of-the-art technique. The price paid for the benefits of Pipelight is additional overhead for fine-grained loops. However, this overhead can be amortized successfully with chunking. To make Pipelight a promising solution, we propose a directive-based transformation for Pipelight, which is developed in a prototype source-to-source compiler. Consequently, Pipelight is an efficient and practical solution to achieve load-balancing for fine-grained linear pipelines.
- Subjects :
- Computer Networks and Communications
Computer science
Concurrent data structure
Pipeline (computing)
010103 numerical & computational mathematics
Dynamic priority scheduling
Parallel computing
Load balancing (computing)
Data structure
computer.software_genre
01 natural sciences
Computer Graphics and Computer-Aided Design
Theoretical Computer Science
010101 applied mathematics
Pipeline transport
Runtime system
Artificial Intelligence
Hardware and Architecture
Compiler
0101 mathematics
computer
Software
Subjects
Details
- ISSN :
- 01678191
- Volume :
- 85
- Database :
- OpenAIRE
- Journal :
- Parallel Computing
- Accession number :
- edsair.doi...........afa7a161ce0caaf2519fb1a93892ebaa