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

Muthu Manikandan Baskaran

dblp:99/5359 · DBLP profile ↗
← Back
17ranked-venue papers
8as first author
0since 2021 · last 2019
—ORCID · none

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

Systems, architecture and hardware · 13 · 7 first-authorSoftware engineering, systems software and programming languages · 5 · 2 first-authorHuman-computer interaction and ubiquitous computing · 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
4 papers
Parallel and multicore computing · 54% GPUs and heterogeneous computing · 37% High-performance computing · 9%
Software engineering, system software, and programming languages
3 papers
Compilers and program optimization · 100%

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

TopicWeightPapersLastEvidence papers
Compilers and program optimization › memory optimization
data movement optimization
0.222012
Automatic communication optimizations through memory reuse strategies · PPoPP 2012
Automatic data movement and computation mapping for multi-level parallel architectures with explicitly managed memories · PPoPP 2008
Compilers and program optimization › parallel program optimization
communication optimization
0.112012
Automatic communication optimizations through memory reuse strategies · PPoPP 2012
GPUs and heterogeneous computing › GPU memory
GPU memory hierarchy
0.112012
Automatic communication optimizations through memory reuse strategies · PPoPP 2012
Parallel and multicore computing › parallel programming models
automatic parallelization
0.112009
Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors · PPoPP 2009
Parallel and multicore computing
load balancing
0.112009
Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors · PPoPP 2009
Parallel and multicore computing › parallelizing compiler
polyhedral compilation
0.112009
Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors · PPoPP 2009
GPUs and heterogeneous computing
GPU programming
0.112008
Automatic data movement and computation mapping for multi-level parallel architectures with explicitly managed memories · PPoPP 2008
Parallel and multicore computing › parallel algorithms › parallel algorithm design
parallel algorithm mapping
0.112008
Automatic data movement and computation mapping for multi-level parallel architectures with explicitly managed memories · PPoPP 2008
Compilers and program optimization › parallelization
automatic parallelization
0.112007
Effective automatic parallelization of stencil computations · PLDI 2007
Compilers and program optimization
loop transformation
0.112007
Effective automatic parallelization of stencil computations · PLDI 2007
Compilers and program optimization
stencil computation
0.112007
Effective automatic parallelization of stencil computations · PLDI 2007
GPUs and heterogeneous computing
GPU computing
0.012012
Automatic communication optimizations through memory reuse strategies · PPoPP 2012
High-performance computing
stencil computation
0.012012
Automatic communication optimizations through memory reuse strategies · PPoPP 2012
Parallel and multicore computing › parallelization strategies
multi-level parallelism
0.012008
Automatic data movement and computation mapping for multi-level parallel architectures with explicitly managed memories · PPoPP 2008
High-performance computing
scientific computing
0.012007
Effective automatic parallelization of stencil computations · PLDI 2007

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

source-to-source compilation · 0.3automatic parallelization · 0.3computation mapping · 0.2automatic data movement · 0.2pipelining · 0.1loop tiling · 0.1polyhedral compilation · 0.1dynamic dependence extraction · 0.1
YearPublicationVenuePosition
2019 POSTER: Automatic Parallelization Targeting Asynchronous Task-Based Runtimes
abstract
In a post-Moore world, asynchronous task-based parallelism has become a popular paradigm for parallel programming. Auto-parallelizing compilers are also an active area of research, promising improved developer productivity and application performance. This work seeks to unify these efforts by delivering an end-to-end path for auto-parallelization through a generic runtime layer for asynchronous task-based systems. First, we extend R-Stream, an auto-parallelizing polyhedral compiler, to express task-based parallelism and data management for a broader class of task-based runtimes. We additionally introduce a generic runtime layer for asynchronous task-based parallelism, which provides an abstract target for the compiler backend. We implement this generic runtime layer using OpenMP for shared memory systems and Legion for distributed memory systems. Starting from sequential source, we obtain geometric mean speedups of 23.0x (OpenMP) and 9.5x (Legion) on a wide range of applications, from deep learning to scientific kernels.
Charles Jin, Muthu Manikandan Baskaran, Benoît Meister
PACT2
2019 Enhancing Network Visibility and Security through Tensor Analysis
Muthu Manikandan Baskaran, Thomas Henretty, James R. Ezick, Richard A. Lethin, David Bruns-Smith
Future Gener. Comput. Syst.1
2016 Scalable Hierarchical Polyhedral Compilation
abstract
Computers across the board, from embedded to future exascale computers, are consistently designed with deeper memory hierarchies. While this opens up exciting opportunities for improving software performance and energy efficiency, it also makes it increasingly difficult to efficiently exploit the hardware. Advanced compilation techniques are a possible solution to this difficult problem and, among them, the polyhedral compilation technology provides a pathway for performing advanced automatic parallelization and code transformations. However, the polyhedral model is also known for its poor scalability with respect to the number of dimensions in the polyhedra that are used for representing programs. Although current compilers can cope with such limitation when targeting shallow hierarchies, polyhedral optimizations often become intractable as soon as deeper hardware hierarchies are considered. We address this problem by introducing two new operators for polyhedral compilers: focalisation and defocalisation. When applied in the compilation flow, the new operators reduce the dimensionality of polyhedra, which drastically simplifies the mathematical problems solved during the compilation. We prove that the presented operators preserve the original program semantics, allowing them to be safely used in compilers. We implemented the operators in a production compiler, which drastically improved its performance and scalability when targeting deep hierarchies.
Benoît Pradelle, Benoît Meister, Muthu Manikandan Baskaran, Athanasios Konstantinidis 0001, Thomas Henretty, Richard A. Lethin
ICPP3
2015 Polyhedral user mapping and assistant visualizer tool for the r-stream auto-parallelizing compiler
abstract
Existing high-level, source-to-source compilers can accept input programs in a high-level language (e.g., C) and perform complex automatic parallelization and other mappings using various optimizations. These optimizations often require trade-offs and can benefit from the user's involvement in the process. However, because of the inherent complexity, the barrier to entry for new users of these high-level optimizing compilers can often be high. We propose visualization as an effective gateway for non-expert users to gain insight into the effects of parameter choices and so aid them in the selection of levels best suited to their specific optimization goals.
Eric Papenhausen, Bing Wang 0007, Harper Langston, Muthu Manikandan Baskaran, Thomas Henretty, Taku Izubuchi, Ann Johnson, Chulwoo Jung, Meifeng Lin, Benoît Meister, Klaus Mueller 0001, Richard A. Lethin
VISSOFT4
2014 Parallelizing and optimizing sparse tensor computations
abstract
Irregular computations over large-scale sparse data are prevalent in critical data applications and they have significant room for improvement on modern computer systems from the aspects of parallelism and data locality. We introduce new techniques to efficiently map large irregular computations with multi-dimensional sparse arrays (or sparse tensors) onto modern multi-core systems with non-uniform memory access (NUMA) behavior. We implement a static-cum-dynamic task scheduling scheme with low overhead for effective parallelization of sparse computations. We introduce locality-aware optimizations to the task scheduling mechanism that are driven by the sparse input data pattern. We evaluate our techniques on key sparse tensor decomposition methods that are widely used in areas such as data mining, graph analysis, and elsewhere. We achieve around 4-5x improvement in performance over existing parallel approaches and observe scalable parallel performance on modern multi-core systems with up to 32 processor cores.
Muthu Manikandan Baskaran, Benoît Meister, Richard A. Lethin
ICS1
2012 Automatic communication optimizations through memory reuse strategies
abstract
Modern parallel architectures are emerging with sophisticated hardware consisting of hierarchically placed parallel processors and memories. The properties of memories in a system vary wildly, not only quantitatively (size, latency, bandwidth, number of banks) but also qualitatively (scratchpad, cache). Along with the emergence of such architectures comes the need for effectively utilizing the parallel processors and properly managing data movement across memories to improve memory bandwidth and hide data transfer latency. In this paper, we describe some of the high-level optimizations that are targeted at the improvement of memory performance in the R-Stream compiler, a high-level source-to-source automatic parallelizing compiler. We direct our focus in this paper on optimizing communications (data transfers) by improving memory reuse at various levels of an explicit memory hierarchy. This general concept is well-suited to the hardware properties of GPGPUs, which is the architecture that we concentrate on for this paper. We apply our techniques and obtain performance improvement on various stencil kernels including an important iterative stencil kernel in seismic processing applications where the performance is comparable to that of the state-of-the-art implementation of the kernel by a CUDA expert.
Muthu Manikandan Baskaran, Nicolas Vasilache, Benoît Meister, Richard A. Lethin
PPoPP1
2010 Automatic C-to-CUDA Code Generation for Affine Programs
Muthu Manikandan Baskaran, J. Ramanujam, P. Sadayappan
CC1
2010 Parameterized tiling revisited
abstract
Tiling, a key transformation for optimizing programs, has been widely studied in literature. Parameterized tiled code is important for auto-tuning systems since they often execute a large number of runs with dynamically varied tile sizes. Previous work on tiled code generation has addressed parameterized tiling for the sequential context, and the parallel case with fixed compile-time constants for tile sizes. In this paper, we revisit the problem of generating tiled code using parametric tile sizes. We develop a systematic approach to formulate tiling transformations through manipulation of linear inequalities and develop a novel approach to overcoming the fundamental obstacle faced by previous approaches regarding generation of parallel parameterized tiled code. To the best of our knowledge, the approach proposed in this paper is the first compile-time solution to the problem of parallel parameterized code generation for affine imperfectly nested loops. Experimental results demonstrate the effectiveness of the implemented system.
Muthu Manikandan Baskaran, Albert Hartono, Sanket Tavarageri, Thomas Henretty, J. Ramanujam, P. Sadayappan
CGO1
2010 DynTile: Parametric tiled loop generation for parallel execution on multicore processors
abstract
Loop tiling is an important compiler transformation used for enhancing data locality and exploiting coarse-grained parallelism. Tiled codes in which tile sizes are runtime parameters - called parametrically-tiled codes - are important for empirical tuning systems like ATLAS. Some recent work has addressed the problem of generating sequential parametric tiled code. In this paper we describe DynTile, a system for transforming untiled sequential input C code containing affine imperfectly nested loops to parametrically tiled code for parallel execution on multicore processors. The effectiveness of the system is demonstrated using a number of benchmarks on an eight-core system.
Albert Hartono, Muthu Manikandan Baskaran, J. Ramanujam, P. Sadayappan
IPDPS2
2010 Optimal loop unrolling for GPGPU programs
abstract
Graphics Processing Units (GPUs) are massively parallel, many-core processors with tremendous computational power and very high memory bandwidth. With the advent of general purpose programming models such as NVIDIA's CUDA and the new standard OpenCL, general purpose programming using GPUs (GPGPU) has become very popular. However, the GPU architecture and programming model have brought along with it many new challenges and opportunities for compiler optimizations. One such classical optimization is loop unrolling. Current GPU compilers perform limited loop unrolling. In this paper, we attempt to understand the impact of loop unrolling on GPGPU programs. We develop a semi-automatic, compile-time approach for identifying optimal unroll factors for suitable loops in GPGPU programs. In addition, we propose techniques for reducing the number of unroll factors evaluated, based on the characteristics of the program being compiled and the device being compiled to. We use these techniques to evaluate the effect of loop unrolling on a range of GPGPU programs and show that we correctly identify the optimal unroll factors. The optimized versions run up to 70 percent faster than the unoptimized versions.
Giridhar Sreenivasa Murthy, Mahesh Ravishankar, Muthu Manikandan Baskaran, P. Sadayappan
IPDPS3
2009 Parametric multi-level tiling of imperfectly nested loops
abstract
Tiling is a crucial loop transformation for generating high performance code on modern architectures. Efficient generation of multi-level tiled code is essential for maximizing data reuse in systems with deep memory hierarchies. Tiled loops with parametric tile sizes (not compile-time constants) facilitate runtime feedback and dynamic optimizations used in iterative compilation and automatic tuning. Previous parametric multi-level tiling approaches have been restricted to perfectly nested loops, where all assignment statements are contained inside the innermost loop of a loop nest. Previous solutions to tiling for imperfect loop nests have only handled fixed tile sizes. In this paper, we present an approach to parametric multi-level tiling of imperfectly nested loops. The tiling technique generates loops that iterate over full rectangular tiles, making them amenable to compiler optimizations such as register tiling. Experimental results using a number of computational benchmarks demonstrate the effectiveness of the developed tiling approach.
Albert Hartono, Muthu Manikandan Baskaran, Cédric Bastoul, Albert Cohen 0001, Sriram Krishnamoorthy, Boyana Norris, J. Ramanujam, P. Sadayappan
ICS2
2009 Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors
abstract
Recent advances in polyhedral compilation technology have made it feasible to automatically transform affine sequential loop nests for tiled parallel execution on multi-core processors. However, for multi-statement input programs with statements of different dimensionalities, such as Cholesky or LU decomposition, the parallel tiled code generated by existing automatic parallelization approaches may suffer from significant load imbalance, resulting in poor scalability on multi-core systems. In this paper, we develop a completely automatic parallelization approach for transforming input affine sequential codes into efficient parallel codes that can be executed on a multi-core system in a load-balanced manner. In our approach, we employ a compile-time technique that enables dynamic extraction of inter-tile dependences at run-time, and dynamic scheduling of the parallel tiles on the processor cores for improved scalable execution. Our approach obviates the need for programmer intervention and re-writing of existing algorithms for efficient parallel execution on multi-cores. We demonstrate the usefulness of our approach through comparisons using linear algebra computations: LU and Cholesky decomposition.
Muthu Manikandan Baskaran, Nagavijayalakshmi Vydyanathan, Uday Bondhugula, J. Ramanujam, Atanas Rountev, P. Sadayappan
PPoPP1
2008 Automatic Transformations for Communication-Minimized Parallelization and Locality Optimization in the Polyhedral Model
Uday Bondhugula, Muthu Manikandan Baskaran, Sriram Krishnamoorthy, J. Ramanujam, Atanas Rountev, P. Sadayappan
CC2
2008 A compiler framework for optimization of affine loop nests for gpgpus
abstract
GPUs are a class of specialized parallel architectures with tremendous computational power. The new Compute Unified Device Architecture (CUDA) programming model from NVIDIA facilitates programming of general purpose applications on their GPUs. However, manual development of high-performance parallel code for GPUs is still very challenging. In this paper, a number of issues are addressed towards the goal of developing a compiler framework for automatic parallelization and performance optimization of affine loop nests on GPGPUs: 1) approach to program transformation for efficient data access from GPU global memory, using a polyhedral compiler model of data dependence abstraction and program transformation; 2) determination of optimal padding factors for conflict-minimal data access from GPU shared memory; and 3) model-driven empirical search to determine optimal parameters for unrolling and tiling. Experimental results on a number of kernels demonstrate the effectiveness of the compiler optimization approaches developed.
Muthu Manikandan Baskaran, Uday Bondhugula, Sriram Krishnamoorthy, J. Ramanujam, Atanas Rountev, P. Sadayappan
ICS1
2008 Towards effective automatic parallelization for multicore systems
abstract
The ubiquity of multicore processors in commodity computing systems has raised a significant programming challenge for their effective use. An attractive but challenging approach is automatic parallelization of sequential codes. Although virtually all production C compilers have automatic shared-memory parallelization capability, it is rarely used in practice by application developers because of limited effectiveness. In this paper we describe our recent efforts towards developing an effective automatic parallelization system that uses a polyhedral model for data dependences and program transformations.
Uday Bondhugula, Muthu Manikandan Baskaran, Albert Hartono, Sriram Krishnamoorthy, J. Ramanujam, Atanas Rountev, P. Sadayappan
IPDPS2
2008 Automatic data movement and computation mapping for multi-level parallel architectures with explicitly managed memories
abstract
Several parallel architectures such as GPUs and the Cell processor have fast explicitly managed on-chip memories, in addition to slow off-chip memory. They also have very high computational power with multiple levels of parallelism. A significant challenge in programming these architectures is to effectively exploit the parallelism available in the architecture and manage the fast memories to maximize performance.
Muthu Manikandan Baskaran, Uday Bondhugula, Sriram Krishnamoorthy, J. Ramanujam, Atanas Rountev, P. Sadayappan
PPoPP1
2007 Effective automatic parallelization of stencil computations
abstract
Performance optimization of stencil computations has been widely studied in the literature, since they occur in many computationally intensive scientific and engineering applications. Compiler frameworks have also been developed that can transform sequential stencil codes for optimization of data locality and parallelism. However, loop skewing is typically required in order to tile stencil codes along the time dimension, resulting in load imbalance in pipelined parallel execution of the tiles. In this paper, we develop an approach for automatic parallelization of stencil codes, that explicitly addresses the issue of load-balanced execution of tiles. Experimental results are provided that demonstrate the effectiveness of the approach.
Sriram Krishnamoorthy, Muthu Manikandan Baskaran, Uday Bondhugula, J. Ramanujam, Atanas Rountev, P. Sadayappan
PLDI2