Engineering topics
Kale, Laxmikant V.
Publications and source records attributed to Kale, Laxmikant V..
Optimizing point‐to‐point communication between adaptive MPI endpoints in shared memory
Summary Adaptive MPI is an implementation of the MPI standard that supports the virtualization of ranks as user‐level threads, rather than OS processes. In this work, we optimize the communication performance of AMPI based on the locality of the endpoints communicating within a cluster of SMP nodes. We differentiate between point‐to‐point messages with both endpoints co‐located on the same execution unit and point‐to‐point messages with both endpoints residing in the same process but not on the same execution unit. We demonstrate how the messaging semantics of Charm++ enable and hinder AMPI's implementation in different ways, and we motivate extensions to Charm++ to address the limitations. Using the OSU micro‐benchmark suite, we show that our locality‐aware design offers lower latency, higher bandwidth, and reduced memory footprint for applications.
Argobots: A Lightweight Low-Level Threading and Tasking Framework
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, are either 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 the user or high-level programming model. We describe the design, implementation, and optimization of Argobots and present integrations with three example high-level models: OpenMP, MPI, and co-located I/O service. Evaluations show that (1) Argobots outperforms existing 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 service with Argobots reduces interference with co-located applications, achieving performance competitive with that of the Pthreads version.
Free Energy Landscapes of Membrane Transport Proteins
Molecular dynamics (MD) is now a widespread tool for investigating biochemical and biomolecular systems, its prevalence, in no small part, being due to significant advances in computational hardware over the last few decades. Even non-experts can now routinely use MD for protein and nucleic acid structure refinement, studying conformational switching events, and investigating solvation effects due to ligand/drug binding. Nonetheless, the vast majority of simulations being done today utilize only rudimentary algorithmic approaches – so-called “brute force” MD – which only permit access to a small fraction of what the approach has to offer. This is largely because the core algorithm is simple, while advanced techniques can require everything from more sophisticated models and data structures to complicated on-the-fly analysis. A core goal of this early science project is to bring one such advanced MD approach into the broader arena of high-performance computing.In particular, the powerful method of constant-pH MD has long been a relegated to experienced users and specialized model systems. In this work we develop and implement a constant-pH MD algorithm in the NAMD simulation engine making it suitable for deployment on large-scale, next-generation supercomputers as well as ambitious, cutting-edge biological applications. We report,for the first time, constant-pH simulations of a membrane transport protein and use the results to analyze its free energy landscape for ion-selectivity.
Argobots: A Lightweight Threading/Tasking Framework
Explore the source record for details and available documents.
Mapping to Irregular Torus Topologies and Other Techniques for Petascale Biomolecular Simulation, In: SC '14: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis
Currently deployed petascale supercomputers typically use toroidal network topologies in three or more dimensions. While these networks perform well for topology-agnostic codes on a few thousand nodes, leadership machines with 20,000 nodes require topology awareness to avoid network contention for communication-intensive codes. Topology adaptation is complicated by irregular node allocation shapes and holes due to dedicated input/output nodes or hardware failure. In the context of the popular molecular dynamics program NAMD, we present methods for mapping a periodic 3-D grid of fixed-size spatial decomposition domains to 3-D Cray Gemini and 5-D IBM Blue Gene/Q toroidal networks to enable hundred-million atom full machine simulations, and to similarly partition node allocations into compact domains for smaller simulations using multiple copy algorithms. Additional enabling techniques are discussed and performance is reported for NCSA Blue Waters, ORNL Titan, ANL Mira, TACC Stampede, and NERSC Edison.
Object-Oriented Implementation of the NAS Parallel Benchmarks using Charm++
This report describes experiences with implementing the NAS Computational Fluid Dynamics benchmarks using a parallel object-oriented language, Charm++. Our main objective in implementing the NAS CFD kernel benchmarks was to develop a code that could be used to easily experiment with different domain decomposition strategies and dynamic load balancing. We also wished to leverage the object-orientation provided by the Charm++ parallel object-oriented language, to develop reusable abstractions that would simplify the process of developing parallel applications. We first describe the Charm++ parallel programming model and the parallel object array abstraction, then go into detail about each of the Scalar Pentadiagonal (SP) and Lower/Upper Triangular (LU) benchmarks, along with performance results. Finally we conclude with an evaluation of the methodology used.