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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Max Grossman

dblp:27/7411 · DBLP profile ↗
← Back
8ranked-venue papers
4as first author
0since 2021 · last 2018
—ORCID · none

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

Systems, architecture and hardware · 7 · 4 first-authorSoftware engineering, systems software and programming languages · 1

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
3 papers
Cloud and datacenter computing · 25% Distributed systems · 25% Reconfigurable computing and FPGAs · 14%
Software engineering, system software, and programming languages
1 paper
Concurrent programming · 94% Program verification · 6%

Topics — the 14 heaviest of 16, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Cloud and datacenter computing › datacenter architecture
datacenter acceleration
0.312018
S2FA: an accelerator automation framework for heterogeneous computing in datacenters · DAC 2018
Concurrent programming
concurrency bugs
0.312017
Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017
Concurrent programming › concurrency bugs
data races
0.312017
Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017
Concurrent programming › concurrency bugs
data race freedom
0.312017
Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017
Concurrent programming › concurrency correctness
deadlock freedom
0.312017
Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017
Concurrent programming › parallel programming models
futures
0.312017
Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017
Cloud and datacenter computing › cluster resource management and scheduling
cluster resource management
0.212016
SWAT: A Programmable, In-Memory, Distributed, High-Performance Computing Platform · HPDC 2016
Distributed systems
distributed machine learning
0.212016
HadoopCL2: Motivating the Design of a Distributed, Heterogeneous Programming System With Machine-Learning Applications · IEEE Trans. Parallel Distributed Syst. 2016
Distributed systems › middleware
distributed programming systems
0.212016
HadoopCL2: Motivating the Design of a Distributed, Heterogeneous Programming System With Machine-Learning Applications · IEEE Trans. Parallel Distributed Syst. 2016
Memory systems
in-memory computing
0.212016
SWAT: A Programmable, In-Memory, Distributed, High-Performance Computing Platform · HPDC 2016
Parallel and multicore computing › data-parallel programming
mapreduce
0.212016
HadoopCL2: Motivating the Design of a Distributed, Heterogeneous Programming System With Machine-Learning Applications · IEEE Trans. Parallel Distributed Syst. 2016
Program verification › proof assistants
coq
0.112017
Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017
Distributed systems › distributed programming
distributed programming models
0.112016
SWAT: A Programmable, In-Memory, Distributed, High-Performance Computing Platform · HPDC 2016
GPUs and heterogeneous computing
heterogeneous parallel programming
0.112016
HadoopCL2: Motivating the Design of a Distributed, Heterogeneous Programming System With Machine-Learning Applications · IEEE Trans. Parallel Distributed Syst. 2016

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

high-level synthesis · 0.3design space exploration · 0.3formal proof · 0.3cycle detection · 0.3coq · 0.3
YearPublicationVenuePosition
2018 S2FA: an accelerator automation framework for heterogeneous computing in datacenters
abstract
Big data analytics using the JVM-based MapReduce framework has become a popular approach to address the explosive growth of data sizes. Adopting FPGAs in datacenters as accelerators to improve performance and energy efficiency also attracts increasing attention. However, the integration of FPGAs into such JVM-based frameworks raises the challenge of poor programmability. Programmers must not only rewrite Java/Scala programs to C/C++ or OpenCL, but, to achieve high performance, they must also take into consideration the intricacies of FPGAs. To address this challenge, we present S2FA (Spark-to-FPGA-Accelerator), an automation framework that generates FPGA accelerator designs from Apache Spark programs written in Scala. S2FA bridges the semantic gap between object-oriented languages and HLS C while achieving high performance using learning-based design space exploration. Evaluation results show that our generated FPGA designs achieve up to 49.9× performance improvement for several machine learning applications compared to their corresponding implementations on the JVM.
Cody Hao Yu, Peng Wei 0004, Max Grossman, Peng Zhang 0007, Vivek Sarkar, Jason Cong
DAC3
2017 Pedagogy and tools for teaching parallel computing at the sophomore undergraduate level
Max Grossman, Maha Aziz, Heng Chi, Anant Tibrewal, Shams Mahmood Imam, Vivek Sarkar
J. Parallel Distributed Comput.1
2017 Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers
abstract
Futures are an elegant approach to expressing parallelism in functional programs. However, combining futures with imperative programming (as in C++ or in Java) can lead to pernicious bugs in the form of data races and deadlocks, as a consequence of uncontrolled data flow through mutable shared memory. In this paper we introduce the Known Joins (KJ) property for parallel programs with futures, and relate it to the Deadlock Freedom (DF) and the Data-Race Freedom (DRF) properties. Our paper offers two key theoretical results: 1) DRF implies KJ, and 2) KJ implies DF. These results show that data-race freedom is sufficient to guarantee deadlock freedom in programs with futures that only manipulate unsynchronized shared variables. To the best of our knowledge, these are the first theoretical results to establish sufficient conditions for deadlock freedom in imperative parallel programs with futures, and to characterize the subset of data races that can trigger deadlocks (those that violate the KJ property). From result 2), we developed a tool that avoids deadlocks in linear time and space when KJ holds, i.e., when there are no data races among references to futures. When KJ fails, the tool reports the data race and optionally falls back to a standard deadlock avoidance algorithm by cycle detection. Our tool verified a dataset of ∼2,300 student’s homework solutions and found one deadlocked program. The performance results obtained from our tool are very encouraging: a maximum slowdown of 1.06× on a 16-core machine, always outperforming deadlock avoidance via cycle-detection. Proofs of the two main results were formalized using the Coq proof assistant.
Tiago Cogumbreiro, Rishi Surendran, Francisco Martins, Vivek Sarkar, Vasco Thudichum Vasconcelos, Max Grossman
Proc. ACM Program. Lang.6
2016 SWAT: A Programmable, In-Memory, Distributed, High-Performance Computing Platform
abstract
The field of data analytics is currently going through a renaissance as a result of ever-increasing dataset sizes, the value of the models that can be trained from those datasets, and a surge in flexible, distributed programming models. In particular, the Apache Hadoop and Spark programming systems, as well as their supporting projects (e.g. HDFS, SparkSQL), have greatly simplified the analysis and transformation of datasets whose size exceeds the capacity of a single machine. While these programming models facilitate the use of distributed systems to analyze large datasets, they have been plagued by performance issues. The I/O performance bottlenecks of Hadoop are partially responsible for the creation of Spark. Performance bottlenecks in Spark due to the JVM object model, garbage collection, interpreted/managed execution, and other abstraction layers are responsible for the creation of additional optimization layers, such as Project Tungsten. Indeed, the Project Tungsten issue tracker states that the "majority of Spark workloads are not bottlenecked by I/O or network, but rather CPU and memory".
Max Grossman, Vivek Sarkar
HPDC1
2016 Efficient Checkpointing of Multi-threaded Applications as a Tool for Debugging, Performance Tuning, and Resiliency
abstract
Past work on application checkpointing systems has either focused on enabling application resiliency or as a tool for debugging (as in record-replay literature). Each of these use cases for checkpoints places different constraints on the constructed checkpointing system. When used for resiliency, checkpointing systems must minimize their interference with the running application. When used for record-replay and numerical debugging, checkpointing systems instead must focus on correlating the contents of a checkpoint to user-visible data structures in order to aid in the debugging process. Past literature has ignored the use of checkpoints in application performance tuning. While existing performance profiling tools enable the identification of hotspots in an application, creating full application checkpoints immediately prior to a hotspot enables rapid iteration on the performance of that hotspot. In this paper, we present a checkpointing system for all three of these use cases: resiliency, application debugging, and application performance tuning. We present a novel checkpointing framework that creates efficient checkpoints of multithreaded C programs using a hybrid compile-time and runtime approach. This approach reduces the framework's dependency on platform-specific features and improves its efficiency using insights from static and dynamic application analysis. Across a wide range of benchmarks we demonstrate that our framework incurs low overheads: ~5% on average and in many cases less than 1%.
Max Grossman, Vivek Sarkar
IPDPS1
2016 HadoopCL2: Motivating the Design of a Distributed, Heterogeneous Programming System With Machine-Learning Applications
abstract
Machine learning (ML) algorithms have garnered increased interest as they demonstrate improved ability to extract meaningful trends from large, diverse, and noisy data sets. While research is advancing the state-of-the-art in ML algorithms, it is difficult to drastically improve the real-world performance of these algorithms. Porting new and existing algorithms from single-node systems to multi-node clusters, or from architecturally homogeneous systems to heterogeneous systems, is a promising optimization technique. However, performing optimized ports is challenging for domain experts who may lack experience in distributed and heterogeneous software development. This work explores how challenges in ML application development on heterogeneous, distributed systems shaped the development of the HadoopCL2 (HCL2) programming system. ML applications guide this work because they exhibit features that make application development difficult: large & diverse datasets, complex algorithms, and the need for domain-specific knowledge. The goal of this work is a general, MapReduce programming system that outperforms existing programming systems. This work evaluates the performance and portability of HCL2 against five ML applications from the Mahout ML framework on two hardware platforms. HCL2 demonstrates speedups of greater than 20x relative to Mahout for three computationally heavy algorithms and maintains minor performance improvements for two I/O bound algorithms.
Max Grossman, Maurício Breternitz, Vivek Sarkar
IEEE Trans. Parallel Distributed Syst.1
2013 Integrating Asynchronous Task Parallelism with MPI
abstract
Effective combination of inter-node and intra-node parallelism is recognized to be a major challenge for future extreme-scale systems. Many researchers have demonstrated the potential benefits of combining both levels of parallelism, including increased communication-computation overlap, improved memory utilization, and effective use of accelerators. However, current “hybrid programming” approaches often require significant rewrites of application code and assume a high level of programmer expertise. Dynamic task parallelism has been widely regarded as a programming model that combines the best of performance and programmability for shared-memory programs. For distributed-memory programs, most users rely on efficient implementations of MPI. In this paper, we propose HCMPI (Habanero-C MPI), an integration of the Habanero-C dynamic task-parallel programming model with the widely used MPI message-passing interface. All MPI calls are treated as asynchronous tasks in this model, thereby enabling unified handling of messages and tasking constructs. For programmers unfamiliar with MPI, we introduce distributed data-driven futures (DDDFs), a new data-flow programming model that seamlessly integrates intra-node and inter-node data-flow parallelism without requiring any knowledge of MPI. Our novel runtime design for HCMPI and DDDFs uses a combination of dedicated communication and computation specific worker threads. We evaluate our approach on a set of micro-benchmarks as well as larger applications and demonstrate better scalability compared to the most efficient MPI implementations, while offering a unified programming model to integrate asynchronous task parallelism with distributed-memory parallelism.
Sanjay Chatterjee, Sagnak Tasirlar, Zoran Budimlic, Vincent Cavé, Milind Chabbi, Max Grossman, Vivek Sarkar, Yonghong Yan 0001
IPDPS6
2009 JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA
Yonghong Yan 0001, Max Grossman, Vivek Sarkar
Euro-Par2