López Gómez, JavierFernández Muñoz, JavierRío Astorga, David delDolz Zaragoza, Manuel FranciscoGarcía Sánchez, José Daniel2020-02-172021-05-012019-05Parallel computing, 84, May 2019, Pp. 24-360167-81911872-7336 (online)https://hdl.handle.net/10016/29711ASPIDE: Exascale programIng models for extreme data processingIn recent years, the large volumes of stream data and the near real-time requirements of data streaming applications have exacerbated the need for new scalable algorithms and programming interfaces for distributed and shared-memory platforms. To contribute in this direction, this paper presents a new distributed MPI back end for GrPPI, a C++ high-level generic interface of data-intensive and stream processing parallel patterns. This back end, as a new execution policy, supports distributed and hybrid (distributed+shared-memory) parallel executions of the Pipeline and Farm patterns, where the hybrid mode combines the MPI policy with a GrPPI shared-memory one. These patterns internally leverage distributed queues, which can be configured to use two-sided or one-sided MPI primitives to communicate items among nodes. A detailed analysis of the GrPPI MPI execution policy reports considerable benefits from the programmability, flexibility and readability points of view. The experimental evaluation of two different streaming applications with different distributed and shared-memory scenarios reports considerable performance gains with respect to the sequential versions at the expense of negligible GrPPI overheads.13eng© 2019 Elsevier B.V. All rights reserved.This work is licensed under a Creative Commons Attribution- NonCommercial-NoDerivatives 4.0 International License.Atribución-NoComercial-SinDerivadas 3.0 EspañaParallel patternsStream processingDistributed patternsC++ programmingGeneric programmingExploring stream parallel patterns in distributed MPI environmentsresearch articleInformáticahttps://doi.org/10.1016/j.parco.2019.03.004open access2436PARALLEL COMPUTING84AR/0000023519