228 research outputs found
libcppa - Designing an Actor Semantic for C++11
Parallel hardware makes concurrency mandatory for efficient program
execution. However, writing concurrent software is both challenging and
error-prone. C++11 provides standard facilities for multiprogramming, such as
atomic operations with acquire/release semantics and RAII mutex locking, but
these primitives remain too low-level. Using them both correctly and
efficiently still requires expert knowledge and hand-crafting. The actor model
replaces implicit communication by sharing with an explicit message passing
mechanism. It applies to concurrency as well as distribution, and a lightweight
actor model implementation that schedules all actors in a properly
pre-dimensioned thread pool can outperform equivalent thread-based
applications. However, the actor model did not enter the domain of native
programming languages yet besides vendor-specific island solutions. With the
open source library libcppa, we want to combine the ability to build reliable
and distributed systems provided by the actor model with the performance and
resource-efficiency of C++11.Comment: 10 page
A Configurable Transport Layer for CAF
The message-driven nature of actors lays a foundation for developing scalable
and distributed software. While the actor itself has been thoroughly modeled,
the message passing layer lacks a common definition. Properties and guarantees
of message exchange often shift with implementations and contexts. This adds
complexity to the development process, limits portability, and removes
transparency from distributed actor systems.
In this work, we examine actor communication, focusing on the implementation
and runtime costs of reliable and ordered delivery. Both guarantees are often
based on TCP for remote messaging, which mixes network transport with the
semantics of messaging. However, the choice of transport may follow different
constraints and is often governed by deployment. As a first step towards
re-architecting actor-to-actor communication, we decouple the messaging
guarantees from the transport protocol. We validate our approach by redesigning
the network stack of the C++ Actor Framework (CAF) so that it allows to combine
an arbitrary transport protocol with additional functions for remote messaging.
An evaluation quantifies the cost of composability and the impact of individual
layers on the entire stack
Revisiting Actor Programming in C++
The actor model of computation has gained significant popularity over the
last decade. Its high level of abstraction makes it appealing for concurrent
applications in parallel and distributed systems. However, designing a
real-world actor framework that subsumes full scalability, strong reliability,
and high resource efficiency requires many conceptual and algorithmic additives
to the original model.
In this paper, we report on designing and building CAF, the "C++ Actor
Framework". CAF targets at providing a concurrent and distributed native
environment for scaling up to very large, high-performance applications, and
equally well down to small constrained systems. We present the key
specifications and design concepts---in particular a message-transparent
architecture, type-safe message interfaces, and pattern matching
facilities---that make native actors a viable approach for many robust,
elastic, and highly distributed developments. We demonstrate the feasibility of
CAF in three scenarios: first for elastic, upscaling environments, second for
including heterogeneous hardware like GPGPUs, and third for distributed runtime
systems. Extensive performance evaluations indicate ideal runtime behaviour for
up to 64 cores at very low memory footprint, or in the presence of GPUs. In
these tests, CAF continuously outperforms the competing actor environments
Erlang, Charm++, SalsaLite, Scala, ActorFoundry, and even the OpenMPI.Comment: 33 page
OpenCL Actors - Adding Data Parallelism to Actor-based Programming with CAF
The actor model of computation has been designed for a seamless support of
concurrency and distribution. However, it remains unspecific about data
parallel program flows, while available processing power of modern many core
hardware such as graphics processing units (GPUs) or coprocessors increases the
relevance of data parallelism for general-purpose computation.
In this work, we introduce OpenCL-enabled actors to the C++ Actor Framework
(CAF). This offers a high level interface for accessing any OpenCL device
without leaving the actor paradigm. The new type of actor is integrated into
the runtime environment of CAF and gives rise to transparent message passing in
distributed systems on heterogeneous hardware. Following the actor logic in
CAF, OpenCL kernels can be composed while encapsulated in C++ actors, hence
operate in a multi-stage fashion on data resident at the GPU. Developers are
thus enabled to build complex data parallel programs from primitives without
leaving the actor paradigm, nor sacrificing performance. Our evaluations on
commodity GPUs, an Nvidia TESLA, and an Intel PHI reveal the expected linear
scaling behavior when offloading larger workloads. For sub-second duties, the
efficiency of offloading was found to largely differ between devices. Moreover,
our findings indicate a negligible overhead over programming with the native
OpenCL API.Comment: 28 page
The short-term electricity production management problem at EDF
International audienceProduction management aims at meeting the demand of customers at minimum cost; an electricity producer mainly faces the permanent challenge of matching generation and demand to avoid physical failures of the production system. This article presents how EDF (French Electricity Board) solves this optimization problem: we sketch some issues and the resolution scheme, and we highlight parts of the numerical optimization process of the short term management
A common nomenclature for assessing low-carbon transition pathways
We present ongoing work in the Horizon 2020 project openENTRANCE to develop a common nomenclature for integrated-assessment and energy system scenario results/data. This effort is based on the IAMC data template and the list of variables used in IAM comparison projects (CD-LINKS, ENGAGE, NAVIGATE) and scenario ensemble compilations (IAMC 1.5°C Scenario Data supporting the IPCC SR15).
The nomenclature is developed in an interactive process on GitHub comprising technical-engineering, economic and social dimensions and seeks to bridge a user-focused, easy-to-read file format with a structure that can be used in scripted workflows.
To facilitate an open discussion and for making it easy for non-experts to get an understanding of the code lists and related definitions, the nomenclature is implemented using the yaml-file format for listing variables and regions together with definitions and additional information.
We also implemented an installable Python package providing several validation and utility functions of conforming to the nomenclature, so that definitions and mappings can be easily used in scripted scientific workflows for automated scenario processing.
More information: https://github.com/openENTRANCE/nomenclatur
Outcomes following arthroscopic transosseous equivalent suture bridge double row rotator cuff repair: a prospective study and short-term results
Background: The transosseous-equivalent cross bridge double row (TESBDR) rotator cuff (RC) repair technique has been developed to optimize healing biology at a repaired RC tendon insertion. It has been shown in the laboratory to improve pressurized contact area and mean foot print pressure when compared with a double row anchor technique. Pressure has been shown to influence healing between tendon and bone, and the tendon compression vector provided by the transosseous-equivalent suture bridges may enhance healing. The purpose was to prospectively evaluate the outcomes of arthroscopic TESBDR RC repair. Methods: Single center prospective case series study. Sixty-nine patients were selected to undergo arthroscopic TESBDR RC repair and were included in the current study. Primary outcome measures included the Oxford Shoulder Score (OSS), the University of California, Los Angeles (UCLA) score, the Constant-Murley (CM) Score and Range of motion (ROM). Secondary outcome measures included a Visual Analogue Scale (VAS) for pain, another VAS for patient satisfaction from the operative procedure, EuroQoL 5-Dimensions Questionnaire (EQ-5D) for quality of life assessment. Results: At 24 months post-operative, average OSS score was 44, average UCLA score was 31, average CM score was 88, average forward flexion was 145°, average internal rotation was 35°, average external rotation was 79°, average abduction was 150°, average EQ-5D score was 0.73, average VAS for pain was 2.3, and average VAS for patient satisfaction was 9.2. Conclusion: Arthroscopic TESBDR RC repair is a procedure with good post-operative functional outcome and low re-tear rate based on a short term follow-up
- …