Navegación

Búsqueda

Búsqueda avanzada

Resultados de búsqueda para Concurrency

Towards a Dynamic Pipeline Framework implemented in (parallel) Haskell

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.

Autores: Juan Pablo Royo Sales / Edelmira Pasarella / Cristina Zoltan / Maria Esther Vidal / 
Palabras Clave: Concurrency - Dynamic Pipeline - Haskell - Parallelism

Pitfalls of Jason Concurrency

Jason is a well-known programming language for multia-gent systems where fine-grained concurrency primitives allow a highly-concurrent efficient execution. However, typical concurrency errors suchas race conditions are hard to avoid. In this chapter, we analyze a numberof such potential pitfalls of the Jason concurrency model, and, describeboth how such risks can be mitigated in Jason itself, as well as discussingthe alternatives implemented in eJason, an experimental extension of Ja-son with support for distribution and fault tolerance. In some cases, wepropose changes in the standard Jason semantics.

Autores: Álvaro Fernández Díaz / Clara Benac Earle / Lars-Ake Fredlund / 
Palabras Clave: BDI - Concurrency - Jason programming

Causal-Consistent Replay Debugging for Message Passing Programs

Debugging of concurrent systems is a tedious and error-prone activity. A main issue is that there is no guarantee that a bug that appears in the original computation is replayed inside the debugger. This problem is usually tackled by so-called replay debugging, which allows the user to record a program execution and replay it inside the debugger. In this paper, we present a novel technique for replay debugging, that we call controlled causal-consistent replay. Controlled causal-consistent replay allows the user to record a program execution and, in contrast to traditional replay debuggers, to reproduce a visible misbehavior inside the debugger including all and only its causes. In this way, the user is not distracted by the actions of other, unrelated processes.(*) This paper has been accepted for presentation at the 39th International Conference on Formal Techniques for Distributed Objects, Components, and Systems, FORTE 2019

Autores: Ivan Lanese / Adrian Palacios / German Vidal / 
Palabras Clave: Concurrency - Debugging - reversible computation

Concurrent Model Transformations with Linda

Nowadays, model transformations languages and engines use a sequential execution model. This is, only one execution thread deals with the whole transformation. However, model transformations dealing with very large models, such as those used in biology or aerospace applications, require concurrent solutions in order to speed up their performance. In this ongoing work we explore the use of Linda for implementing a set of basic mechanisms to enable concurrent model transformations, and present our initial results.

Autores: Loli Burgueño / Javier Troya / Antonio Vallecillo / 
Palabras Clave: Concurrency - Linda - Model Transformation

A Declarative Debugger for Concurrent Erlang Programs

Erlang is a concurrent language with features such as actor model concurrency, no shared memory, message passing communication, high scalability and availability. However, the development of concurrent programs is a complex and error prone task. In this paper we present a declarative debugging approach for concurrent Erlang programs. Our debugger asks questions about the validity of transitions between the different points of the program that involve message passing and/or process creation. The answers, which represent the intended behavior of the program, are compared with the transitions obtained in an actual execution of the program. The differences allow us to detect program errors and to point out the pieces of source code responsible for the bugs. In order to represent the computations we present a semantic calculus for concurrent Core Erlang programs. The debugger uses the proof trees in this calculus as debugging trees used for selecting the questions asked to the user. The relation between the debugging trees and the semantic calculus allows us to establish the soundness of the approach. The theoretical ideas have been implemented in a debugger prototype.

Autores: R. Caballero / E. Martin-Martin / A. Riesco / Salvador Tamarit / 
Palabras Clave: Concurrency - Declarative Debugging - Erlang - Semantics

No encuentra los resultados que busca? Prueba nuestra Búsqueda avanzada