Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Jonathan Lifflander

dblp:60/10761 · DBLP profile ↗
← Back
13ranked-venue papers
9as first author
2since 2021 · last 2025
0009-0004-6653-2314ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 10 · 7 first-author · 2 since 2021Software engineering, systems software and programming languages · 2 · 2 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
7 papers
Parallel and multicore computing · 55% Distributed systems · 17% Memory systems · 10%
Software engineering, system software, and programming languages
4 papers
Runtime systems and virtual machines · 63% Compilers and program optimization · 16% Operating systems · 11%

Topics — the 19 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing
0.642017
Optimizing Data Locality for Fork/Join Programs Using Constrained Work Stealing · SC 2014
Steal Tree: low-overhead tracing of work stealing schedulers · PLDI 2013
Work stealing and persistence-based load balancers for iterative overdecomposed applications · HPDC 2012
Parallel and multicore computing
parallel programming runtimes
0.312018
Argobots: A Lightweight Low-Level Threading and Tasking Framework · IEEE Trans. Parallel Distributed Syst. 2018
Memory systems › data locality
cache locality optimization
0.312017
Cache locality optimization for recursive programs · PLDI 2017
Performance modeling and evaluation
trace analysis
0.212015
Recovering logical structure from Charm++ event traces · SC 2015
Parallel and multicore computing › locality optimization
data locality optimization
0.212014
Optimizing Data Locality for Fork/Join Programs Using Constrained Work Stealing · SC 2014
Parallel and multicore computing › task scheduling › task graph scheduling
fork-join scheduling
0.212014
Optimizing Data Locality for Fork/Join Programs Using Constrained Work Stealing · SC 2014
Distributed systems
distributed coordination
0.212013
Adoption protocols for fanout-optimal fault-tolerant termination detection · PPoPP 2013
Distributed systems
fault tolerance
0.212013
Adoption protocols for fanout-optimal fault-tolerant termination detection · PPoPP 2013
Distributed systems › distributed algorithms
termination detection
0.212013
Adoption protocols for fanout-optimal fault-tolerant termination detection · PPoPP 2013
Parallel and multicore computing
load balancing
0.112012
Work stealing and persistence-based load balancers for iterative overdecomposed applications · HPDC 2012
Compilers and program optimization
loop transformation
0.112017
Cache locality optimization for recursive programs · PLDI 2017
Parallel and multicore computing › parallel programming models
task parallelism
0.112017
Cache locality optimization for recursive programs · PLDI 2017
Parallel and multicore computing › parallel programming runtimes
task-based runtime
0.112015
Recovering logical structure from Charm++ event traces · SC 2015
Operating systems › resource management › process management › CPU scheduling
task scheduling
0.112014
Optimizing Data Locality for Fork/Join Programs Using Constrained Work Stealing · SC 2014
Concurrent programming › concurrency bug detection
data race detection
0.012013
Steal Tree: low-overhead tracing of work stealing schedulers · PLDI 2013
High-performance computing
fault tolerance at scale
0.012013
Adoption protocols for fanout-optimal fault-tolerant termination detection · PPoPP 2013
High-performance computing
supercomputing
0.012013
Adoption protocols for fanout-optimal fault-tolerant termination detection · PPoPP 2013
High-performance computing
iterative applications
0.012012
Work stealing and persistence-based load balancers for iterative overdecomposed applications · HPDC 2012
High-performance computing
scientific computing systems
0.012012
Work stealing and persistence-based load balancers for iterative overdecomposed applications · HPDC 2012

Methods — techniques the papers use, named apart from their topics

user-level threading · 0.7tasking model · 0.7argobots · 0.7lightweight threads · 0.6fork/join programming model · 0.6data effect annotations · 0.6dynamic coarsening · 0.4constrained work stealing · 0.4task ordering · 0.2heuristics · 0.2steal tree · 0.2async-finish parallel programs · 0.2
YearPublicationVenuePosition
2025 Accelerating an Electromagnetic Simulation via Memory-Constrained Task-Based Load Balancing
abstract
While load balancing in distributed-memory computing has been well-studied, we present an innovative approach to tackle challenges that an electromagnetic application poses due to irregular workloads and tight memory constraints. To this end, we present a unified model for approximating work in a distributed system that combines three key components: computation, communication, and memory. This enables the exploration of complex trade-offs in task placement, such as increased parallelism at the expense of data replication. We then present our new fully distributed load balancing strategy that incorporates this model. To predict workloads for the matrix assembly of the electromagnetics application, we apply machine learning across an ensemble of executions to train a neural network, which makes online predictions for our task-based decomposition, informing the load balancer of the computational loads. Finally, we demonstrate that our approach, when applied to this application, leads to substantial speedups, up to 2.0x, thereby decreasing time-to-solution for the imbalanced execution.
Jonathan Lifflander, Nicole Slattengren, Philippe P. Pébay, Pierre L. Pebay, Caleb Schilly, Robert A. Pfeiffer, Joseph D. Kotulski
ICPP1
2021 Optimizing Distributed Load Balancing for Workloads with Time-Varying Imbalance
abstract
This paper explores dynamic load balancing algorithms used by asynchronous many-task (AMT), or ‘taskbased’, programming models to optimize task placement for scientific applications with dynamic workload imbalances. AMT programming models use overdecomposition of the computational domain. Overdecompostion provides a natural mechanism for domain developers to expose concurrency and break their computational domain into pieces that can be remapped to different hardware. This paper explores fully distributed load balancing strategies that have shown great promise for exascale-level computing but are challenging to theoretically reason about and implement effectively. We present a novel theoretical analysis of a gossip-based load balancing protocol and use it to build an efficient implementation with fast convergence rates and high load balancing quality. We demonstrate our algorithm in a next-generation plasma physics application (EMPIRE) that induces time-varying workload imbalance due to spatial non-uniformity in particle density across the domain. Our highly scalable, novel load balancing algorithm, achieves over a 3x speedup (particle work) compared to a bulk-synchronous MPI implementation without load balancing.
Jonathan Lifflander, Nicole Slattengren, Philippe P. Pébay, Phil Miller, Francesco Rizzi, Matthew T. Bettencourt
CLUSTER1
2018 Argobots: A Lightweight Low-Level Threading and Tasking Framework
abstract
In the past few decades, a number of user-level threading and tasking models have been proposed in the literature to address the shortcomings of OS-level threads, primarily with respect to cost and flexibility. Current state-of-the-art user-level threading and tasking models, however, either are too specific to applications or architectures or are not as powerful or flexible. In this paper, we present Argobots, a lightweight, low-level threading and tasking framework that is designed as a portable and performant substrate for high-level programming models or runtime systems. Argobots offers a carefully designed execution model that balances generality of functionality with providing a rich set of controls to allow specialization by end users or high-level programming models. We describe the design, implementation, and performance characterization of Argobots and present integrations with three high-level models: OpenMP, MPI, and colocated I/O services. Evaluations show that (1) Argobots, while providing richer capabilities, is competitive with existing simpler generic threading runtimes; (2) our OpenMP runtime offers more efficient interoperability capabilities than production OpenMP runtimes do; (3) when MPI interoperates with Argobots instead of Pthreads, it enjoys reduced synchronization costs and better latency-hiding capabilities; and (4) I/O services with Argobots reduce interference with colocated applications while achieving performance competitive with that of a Pthreads approach.
Abdelhalim Amer, Pavan Balaji, Cyril Bordage, George Bosilca, Alex Brooks, Philip H. Carns, Adrián Castelló 0001, Damien Genet, Thomas Hérault, Shintaro Iwasaki, Prateek Jindal, Laxmikant V. Kalé, Sriram Krishnamoorthy, Jonathan Lifflander, Huiwei Lu, Esteban Meneses, Marc Snir, Yanhua Sun, Kenjiro Taura, Pete Beckman
IEEE Trans. Parallel Distributed Syst.15
2017 Cache locality optimization for recursive programs
abstract
We present an approach to optimize the cache locality for recursive programs by dynamically splicing---recursively interleaving---the execution of distinct function invocations. By utilizing data effect annotations, we identify concurrency and data reuse opportunities across function invocations and interleave them to reduce reuse distance. We present algorithms that efficiently track effects in recursive programs, detect interference and dependencies, and interleave execution of function invocations using user-level (non-kernel) lightweight threads. To enable multi-core execution, a program is parallelized using a nested fork/join programming model. Our cache optimization strategy is designed to work in the context of a random work stealing scheduler. We present an implementation using the MIT Cilk framework that demonstrates significant improvements in sequential and parallel performance, competitive with a state-of-the-art compile-time optimizer for loop programs and a domain-specific optimizer for stencil programs.
Jonathan Lifflander, Sriram Krishnamoorthy
PLDI1
2015 Recovering logical structure from Charm++ event traces
abstract
Asynchrony and non-determinism in Charm++ programs present a significant challenge in analyzing their event traces. We present a new framework to organize event traces of parallel programs written in Charm++. Our reorganization allows one to more easily explore and analyze such traces by providing context through logical structure. We describe several heuristics to compensate for missing dependencies between events that currently cannot be easily recorded. We introduce a new task ordering that recovers logical structure from the non-deterministic execution order. Using the logical structure, we define several metrics to help guide developers to performance problems. We demonstrate our approach through two proxy applications written in Charm++. Finally, we discuss the applicability of this framework to other task-based runtimes and provide guidelines for tracing to support this form of analysis.
Katherine E. Isaacs, Abhinav Bhatele, Jonathan Lifflander, David Böhme, Todd Gamblin, Martin Schulz 0001, Bernd Hamann, Peer-Timo Bremer
SC3
2014 Scalable replay with partial-order dependencies for message-logging fault tolerance
abstract
Deterministic replay of a parallel application is commonly used for discovering bugs or to recover from a hard fault with message-logging fault tolerance. For message passing programs, a major source of overhead during forward execution is recording the order in which messages are sent and received. During replay, this ordering must be used to deterministically reproduce the execution. Previous work in replay algorithms often makes minimal assumptions about the programming model and application to maintain generality. However, in many applications, only a partial order must be recorded due to determinism intrinsic in the program, ordering constraints imposed by the execution model, and events that are commutative (their relative execution order during replay does not need to be reproduced exactly). In this paper, we present a novel algebraic framework for reasoning about the minimum dependencies required to represent the partial order for different orderings and interleavings. By exploiting this framework, we improve on an existing scalable message-logging fault tolerance scheme that uses a total order. The improved scheme scales to 131,072 cores on an IBM BlueGene/P with up to 2× lower overhead.
Jonathan Lifflander, Esteban Meneses, Harshitha Menon, Phil Miller, Sriram Krishnamoorthy, Laxmikant V. Kalé
CLUSTER1
2014 Optimizing Data Locality for Fork/Join Programs Using Constrained Work Stealing
abstract
We present an approach to improving data locality across different phases of fork/join programs scheduled using work stealing. The approach consists of: (1) user-specified and automated approaches to constructing a steal tree, the schedule of steal operations, and (2) constrained work-stealing algorithms that constrain the actions of the scheduler to mirror a given steal tree. These are combined to construct work-stealing schedules that maximize data locality across computation phases while ensuring load balance within each phase. These algorithms are also used to demonstrate dynamic coarsening, an optimization to improve spatial locality and sequential overheads by combining many finer-grained tasks into coarser tasks while ensuring sufficient concurrency for locality-optimized load balance. Implementation and evaluation in Cilk demonstrate performance improvements of up to 2.5x on 80 cores. We also demonstrate that dynamic coarsening can combine the performance benefits of coarse task specification with the adaptability of finer tasks.
Jonathan Lifflander, Sriram Krishnamoorthy, Laxmikant V. Kalé
SC1
2013 Steal Tree: low-overhead tracing of work stealing schedulers
abstract
Work stealing is a popular approach to scheduling task-parallel programs. The flexibility inherent in work stealing when dealing with load imbalance results in seemingly irregular computation structures, complicating the study of its runtime behavior. In this paper, we present an approach to efficiently trace async-finish parallel programs scheduled using work stealing. We identify key properties that allow us to trace the execution of tasks with low time and space overheads. We also study the usefulness of the proposed schemes in supporting algorithms for data-race detection and retentive stealing presented in the literature. We demonstrate that the perturbation due to tracing is within the variation in the execution time with 99% confidence and the traces are concise, amounting to a few tens of kilobytes per thread in most cases. We also demonstrate that the traces enable significant reductions in the cost of detecting data races and result in low, stable space overheads in supporting retentive stealing for async-finish programs.
Jonathan Lifflander, Sriram Krishnamoorthy, Laxmikant V. Kalé
PLDI1
2013 Adoption protocols for fanout-optimal fault-tolerant termination detection
abstract
Termination detection is relevant for signaling completion (all processors are idle and no messages are in flight) of many operations in distributed systems, including work stealing algorithms, dynamic data exchange, and dynamically structured computations. In the face of growing supercomputers with increasing likelihood that each job may encounter faults, it is important for high-performance computing applications that rely on termination detection that such an algorithm be able to tolerate the inevitable faults. We provide a trio of new practical fault tolerance schemes for a standard approach to termination detection that are easy to implement, present low overhead in both theory and practice, and have scalable costs when recovering from faults. These schemes tolerate all single-process faults, and are probabilistically tolerant of faults affecting multiple processes. We combine the theoretical failure probabilities we can calculate for each algorithm with historical fault records from real machines to show that these algorithms have excellent overall survivability.
Jonathan Lifflander, Phil Miller, Laxmikant V. Kalé
PPoPP1
2012 Work stealing and persistence-based load balancers for iterative overdecomposed applications
abstract
Applications often involve iterative execution of identical or slowly evolving calculations. Such applications require incremental rebalancing to improve load balance across iterations. In this paper, we consider the design and evaluation of two distinct approaches to addressing this challenge: persistence-based load balancing and work stealing. The work to be performed is overdecomposed into tasks, enabling automatic rebalancing by the middleware. We present a hierarchical persistence-based rebalancing algorithm that performs localized incremental rebalancing. We also present an active-message-based retentive work stealing algorithm optimized for iterative applications on distributed memory machines. We demonstrate low overheads and high efficiencies on the full NERSC Hopper (146,400 cores) and ALCF Intrepid systems (163,840 cores), and on up to 128,000 cores on OLCF Titan.
Jonathan Lifflander, Sriram Krishnamoorthy, Laxmikant V. Kalé
HPDC1
2012 Mapping Dense LU Factorization on Multicore Supercomputer Nodes
abstract
Dense LU factorization is a prominent benchmark used to rank the performance of supercomputers. Many implementations use block-cyclic distributions of matrix blocks onto a two-dimensional process grid. The process grid dimensions drive a trade-off between communication and computation and are architecture- and implementation-sensitive. The critical panel factorization steps can be made less communication-bound by overlapping asynchronous collectives for pivoting with the computation of rank-k updates. By shifting the computation-communication trade-off, a modified block-cyclic distribution can beneficially exploit more available parallelism on the critical path, and reduce panel factorization's memory hierarchy contention on now-ubiquitous multicore architectures. During active panel factorization, rank-1 updates stream through memory with minimal reuse. In a column-major process grid, the performance of this access pattern degrades as too many streaming processors contend for access to memory. A block-cyclic mapping in the row-major order does not encounter this problem, but consequently sacrifices node and network locality in the critical pivoting steps. We introduce 'striding' to vary between the two extremes of row- and column-major process grids. The maximum available parallelism in the critical path work (active panel factorization, triangular solves, and subsequent broadcasts) is bounded by the length or width of the process grid. Increasing one dimension of the process grid decreases the number of distinct processes and nodes in the other dimension. To increase the harnessed parallelism in both dimensions, we start with a tall process grid. We then apply periodic 'rotation' to this grid to restore exploited parallelism along the row to previous levels. As a test-bed for further mapping experiments, we describe a dense LU implementation that allows a block distribution to be defined as a general function of block to processor. Other mappings can be tested with only small, local changes to the code.
Jonathan Lifflander, Phil Miller, Ramprasad Venkataraman, Anshu Arya, Laxmikant V. Kalé, Terry R. Jones
IPDPS1
2012 Scalable Algorithms for Distributed-Memory Adaptive Mesh Refinement
abstract
This paper presents scalable algorithms and data structures for adaptive mesh refinement computations. We describe a novel mesh restructuring algorithm for adaptive mesh refinement computations that uses a constant number of collectives regardless of the refinement depth. To further increase scalability, we describe a localized hierarchical coordinate-based block indexing scheme in contrast to traditional linear numbering schemes, which incur unnecessary synchronization. In contrast to the existing approaches which take O(P) time and storage per process, our approach takes only constant time and has very small memory footprint. With these optimizations as well as an efficient mapping scheme, our algorithm is scalable and suitable for large, highly-refined meshes. We present strong-scaling experiments up to 2k ranks on Cray XK6, and 32k ranks on IBM Blue Gene/Q.
Akhil Langer, Jonathan Lifflander, Phil Miller, Kuo-Chuan Pan, Laxmikant V. Kalé, Paul M. Ricker
SBAC-PAD2
2010 A study of memory-aware scheduling in message driven parallel programs
abstract
This paper presents a simple, but powerful memory-aware scheduling mechanism that adaptively schedules tasks in a message driven distributed-memory parallel program. The scheduler adapts its behavior whenever memory usage exceeds a threshold by scheduling tasks known to reduce memory usage. The usefulness of the scheduler and its low overhead are demonstrated in the context of an LU matrix factorization program. In the LU program, only a single additional line of code is required to make use of the new general-purpose memory-aware scheduling mechanism. Without memory-aware scheduling, the LU program can only run with small problem sizes, but with the new memory-aware scheduling, the program scales to larger problem sizes.
Isaac Dooley, Jonathan Lifflander, Laxmikant V. Kalé
HiPC3