6 research outputs found
A Procedure for Splitting Processes and its Application to Coordination
We present a procedure for splitting processes in a process algebra with
multi-actions (a subset of the specification language mCRL2). This splitting
procedure cuts a process into two processes along a set of actions A: roughly,
one of these processes contains no actions from A, while the other process
contains only actions from A. We state and prove a theorem asserting that the
parallel composition of these two processes equals the original process under
appropriate synchronization.
We apply our splitting procedure to the process algebraic semantics of the
coordination language Reo: using this procedure and its related theorem, we
formally establish the soundness of splitting Reo connectors along the
boundaries of their (a)synchronous regions in implementations of Reo. Such
splitting can significantly improve the performance of connectors.Comment: In Proceedings FOCLASA 2012, arXiv:1208.432
Correlating Formal Semantic Models of Reo Connectors: Connector Coloring and Constraint Automata
Over the past decades, coordination languages have emerged for the
specification and implementation of interaction protocols for communicating
software components. This class of languages includes Reo, a platform for
compositional construction of connectors. In recent years, various formalisms
for describing the behavior of Reo connectors have come to existence, each of
them serving its own purpose. Naturally, questions about how these models
relate to each other arise. From a theoretical point of view, answers to these
questions provide us with better insight into the fundamentals of Reo, while
from a more practical perspective, these answers broaden the applicability of
Reo's development tools. In this paper, we address one of these questions: we
investigate the equivalence between coloring models and constraint automata,
the two most dominant and practically relevant semantic models of Reo. More
specifically, we define operators that transform one model to the other (and
vice versa), prove their correctness, and show that they distribute over
composition. To ensure that the transformation operators map one-to-one
(instead of many-to-one), we extend coloring models with data constraints.
Though primarily a theoretical contribution, we sketch some potential
applications of our results: the broadening of the applicability of existing
tools for connector verification and animation.Comment: In Proceedings ICE 2011, arXiv:1108.014
Simpler Coordination of JavaScript Web Workers
Part 2: Languages and ToolsInternational audienceJavaScript is a popular sequential language for implementing Web applications. To enable concurrent execution of JavaScript code, modern JavaScript engines support the Web Workers API. Using this API, developers can spawn concurrent background workers from a distinguished main worker. These workers, which run on the same machine (e.g., to exploit multicore), interact via message-passing.The Web Workers API is relatively low-level, which makes implementing coordination protocols among background workers laborious and error-prone. To simplify this, we propose to hide the Web Workers API behind a coordination language that provides higher-level constructs. Importantly, developers already use JavaScript together with domain-specific languages HTML (for markup/structure) and CSS (for style/design); another domain-specific language (for coordination) seamlessly fits this practice. Using the coordination language Reo, we demonstrate the advantages and feasibility of this approach by example. We also present the necessary tool support (compiler; runtime library and API; front-end)
Data Dryad
Microsatellite data (10 loci) from Glionnetia sericea adults, seedlings and seeds
PMG: Multi-core Metabolite Identification
AbstractDistributed computing has been considered for decades as a promising way of speeding up software execution, resulting in a valuable collection of safe and efficient concurrent algorithms. With the pervasion of multi-core processors, parallelization has moved to the center of attention with new challenges, especially regarding scalability to tens or even hundreds of parallel cores. In this paper, we present a scalable multi-core tool for the metabolomics community. This tool addresses the problem of metabolite identification which is currently a bottleneck in metabolomics pipeline