Skip to main content

Showing 1–7 of 7 results for author: Wickerson, J

Searching in archive cs. Search in all archives.
.
  1. arXiv:2405.18575  [pdf, other

    cs.PL

    Lost in Interpretation: Navigating Challenges in Validating Persistency Models Amid Vague Specs and Stubborn Machines, All with a Sense of Humour

    Authors: Vasileios Klimis, Alastair F. Donaldson, Viktor Vafeiadis, John Wickerson, Azalea Raad

    Abstract: Memory persistency models provide a foundation for persistent programming by specifying which (and when) writes to non-volatile memory (NVM) become persistent. Memory persistency models for the Intel-x86 and Arm architectures have been formalised, but not empirically validated against real machines. Traditional validation methods %such as %extensive litmus testing used for memory \emph{consistency… ▽ More

    Submitted 28 May, 2024; originally announced May 2024.

  2. arXiv:2312.13828  [pdf, ps, other

    cs.PL

    Intel PMDK Transactions: Specification, Validation and Concurrency (Extended Version)

    Authors: Azalea Raad, Ori Lahav, John Wickerson, Piotr Balcer, Brijesh Dongol

    Abstract: Software Transactional Memory (STM) is an extensively studied paradigm that provides an easy-to-use mechanism for thread safety and concurrency control. With the recent advent of byte-addressable persistent memory, a natural question to ask is whether STM systems can be adapted to support failure atomicity. In this article, we answer this question by showing how STM can be easily integrated with I… ▽ More

    Submitted 21 December, 2023; originally announced December 2023.

    Comments: Extended version of paper to appear in ESOP 2024

  3. arXiv:2201.05860  [pdf, ps, other

    cs.PL cs.LO

    View-Based Owicki-Gries Reasoning for Persistent x86-TSO (Extended Version)

    Authors: Eleni Vafeiadi Bila, Brijesh Dongol, Ori Lahav, Azalea Raad, John Wickerson

    Abstract: The rise of persistent memory is disrupting computing to its core. Our work aims to help programmers navigate this brave new world by providing a program logic for reasoning about x86 code that uses low-level operations such as memory accesses and fences, as well as persistency primitives such as flushes. Our logic, Pierogi, benefits from a simple underlying operational semantics based on views, i… ▽ More

    Submitted 15 January, 2022; originally announced January 2022.

    Comments: Extended version of the paper published in ESOP 2022

  4. Specifying and Testing GPU Workgroup Progress Models

    Authors: Tyler Sorensen, Lucas F. Salvador, Harmit Raval, Hugues Evrard, John Wickerson, Margaret Martonosi, Alastair F. Donaldson

    Abstract: As GPU availability has increased and programming support has matured, a wider variety of applications are being ported to these platforms. Many parallel applications contain fine-grained synchronization idioms; as such, their correct execution depends on a degree of relative forward progress between threads (or thread groups). Unfortunately, many GPU programming specifications say almost nothing… ▽ More

    Submitted 13 September, 2021; originally announced September 2021.

    Comments: OOPSLA 2021

  5. arXiv:1910.00271  [pdf, other

    cs.AR

    ARCHITECT: Arbitrary-precision Hardware with Digit Elision for Efficient Iterative Compute

    Authors: He Li, James J. Davis, John Wickerson, George A. Constantinides

    Abstract: Many algorithms feature an iterative loop that converges to the result of interest. The numerical operations in such algorithms are generally implemented using finite-precision arithmetic, either fixed- or floating-point, most of which operate least-significant digit first. This results in a fundamental problem: if, after some time, the result has not converged, is this because we have not run the… ▽ More

    Submitted 1 October, 2019; originally announced October 2019.

  6. The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++

    Authors: Nathan Chong, Tyler Sorensen, John Wickerson

    Abstract: Weak memory models provide a complex, system-centric semantics for concurrent programs, while transactional memory (TM) provides a simpler, programmer-centric semantics. Both have been studied in detail, but their combined semantics is not well understood. This is problematic because such widely-used architectures and languages as x86, Power, and C++ all support TM, and all have weak memory models… ▽ More

    Submitted 16 April, 2018; v1 submitted 13 October, 2017; originally announced October 2017.

    Journal ref: Proceedings of 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'18), ACM, New York, NY, USA. 2018

  7. Overhauling SC Atomics in C11 and OpenCL

    Authors: Mark Batty, Alastair F. Donaldson, John Wickerson

    Abstract: Despite the conceptual simplicity of sequential consistency (SC), the semantics of SC atomic operations and fences in the C11 and OpenCL memory models is subtle, leading to convoluted prose descriptions that translate to complex axiomatic formalisations. We conduct an overhaul of SC atomics in C11, reducing the associated axioms in both number and complexity. A consequence of our simplification is… ▽ More

    Submitted 16 November, 2016; v1 submitted 24 March, 2015; originally announced March 2015.

    Comments: Published in the proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), 2016

    ACM Class: D.3.1; D.3.3; F.3.2

    Journal ref: ACM SIGPLAN Notices - POPL '16. Volume 51, Issue 1, January 2016