21,870 research outputs found
Transparent support for partial rollback in software transactional memories
The Software Transactional Memory (STM) paradigm has gained momentum thanks to its ability to provide synchronization transparency in concurrent applications. With this paradigm, accesses to data structures that are shared among multiple threads are carried out within transactions, which are properly handled by the STM layer with no intervention by the application code. In this article we propose an enhancement of typical STM architectures which allows supporting partial rollback of active transactions, as opposed to the typical case where a rollback of a transaction entails squashing all the already-performed work. Our partial rollback scheme is still transparent to the application programmer and has been implemented for x86-64 architectures and for the ELF format, thus being largely usable on POSIX-compliant systems hosted on top of off-the-shelf architectures. We integrated it within the TinySTM open-source library and we present experimental results for the STAMP STM benchmark run on top of a 32-core HP ProLiant server. © 2013 Springer-Verlag
Micro-CernVM: Slashing the Cost of Building and Deploying Virtual Machines
The traditional virtual machine building and and deployment process is
centered around the virtual machine hard disk image. The packages comprising
the VM operating system are carefully selected, hard disk images are built for
a variety of different hypervisors, and images have to be distributed and
decompressed in order to instantiate a virtual machine. Within the HEP
community, the CernVM File System has been established in order to decouple the
distribution from the experiment software from the building and distribution of
the VM hard disk images.
We show how to get rid of such pre-built hard disk images altogether. Due to
the high requirements on POSIX compliance imposed by HEP application software,
CernVM-FS can also be used to host and boot a Linux operating system. This
allows the use of a tiny bootable CD image that comprises only a Linux kernel
while the rest of the operating system is provided on demand by CernVM-FS. This
approach speeds up the initial instantiation time and reduces virtual machine
image sizes by an order of magnitude. Furthermore, security updates can be
distributed instantaneously through CernVM-FS. By leveraging the fact that
CernVM-FS is a versioning file system, a historic analysis environment can be
easily re-spawned by selecting the corresponding CernVM-FS file system
snapshot.Comment: Conference paper at the 2013 Computing in High Energy Physics (CHEP)
Conference, Amsterda
Prompt Application-Transparent Transaction Revalidation in Software Transactional Memory
Software Transactional Memory (STM) allows encapsulating shared-data accesses within transactions, executed with atomicity and isolation guarantees. The assessment of the consistency of a running transaction is performed by the STM layer at specific points of its execution, such as when a read or write access to a shared object occurs, or upon a commit attempt. However, performance and energy efficiency issues may arise when no shared-data read/write operation occurs for a while along a thread running a transaction. In this scenario, the STM layer may not regain control for a considerable amount of time, thus not being able to early detect if such transaction has become inconsistent in the meantime. To tackle this problem we present an STM architecture that, thanks to a lightweight operating system support, is able to perform a fine-grain periodic (hence prompt) revalidation of running transactions. Our proposal targets Linux and x86 systems and has been integrated with the open source TinySTM package. Experimental results with a port of the TPC-C benchmark to STM environments show the effectiveness of our solution
SEUSS: rapid serverless deployment using environment snapshots
Modern FaaS systems perform well in the case of repeat executions when function working sets stay small. However, these platforms are less effective when applied to more complex, large-scale and dynamic workloads. In this paper, we introduce SEUSS (serverless execution via unikernel snapshot stacks), a new system-level approach for rapidly deploying serverless functions. Through our approach, we demonstrate orders of magnitude improvements in function start times and cacheability, which improves common re-execution paths while also unlocking previously-unsupported large-scale bursty workloads.Published versio
A Simulator for LLVM Bitcode
In this paper, we introduce an interactive simulator for programs in the form
of LLVM bitcode. The main features of the simulator include precise control
over thread scheduling, automatic checkpoints and reverse stepping, support for
source-level information about functions and variables in C and C++ programs
and structured heap visualisation. Additionally, the simulator is compatible
with DiVM (DIVINE VM) hypercalls, which makes it possible to load, simulate and
analyse counterexamples from an existing model checker
Formal Derivation of Concurrent Garbage Collectors
Concurrent garbage collectors are notoriously difficult to implement
correctly. Previous approaches to the issue of producing correct collectors
have mainly been based on posit-and-prove verification or on the application of
domain-specific templates and transformations. We show how to derive the upper
reaches of a family of concurrent garbage collectors by refinement from a
formal specification, emphasizing the application of domain-independent design
theories and transformations. A key contribution is an extension to the
classical lattice-theoretic fixpoint theorems to account for the dynamics of
concurrent mutation and collection.Comment: 38 pages, 21 figures. The short version of this paper appeared in the
Proceedings of MPC 201
- …