Louis Jenkins, URCS Grad Student

Email: louis.jenkins@rochester.edu
Main Website: louisjenkinscs.github.io
Mini-Proposal: Scalable Atomics for the Partitioned Global Address Space


PLEASE GO TO MY MAIN WEBSITE FOR UP-TO-DATE INFORMATION! I am a PhD student who is interested in the area of high-performance computing, in particular the kind that involves concurrent data structure design, programming language design, and so forth. I am also working part-time as an external collaborator for the Department of Energy's Pacific Northwest National Laboratory (PNNL) where I am lead developer of a collaborative research project for the Northwest Institute of Advanced Computing (NIAC) which focuses on hypergraph abstractions for Chapel, Cray's exascale programming language. The project is a collaboration between Mississippi State University, Cray Inc., and PNNL/NIAC. Please see my main website for a more up-to-date version and more comprehensive list of my accomplishments.



Redesigning Go's Built-In Map to Support Concurrent Operations

Venue: PACT 2017

Authors: Louis Jenkins, Tingzhe Zhou, and Michael F. Spear


The Go language lacks built-in data structures that allow fine-grained concurrent access. In particular, its map data type, one of only two generic collections in Go, limits concurrency to the case where all operations are read-only; any mutation (insert, update, or remove) requires exclusive access to the entire map. The tight integration of this map into the Go language and runtime precludes its replacement with known scalable map implementations.

This paper introduces the Interlocked Hash Table (IHT). The IHT is the result of language-driven data structure design: it requires minimal changes to the Go map API, supports the full range of operations available on the sequential Go map, and provides a path for the language to evolve to become more amenable to scalable computation over shared data structures. The IHT employs a novel optimistic locking protocol to avoid the risk of deadlock, and allows large critical sections that access a single IHT element, and can easily support multikey atomic operations. These features come at the cost of relaxed, though still straightforward, iteration semantics. In experimentation in both Java and Go, the IHT performs well, reaching up to 7x the performance of the state of the art in Go at 24 threads. In Java, the IHT performs on par with the best Java maps in the research literature, while providing iteration and other features absent from other maps.

RCUArray: An RCU-like Parallel-Safe Distributed Resizable Array

Venue: CHIUW 2018 (IPDPSW)

Authors: Louis Jenkins



Presented in this work is RCUArray, a parallel-safe distributed array that allows for read and update operations to occur concurrently with a resize via Read-Copy-Update. Also presented is a novel extension to Epoch-Based Reclamation (EBR) that functions without the requirement for either Task-Local or Thread-Local storage, as the Chapel language currently lacks a notion of either. Also presented is an extension to Quiescent State-Based Reclamation (QSBR) that is implemented in Chapel's runtime and allows for parallel-safe memory reclamation of arbitrary data. At 32-nodes with 44-cores per node, the RCUArray with EBR provides only 20% of the performance of an unsynchronized Chapel block distributed array for read and update operations but near-equivalent with QSBR; in both cases RCUArray is up to 40x faster for resize operations.


Chapel HyperGraph Library (CHGL) ~To Appear~

Poster @PNNL

Venue: HPEC-2018

Authors: Louis Jenkins, Marcin Zalewski, Sinan Aksoy, Hugh Medal, Cliff Joslyn,…


We present the Chapel Hpergraph Library (CHGL), a library for hypergraph computation in the emerging Chapel language. Hypergraphs generalize graphs, where a hypergraph edge can connect any number of vertices. Thus, hypergraphs capture high-order, high-dimensional interactions between multiple entities that are not directly expressible in graphs. CHGL is designed to provide HPC-class computation with high-level abstractions and modern language support for parallel computing on shared memory and distributed memory systems. In this paper we describe the design of CHGL, including first principles, data structures, and algorithms, and we present preliminary performance results based on a graph generation use case. We also discuss ongoing work of codesign with Chapel, which is currently centered on improving performance.

Chapel Aggregation Library (CAL) ~Submitted~

Presentation @Cray

Authors: Louis Jenkins, Marcin Zalewski, Michael Ferguson


Fine-grained communication is a fundamental principle of the Partitioned Global Address Space (PGAS), which serves to simplify creating and reasoning about programs in the distributed context. However, per-message overheads of communication rapidly accumulate in programs that generate a high volume of small messages, limiting the effective bandwidth and potentially increasing latency if the messages are generated at a much higher rate than the effective network bandwidth. One way to reduce such fine-grained communication is by coarsening the granularity by aggregating data, or by buffering the smaller communications together in a way that they can be handled in bulk. Once these communications are buffered, the multiple units of the aggregated data can be combined into fewer units in an optimization called coalescing.

The Chapel Aggregation Library (CAL) provides a straightforward approach to handling both aggregation and coalescing of data in Chapel and aims to be as generic and minimal as possible to maximize code reuse and minimize its increase in complexity on user applications. CAL provides a high-performance, distributed, and parallel-safe solution that is entirely written as a Chapel module. In addition to being easy to use, CAL improves the performance of some benchmarks by one to two orders of magnitude over naive implementations at 32 compute-nodes on a Cray XC50.


Peer's Choice for Outstanding Project Award

Awarded for my project during Lehigh University's N.S.F sponsored R.E.U. I was also featured in an article for Bloomsburg University.


Peer's Choice for Outstanding Project

C.R.A 2017 Outstanding Undergraduate Researchers Honorable Mention

I was nominated by Bloomsburg University to partake in the Computing Research Association's 2017 Outstanding Undergraduate Researchers awards for non-PhD Computer Science programs, and was given an honorable mention. The 2017 awards were also sponsored by Microsoft Research.


CRA's Award

URCS People | URCS Home Page