English
Related papers

Related papers: Mesh: Compacting Memory Management for C/C++ Appli…

200 papers

An accepted practice to decrease applications' memory usage is to reduce the amount and frequency of memory allocations. Factors such as (a) the prevalence of out-of-memory (OOM) killers, (b) memory allocations in modern programming…

Software Engineering · Computer Science 2024-01-09 Gunnar Kudrjavets , Aditya Kumar , Jeff Thomas , Ayushi Rastogi

Deeply embedded systems often have the tightest constraints on energy consumption, requiring that they consume tiny amounts of current and run on batteries for years. However, they typically execute code directly from flash, instead of the…

Other Computer Science · Computer Science 2021-04-13 James Pallister , Kerstin Eder , Simon Hollis

Fine-grained memory protection for C and C++ programs must track individual objects (or pointers), and store bounds information per object (pointer). Its cost is dominated by metadata updates and lookups, making efficient metadata…

Cryptography and Security · Computer Science 2019-03-05 Myoung Jin Nam , Periklis Akritidis , David J Greaves

In this work, we propose MUSTACHE, a new page cache replacement algorithm whose logic is learned from observed memory access requests rather than fixed like existing policies. We formulate the page request prediction problem as a…

Operating Systems · Computer Science 2022-11-07 Gabriele Tolomei , Lorenzo Takanen , Fabio Pinelli

The most important security benefit of software memory safety is easy to state: for C and C++ software, attackers can exploit most bugs and vulnerabilities to gain full, unfettered control of software behavior, whereas this is not true for…

Cryptography and Security · Computer Science 2025-03-28 Úlfar Erlingsson

MFEM is an open-source, lightweight, flexible and scalable C++ library for modular finite element methods that features arbitrary high-order finite element meshes and spaces, support for a wide variety of discretization approaches and…

Programs written in C/C++ often include inline assembly: a snippet of architecture-specific assembly code used to access low-level functionalities that are impossible or expensive to simulate in the source language. Although inline assembly…

Programming Languages · Computer Science 2024-09-04 Paulo Emílio de Vilhena , Ori Lahav , Viktor Vafeiadis , Azalea Raad

CXL shared memory and persistent memory allow the contents of memory to persist beyond crashes. Stores to persistent or CXL memory are typically not immediately made persistent; developers must manually flush the corresponding cache lines…

Software Engineering · Computer Science 2025-09-25 Yutong Guo , Weiyu Luo , Brian Demsky

Modern computing systems are capable of exascale calculations, which are revolutionizing the development and application of high-fidelity numerical models in computational science and engineering. While these systems continue to grow in…

Optimization and Control · Mathematics 2024-10-11 Graham Harper , Denis Ridzal , Tim Wildey

At the allocation and deallocation of small objects with fixed size, the standard allocator of the runtime system has commonly a worse time performance compared to allocators adapted for a special application field. We propose a memory…

Programming Languages · Computer Science 2016-11-09 Christian Schuessler , Roland Gruber

This report provides an introduction to the ensmallen numerical optimization library, as well as a deep dive into the technical details of how it works. The library provides a fast and flexible C++ framework for mathematical optimization of…

Mathematical Software · Computer Science 2023-11-16 Ryan R. Curtin , Marcus Edel , Rahul Ganesh Prabhu , Suryoday Basak , Zhihao Lou , Conrad Sanderson

Computing-In-Memory (CIM) offers a potential solution to the memory wall issue and can achieve high energy efficiency by minimizing data movement, making it a promising architecture for edge AI devices. Lightweight models like MobileNet and…

Hardware Architecture · Computer Science 2025-08-21 Choongseok Song , Doo Seok Jeong

In mobile edge computing (MEC) systems, edge service caching refers to pre-storing the necessary programs for executing computation tasks at MEC servers. At resource-constrained edge servers, service caching placement is in general a…

Networking and Internet Architecture · Computer Science 2020-04-15 Suzhi Bi , Liang Huang , Ying-Jun Angela Zhang

Persistent Memory (PM) is a new storage technology thatbrings high performance, byte addressability, and persistency for a lesser cost than DRAM. Due to cache volatility and store reordering, developers must use explicit instructions (e.g.:…

Emerging Technologies · Computer Science 2026-03-03 Sebastião Amaro , João Gonçalves , Miguel Matos

The rapid development of multi-core system and increase of data-intensive application in recent years call for larger main memory. Traditional DRAM memory can increase its capacity by reducing the feature size of storage cell. Now further…

Hardware Architecture · Computer Science 2016-06-13 Shenchen Ruan , Haixia Wang , Dongsheng Wang

Consistent hashing is used in distributed systems and networking applications to spread data evenly and efficiently across a cluster of nodes. In this paper, we present MementoHash, a novel consistent hashing algorithm that eliminates known…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-02-28 Massimo Coluzzi , Amos Brocco , Alessandro Antonucci , Tiziano Leidi

Flash memories intended for SSD and mobile applications need to provide high random I/O performance. This requires using efficient schemes for reading small chunks of data (e.g. 0.5KB - 4KB) from random addresses. Furthermore, in order to…

Information Theory · Computer Science 2012-03-01 Eran Sharon , Idan Alrod

Computing has a huge memory problem. The memory system, consisting of multiple technologies at different levels, is responsible for most of the energy consumption, performance bottlenecks, robustness problems, monetary cost, and hardware…

Hardware Architecture · Computer Science 2025-09-05 Onur Mutlu , Ataberk Olgun , Ismail Emir Yuksel

TMAC is a toolbox written in C++11 that implements algorithms based on a set of modern methods for large-scale optimization. It covers a variety of optimization problems, which can be both smooth and nonsmooth, convex and nonconvex, as well…

Optimization and Control · Mathematics 2016-06-16 Brent Edmunds , Zhimin Peng , Wotao Yin

Modern distributed storage systems often use erasure codes to protect against disk and node failures to increase reliability, while trying to meet the latency requirements of the applications and clients. Storage systems may have caches at…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-07-24 Vaneet Aggarwal , Yih-Farn R. Chen , Tian Lan , Yu Xiang