Sanjay Rajopadhye (http://www.cs.colostate.edu/~svr/CV/vita-feb17.pdf) is professor in the Computer Science and in the Electrical Departments at Colorado State University. He teaches CS560, “Foundations of Fine-grain Parallelism” (see http://www.cs.colostate.edu/~cs560/Fall2015 ) and “Parallel Programming,” on a regular basis. Some modules of this course will be drawn from CS475, and the others come from CS560.
Rajopadhye is one of the inventors of the polyhedral model. Spanning more than 30 years of theoretical, academic research, polyhedral compilation has become a mature technology today. The problem of automatic parallelization can today be solved for a class of loop programs called Affine Control Loops (ACLs). The technology to parallelize such programs/program-fragments is now incorporated into production compilers. There are numerous research tools, such as the PLUTO system from OSU, the dHPF project at Rice University, the PIPS project at ENSMP, the tools of the PARKAS group in INRIA, Paris, Loopo, and Chill. More importantly, the polyhedral model is now included in a number of production compilers. IBM’s XL compiler family now adopts this model as the intermediate representation for loops; the 4.4.0 release of gcc now includes this as part of the GRAPHITE project; LLVM uses this representation in the Polly set of tools; Reservoir Labs also uses it in their compilation engine, Par4All and Silkan, the commercial branch of PIPS also use this model.
In Rajopadhye’s research group Mélange, efforts for polyhedral compilation and analysis are embodied in AlphaZ, an open source system, developed using rigorous model driven software engineering (MDE) techniques that allow it to be cleanly extensible. In addition to the core technology for equational program analysis and transformation, it has tools for code generation, as well as tools to integrate the polyhedral kernel into complete applications through systematic wrapper generation. The code generators produce parallel, tiled shared memory (OpenMP) code, as well as parametrically tiled MPI code. There are tools to perform automatic complexity minimization, to serialize reductions, and a number of parallel schedulers, together with a formal verifier that checks the legality of a proposed transformation.
Dr. Ramakrishna Upadrasta graduated with a PhD from University of Paris-Sud, France, and INRIA, Paris, where he worked under Prof. Albert Cohen. His 2013 dissertation was titled "Sub-Polyhedral Compilation using (Unit-)Two-Variables-Per-Inequality Polyhedra",in which he addressed the problem of improvement of scalability of algorithms that are used in loop-parallelization. His thesis used techniques from polyhedral compilation, abstract interpretation, combinatorial optimization and graph theory.
Upadrasta has a M.S from Colorado State University, USA, an M.Tech in Computer Science from Indian Institute of Science (IISc), Bangalore and a B.E in Electrical and Electronics Engineering from Andhra University, Visakhapatnam. Earlier, he was a visiting scientist at IISc, a research engineer at INRIA, Paris, a research scholar at Lawrence Livermore National Laboratories, USA and a compiler engineer in Hewlett Packard.
Upadrasta has been at IIT Hyderabad (IITH) since March-2014. At IITH, Upadrasta’s “Scalable Compilers for Heterogeneous Architectures” group works on the LLVM compiler infrastructure as well as Polly that uses Polyhedral Compilation techniques for efficient code-generation for CPUs and GPUs. At IITH, Upadrasta regularly teaches undergraduate Compilers, and graduate level courses on Compiler