Rice
FIS

FIS image header
  •  
  •  
  •  
  •  
  •  
Download 
Scholarly Interest Report
         
Vivek Sarkar
Professor
E. D. Butcher Chair in Engineering and Professor of Computer Science
 
e-mail:vsarkar@rice.edu
 
  • B.Tech. Electrical Engineering (1981) Indian Institute of Technology, Kanpur, India
  • M.S. Computer Science (1982) University of Wisconsin-Madison, Madison, Wisconsin
  • Ph.D. Computer Systems Laboratory (1987) Stanford University, Palo Alto, California
 
Primary Department
   Department of Computer Science
Picture
 
Websites
 Personal Homepage
 
Research Areas
 multicore software, programming languages, optimizing & parallel compilers, virtual machines & managed runtimes, program analysis
 
Habanero Multicore Software research project
 The computer industry is at a major crossroads. Historically, single-core architectures have delivered sustained performance improvements at an exponential rate over multiple generations, and sequential programming languages and compilers have been able to pass these performance increases on to a wide range of applications. However, this is no longer the case due to current hardware trends and power efficiency limits. Instead of building processors with faster clock speeds, all computers--- embedded, mainstream, and high-end --- are being built using chips with an increasing number of processor cores, with little or no increase in clock speed per core. This trend poses a tremendous challenge for software enablement on future systems as the number of cores per socket continues to grow, and the cores become more heterogeneous.

The Habanero project at Rice University (http://habanero.rice.edu) was initiated in Fall 2007 to address the multicore software challenge by developing new programming technologies --- languages, compilers, managed runtimes, concurrency libraries, and tools --- that support portable parallel abstractions for future multicore hardware with high productivity and high performance. Our goal is to ensure that future software rewrites are done on software platforms that enable application developers to reuse their investment across multiple generations of homogeneous and heterogeneous multicore hardware. We also envision broader impact of this research including: updating the foundations of parallel software in introductory Computer Science courses, building an open source testbed to grow the ecosystem of researchers in the parallel software area, and using our research infrastructure as the basis for building reference implementations of future industry standards.

The Habanero team is engaged in research on the following topics to realize the vision of creating portable parallel abstractions for future multicore hardware with high productivity and high performance:

1) Language research
* Explicit parallelism: portable constructs for homogeneous & heterogeneous multicore
* Implicit deterministic parallelism: array views, single-assignment constructs
* Implicit non-deterministic parallelism: unordered iterators, partially ordered statement blocks
* Builds on our experiences with the X10, CAF, HPF, Matlab D, MetaOCaml, Fortran 90, and Sisal languages

2) Compiler research
* New Parallel Intermediate Representation (PIR)
* Analysis and transformation framework for the PIR, including automatic parallelization
* Optimization of high-level arrays and iterators
* Optimization of synchronization, data transfer, and transactional memory operations
* Code partitioning for accelerators
* Builds on our experiences with the D System, Massively Scalar, Telescoping Languages Framework, ASTI, and PTRAN research compilers

3) Virtual machine research
* VM support for work-stealing scheduling algorithms with extensions for places, transactions, task groups
* Integration and exploitation of lightweight profiling in VM scheduler and memory management system
* Builds on our experiences with the Jikes Research Virtual Machine

4) Concurrency library
* New nonblocking data structures
* Fine-grained producer-consumer synchronization
* Efficient software transactional memory libraries
* Builds on our experiences with the java.util.concurrent and the DSTM2 libraries

5) Toolkit research
* Program analysis for common parallel software errors
* Performance attribution of shared code regions (loops, procedure calls) using static and dynamic calling context
* Builds on our experiences with the Rice HPCToolkit, Eclipse Parallel Tools Platform, and DrJava projects.


 
Teaching Areas
 parallel computing, heterogeneous processors
 
Selected Publications
 Refereed articles
 

Alina Sbirlea, Louis-Noel Pouchet, Vivek Sarkar "DFGR: an Intermediate Graph Representation for Macro-Data ow Programs." Fourth Workshop on Data ow Execution Models for Extreme Scale Computing (DFM 2014), co-located with PACT 2014 (August 2014)

 
 

Jun Shirako, Louis-Noel Pouchet, Vivek Sarkar. "Oil and Water Can Mix: An Integration of Polyhedral and AST-based Transformations." The Conference on High Performance Computing, Networking, Storage and Analysis (SC'14),

 
 

Rishi Surendran, Raghavan Raman, Swarat Chaudhuri, John Mellor-Crummey, Vivek Sarkar "Test-Driven Repair of Data Races in Structured Parallel Programs." 35th ACM Conference on Programming Language Design and Implementation (PLDI)

 
 

Rishi Surendran, Rajkishore Barik, Jisheng Zhao, Vivek Sarkar "Inter-iteration Scalar Replacement Using Array SSA Form." The 23rd International Conference on Compiler Construction (CC 2014)

 
 

Shams Imam, Vivek Sarkar "Habanero-Java Library: a Java 8 Framework for Multicore Programming."  (September 2014)

 
 

Shams Imam, Vivek Sarkar "A Case for Cooperative Scheduling in X10's Managed Runtime.." The 2014 X10 Workshop (X10'14), co-located with PLDI'14 (June 2014)

 
 

Shams Imam, Vivek Sarkar "Cooperative Scheduling of Parallel Tasks with General Synchronization Patterns." 28th European Conference on Object-Oriented Programming (July 2014)

 
 

Shams Imam, Vivek Sarkar "Savina - An Actor Benchmark Suite. ." 4th International Workshop on Programming based on Actors, Agents, and Decentralized Control (AGERE! 2014), co- located with OOPSLA 2014, (October 2014)

 
 

Shams Imam, Vivek Sarkar "Selectors: Actors with Multiple Guarded Mailboxes." 4th International Workshop on Programming based on Actors, Agents, and Decentralized Control (AGERE! 2014), co-located with OOPSLA 2014 (October 2014)

 
 

Shams Imam, Vivek Sarkar, David Leibs, Peter B. Kessler "Exploiting Implicit Parallelism in Dynamic Array Programming Languages."  (June 2014)

 
 

Vivek Kumar, Yili Zheng, Vincent Cave, Zoran Budimlic, Vivek Sarkar. "HabaneroUPC++: a Compiler-free PGAS Library." 8th International Conference on Partitioned Global Address Space Programming Models (PGAS14), (October 2014.)

 
 

Speculative Execution of Parallel Programs with Precise Exception Semantics on GPUs.
Akihiro Hayashi, Max Grossman, Jisheng Zhao, Jun Shirako, Vivek Sarkar. The 26th International
Workshop on Languages and Compilers for Parallel Computing (LCPC), September 2013.

 
 

Compiler-Driven Data Layout Transformation for Heterogeneous Platforms. Deepak Majeti,
Rajkishore Barik, Jisheng Zhao, Vivek Sarkar andMax Grossman. The International Workshop
on Algorithms, Models and Tools for Parallel Computing on Heterogeneous Platforms (HeteroPar’2013),
August 2013.

 
 

The Flexible Preconditions Model for Macro-Dataflow Execution. Drago Sbrlea, Alina Sbrlea,
Kyle B. Wheeler, Vivek Sarkar. The 3rd Data-Flow Workshop on Execution Models for
Extreme Scale Computing (DFM), September 2013

 
 

Expressing DOACROSS Loop Dependencies in OpenMP. Jun Shirako, Priya Unnikrishnan,
Sanjay Chatterjee, Kelvin Li, Vivek Sarkar. 9th International Workshop on OpenMP (IWOMP),
September 2013

 
 

Finish Accumulators: a Deterministic Reduction Construct for Dynamic Task Parallelism.
Jun Shirako, Vincent Cave, Jisheng Zhao, Vivek Sarkar. The 4th Workshop on Determinism
and Correctness in Parallel Programming (WoDet), March 2013.

 
 

Oil andWater can mix! Experiences with integrating Polyhedral and AST-based Transformations.
Jun Shirako, Vivek Sarkar. 17th Workshop on Compilers for Parallel Programming (CPC),
July 2013.

 
 

HadoopCL:MapReduce on Distributed Heterogeneous Platforms Through Seamless Integration
of Hadoop and OpenCL.Max Grossman, Mauricio Breternitz, Vivek Sarkar. 2013 International
Workshop on High Performance Data Intensive Computing (HPDIC2013), co-located with
IEEE IPDPS 2013, May 2013

 
 Articles
 

Software Challenges in Extreme Scale Systems. V. Sarkar, W. Harrod, A.E. Snavely. SciDAC Review Special Issue on Advanced Computing: The Roadmap to Exascale, pp. 60-65, January 2010.

 
 

Satish Chandra, Vijay Saraswat, Vivek Sarkar, Ras Bodik "Type Inference for Locality Analysis of Distributed Data Structures." Proceedings of the 2008 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2008/2)

 
 

B. Alpern, S. Augart, S.M. Blackburn, M. Butrico, A. Cocchi, P. Cheng, J. Dolby, S. Fink, D. Grove, M. Hind, K.S. McKinley, M. Mergen, J.E.B. Moss, T. Ngo, V. Sarkar, M. Trapp "The Jikes Virtual Machine Project: Building an Open-Source Research Community." IBM Systems Journal Special Issue on Open Source Software, 44:2 (2005/6)

 
 Refereed conference papers
 

Accelerating Habanero-Java Programs with OpenCL Generation. Akihiro Hayashi, Max
Grossman, Jisheng Zhao, Jun Shirako, Vivek Sarkar. 10th International Conference on the
Principles and Practice of Programming in Java (PPPJ), September 2013

 
 

Isolation for Nested Task Parallelism. Jisheng Zhao, Roberto Lublinerman, Zoran Budimlic,
Swarat Chaudhuri, Vivek Sarkar. The 29th International Conference on the Object-Oriented
Programming, System, Languages and Application (OOPSLA), October 2013

 
 

A Transformation Framework for Optimizing Task-Parallel Programs. Krishna Nandivada,
Jun Shirako, Jisheng Zhao, Vivek Sarkar. ACM Transactions on Programming Languages
and Systems (TOPLAS), Volume 35 Issue 1, April 2013

 
 

Interprocedural Strength Reduction of Critical Sections in Explicitly-Parallel Programs. Raj
Barik, Jisheng Zhao, Vivek Sarkar. Proceedings of the 22nd International Conference on
Parallel Architectures and Compilation Techniques (PACT), September 2013

 
 

Integrating Asynchronous Task Parallelism with MPI. Sanjay Chatterjee, Sagnak Tasirlar,
Zoran Budimlic, Vincent Cave, Milind Chabbi, Max Grossman, Vivek Sarkar. 27th IEEE
International Parallel and Distributed Processing Symposium (IPDPS), April 2013

 
 

Mapping a Data-Flow Programming Model onto Heterogeneous Platforms. Alina Sbirlea, Yi Zou, Zoran Budimlic, Jason Cong, Vivek Sarkar. Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES), June 2012. 

 
 

Folding of Tagged Single Assignment Values for Memory-Efficient Parallelism. Dragos Sbirlea, Kathleen Knobe, Vivek Sarkar. International European Conference on Parallel and Distributed Computing (Euro-Par), August 2012. 

 
 

Practical Permissions for Race-Free Parallelism. Edwin Westbrook, Jisheng Zhao, Zoran Budimlic, Vivek Sarkar. 26th European Conference on Object-Oriented Programming (ECOOP), June 2012.

 
 

Analytical Bounds for Optimal Tile Size Selection. Jun Shirako, Kamal Sharma, Naznin Fauzia, Louis-Noel Pouchet, J. Ramanujam, P. Sadayappan, Vivek Sarkar. Proceedings of the 2012 International Conference on Compiler Construction (CC 2012), April 2012.

 
 

A Practical Approach to DOACROSS Parallelization. Priya Unnikrishnan, Jun Shirako, Kit Barton, Sanjay Chatterjee, Raul Silvera, Vivek Sarkar. International European Conference on Parallel and Distributed Computing (Euro-Par), August 2012. 

 
 

A Practical Approach to DOACROSS Parallelization. Priya Unnikrishnan, Jun Shirako, Kit Barton, Sanjay Chatterjee, Raul Silvera, Vivek Sarkar. International European Conference on Parallel and Distributed Computing (Euro-Par), August 2012. 

 
 

Scalable and Precise Dynamic Datarace Detection for Structured Parallelism. Raghavan Raman, Jisheng Zhao, Vivek Sarkar, Martin Vechev, Eran Yahav. Proceedings of 2012 ACM Conference on Programming Language Design and Implementation (PLDI), June 2012. 

 
 

Habanero-Scala: Async-Finish Programming in Scala. Shams Imam, Vivek Sarkar. The Third Scala Workshop (Scala Days 2012), April 2012. 

 
 

Integrating Task Parallelism with Actors. Shams Imam, Vivek Sarkar. SPLASH Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2012. 

 
 

Design, Verification and Applications of a New Read-Write Lock Algorithm. Jun Shirako, Nick Vrvilo, Eric G. Mercer, Vivek Sarkar. 24th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), June 2012. 

 
 

A Study of a Software Cache Implementation of the OpenMP Memory Model for Multicore and Manycore Architectures. Chen Chen, Joseph B. Manzano, Ge Gan, Guang R. Gao, Vivek Sarkar. Proceedings of Euro-Par 2010, August 2010.

 
 

Reducing Task Creation and Termination Overhead in Explicitly Parallel Programs. Jisheng Zhao, Jun Shirako, Krishna V. Nandivada, Vivek Sarkar. The Nineteenth International Conference on Parallel Architectures and Compilation Techniques (PACT), September 2010.

 
 

Hierarchical Phasers for Scalable Synchronization and Reduction. Jun Shirako, Vivek Sarkar. 24th IEEE International Parallel and Distributed Processing Symposium (IPDPS). April 2010.

 
 

Verifying Determinism of Structured Parallel Programs. Martin Vechev, Eran Yahav, Raghavan Raman, Vivek Sarkar. Proceedings of the 17th International Statical Analysis Symposium (SAS 2010), September 2010. 

 
 

Efficient Data Race Detection for Async-Finish Parallelism. Raghavan Raman, Jisheng Zhao, Vivek Sarkar, Martin Vechev, Eran Yahav. Proceedings of the 1st International Conference on Runtime Verification (RV '10), November 2010. Recipient of Best Paper Award.

 
 

Efficient Selection of Vector Instructions using Dynamic Programming. Rajkishore Barik, Jisheng Zhao, Vivek Sarkar. MICRO-43, December 2010.

 
 

SLAW: a Scalable Locality-aware Adaptive Work-stealing Scheduler. Yi Guo, Jisheng Zhao, Vincent Cave, Vivek Sarkar. 24th IEEE International Parallel and Distributed Processing Symposium (IPDPS), April 2010.

 
 

Phase Accumulations: a New Reduction Construct for Dynamic Parallelism. June Shirako, David Peixotto, Vivek Sarkar, William Scherer. 23rd IEEE International Parallel and Distributed Processing Symposium (IPDPS), May 2009.

 
 

Chunking Parallel Loops in the Presence of Synchronization. Jun Shirako, Jisheng Zhao, V. Krishna Nandivada, Vivek Sarkar. Proceedings of the 2009 ACM International Conference on Supercomputing (ICS), June 2009.

 
 

Interprocedural Load Elimination for Dynamic Optimization of Parallel Programs. Rajkishore Barik, Vivek Sarkar. The Eighteenth International Conference on Parallel Architecture and Compilation Techniques (PACT), September 2009.

 
 

Work-First and Help-First Scheduling Policies for Terminally Strict Parallel Programs. Yi Guo, Rajkishore Barik, Raghavan Raman, Vivek Sarkar. 23rd IEEE International Parallel and Distributed Processing Symposium (IPDPS), June 2009.

 
 

JCUDA: a Programmer-Friendly Interface for Accelerating Java Programs with CUDA. Yonghong Yan, Max Grossman, Vivek Sarkar. Proceedings of Euro-Par 2009, August 2009.

 
 

Jun Shirako, David Peixotto, Vivek Sarkar, William Scherer "Phasers: a Unied Deadlock-Free Construct for Collective and Point-to-point Synchronization."  (June 2008)

 
 

Mackale Joyner, Zoran Budimlic, Vivek Sarkar, Rui Zhange "Array Optimizations for Parallel Implementations of High Productivity Languages."  (April 2008)

 
 

Type Interface for Locally Analysis of Distributed Data Structures. Satish Chandra, Vijay Saraswat, Vivek Sarkar, Ras Bodik. Proceedings of the 2008 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), February 2008. 

 
 

Jun Shirako, Hironori Kasahara, Vivek Sarkar "Language Extensions in Support of Compiler Parallelization." Proceedings of the Twentieth Workshop on Languages and Compilers for Parallel Computing (2007/10)

 
 

Mackale Joyner, Zoran Budimlic, Vivek Sarkar "Optimizing Array Accesses in High Productivity Languages." Proceedings of the 2007 High Performance Computation Conference (2007/9)

 
 

Matthew Harren, Mukund Raghavachari, Oded Shmueli, Michael Burke, Rajesh Bordawekar, Igor Pechtachanski, Vivek Sarkar "XJ: Facilitating XML Processing in Java." Proceedings of the Fourteenth International World Wide Web Conference (2005/5)

 
 

Phillipe Charles, Christopher Donawa, Kemal Ebcioglu, Christian Grothoff, Allan Kielstra, Christoph von Praun, Vijay Saraswat, Vivek Sarkar "X10: An Object-Oriented Approach to Non-Uniform Cluster Computing." Proceedings of the ACM 2005 OOPSLA Conference, 17(5:6) (2005/4)

 
 

Rajkishore Barik, Vivek Sarkar "Enhanced Bitwdth-Aware Register Allocation." Proceedings of the ACM 2005 OOPSLA Conference (2005/3)

 
 

Rajkishore Barik, Vivek Sarkar "Enhanced Bitwidth-Aware Register Allocation." Proceedings of the 2006 International Conference on Compiler Construction (2006/3)

 
 

Shivali Agarwal, Rajkishore Barik, Dan Bonachea, Vivek Sarkar, Rudrapatna Shyamasundar, Katherine Yelick "Deadlock-Free Scheduling of X10 Computations with Bounded Resources." Proceedings of the 19th Annual ACM Symposium on Parallelism in Algorithms and Architectures (2007/6)

 
 

Shivali Agarwal, Rajkishore Barik, Vivek Sarkar, Rudrapatna Shyamasundar "May-Happen-in-Parallel Analysis of X10 programs." Proceedings of the 2007 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2007/3)

 
 

Shivali Agarwal, Rajkishore Barik, Vivek Sarkar, Rudrapatna Shyamasundar "May-Happen-in-Parallel Analysis of X10 Programs." Proceedings of the 2007 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2007/3)

 
 

Vivek Sarkar, Mukund Raghavachari "The Role of Programming Languages in Future Data-Centric and Net-Centric Applications." Proceedings of the Third International Conference on Distributed Computing and Internet Technology (2006/12)

 
 

Vivek Sarkar, Rajkishore Barik "Extended Linear Scan: An Alternate Foundation for Global Register Allocation." Proceedings of the 2007 International Conference on Compiler Construction (2007/3)

 
 Conference papers
 

CnC-CUDA: Declarative Programming for GPU's. Max Grossman, Alina Simion, Zoran Budimlic, Vivek Sarkar. 2010 Workshop on Languages and Compilers for Parallel Computing (LCPC), October 2010. 

 
 

Comparing the Usability of Library vs. Language Approaches to Task Parallelism. Vincent Cave, Zoran Budimlic, Vivek Sarkar. Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), co-located with SLASH 2010, October 2010. 

 
 

Hierarchical Place Trees: A Portable Abstraction for Task Parallelism and Data Movement. Yonghong Yan, Jisheng Zhao, Yi Guo, Vivek Sarkar. Proceedings of the 22nd Workshop on Languages and Compilers for Parallel Computing (LCPC), October 2010.

 
 

Modeling and Mapping for Customizable Domain-Specific Computing. Zoran Budimlic, Alex Bui, Jason Cong, Glenn Reinman, Vivek Sarkar. Workshop on Concurrency for the Application Programmer (CAP), co-located with SPLASH 2010, October 2010.

 
 

Mackale Joyner, Zoran Budimlic, Vivek Sarkar "Array Optimizations for Parallel Implementations of High Productivity Languages."  (April 2008 to appear)

 
 

Yuan Zhang, Vugranam Sreedhar, Weirong Zhu, Vivek Sarkar, Guang Gao "Minimum Lock Assignment: A Method for Exploiting Concurrency Among Critical Sections.."  (July 2008)

 
 Other
 

Declarative Aspects of Memory Management in the Concurrent Collections Parallel Programming Model. Zoran Budimlic, Aparna Chandramowlishwaran, Kathleen Knobe, Geo Lowney, Vivek Sarkar, Leo Treggiari. Proceedings of DAMP 2009 Workshop (Declarative Aspects of Multicore Programming), January 2009. 

 
 

Multicore Implementations of the Concurrent Collections Programming Model. Zoran Budimlic, Aparna Chandramowlishwaran, Kathleen Knobe, Geo Lowney, Vivek Sarkar, Leo Treggiari. Proceedings of the 2009 Workshop on Compilers for Parallel Computing (CPC), January 2009.

 
 

Minimum Lock Assignment: A Method for Exploiting Concurrency Among Critical Sections. Yuan Zhang, Vugranam Sreedhar, Weirong Zhu, Vivek Sarkar, Guang Gao. Proceedings of the 21st Workshop on Languages and Compilers for Parallel Computing (LCPC), July 2008.

 
Creative Works
 Other - An initial prototype implementation of a compiler and runtime system for the Habanero-Java language was developed in Sarkar's group this year
 
 
Presentations
 Conference Committee Member
 

"20th ACM Symposium on Parallelism in Algorithms and Architectures." (June 2008)

 
 

"International Workshop Multi-Core Computing Systems." (March 2008)

 
 

"Workshop and Software and Hardware Challenges of Manycore Platforms." co-located with ISCA'08, (June 2008)

 
 

"Workshop on Parallel Progranning on Accelerator-basrd Systems (PPABS),." (February 2008) With with PPoPP

 
 

"Workshop on Software Tools for Manycore Systems." (June 2008)

 
 Invited Talks
 

"Distinguished lecturer, \Hybrid Programming Challenges for Extreme Scale Software", Department
of Computer Science and Engineering, Texas A&M University, September 2014.." (September 2014)

 
 

"Invited speaker, \Leveraging Structured Parallelism for Improved Programmability and Scalability",
U. Alberta, July 2014." (July 2014)

 
 

"Invited speaker, \Software Challenges for Extreme Scale Systems", Intel Labs, Santa Clara,
April 2014." (April 2014)

 
 

"Invited speaker, \Software Challenges for Extreme Scale Systems", Princeton University, May
2014." (May 2014)

 
 

"Invited speaker, \Test-Driven Detection and Repair of Data Races in Structured Parallel
Programs", Indian Institute of Science (IISc), Bangalore, India, August 2014.." (August 2014)

 
 

"Invited speaker, \Test-Driven Detection and Repair of Data Races in Structured Parallel
Programs", Tata Institute of Fundamental Research (TIFR), Mumbai, India, August 2014.." (August 2014)

 
 

"Invited speaker, \Why Runtime Systems and System Software MustWork Together for Future
HPC Applications", 2014 DOE Salishan Conference on High Speed Computing, Gleneden
Beach, Oregon." (April 2014)

 
 

"Keynote speaker, International Conference on Principles and Practice of Programming on the
Java platform: virtual machines, languages, and tools (PPPJ), September 2014.." (September 2014)

 
 

Invited lecture, ENS Lyon, “Analysis and Transformation of Programs with Explicit Parallelism”,
June 2013.

 
 

Invited colloquium speaker, U. Utah School of Computing, “Software Challenges for Extreme
Scale Systems”, July 2013

 
 

"Multicore Programming Models and their Implementation Challenges." IBM Austin Research Lab Distinguished Seminar Series, (July 2008)

 
 

"Multicore Programming Models and their Implementation Challenges." Supercomputing 2008 Workshop on Bridging Multicore's Programmability Gap, (2008)

 
 

"Static and Dynamic Analysis of Parallel Programs." 2008 Workshop on Exploiting Concurrency Efficiently and Correctly, co-located with CAV 2008. (July 2008)

 
 

"Compiler Challenges for Multicore Parallel Systems." Workshop on Architectures and Compilers for Multithreading, IIT Kanpur, India. (December 2007)

 
 

"Portable Parallel Programming for Heterogeneous Multicore Computing." Workshop on Manycore and Multicore Computing: Architectures, Applications And Directions, Reno, NV (co-located with Supercomputing 2007). (November 2007)

 
 

"Trends in Computing Performance: Programming Challenges for Multicore Processors." National Academies Workshop on Trends in Computing Performance, Mountain View, CA. (September 2007)

 
 Keynote Speaker
 

"Keynote speaker, \Hybrid Programming Challenges for Extreme Scale Software", 12th Annual
Workshop on Charm++ and Application, University of Illinois at Urbana-Champaign, April
2014.." (April 2014)

 
 

"Keynote speaker, \Hybrid Programming Challenges for Extreme Scale Software", First OpenSHMEM
Workshop: Experiences, Implementations and Tools, Annapolis, Maryland, March 2014." (March 2014)

 
 

Keynote speaker, “InternationalWorkshop on OpenMP (IWOMP) 2013”, Canberra, Australia,
September 2013

 
 

Keynote speaker, 2009 European Joint Conference on Theory and Practice of Software (ETAPS), "Challenges in Code Optimization of Parallel Programs", March 2009.

 
 

"Code Optimization of Parallel Program." 2008 International Symposium on Code Generation and Optimization, (April 2008)

 
 

"The Concurrency Challenge, Milticore Programming Models and their Implementation Challenges." U. Washington and Microsoft Research 2008 Summer Institute, (August 2008)

 
 

"Programming Challenges for Petascale and Multicore Parallel Systems." High Performance Computation Conference (HPCC), Houston, TX. (September 2007)

 
 Lectures
 

ISTec Distinguished Lecturer, Colorado State University, "Multicore Programming Models and their Implementation Challenges" and "A Quick Tour of Modern Multicore Programming Models", December 2008. 

 
 Other
 

"The Concurrent Collections Parallel Programming Model - Foundations and Implementation Challenges" (with Kathleen Knobe), given at PLDI 2009.

 
 

"Analysis and Optimization of Parallel Programs." PLDI, (2008) With Sam Midkiff

 
 

"Analysis and Optimization of Parallel Programs" (with Sam Midkiff), given at PLDI 2008.

 
 

"Multicore Programming Models." Second International School on Trends in Concurrency, (June 2008)

 
 

"Multicore Programming Models and their Implementation Challenges and A Quick Tour of Moderm Multicore Programming Models." ISTec Distinguished Lecturer, Colorado State University. (December 2008)

 
 Panelist
 

"Can Developing Applications for Massively Parallel Systems with Hetergeneous Processors Be Made Easy(er)." Supercomputing, (2008)

 
 

Panelist, "Can Developing Applications for Massively Parallel Systems with Heterogeneous Processors Be Made Easy(er)?", Supercomputing 2008.

 
 

"How to avoid making the same Mistakes all over again - what the parallel-processing Community has (failed) to offer the multi/many-core Generation." IEEE Intl Parallel and Distributed Processing Symposium, (April 2008)

 
 Seminar Speaker
 

"\Habanero-Java: Multicore Programming for the Masses" (with Shams Imam), given at
PPoPP 2014.."

 
Editorial Positions
 Member of the Editorial Board, Encyclopedia of Parallel Computing. Springer. (2009 - 2009)

Supervised Theses & Dissertations
 David M. Peixotto, Master of Science Tuning a Priority-Based Register Allocator Using Adaptive Compilation. (2007) (Thesis Committee Member)

 Mackale Joyner, Doctor of Philosophy Array Optimizations for High Productivity Programming Languages. (2008) (Thesis Director)

 Ph.D. Global Instruction Scheduling for Multi-Threaded Architectures. (2008) (Thesis Committee Member)

 Rajarshi Bandyopadhyay, Ph.D Compiling dynamic languages via typed funtional languages. (2008) (Thesis Committee Member)

 Rajarshi Bandyopadhyay, Doctor of Philosophy Compiling dynamic languages via statically typed functional languages . (2009) (Thesis Committee Member)

 Rajkishore Barik, Doctor of Philosophy Efficient Optimization of Memory accesses in Parallel Program. (2010) (Thesis Director)

 Nathan Tallent, Doctor of Philosophy Performance Analysis for Parallel Programs: From Multicore to Petascale. (2010) (Thesis Committee Member)

 Raghavan Raman, Master of Science Compiler Support for Work-Stealing Parallel Runtime Systems. (2010) (Thesis Director)

 Donghua Liu, Master of Science Parameterization and Adaptive Search for Graph Coloring Register Allocation. (2010) (Thesis Committee Member)

 Shams Mahmood Imam, Master of Science Habanero-Scala: A Hybrid Programming model integrating Fork/Join and Actor Models. (2011) (Thesis Director)

 Yi Guo, Doctor of Philosophy A Scalable Locality-aware Adaptive Work-stealing Scheduler for Muti-core Task Parallelism. (2011) (Thesis Director)

 David McCarthy Peixotto, Doctoral Low-Level Haskell Code: Measurements and Optimization Techniques. (2012) (Thesis Committee Member)

 Alina Gabriela Sbirlea, Master of Science Mapping a Dataflow Programming Model onto Heterogeneous Architectures. (2012) (Thesis Director)

 Dragos Dumitru Sbirlea, Master of Science Integrating Stream Parallelism and Task Parallelism in a Dataflow Programming Model. (2012) (Thesis Director)

 Jun Inoue, Doctoral Reasoning About Multi-stage Programs. (2013) (Thesis Committee Member)

 Raghavan Raman, Doctoral Dynamic Data Race Detection for Structured Parallelism. (2013) (Thesis Director)

 Sanjay Chatterjee, PhD Runtime Systems for Extreme Scale Platforms. (2014) (Thesis Director)

 Lai Wei, MS Autotuning Memory-intensive Software for Node Architectures. (2014) (Thesis Committee Member)

 Mehul Chadha, Masters Improving the Efficiency of Map-Reduce Task Engine. (2015) (Thesis Committee Member)

 Kamal Sharma, Doctoral Locality Transformations of Computation and Data for Portable Performance. (2015) (Thesis Director)

Awards, Prizes, & Fellowships
 ACM SIGPLAN Programming Languages Software Award for Jikes RVM,

 Outstanding Faculty Associate, Weiss College,

 IBM X10 Faculty Award,

 ACM Fellow, (2008)

 IBM Research Division, (2008)

 ACM Distinguished Scientist, (2006)

 IBM Research Division Award, (2006)

 HPC Challenge Class 2 Award, Supercomputing 2006, (2006)

 IBM Outstanding Technical Achievement Award, (2005)

 IBM Research Division Award, (2003)

 IBM Research Division Award, (2001)

 Best B.Tech. Project, (1981)

 ACM International Collegiate Programming Contest, (1985)

 IBM Invention Achievement Award, (1998)

 LCPC workshop, (1998)

 IBM Invention Achievement Award, (1998)

 International Conference on Parallel Processing, (1997)

 CASCON '94, (1994)

 IBM Invention Achievement Award, (1996)

 ACM Distinguished Scientist, (2006)

 Honorable Mention, (2006)

 IBM Research Division, (2006)

Positions Held
 Program Committee Member, ACM SIGPLAN '10 Conference on Programming Language Design and Implementation (PLDI). (2010 - 2010)

 Program Committee Member, International Conference on Principles and Practice of Programming on the Java platform: virtual machines, languages, and tools (PPPJ). (2014 - 2014)

 Program Committee Member, DAMP 2009 Workshop (Declarative Aspects of Multicore Programming). (2009 - 2009)

 Program Committee Vice-Chair, Programming Models, Languages and Compilers track, International Conference on Parallel Programming (ICPP). (2009 - 2009)

 Program Committee Member, Second International Workshop on Parallel Programming Models and Systems Software for High-End Computing (P2S2). (2009 - 2009)

 External Review Committee Member, ACM SIGPLAN '09 Conference on Programming Language Design and Implementation (PLDI). (2009 - 2009)

 Program Committee Member, ACM SIGOPS Operating System Review Special Issue on the Interaction among the OS, Compilers, and Multicore Processors. (2009 - 2009)

 Program Committee Member, 2nd USENIX Workshop on Hot Topics in Parallelism (HotPar '10). (2010 - 2010)

 Program Committee Member, 6th International Conference on Distributed Computing and Internet Technologies (ICDCIT). (2010 - 2010)

 Program Chair, ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP) . (2009 - 2009)

 Program Committee Member, Supercomputing 2009 (SC09). (2009 - 2009)

 Program Committee Member, 2010 International Symposium on Code Generation and Optimization (CGO). (2010 - 2010)

 Program Chair, ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP) . (2009 - 2009)

 External Review Committee Member, Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) . (2012 - 2012)

 Program Committee Member, Third International Conference on Runtime Verification (RV). (2012 - 2012)

 Program Committee Member, 2012 IEEE International Parallel & Distributed Processing Symposium (Software Track). (2012 - 2012)

 Program Committee Member, 25th Workshop on Languages and Compilers for Parallel Computing (LCPC). (2012 - 2012)

 Program Committee Member, CC 2012: Twenty-first International Conference on Compiler Construction. (2012 - 2012)

 General Chair, Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems ASPLOS . (2013 - 2013)

 General Chair, Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013). (2013 - 2013)

 Program Vice-chair (Software), 29th IEEE International Parallel and Distributed Processing Symposium (IPDPS). (2015 - 2015)

 Plenary Speaker Chair, ACM Federated Computing Research Conference (FCRC). (2015 - 2015)

 Program Co-chair, 29th International Conference on Supercomputing (ICS). (2015 - 2015)

 Program Committee Member, IA3 Workshop on Irregular Applications: Architectures and Algorithms, co-located with Supercomputing 2014. (2014 - 2014)

 Program Committee Member, IFIP Working Conference on Domain Specific Languages (DSLWC). (2009 - 2009)