ActiveMonitor: Non-blocking Monitor Executions for Increased Parallelism
Weil-Lun Hung, Himanshu Chauhan, Vijay K. Garg

TL;DR
ActiveMonitor introduces a novel framework for non-blocking monitor executions that significantly enhances parallelism and performance in multi-threaded Java programs, simplifying programming and improving runtimes.
Contribution
The paper presents ActiveMonitor, a new framework that enables non-blocking monitor execution with a prototype using futures, improving parallelism and runtime performance.
Findings
ActiveMonitor outperforms Java's reentrant locks in runtime efficiency.
The framework achieves significant performance gains on fundamental multi-threaded problems.
Experimental results demonstrate improved parallelism and ease of programming.
Abstract
We present a set of novel ideas on design and implementation of monitor objects for multi-threaded programs. Our approach has two main goals: (a) increase parallelism in monitor objects and thus provide performance gains (shorter runtimes) for multi-threaded programs, and (b) introduce constructs that allow programmers to easily write monitor-based multi-threaded programs that can achieve these performance gains. We describe the concepts of our framework, called ActiveMonitor, and its prototype implementation using futures. We evaluate its performance in terms of runtimes of multi-threaded programs on linked-list, bounded-buffer, and other fundamental problems implemented in Java. We compare the runtimes of our implementation against implementations using Java's reentrant locks, recently proposed automatic signaling framework AutoSynch, and some other techniques from the literature. The…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Parallel Computing and Optimization Techniques · Real-Time Systems Scheduling
