Artículo:
Towards a Dynamic Pipeline Framework implemented in (parallel) Haskell

Fecha

2021-09-22

Editor

Sistedes

Publicado en

Actas de las XX Jornadas de Programación y Lenguajes (PROLE 2021)

Licencia Creative Commons

Resumen

Data streaming processing has given rise to new computation paradigms to provide effective and efficient data stream processing. The most important features of these new paradigms are the exploitation of parallelism, the capacity to adapt execution schedulers, reconfigure computational structures, adjust the use of resources according to the characteristics of the input stream and produce incremental results. The Dynamic Pipeline Paradigm (DPP) is a naturally functional approach to deal with stream processing. This fact encourages us to use a purely functional programming language for DPP. In this work, we tackle the problem of assessing the suitability of using (parallel) Haskell to implement a Dynamic Pipeline Framework (DPF). The justification of this choice is twofold. First, from a formal point of view, Haskell has solid theoretical foundations providing the possibility of manipulating computations as primary entities. From a practical perspective, it has a robust set of tools for writing multithreading and parallel computations with optimal performance. As a result, we present a dynamic pipeline to compute the weakly connected components of a graph (WCC) in Haskell (a.k.a. DP-Haskell). The behavior of DP-Haskell is empirically evaluated and compared with a solution provided by a Haskell library. The evaluation is assessed in three networks of different sizes and topology. Performance is measured in terms of the time of the first result, continuous generation of results, total time, and consumed memory. The results suggest that DP-Haskell, even naive, is competitive with the existing solution provided in the Haskell library. DP-Haskell exhibits a higher continuous behavior and can produce the first result faster. The observed results are encouraging and provide evidence of the benefits that Haskell's abstractions bring in implementing WCC and DPP. Built on them, we will develop a general and parametric DPF.

Descripción

Acerca de Royo Sales, Juan Pablo

Palabras clave

Concurrency, Dynamic Pipeline, Haskell, Parallelism
Página completa del ítem
Notificar un error en este artículo
Mostrar cita
Mostrar cita en BibTeX
Descargar cita en BibTeX