EDBT 2026 Demo / reviewers in the wild / expert
James Dinan
dblp:03/5712
· DBLP profile ↗
37ranked-venue papers
9as first author
2since 2021 · last 2025
0000-0002-4840-7737ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 30 · 6 first-author · 2 since 2021
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
8 papers |
Parallel and multicore computing · 54% GPUs and heterogeneous computing · 16% Hardware reliability and fault tolerance · 10% | |
| Software engineering, system software, and programming languages
1 paper |
Program analysis · 77% Debugging and program repair · 23% |
Topics — the 24 heaviest of 26, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing
MPI |
0.2 | 1 | 2016 | MPI-ACC: Accelerator-Aware MPI for Scientific Applications · IEEE Trans. Parallel Distributed Syst. 2016 |
Parallel and multicore computing
parallel programming models |
0.2 | 1 | 2016 | MPI-ACC: Accelerator-Aware MPI for Scientific Applications · IEEE Trans. Parallel Distributed Syst. 2016 |
Program analysis
dynamic analysis |
0.2 | 1 | 2014 | MC-Checker: Detecting Memory Consistency Errors in MPI One-Sided Applications · SC 2014 |
Parallel and multicore computing › parallel programming models › message passing
derived datatypes |
0.2 | 1 | 2014 | Processing MPI Derived Datatypes on Noncontiguous GPU-Resident Data · IEEE Trans. Parallel Distributed Syst. 2014 |
GPUs and heterogeneous computing
GPU communication |
0.2 | 1 | 2014 | Processing MPI Derived Datatypes on Noncontiguous GPU-Resident Data · IEEE Trans. Parallel Distributed Syst. 2014 |
Interconnection networks and networks-on-chip
high-speed networks |
0.2 | 1 | 2014 | Enabling Efficient Multithreaded MPI Communication through a Library-Based Implementation of MPI Endpoints · SC 2014 |
Parallel and multicore computing › parallel programming models › message passing
MPI communication |
0.2 | 1 | 2014 | Enabling Efficient Multithreaded MPI Communication through a Library-Based Implementation of MPI Endpoints · SC 2014 |
Parallel and multicore computing › parallel programming models › message passing
MPI one-sided communication |
0.2 | 1 | 2014 | MC-Checker: Detecting Memory Consistency Errors in MPI One-Sided Applications · SC 2014 |
Parallel and multicore computing › parallel computing › parallel communication
multithreaded communication |
0.2 | 1 | 2014 | Enabling Efficient Multithreaded MPI Communication through a Library-Based Implementation of MPI Endpoints · SC 2014 |
Hardware reliability and fault tolerance › memory reliability
cache reliability |
0.1 | 1 | 2010 | Parichute: Generalized Turbocode-Based Error Correction for Near-Threshold Caches · MICRO 2010 |
Hardware reliability and fault tolerance
error correction |
0.1 | 1 | 2010 | Parichute: Generalized Turbocode-Based Error Correction for Near-Threshold Caches · MICRO 2010 |
Memory systems › cache design
near-threshold cache |
0.1 | 1 | 2010 | Parichute: Generalized Turbocode-Based Error Correction for Near-Threshold Caches · MICRO 2010 |
Hardware reliability and fault tolerance
soft errors |
0.1 | 1 | 2010 | Parichute: Generalized Turbocode-Based Error Correction for Near-Threshold Caches · MICRO 2010 |
Parallel and multicore computing › parallel programming models
message passing |
0.1 | 2 | 2014 | Processing MPI Derived Datatypes on Noncontiguous GPU-Resident Data · IEEE Trans. Parallel Distributed Syst. 2014 On the efficacy of GPU-integrated MPI for scientific applications · HPDC 2013 |
Parallel and multicore computing › load balancing
dynamic load balancing |
0.1 | 1 | 2009 | Scalable work stealing · SC 2009 |
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing |
0.1 | 1 | 2009 | Scalable work stealing · SC 2009 |
Parallel and multicore computing
concurrent data structures |
0.1 | 1 | 2008 | Global trees: a framework for linked data structures on distributed memory parallel systems · SC 2008 |
High-performance computing
scientific computing |
0.1 | 1 | 2016 | MPI-ACC: Accelerator-Aware MPI for Scientific Applications · IEEE Trans. Parallel Distributed Syst. 2016 |
Debugging and program repair
fault localization |
0.1 | 1 | 2014 | MC-Checker: Detecting Memory Consistency Errors in MPI One-Sided Applications · SC 2014 |
Parallel and multicore computing › parallel programming models › message passing
point-to-point communication |
0.1 | 1 | 2014 | Processing MPI Derived Datatypes on Noncontiguous GPU-Resident Data · IEEE Trans. Parallel Distributed Syst. 2014 |
GPUs and heterogeneous computing
GPU computing |
0.0 | 1 | 2013 | On the efficacy of GPU-integrated MPI for scientific applications · HPDC 2013 |
Energy-efficient computing › voltage scaling
near-threshold computing |
0.0 | 1 | 2010 | Parichute: Generalized Turbocode-Based Error Correction for Near-Threshold Caches · MICRO 2010 |
High-performance computing
distributed memory systems |
0.0 | 1 | 2008 | Global trees: a framework for linked data structures on distributed memory parallel systems · SC 2008 |
Parallel and multicore computing › parallel programming models › distributed memory programming models
global address space |
0.0 | 1 | 2008 | Global trees: a framework for linked data structures on distributed memory parallel systems · SC 2008 |
Methods — techniques the papers use, named apart from their topics
online instrumentation · 0.4dynamic event capture · 0.4consistency analysis · 0.4scalable memory management · 0.2pipelining of data transfers · 0.2proxy processes · 0.2library-based implementation · 0.2DMA · 0.2CUDA kernel · 0.2turbo product codes · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Demystifying NCCL: An In-Depth Analysis of GPU Communication Protocols and AlgorithmsabstractThe NVIDIA Collective Communication Library (NCCL) is a critical software layer enabling high-performance collectives on large-scale GPU clusters. Despite being open source with a documented API, its internal design remains largely opaque. The orchestration of communication channels, selection of protocols, and handling of memory movement across devices and nodes are not clearly understood, making it difficult to analyze performance or identify bottlenecks. This paper presents a comprehensive analysis of NCCL, focusing on its communication protocol variants (Simple, LL, and LL128), the mechanisms governing intra-node and inter-node data movement, and ring-and tree-based collective communication algorithms. The insights obtained from this study serve as the foundation for ATLAHS, an application-trace-driven network simulation toolchain capable of accurately reproducing NCCL communication patterns in large-scale AI training workloads. By demystifying NCCL's internal architecture, this work provides guidance for system researchers and performance engineers working to optimize or simulate collective communication at scale. Zhiyi Hu, Tommaso Bonato, Sylvain Jeaugey, Cedell Alexander, Eric Spada, James Dinan, Jeff R. Hammond, Torsten Hoefler |
HOTI | 7 |
| 2021 | Optimizing Work Stealing Communication with Structured Atomic OperationsabstractApplications that rely on sparse or irregular data are often challenging to scale on modern distributed-memory systems. As a result, these systems typically require continuous load balancing in order to maintain efficiency. Work stealing is a common technique to remedy imbalance. In this work we present a strategy for work stealing that reduces the amount of communication required for a steal operation by half. We show that in exchange for a small amount of additional complexity to manage the local queue state we can combine both discovering and claiming work into a single step. Conventionally, work stealing uses a two step process of discovering work and then claiming it. Our system, SWS, provides a mechanism where both processes are performed in a singular communication without the need for multiple synchronization messages. This reduction in communication is possible with the novel application of atomic operations that manipulate a compact representation of task queue metadata. We demonstrate the effectiveness of this strategy using known benchmarks for testing dynamic load balancing systems and for performing unbalanced tree searches. Our results show the reduction in communication reduces task acquisition time and steal time, which in turn improves overall performance on sparse computations. Hannah Cartier, James Dinan, D. Brian Larkins |
ICPP | 2 |
| 2019 | Accelerated Work StealingabstractRealizing scalable performance with irregular parallel applications is challenging on large-scale distributed memory clusters. These applications typically require continuous, dynamic load balancing to maintain efficiency. Work stealing is a common approach to dynamic distributed load balancing. However its use in conjunction with advanced network offload capabilities is not well understood. We present a distributed work-stealing system that is amenable to acceleration using the Portals 4 network programming interface. Our work shows that the structures provided by Portals to handle two-sided communication are general-purpose and can accelerate work stealing. We demonstrate the effectiveness of this approach using known benchmarks from computational chemistry and for performing unbalanced tree searches. Results show that Portals accelerated work-stealing can greatly reduce communication overhead, task acquisition time, and termination detection. D. Brian Larkins, John Snyder, James Dinan |
ICPP | 3 |
| 2018 | Efficient Runtime Support for a Partitioned Global Logical Address SpaceabstractMany HPC applications have successfully applied Partitioned Global Address Space (PGAS) parallel programming models to efficiently manage shared data that is distributed across multiple nodes in a distributed memory system. However, while the flat addressing model provided by PGAS systems is effective for regular array data, it renders such systems difficult to use with loosely-structured or sparse data. This work proposes a logically addressed PGLAS model that naturally supports a variety of data models through the automatic mapping of an application-defined key space onto the underlying distributed memory system. We present an efficient implementation of the PGLAS model built atop a parallel distributed hash table (PDHT) and demonstrate that this model is amenable to offloading using the Portals 4 network programming interface. We demonstrate the effectiveness of PDHT using representative applications from the computational chemistry and genomics domains. Results indicate that PGLAS models such as PDHT provide a promising new method for parallelizing applications with non-regular data. D. Brian Larkins, John Snyder, James Dinan |
ICPP | 3 |
| 2016 | Work stealing for GPU-accelerated parallel programs in a global address space frameworkabstractSummary Task parallelism is an attractive approach to automatically load balance the computation in a parallel system and adapt to dynamism exhibited by parallel systems. Exploiting task parallelism through work stealing has been extensively studied in shared and distributed‐memory contexts. In this paper, we study the design of a system that uses work stealing for dynamic load balancing of task‐parallel programs executed on hybrid distributed‐memory CPU‐graphics processing unit (GPU) systems in a global‐address space framework. We take into account the unique nature of the accelerator model employed by GPUs, the significant performance difference between GPU and CPU execution as a function of problem size, and the distinct CPU and GPU memory domains. We consider various alternatives in designing a distributed work stealing algorithm for CPU‐GPU systems, while taking into account the impact of task distribution and data movement overheads. These strategies are evaluated using microbenchmarks that capture various execution configurations as well as the state‐of‐the‐art CCSD(T) application module from the computational chemistry domain. Copyright © 2016 John Wiley & Sons, Ltd. Humayun Arafat, James Dinan, Sriram Krishnamoorthy, Pavan Balaji, P. Sadayappan |
Concurr. Comput. Pract. Exp. | 2 |
| 2016 | An implementation and evaluation of the MPI 3.0 one-sided communication interfaceabstractSummary The Message Passing Interface (MPI) 3.0 standard includes a significant revision to MPI's remote memory access (RMA) interface, which provides support for one‐sided communication. MPI‐3 RMA is expected to greatly enhance the usability and performance of MPI RMA. We present the first complete implementation of MPI‐3 RMA and document implementation techniques and performance optimization opportunities enabled by the new interface. Our implementation targets messaging‐based networks and is publicly available in the latest release of the MPICH MPI implementation. Using this implementation, we explore the performance impact of new MPI‐3 functionality and semantics. Results indicate that the MPI‐3 RMA interface provides significant advantages over the MPI‐2 interface by enabling increased communication concurrency through relaxed semantics in the interface and additional routines that provide new window types, synchronization modes, and atomic operations. Copyright © 2016 John Wiley & Sons, Ltd. James Dinan, Pavan Balaji, Darius Buntinas, David Goodell, William Gropp, Rajeev Thakur |
Concurr. Comput. Pract. Exp. | 1 |
| 2016 | Global-view coefficients: a data management solution for parallel quantum Monte Carlo applicationsabstractSummary Quantum Monte Carlo (QMC) applications perform simulation with respect to an initial state of the quantum mechanical system, which is often captured by using a cubic B‐spline basis. This representation is stored as a read‐only table of coefficients and accesses to the table are generated at random as part of the Monte Carlo simulation. Current QMC applications, such as QWalk and QMCPACK, replicate this table at every process or node, which limits scalability because increasing the number of processors does not enable larger systems to be run. We present a partitioned global address space approach to transparently managing this data using Global Arrays in a manner that allows the memory of multiple nodes to be aggregated. We develop an automated data management system that significantly reduces communication overheads, enabling new capabilities for QMC codes. Experimental results with QWalk and QMCPACK demonstrate the effectiveness of the data management system. Copyright © 2016 John Wiley & Sons, Ltd. Qingpeng Niu, James Dinan, Sravya Tirukkovalur, Anouar Benali, Jeongnim Kim, Lubos Mitas, Lucas K. Wagner, P. Sadayappan |
Concurr. Comput. Pract. Exp. | 2 |
| 2016 | MPI-ACC: Accelerator-Aware MPI for Scientific ApplicationsabstractData movement in high-performance computing systems accelerated by graphics processing units (GPUs) remains a challenging problem. Data communication in popular parallel programming models, such as the Message Passing Interface (MPI), is currently limited to the data stored in the CPU memory space. Auxiliary memory systems, such as GPU memory, are not integrated into such data movement standards, thus providing applications with no direct mechanism to perform end-to-end data movement. We introduce MPI-ACC, an integrated and extensible framework that allows end-to-end data movement in accelerator-based systems. MPI-ACC provides productivity and performance benefits by integrating support for auxiliary memory spaces into MPI. MPI-ACC supports data transfer among CUDA, OpenCL and CPU memory spaces and is extensible to other offload models as well. MPI-ACC's runtime system enables several key optimizations, including pipelining of data transfers, scalable memory management techniques, and balancing of communication based on accelerator and node architecture. MPI-ACC is designed to work concurrently with other GPU workloads with minimum contention. We describe how MPI-ACC can be used to design new communication-computation patterns in scientific applications from domains such as epidemiology simulation and seismology modeling, and we discuss the lessons learned. We present experimental results on a state-of-the-art cluster with hundreds of GPUs; and we compare the performance and productivity of MPI-ACC with MVAPICH, a popular CUDA-aware MPI solution. MPI-ACC encourages programmers to explore novel application-specific optimizations for improved overall cluster utilization. Ashwin M. Aji, Lokendra S. Panwar, Karthik Murthy, Milind Chabbi, Pavan Balaji, Keith R. Bisset, James Dinan, Wu-chun Feng, John M. Mellor-Crummey, Xiaosong Ma, Rajeev Thakur |
IEEE Trans. Parallel Distributed Syst. | 8 |
| 2014 | MC-Checker: Detecting Memory Consistency Errors in MPI One-Sided ApplicationsabstractOne-sided communication decouples data movement and synchronization by providing support for asynchronous reads and updates of distributed shared data. While such interfaces can be extremely efficient, they also impose challenges in properly performing asynchronous accesses to shared data. This paper presents MC-Checker, a new tool that detects memory consistency errors in MPI one-sided applications. MCChecker first performs online instrumentation and captures relevant dynamic events, such as one-sided communications and load/store operations. MC-Checker then performs analysis to detect memory consistency errors. When found, errors are reported along with useful diagnostic information. Experiments indicate that MC-Checker is effective at detecting and diagnosing memory consistency bugs in MPI one-sided applications, with low overhead, ranging from 24.6% to 71.1%, with an average of 45.2%. Zhezhe Chen, James Dinan, Pavan Balaji, Hua Zhong 0001, Jun Wei 0001, Tao Huang 0001 |
SC | 2 |
| 2014 | Enabling Efficient Multithreaded MPI Communication through a Library-Based Implementation of MPI EndpointsabstractModern high-speed interconnection networks are designed with capabilities to support communication from multiple processor cores. The MPI endpoints extension has been proposed to ease process and thread count tradeoffs by enabling multithreaded MPI applications to efficiently drive independent network communication. In this work, we present the first implementation of the MPI endpoints interface and demonstrate the first applications running on this new interface. We use a novel library-based design that can be layered on top of any existing, production MPI implementation. Our approach uses proxy processes to isolate threads in an MPI job, eliminating threading overheads within the MPI library and allowing threads to achieve process-like communication performance. We evaluate the performance advantages of our implementation through several benchmarks and kernels. Performance results for the Lattice QCD Dslash kernel indicate that endpoints provides up to 2.9× improvement in communication performance and 1.87× overall performance improvement over a highly optimized hybrid MPI+OpenMP baseline on 128 processors. Srinivas Sridharan 0002, James Dinan, Dhiraj D. Kalamkar |
SC | 2 |
| 2014 | Processing MPI Derived Datatypes on Noncontiguous GPU-Resident DataabstractDriven by the goals of efficient and generic communication of noncontiguous data layouts in GPU memory, for which solutions do not currently exist, we present a parallel, noncontiguous data-processing methodology through the MPI datatypes specification. Our processing algorithm utilizes a kernel on the GPU to pack arbitrary noncontiguous GPU data by enriching the datatypes encoding to expose a fine-grained, data-point level of parallelism. Additionally, the typically tree-based datatype encoding is preprocessed to enable efficient, cached access across GPU threads. Using CUDA, we show that the computational method outperforms DMA-based alternatives for several common data layouts as well as more complex data layouts for which reasonable DMA-based processing does not exist. Our method incurs low overhead for data layouts that closely match best-case DMA usage or that can be processed by layout-specific implementations. We additionally investigate usage scenarios for data packing that incur resource contention, identifying potential pitfalls for various packing strategies. We also demonstrate the efficacy of kernel-based packing in various communication scenarios, showing multifold improvement in point-to-point communication and evaluating packing within the context of the SHOC stencil benchmark and HACC mesh analysis. John Jenkins, James Dinan, Pavan Balaji, Tom Peterka, Nagiza F. Samatova, Rajeev Thakur |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 2013 | Toward Asynchronous and MPI-Interoperable Active MessagesabstractMany new large-scale applications have emerged recently and become important in areas such as bioinformatics and social networks. These applications are often data-intensive and involve irregular communication patterns and complex operations on remote processes. Active messages have proven effective for parallelizing such nontraditional applications. However, most current active messages frameworks are low-level and system specific, do not efficiently support asynchronous progress, and are not interoperable with two-sided and collective communications. In this paper, we present the design and implementation of an active messages framework inside MPI to provide portability and programmability, and we explore challenges when asynchronously handling active messages and other messages from the network as well as from shared memory. We test our implementation with a set of comprehensive benchmarks. Evaluation results show that our framework has the advantages of overlapping and interoperability, while introducing only a modest overhead. Darius Buntinas, Judicael A. Zounmevo, James Dinan, David Goodell, Pavan Balaji, Rajeev Thakur, Ahmad Afsahi, William Gropp |
CCGRID | 4 |
| 2013 | On the efficacy of GPU-integrated MPI for scientific applications
Ashwin M. Aji, Lokendra S. Panwar, Milind Chabbi, Karthik Murthy, Pavan Balaji, Keith R. Bisset, James Dinan, Wu-chun Feng, John M. Mellor-Crummey, Xiaosong Ma, Rajeev Thakur |
HPDC | 8 |
| 2013 | pVOCL: Power-Aware Dynamic Placement and Migration in Virtualized GPU EnvironmentsabstractPower-hungry Graphics processing unit (GPU) accelerators are ubiquitous in high performance computing data centers today. GPU virtualization frameworks introduce new opportunities for effective management of GPU resources by decoupling them from application execution. However, power management of GPU-enabled server clusters faces significant challenges. The underlying system infrastructure shows complex power consumption characteristics depending on the placement of GPU workloads across various compute nodes, power-phases and cabinets in a datacenter. GPU resources need to be scheduled dynamically in the face of time-varying resource demand and peak power constraints. We propose and develop a power-aware virtual OpenCL (pVOCL) framework that controls the peak power consumption and improves the energy efficiency of the underlying server system through dynamic consolidation and power-phase topology aware placement of GPU workloads. Experimental results show that pVOCL achieves significant energy savings compared to existing power management techniques for GPU-enabled server clusters, while incurring negligible impact on performance. It drives the system towards energy-efficient configurations by taking an optimal sequence of adaptation actions in a virtualized GPU environment and meanwhile keeps the power consumption below the peak power budget. Palden Lama, Yan Li 0005, Ashwin M. Aji, Pavan Balaji, James Dinan, Shucai Xiao, Yunquan Zhang, Wu-chun Feng, Rajeev Thakur, Xiaobo Zhou 0002 |
ICDCS | 5 |
| 2013 | Enhancing Performance Portability of MPI Applications through Annotation-Based TransformationsabstractMPI is the de facto standard for portable parallel programming on high-end systems. However, while the MPI standard provides functional portability, it does not provide sufficient performance portability across platforms. We present a framework that enables users to provide hints about communication patterns used within MPI applications. These annotations are then used by an automated program transformation system to leverage different MPI operations that better match each system's capabilities. Our framework currently supports three automated transformations: coalescing of operations in MPI one-sided communications, transformation of blocking communications to nonblocking, which enables communication-computation overlap, and selection of the appropriate communication operators based on the cache-coherence support of the underlying platform. We use our annotation-based approach to optimize several benchmark kernels, and we demonstrate that the framework is effective at automatically improving performance portability for MPI applications. Md. Ziaul Haque, Qing Yi, James Dinan, Pavan Balaji |
ICPP | 3 |
| 2013 | Inspector-Executor Load Balancing Algorithms for Block-Sparse Tensor ContractionsabstractDeveloping effective yet scalable load-balancing methods for irregular computations is critical to the successful application of simulations in a variety of disciplines at petascale and beyond. This paper explores a set of static and dynamic scheduling algorithms for block-sparse tensor contractions within the NWChem computational chemistry code for different degrees of sparsity (and therefore load imbalance). In this particular application, a relatively large amount of task information can be obtained at minimal cost, which enables the use of static partitioning techniques that take the entire task list as input. However, fully static partitioning is incapable of dealing with dynamic variation of task costs, such as from transient network contention or operating system noise, so we also consider hybrid schemes that utilize dynamic scheduling within subgroups. These two schemes, which have not been previously implemented in NWChem or its proxies (i.e. quantum chemistry mini-apps) are compared to the original centralized dynamic load-balancing algorithm as well as improved centralized scheme. In all cases, we separate the scheduling of tasks from the execution of tasks into an inspector phase and an executor phase. The impact of these methods upon the application is substantial on a large InfiniBand cluster: execution time is reduced by as much as 50% at scale. The technique is applicable to any scientific application requiring load balance where performance models or estimations of kernel execution times are available. David Ozog, Jeff R. Hammond, James Dinan, Pavan Balaji, Sameer Shende, Allen D. Malony |
ICPP | 3 |
| 2013 | Inspector/executor load balancing algorithms for block-sparse tensor contractionsabstractDeveloping effective yet scalable load-balancing methods for irregular computations is critical to the successful application of simulations in a variety of disciplines at petascale and beyond. This paper explores a set of static and dynamic scheduling algorithms for block-sparse tensor contractions within the NWChem computational chemistry code for different degrees of sparsity (and therefore load imbalance). In this particular application, a relatively large amount of task information can be obtained at minimal cost, which enables the use of static partitioning techniques that take the entire task list as input. However, fully static partitioning is incapable of dealing with dynamic variation of task costs, such as from transient network contention or operating system noise, so we also consider hybrid schemes that utilize dynamic scheduling within subgroups. These two schemes, which have not been previously implemented in NWChem or its proxies (i.e. quantum chemistry mini-apps) are compared to the original centralized dynamic load-balancing algorithm as well as improved centralized scheme. In all cases, we separate the scheduling of tasks from the execution of tasks into an inspector phase and an executor phase. The impact of these methods upon the application is substantial on a large InfiniBand cluster: execution time is reduced by as much as 50% at scale. The technique is applicable to any scientific application requiring load balance where performance models or estimations of kernel execution times are available. David Ozog, Sameer Shende, Allen D. Malony, Jeff R. Hammond, James Dinan, Pavan Balaji |
ICS | 5 |
| 2013 | Enabling MPI interoperability through flexible communication endpointsabstractThe current MPI model defines a one-to-one relationship between MPI processes and MPI ranks. This model captures many use cases effectively, such as one MPI process per core and one MPI process per node. However, this semantic has limited interoperability between MPI and other programming models that use threads within a node. In this paper, we describe an extension to MPI that introduces communication endpoints as a means to relax the one-to-one relationship between processes and threads. Endpoints enable a greater degree interoperability between MPI and other programming models, and we illustrate their potential for additional performance and computation management benefits through the decoupling of ranks from processes. James Dinan, Pavan Balaji, David Goodell, Douglas Miller, Marc Snir, Rajeev Thakur |
EuroMPI | 1 |
| 2013 | Analysis of topology-dependent MPI performance on Gemini networksabstractCurrent HPC systems utilize a variety of interconnection networks, with varying features and communication characteristics. MPI normalizes these interconnects with a common interface used by most HPC applications. However, network properties can have a significant impact on application performance. We explore the impact of the interconnect on application performance on the Blue Waters supercomputer. Blue Waters uses a three-dimensional, Cray Gemini torus network, which provides twice the Y-dimension bandwidth in the X and Z dimensions. Through several benchmarks, including a halo-exchange example, we demonstrate that application-level mapping to the network topology yields significant performance improvements. Antonio J. Peña, Ralf G. Correa Carvalho, James Dinan, Pavan Balaji, Rajeev Thakur, William Gropp |
EuroMPI | 3 |
| 2013 | Dataflow coordination of data-parallel tasks via MPI 3.0abstractScientific applications are often complex collections of many large-scale tasks. Mature tools exist for describing task-parallel workflows consisting of serial tasks, and a variety of tools exist for programming a single data-parallel operation. However, few tools cover the intersection of these two models. In this work, we extend the load balancing library ADLB to support parallel tasks. We demonstrate how applications can easily be composed of parallel tasks using Swift dataflow scripts, which are compiled to ADLB programs with performance comparable to hand-coded equivalents. By combining this framework with data-parallel analysis libraries, we are able to dynamically execute many instances of a parallel data analysis application in support of a parameter exploration workload. Justin M. Wozniak, Tom Peterka, Timothy G. Armstrong, James Dinan, Ewing L. Lusk, Michael Wilde, Ian T. Foster |
EuroMPI | 4 |
| 2012 | Transparent Accelerator Migration in a Virtualized GPU EnvironmentabstractThis paper presents a framework to support transparent, live migration of virtual GPU accelerators in a virtualized execution environment. Migration is a critical capability in such environments because it provides support for fault tolerance, on-demand system maintenance, resource management, and load balancing in the mapping of virtual to physical GPUs. Techniques to increase responsiveness and reduce migration overhead are explored. The system is evaluated by using four application kernels and is demonstrated to provide low migration overheads. Through transparent load balancing, our system provides a speedup of 1.7 to 1.9 for three of the four application kernels. Shucai Xiao, Pavan Balaji, James Dinan, Rajeev Thakur, Susan Coghlan, Heshan Lin, Gaojin Wen, Jue Hong, Wu-chun Feng |
CCGRID | 3 |
| 2012 | Enabling Fast, Noncontiguous GPU Data Movement in Hybrid MPI+GPU EnvironmentsabstractLack of efficient and transparent interaction with GPU data in hybrid MPI+GPU environments challenges GPU acceleration of large-scale scientific computations. A particular challenge is the transfer of noncontiguous data to and from GPU memory. MPI implementations currently do not provide an efficient means of utilizing data types for noncontiguous communication of data in GPU memory. To address this gap, we present an MPI data type-processing system capable of efficiently processing arbitrary data types directly on the GPU. We present a means for converting conventional data type representations into a GPU-amenable format. Fine-grained, element-level parallelism is then utilized by a GPU kernel to perform in-device packing and unpacking of noncontiguous elements. We demonstrate a several-fold performance improvement for noncontiguous column vectors, 3D array slices, and 4D array sub volumes over CUDA-based alternatives. Compared with optimized, layout-specific implementations, our approach incurs low overhead, while enabling the packing of data types that do not have a direct CUDA equivalent. These improvements are demonstrated to translate to significant improvements in end-to-end, GPU-to-GPU communication time. In addition, we identify and evaluate communication patterns that may cause resource contention with packing operations, providing a baseline for adaptively selecting data-processing strategies. John Jenkins, James Dinan, Pavan Balaji, Nagiza F. Samatova, Rajeev Thakur |
CLUSTER | 2 |
| 2012 | A global address space approach to automated data management for parallel Quantum Monte Carlo applicationsabstractQuantum Monte Carlo (QMC) applications perform simulation with respect to an initial state of the quantum mechanical system, which is often captured by using a cubic B-spline basis. This representation is stored as a read-only table of coefficients, and accesses to the table are generated at random as part of the Monte Carlo simulation. Current QMC applications such as QWalk and QMCPACK, replicate this table at every process or node, which limits scalability because increasing the number of processors does not enable larger systems to be run. We present a partitioned global address space (PGAS) approach to transparently managing this data using Global Arrays in a manner that allows the memory of multiple nodes to be aggregated. We develop an automated data management system that significantly reduces communication overheads, enabling new capabilities for QMC codes. Experimental results with the QWalk application demonstrate the effectiveness of the data management system. Qingpeng Niu, James Dinan, Sravya Tirukkovalur, Lubos Mitas, Lucas K. Wagner, P. Sadayappan |
HiPC | 2 |
| 2012 | Load Balancing of Dynamical Nucleation Theory Monte Carlo Simulations through Resource Sharing BarriersabstractThe dynamical nucleation theory Monte Carlo (DNTMC) application from the NW Chem computational chemistry suite utilizes a Markov chain Monte Carlo, two-level parallel structure, with periodic synchronization points that assemble the results of independent finer-grained calculations. Like many such applications, the existing code employs a static partitioning of processes into groups and assigns each group a piece of the finer-grained parallel calculation. A significant cause of performance degradation is load imbalance among groups since the time requirements of the inner-parallel calculation varies widely with the input problem and as a result of the Monte Carlo simulation. We present a novel approach to load balancing such calculations with minimal changes to the application. We introduce the concept of a resource sharing barrier (RSB) - a barrier that allows process groups waiting on other processes' work to actively contribute to their completion. The RSB load balancing technique is applied to the production DNTMC application code, resulting in a small code change of 200 lines and a reduction in execution time of up to 37%. Humayun Arafat, P. Sadayappan, James Dinan, Sriram Krishnamoorthy, Theresa L. Windus |
IPDPS | 3 |
| 2012 | Supporting the Global Arrays PGAS Model Using MPI One-Sided CommunicationabstractThe industry-standard Message Passing Interface (MPI) provides one-sided communication functionality and is available on virtually every parallel computing system. However, it is believed that MPI's one-sided model is not rich enough to support higher-level global address space parallel programming models. We present the first successful application of MPI one-sided communication as a runtime system for a PGAS model, Global Arrays (GA). This work has an immediate impact on users of GA applications, such as NW Chem, who often must wait several months to a year or more before GA becomes available on a new architecture. We explore challenges present in the application of MPI-2 to PGAS models and motivate new features in the upcoming MPI-3 standard. The performance of our system is evaluated on several popular high-performance computing architectures through communication benchmarking and application benchmarking using the NW Chem computational chemistry suite. James Dinan, Pavan Balaji, Jeff R. Hammond, Sriram Krishnamoorthy, Vinod Tipparaju |
IPDPS | 1 |
| 2012 | PARDA: A Fast Parallel Reuse Distance Analysis AlgorithmabstractReuse distance is a well established approach to characterizing data cache locality based on the stack histogram model. This analysis so far has been restricted to offline use due to the high cost, often several orders of magnitude larger than the execution time of the analyzed code. This paper presents the first parallel algorithm to compute accurate reuse distances by analysis of memory address traces. The algorithm uses a tunable parameter that enables faster analysis when the maximum needed reuse distance is limited by a cache size upper bound. Experimental evaluation using the SPEC CPU 2006 benchmark suite shows that, using 64 processors and a cache bound of 8 MB, it is possible to perform reuse distance analysis with full accuracy within a factor of 13 to 50 times the original execution times of the benchmarks. Qingpeng Niu, James Dinan, Qingda Lu, P. Sadayappan |
IPDPS | 2 |
| 2012 | On the Usability of the MPI Shared File Pointer Routines
Mohamad Chaarawi, James Dinan, Dries Kimpe |
EuroMPI | 2 |
| 2012 | Efficient Multithreaded Context ID Allocation in MPI
James Dinan, David Goodell, William Gropp, Rajeev Thakur, Pavan Balaji |
EuroMPI | 1 |
| 2012 | Leveraging MPI's One-Sided Communication Interface for Shared-Memory Programming
Torsten Hoefler, James Dinan, Darius Buntinas, Pavan Balaji, Brian W. Barrett, Ron Brightwell, William Gropp, Vivek Kale, Rajeev Thakur |
EuroMPI | 2 |
| 2011 | Noncollective Communicator Creation in MPI
James Dinan, Sriram Krishnamoorthy, Pavan Balaji, Jeff R. Hammond, Manojkumar Krishnan, Vinod Tipparaju, Abhinav Vishnu |
EuroMPI | 1 |
| 2010 | Selective Recovery from Failures in a Task Parallel Programming ModelabstractWe present a fault tolerant task pool execution environment that is capable of performing fine-grain selective restart using a lightweight, distributed task completion tracking mechanism. Compared with conventional checkpoint/restart techniques, this system offers a recovery penalty that is proportional to the degree of failure rather than the system size. We evaluate this system using the Self Consistent Field (SCF) kernel which forms an important component in ab initio methods for computational chemistry. Experimental results indicate that fault tolerant task pools are robust in the presence of an arbitrary number of failures and that they offer low overhead in the absence of faults. James Dinan, Arjun Singri, P. Sadayappan, Sriram Krishnamoorthy |
CCGRID | 1 |
| 2010 | Parichute: Generalized Turbocode-Based Error Correction for Near-Threshold CachesabstractEnergy efficiency is a primary concern for microprocessor designers. A very effective approach to improving the energy efficiency of a chip is to lower its supply voltage to very close to the transitor's threshold voltage, into what is called the near-thresold region. This reduces power consumption dramatically but also decreases reliability by orders of magnitude, especially for SRAM structures such as caches. This paper presents Parichute, a novel and powerful error correction technique based on turbo product codes that allows caches to continue to operate in near-threshold, while trading off some cache capacity to store error correction information. Our Parichute-based cache implementation is flexible, allowing protection to be disabled in error-free high voltage operation and selectively enabled as the voltage is lowered and the error rate increases. Parichute is also self-testing and variation-aware, allowing selective protection of cache sections that exhibit errors at higher supply voltages because of process variation. Parichute achieves significantly stronger error correction compared to prior cache protection techniques, enabling 2× to 4× higher cache capacity at low voltages. Our results also show that a system with a Parichute-protected L2 cache can achieve a 34% reduction in system energy (processor and DRAM) compared to a system operating at nominal voltage. Timothy N. Miller, Renji Thomas, James Dinan, Bruce M. Adcock, Radu Teodorescu |
MICRO | 3 |
| 2009 | Scalable work stealingabstractIrregular and dynamic parallel applications pose significant challenges to achieving scalable performance on large-scale multicore clusters. These applications often require ongoing, dynamic load balancing in order to maintain efficiency. Scalable dynamic load balancing on large clusters is a challenging problem which can be addressed with distributed dynamic load balancing systems. Work stealing is a popular approach to distributed dynamic load balancing; however its performance on large-scale clusters is not well understood. Prior work on work stealing has largely focused on shared memory machines. In this work we investigate the design and scalability of work stealing on modern distributed memory systems. We demonstrate high efficiency and low overhead when scaling to 8,192 processors for three benchmark codes: a producer-consumer benchmark, the unbalanced tree search benchmark, and a multiresolution analysis kernel. James Dinan, D. Brian Larkins, P. Sadayappan, Sriram Krishnamoorthy, Jarek Nieplocha |
SC | 1 |
| 2008 | Scioto: A Framework for Global-View Task ParallelismabstractWe introduce Scioto, shared collections of task objects, a lightweight framework for providing task management on distributed memory machines under one-sided and global-view parallel programming models. Scioto provides locality aware dynamic load balancing and interoperates with MPI, ARMCI, and global arrays. Additionally, Scioto's task model and programming interface are compatible with many other existing parallel models including UPC, SHMEM, and CAF. Through task parallelism, the Scioto framework provides a solution for overcoming irregularity, load imbalance, and heterogeneity as well as dynamic mapping of computation onto emerging architectures. In this paper, we present the design and implementation of the Scioto framework and demonstrate its effectiveness on the unbalanced tree search (UTS) benchmark and two quantum chemistry codes: the closed shell self-consistent field (SCF) method and a sparse tensor contraction kernel extracted from a coupled cluster computation. We explore the efficiency and scalability of Scioto through these sample applications and demonstrate that is offers low overhead, achieves good performance on heterogeneous and multicore clusters, and scales to hundreds of processors. James Dinan, Sriram Krishnamoorthy, D. Brian Larkins, Jarek Nieplocha, P. Sadayappan |
ICPP | 1 |
| 2008 | Global trees: a framework for linked data structures on distributed memory parallel systemsabstractThis paper describes the Global Trees (GT) system that provides a multi-layered interface to a global address space view of distributed tree data structures, while providing scalable performance on distributed memory systems. The Global Trees system utilizes coarse-grained data movement to enhance locality and communication efficiency. We describe the design and implementation of GT, illustrate its use in the context of a gravitational simulation application, and provide experimental results that demonstrate the effectiveness of the approach. The key benefits of using this system include efficient shared-memory style programming of distributed trees, tree-specific optimizations for data access and computation, and the ability to customize many aspects of GT to optimize application performance. D. Brian Larkins, James Dinan, Sriram Krishnamoorthy, Srinivasan Parthasarathy 0001, Atanas Rountev, P. Sadayappan |
SC | 2 |
| 2007 | Dynamic Load Balancing of Unbalanced Computations Using Message PassingabstractThis paper examines MPI's ability to support continuous, dynamic load balancing for unbalanced parallel applications. We use an unbalanced tree search benchmark (UTS) to compare two approaches, 1) work sharing using a centralized work queue, and 2) work stealing using explicit polling to handle steal requests. Experiments indicate that in addition to a parameter defining the granularity of load balancing, message-passing paradigms require additional parameters such as polling intervals to manage runtime overhead. Using these additional parameters, we observed an improvement of up to 2times in parallel performance. Overall we found that while work sharing may achieve better peak performance on certain workloads, work stealing achieves comparable if not better performance across a wider range of chunk sizes and workloads. James Dinan, Stephen Olivier, Gerald Sabin, Jan F. Prins, P. Sadayappan, Chau-Wen Tseng |
IPDPS | 1 |
| 2006 | Hardware/Software Integration for FPGA-based All-Pairs Shortest-PathsabstractField-programmable gate arrays (FPGAs) are being employed in high performance computing systems owing to their potential to accelerate a wide variety of long-running routines. Parallel FPGA-based designs often yield a very high speedup. Applications using these designs on reconfigurable supercomputers involve software on the system managing computation on the FPGA. To extract maximum performance from an FPGA design at the application level, it becomes necessary to minimize associated data movement costs on the system. We address this hardware/software integration challenge in the context of the all-pairs shortest-paths (APSP) problem in a directed graph. We employ a parallel FPGA-based design using a blocked algorithm to solve large instances of APSP. With appropriate design choices and optimizations, experimental results on the Cray XD1 show that the FPGA-based implementation sustains an application-level speedup of 15 over an optimized CPU-based implementation Uday Bondhugula, Ananth Devulapalli, James Dinan, Joseph Fernando, Pete Wyckoff, Eric Stahlberg, P. Sadayappan |
FCCM | 3 |