English
Related papers

Related papers: Higher-Order Concurrency for Microcontrollers

200 papers

Scaling up hardware systems has become an important tactic for improving performance as Moore's law fades. Unfortunately, simulations of large hardware systems are often a design bottleneck due to slow throughput and long build times. In…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-07-31 Steven Herbst , Noah Moroze , Edgar Iglesias , Andreas Olofsson

The C/C++ memory model provides an interface and execution model for programmers of concurrent (shared-variable) code. It provides a range of mechanisms that abstract from underlying hardware memory models -- that govern how multicore…

Programming Languages · Computer Science 2022-04-08 Robert J. Colvin

Shared memory multiprocessors come back to popularity thanks to rapid spreading of commodity multi-core architectures. As ever, shared memory programs are fairly easy to write and quite hard to optimise; providing multi-core programmers…

Distributed, Parallel, and Cluster Computing · Computer Science 2009-09-10 Marco Aldinucci , Massimo Torquati , Massimiliano Meneghin

The increasing complexity of autonomous systems has driven a shift to integrated heterogeneous SoCs with real-time and safety demands. Ensuring deterministic WCETs and low-latency for critical tasks requires minimizing interference on…

Hardware Architecture · Computer Science 2025-04-09 Christopher Reinwardt , Robert Balas , Alessandro Ottaviano , Angelo Garofalo , Luca Benini

The memory model is the crux of the concurrency semantics of shared-memory systems. It defines the possible values that a read operation is allowed to return for any given set of write operations performed by a concurrent program, thereby…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-03-14 Manuel Pöter , Jesper Larsson Träff

We study the problem of constructing concurrent objects in a setting where $P$ processes run in parallel and interact through a shared memory that is subject to write contention. Our goal is to transform hardware primitives that are subject…

Data Structures and Algorithms · Computer Science 2026-04-17 Michael A. Bender , Guy E. Blelloch , Martin Farach-Colton , Yang Hu , Rob Johnson , Rotem Oshman , Renfei Zhou

To utilize the multi-core processors properly concurrent programming is needed. Concurrency control is the main challenge while designing a correct and efficient concurrent program. Software Transactional Memory Systems (STMs) provides ease…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-08-23 Chirag Juyal , Sandeep Kulkarni , Sweta Kumari , Sathya Peri , Archit Somani

We discuss a programming language for real-time audio signal processing that is embedded in the functional language Haskell and uses the Low-Level Virtual Machine as back-end. With that framework we can code with the comfort and type safety…

Programming Languages · Computer Science 2015-03-17 Henning Thielemann

Software stacks embedded on microcontroller-based hardware typically provide rudimentary APIs programmed in C/C++, basic connectivity and, sometimes, a firmware update mechanism. Such coarse mechanisms contrast with widely used APIs and…

Operating Systems · Computer Science 2026-05-01 Antoine Lavandier , Bastien Buil , Chrystel Gaber , Emmanuel Baccelli

Scalable and efficient numerical simulations continue to gain importance, as computation is firmly established as the third pillar of discovery, alongside theory and experiment. Meanwhile, the performance of computing hardware grows through…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-06-26 Pietro Incardona , Antonio Leo , Yaroslav Zaluzhnyi , Rajesh Ramaswamy , Ivo F. Sbalzarini

Memory consistency models (MCMs) specify the legal ordering and visibility of shared memory accesses in a parallel program. Traditionally, instruction set architecture (ISA) MCMs assume that relevant program-visible memory ordering…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-08-12 Naorin Hossain , Caroline Trippel , Margaret Martonosi

LLVM is an infrastructure for code generation and low-level optimizations, which has been gaining popularity as a backend for both research and industrial compilers, including many compilers for functional languages. While LLVM provides a…

Programming Languages · Computer Science 2019-01-01 Kavon Farvardin , John Reppy

The vast number of interleavings that a concurrent program can have is typically identified as the root cause of the difficulty of automatic analysis of concurrent software. Weak memory is generally believed to make this problem even…

Logic in Computer Science · Computer Science 2013-01-09 Jade Alglave , Daniel Kroening , Michael Tautschnig

This paper presents a novel framework for designing support vector machines (SVMs), which does not impose restriction on the SVM kernel to be positive-definite and allows the user to define memory constraint in terms of fixed template…

Neural and Evolutionary Computing · Computer Science 2020-01-07 P. Kumar , A. R. Nair , O. Chatterjee , T. Paul , A. Ghosh , S. Chakrabartty , C. S. Thakur

Getting the best performance from the ever-increasing number of hardware platforms has been a recurring challenge for data processing systems. In recent years, the advent of data science with its increasingly numerous and complex types of…

Virtual memory is an essential mechanism for enforcing security boundaries, but its relaxed-memory concurrency semantics has not previously been investigated in detail. The concurrent systems code managing virtual memory has been left on an…

Hardware Architecture · Computer Science 2022-03-02 Ben Simner , Alasdair Armstrong , Jean Pichon-Pharabod , Christopher Pulte , Richard Grisenthwaite , Peter Sewell

For decades, sampling-based techniques have been the de facto standard for accelerating microarchitecture simulation, with the Basic Block Vector (BBV) serving as the cornerstone program representation. Yet, the BBV's fundamental…

Hardware Architecture · Computer Science 2025-12-12 Zhenguo Liu , Chengao Shi , Chen Ding , Jiang Xu

Designing deep learning models for highly-constrained hardware would allow imbuing many edge devices with intelligence. Microcontrollers (MCUs) are an attractive platform for building smart devices due to their low cost, wide availability,…

Machine Learning · Computer Science 2020-03-04 Edgar Liberis , Nicholas D. Lane

While modern parallel computing systems provide high performance resources, utilizing them to the highest extent requires advanced programming expertise. Programming for parallel computing systems is much more difficult than programming for…

Programming Languages · Computer Science 2017-04-06 Adrian Calvo Chozas , Suejb Memeti , Sabri Pllana

Extreme edge devices or Internet-of-thing nodes require both ultra-low power always-on processing as well as the ability to do on-demand sampling and processing. Moreover, support for IoT applications like voice recognition, machine…

Hardware Architecture · Computer Science 2023-01-24 Vikram Jain , Sebastian Giraldo , Jaro De Roose , Linyan Mei , Bert Boons , Marian Verhelst