Demo Data from EDBT 2026 / reviewers in the wild / expert
Mohammad A. Alshboul
dblp:170/7688
· DBLP profile ↗
7ranked-venue papers
4as first author
1since 2021 · last 2021
0009-0008-3603-1729ORCID · reported
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 7 · 4 first-author · 1 since 2021Software engineering, systems software and programming languages · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
5 papers |
Memory systems · 56% Storage systems · 33% Distributed systems · 10% | |
| Software engineering, system software, and programming languages
2 papers |
Compilers and program optimization · 100% |
Topics — the 18 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Memory systems
non-volatile memory |
2.1 | 5 | 2021 | BBB: Simplifying Persistent Programming using Battery-Backed Buffers · HPCA 2021 Compiler-support for Critical Data Persistence in NVM · ACM Trans. Archit. Code Optim. 2020 WET: Write Efficient Loop Tiling for Non-Volatile Main Memory · DAC 2020 |
Storage systems › storage reliability
durability |
0.8 | 2 | 2020 | Compiler-support for Critical Data Persistence in NVM · ACM Trans. Archit. Code Optim. 2020 Lazy Persistency: A High-Performing and Write-Efficient Software Persistency Technique · ISCA 2018 |
Storage systems
storage reliability |
0.6 | 3 | 2021 | Lazy Persistency: A High-Performing and Write-Efficient Software Persistency Technique · ISCA 2018 BBB: Simplifying Persistent Programming using Battery-Backed Buffers · HPCA 2021 Efficient Checkpointing with Recompute Scheme for Non-volatile Main Memory · ACM Trans. Archit. Code Optim. 2019 |
Storage systems
crash consistency |
0.5 | 1 | 2021 | BBB: Simplifying Persistent Programming using Battery-Backed Buffers · HPCA 2021 |
Memory systems › non-volatile memory › persistent memory
persistency model |
0.5 | 1 | 2021 | BBB: Simplifying Persistent Programming using Battery-Backed Buffers · HPCA 2021 |
Memory systems › non-volatile memory › persistent memory
persistent memory programming |
0.5 | 1 | 2021 | BBB: Simplifying Persistent Programming using Battery-Backed Buffers · HPCA 2021 |
Distributed systems › fault tolerance
failure recovery |
0.5 | 2 | 2020 | Lazy Persistency: A High-Performing and Write-Efficient Software Persistency Technique · ISCA 2018 Compiler-support for Critical Data Persistence in NVM · ACM Trans. Archit. Code Optim. 2020 |
Compilers and program optimization › compiler construction
compiler support for persistent memory |
0.4 | 1 | 2020 | Compiler-support for Critical Data Persistence in NVM · ACM Trans. Archit. Code Optim. 2020 |
Compilers and program optimization
loop optimization |
0.4 | 1 | 2020 | WET: Write Efficient Loop Tiling for Non-Volatile Main Memory · DAC 2020 |
Compilers and program optimization › loop optimization
loop tiling |
0.4 | 1 | 2020 | WET: Write Efficient Loop Tiling for Non-Volatile Main Memory · DAC 2020 |
Storage systems › data reduction
write reduction |
0.4 | 1 | 2020 | WET: Write Efficient Loop Tiling for Non-Volatile Main Memory · DAC 2020 |
Memory systems › non-volatile memory
non-volatile main memory |
0.4 | 1 | 2019 | Efficient Checkpointing with Recompute Scheme for Non-volatile Main Memory · ACM Trans. Archit. Code Optim. 2019 |
Memory systems › non-volatile memory › write reliability
write endurance |
0.4 | 1 | 2019 | Efficient Checkpointing with Recompute Scheme for Non-volatile Main Memory · ACM Trans. Archit. Code Optim. 2019 |
Distributed systems › fault tolerance
checkpointing |
0.2 | 2 | 2020 | Compiler-support for Critical Data Persistence in NVM · ACM Trans. Archit. Code Optim. 2020 Efficient Checkpointing with Recompute Scheme for Non-volatile Main Memory · ACM Trans. Archit. Code Optim. 2019 |
Storage systems
crash recovery |
0.1 | 1 | 2021 | BBB: Simplifying Persistent Programming using Battery-Backed Buffers · HPCA 2021 |
Memory systems
cache management |
0.1 | 1 | 2020 | WET: Write Efficient Loop Tiling for Non-Volatile Main Memory · DAC 2020 |
Memory systems › memory hierarchy › cache hierarchy
last-level cache |
0.1 | 1 | 2020 | WET: Write Efficient Loop Tiling for Non-Volatile Main Memory · DAC 2020 |
High-performance computing
scientific computing |
0.1 | 1 | 2018 | Lazy Persistency: A High-Performing and Write-Efficient Software Persistency Technique · ISCA 2018 |
Methods — techniques the papers use, named apart from their topics
simulation · 0.9tile size selection · 0.9memory coalescing · 0.9hierarchical tiling · 0.9compiler instrumentation · 0.9recompute-based recovery · 0.4software error detection · 0.3checksum · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | BBB: Simplifying Persistent Programming using Battery-Backed BuffersabstractNon-volatile memory (NVM) is poised to augment or replace DRAM as main memory. With the right abstraction and support, non-volatile main memory (NVMM) can provide an alternative to the storage system to host long-lasting persistent data. However, keeping persistent data in memory requires programs to be written such that data is crash consistent (i.e. it can be recovered after failure). Critical to supporting crash recovery is the guarantee of ordering of when stores become durable with respect to program order. Strict persistency, which requires persist order to coincide with program order of stores, is simple and intuitive but generally thought to be too slow. More relaxed persistency models are available but demand higher programming complexity, e.g. they require the programmer to insert persist barriers correctly in their program. We identify the source of strict persistency inefficiency as the gap between the point of visibility (PoV) which is the cache, and the point of persistency (PoP) which is the memory. In this paper, we propose a new approach to close the PoV/PoP gap which we refer to as Battery-Backed Buffer (BBB). The key idea of BBB is to provide a battery-backed persist buffer (bbPB) in each core next to the L1 data cache (L1D). A store value is allocated in the bbPB as it is written to cache, becoming part of the persistence domain. If a crash occurs, battery ensures bbPB can be fully drained to NVMM. BBB simplifies persistent programming as the programmer does not need to insert persist barriers or flushes. Furthermore, our BBB design achieves nearly identical results to eADR in terms of performance and number of NVMM writes, while requiring two orders of magnitude smaller energy and time to drain. Mohammad A. Alshboul, Prakash Ramrakhyani, James Tuck 0001, Yan Solihin |
HPCA | 1 |
| 2020 | WET: Write Efficient Loop Tiling for Non-Volatile Main MemoryabstractFuture systems are expected to increasingly include a Non-Volatile Main Memory (NVMM). However, due to the limited NVMM write endurance, the number of writes must be reduced. While new architectures and algorithms have been proposed to reduce writes to NVMM, few or no studies have looked at the effect of compiler optimizations on writes.In this paper, we investigate the impact of one popular compiler optimization (loop tiling) on a very important computation kernel (matrix multiplication). Our novel observation includes that tiling on matrix multiplication causes a 25× write amplification. Furthermore, we investigate techniques to make tilling more NVMM friendly, through choosing the right tile size and employing hierarchical tiling. Our method Write-Efficient Tiling (WET) adds a new outer tile designed for fitting the write working set to the Last Level Cache (LLC) to reduce the number of writes to NVMM. Our experiments reduce writes by 81% while simultaneously improve performance. Mohammad A. Alshboul, James Tuck 0001, Yan Solihin |
DAC | 1 |
| 2020 | Compiler-support for Critical Data Persistence in NVMabstractNon-volatile Main Memories (NVMs) offer a promising way to preserve data persistence and enable computation recovery in case of failure. While the use of NVMs can significantly reduce the overhead of failure recovery, which is the case with High-Performance Computing (HPC) kernels, rewriting existing programs or writing new applications for NVMs is non-trivial. In this article, we present a compiler-support that automatically inserts complex instructions into kernels to achieve NVM data-persistence based on a simple programmer directive. Unlike checkpointing techniques that store the whole system state, our technique only persists user-designated objects as well as some parameters required for safe recovery such as loop induction variables. Also, our technique can reduce the number of data transfer operations, because our compiler coalesces consecutive memory-persisting operations into a single memory transaction per cache line when possible. Our compiler-support is implemented in the LLVM tool-chain and introduces the necessary modifications to loop-intensive computational kernels (e.g., TMM, LU, Gauss, and FFT) to force data persistence. The experiments show that our proposed compiler-support outperforms the most recent checkpointing techniques while its performance overheads are insignificant. Reem Elkhouly, Mohammad A. Alshboul, Akihiro Hayashi, Yan Solihin |
ACM Trans. Archit. Code Optim. | 2 |
| 2019 | Exploring Memory Persistency Models for GPUsabstractGiven its high integration density, high speed, byte addressability, and low standby power, non-volatile or persistent memory is expected to supplement/replace DRAM as main memory. Through persistency programming model (which defines durability ordering of stores) and durable transaction constructs, the programmer can provide recoverable data structure (RDS) which allows programs to recover to a consistent state after a failure. While persistency models have been well studied for CPUs, they have been neglected for graphics processing units (GPUs). Considering the importance of GPUs as a dominant accelerator for high performance computing, we investigate persistency models for GPUs. GPU applications exhibit substantial differences with CPUs applications, hence in this paper we adapt, re-architect, and optimize CPU persistency models for GPUs. We design a pragma-based compiler scheme for expressing persistency model for GPUs. We identify that the thread hierarchy in GPUs offers intuitive scopes to form epochs and durable transactions. We find that undo logging produces significant performance overheads. We propose to use idempotency analysis to reduce both logging frequency and the size of logs. Through both real-system and simulation evaluations, we show low overheads of our proposed architecture support. Mohammad A. Alshboul, Yan Solihin, Huiyang Zhou |
PACT | 2 |
| 2019 | Efficient Checkpointing with Recompute Scheme for Non-volatile Main MemoryabstractFuture main memory will likely include Non-Volatile Memory. Non-Volatile Main Memory (NVMM) provides an opportunity to rethink checkpointing strategies for providing failure safety to applications. While there are many checkpointing and logging schemes in the literature, their use must be revisited as they incur high execution time overheads as well as a large number of additional writes to NVMM, which may significantly impact write endurance. In this article, we propose a novel recompute-based failure safety approach and demonstrate its applicability to loop-based code. Rather than keeping a fully consistent logging state, we only log enough state to enable recomputation. Upon a failure, our approach recovers to a consistent state by determining which parts of the computation were not completed and recomputing them. Effectively, our approach removes the need to keep checkpoints or logs, thus reducing execution time overheads and improving NVMM write endurance at the expense of more complex recovery. We compare our new approach against logging and checkpointing on five scientific workloads, including tiled matrix multiplication, on a computer system model that was built on gem5 and supports Intel PMEM instruction extensions. For tiled matrix multiplication, our recompute approach incurs an execution time overhead of only 5%, in contrast to 8% overhead with logging and 207% overhead with checkpointing. Furthermore, recompute only adds 7% additional NVMM writes, compared to 111% with logging and 330% with checkpointing. We also conduct experiments on real hardware, allowing us to run our workloads to completion while varying the number of threads used for computation. These experiments substantiate our simulation-based observations and provide a sensitivity study and performance comparison between the Recompute Scheme and Naive Checkpointing. Mohammad A. Alshboul, Hussein Elnawawy, Reem Elkhouly, James Tuck 0001, Yan Solihin |
ACM Trans. Archit. Code Optim. | 1 |
| 2018 | Lazy Persistency: A High-Performing and Write-Efficient Software Persistency TechniqueabstractEmerging Non-Volatile Memories (NVMs) are expected to be included in future main memory, providing the opportunity to host important data persistently in main memory. However, achieving persistency requires that programs be written with failure-safety in mind. Many persistency models and techniques have been proposed to help the programmer reason about failure-safety. They require that the programmer eagerly flush data out of caches to make it persistent. Eager persistency comes with a large overhead because it adds many instructions to the program for flushing cache lines and incurs costly stalls at barriers to wait for data to become durable. To reduce these overheads, we propose Lazy Persistency (LP), a software persistency technique that allows caches to slowly send dirty blocks to the NVMM through natural evictions. With LP, there are no additional writes to NVMM, no decrease in write endurance, and no performance degradation from cache line flushes and barriers. Persistency failures are discovered using software error detection (checksum), and the system recovers from them by recomputing inconsistent results. We describe the properties and design of LP and demonstrate how it can be applied to loop-based kernels popularly used in scientific computing. We evaluate LP and compare it to the state-of-the-art Eager Persistency technique from prior work. Compared to it, LP reduces the execution time and write amplification overheads from 9% and 21% to only 1% and 3%, respectively. Mohammad A. Alshboul, James Tuck 0001, Yan Solihin |
ISCA | 1 |
| 2017 | Efficient Checkpointing of Loop-Based Codes for Non-volatile Main MemoryabstractFuture main memory will likely include Non-Volatile Memory. Non-Volatile Main Memory (NVMM) provides an opportunity to rethink checkpointing strategies for providing failure safety to applications. While there are many checkpointing and logging schemes in literature, their use must be revisited as they incur high execution time overheads as well as a large number of additional writes to NVMM, which may significantly impact write endurance. In this paper, we propose a novel recompute-based failure safety approach, and demonstrate its applicability to loop-based code. Rather than keeping a fully consistent logging state, we only log enough state to enable recomputation. Upon a failure, our approach recovers to a consistent state by determining which parts of the computation were not completed and recomputing them. Effectively, our approach removes the need to keep checkpoints or logs, thus reducing execution time overheads and improving NVMM write endurance, at the expense of more complex recovery. We compare our new approach against logging and checkpointing on five scientific workloads, including tiled matrix multiplication, on a computer system model that was built on gem5 and supports Intel PMEM instruction extensions. For tiled matrix multiplication, our recompute approach incurs an execution time overhead of only 5%, in contrast to 8% overhead with logging and 207% overhead with checkpointing. Furthermore, recompute only adds 7% additional NVMM writes, compared to 111% with logging and 330% with checkpointing. Hussein Elnawawy, Mohammad A. Alshboul, James Tuck 0001, Yan Solihin |
PACT | 2 |