102,179 research outputs found
Concurrent Computing with Shared Replicated Memory
The behavioural theory of concurrent systems states that any concurrent
system can be captured by a behaviourally equivalent concurrent Abstract State
Machine (cASM). While the theory in general assumes shared locations, it
remains valid, if different agents can only interact via messages, i.e. sharing
is restricted to mailboxes. There may even be a strict separation between
memory managing agents and other agents that can only access the shared memory
by sending query and update requests to the memory agents. This article is
dedicated to an investigation of replicated data that is maintained by a memory
management subsystem, whereas the replication neither appears in the requests
nor in the corresponding answers. We show how the behaviour of a concurrent
system with such a memory management can be specified using concurrent
communicating ASMs. We provide several refinements of a high-level ground model
addressing different replication policies and internal messaging between data
centres. For all these refinements we analyse their effects on the runs such
that decisions concerning the degree of consistency can be consciously made.Comment: 23 page
The Parallel Persistent Memory Model
We consider a parallel computational model that consists of processors,
each with a fast local ephemeral memory of limited size, and sharing a large
persistent memory. The model allows for each processor to fault with bounded
probability, and possibly restart. On faulting all processor state and local
ephemeral memory are lost, but the persistent memory remains. This model is
motivated by upcoming non-volatile memories that are as fast as existing random
access memory, are accessible at the granularity of cache lines, and have the
capability of surviving power outages. It is further motivated by the
observation that in large parallel systems, failure of processors and their
caches is not unusual.
Within the model we develop a framework for developing locality efficient
parallel algorithms that are resilient to failures. There are several
challenges, including the need to recover from failures, the desire to do this
in an asynchronous setting (i.e., not blocking other processors when one
fails), and the need for synchronization primitives that are robust to
failures. We describe approaches to solve these challenges based on breaking
computations into what we call capsules, which have certain properties, and
developing a work-stealing scheduler that functions properly within the context
of failures. The scheduler guarantees a time bound of in expectation, where and are the work and
depth of the computation (in the absence of failures), is the average
number of processors available during the computation, and is the
probability that a capsule fails. Within the model and using the proposed
methods, we develop efficient algorithms for parallel sorting and other
primitives.Comment: This paper is the full version of a paper at SPAA 2018 with the same
nam
Relaxed Operational Semantics of Concurrent Programming Languages
We propose a novel, operational framework to formally describe the semantics
of concurrent programs running within the context of a relaxed memory model.
Our framework features a "temporary store" where the memory operations issued
by the threads are recorded, in program order. A memory model then specifies
the conditions under which a pending operation from this sequence is allowed to
be globally performed, possibly out of order. The memory model also involves a
"write grain," accounting for architectures where a thread may read a write
that is not yet globally visible. Our formal model is supported by a software
simulator, allowing us to run litmus tests in our semantics.Comment: In Proceedings EXPRESS/SOS 2012, arXiv:1208.244
Fast Lean Erasure-Coded Atomic Memory Object
In this work, we propose FLECKS, an algorithm which implements atomic memory objects in a multi-writer multi-reader (MWMR) setting in asynchronous networks and server failures. FLECKS substantially reduces storage and communication costs over its replication-based counterparts by employing erasure-codes. FLECKS outperforms the previously proposed algorithms in terms of the metrics that to deliver good performance such as storage cost per object, communication cost a high fault-tolerance of clients and servers, guaranteed liveness of operation, and a given number of communication rounds per operation, etc. We provide proofs for liveness and atomicity properties of FLECKS and derive worst-case latency bounds for the operations. We implemented and deployed FLECKS in cloud-based clusters and demonstrate that FLECKS has substantially lower storage and bandwidth costs, and significantly lower latency of operations than the replication-based mechanisms
- …