This article is published in the August 2018 issue.

My Parallel Careers in Industry and Academia


Vivek SarkarAs a researcher, I am fascinated by the challenge of advancing the high-level foundations of computer software (programming models, compilers, and runtimes) to productively exploit the latest advances in computing systems. While there has been a long tradition of research in this area since the dawn of computing, the rapid evolution of hardware has continuously fueled a need for new software technologies as old approaches quickly become obsolete. Current explorations of new hardware directions that go beyond Moore’s law have further amplified the motivation for this research direction.

I was fortunate to have two Turing Award recipients as mentors early in my career, and they considered this problem to be one of the fundamental challenges in computer science. During my graduate study at Stanford, my advisor, John Hennessy, encouraged my Ph.D. research on partitioning and scheduling the massive amounts of implicit parallelism available in functional/declarative programming models such as the Sisal language. When I joined IBM’s T.J. Watson Research Center, my hiring manager, Fran Allen, inspired me to adopt more of a compiler-centric approach in my research so as to focus the mapping problem on program dependence graphs extracted from automatic parallelization systems such as IBM’s  PTRAN system.

My PTRAN research on mapping of parallelism naturally broadened to high-level program transformations for locality and parallelism, which in turn led to a unique opportunity for me to lead a development team to build IBM’s ASTI optimizer, which is still being used in IBM’s XL product compilers. In the Jalapeño project, I was able to work with another world-class research team at IBM, this time with a focus on integrating dynamic compilation and runtime research in the context of Java virtual machines. This, in turn, grew into an opportunity to lead the creation of the Jikes Research Virtual Machine open source release in 2001, which continues to be used by researchers. The DARPA program on High Productivity Computing Systems (HPCS) offered me a new opportunity to tie together my past experiences in programming models, compilers, and runtimes for parallelism by leading the productivity effort in IBM’s PERCS project, which included the development of the X10 parallel programming language. By the time I moved to academia in 2007, parallel computing had become mainstream with the widespread industry move to multicore computing. This motivated me to create the Habanero Extreme Scale Software group, first at Rice University and now at Georgia Tech, which led to the development of the Habanero-C/C++ and Habanero-Java programming systems to tackle many exciting research problems related to parallel software with impact on C++, Java, and OpenMP standards. Looking ahead, I am excited to have the opportunity to lead a new multi-university project in the Software Defined Hardware program as part of DARPA’s Electronics Resurgence Initiative to address computing challenges beyond the end of Moore’s law.

Every day, I try to emulate the values that John, Fran, and my other mentors have exemplified in their careers, which include a focus on advancing fundamental long-term research goals (rather than on short-term publication opportunities, for example), on building leading-edge prototype implementations of new research concepts, on leveraging the technical vitality that arises from working in large and diverse teams, and in conducting all research-related and people-related activities with the utmost of integrity. I have also been very fortunate to have worked with amazing research collaborators throughout my career.

Pedagogy
While at IBM, I had the opportunity to teach or co-teach several graduate-level/professional short courses and tutorials, and discovered that I greatly enjoyed those experiences! I also recognized that development of new teaching material goes hand-in-hand with carrying out leading-edge research; the pedagogical clarity required to teach new concepts reinforces the conceptual clarity of the underlying research, and vice versa. However, it was only when I had the opportunity to teach undergraduate students at MIT in fall 1996 and fall 1997, while on leave from IBM, that I realized how truly rewarding teaching can be. After joining Rice in 2007, I sought out an opportunity to create a new undergraduate class on the fundamentals of parallel programming (COMP 322) in response to the trend that parallel computing was becoming  mainstream, and the fact that parallel computing had mostly been taught at the graduate level.  Undergraduate teaching also took on a personal meaning for me at that time, because that was exactly the time frame in which my oldest child was heading to college. Since there was limited pedagogic material available on this topic at the undergraduate level, I wrote 200-plus pages of lecture handout material and created 80-plus short videos with my children in mind as part of the target audience. By the time I moved from Rice to Georgia Tech in 2017, I was also able to use the COMP 322 material to create a Coursera online specialization of fundamentals of parallel, concurrent, and distributed programming. It has been truly gratifying to hear testimonials from Rice alumni who have taken this course, as well as from learners all around the world many of whom encounter these topics for the first time in the Coursera specialization.

Service and Mentoring
I truly believe that service is leadership and leadership is service. I feel that I have benefited in many ways from the vibrancy and support that I experienced as a member of the CS research community, and I always welcome opportunities to give back, whether in leadership roles such as serving as program chair, general chair, or steering committee member of major CS conferences, or in smaller ways such as seeking out junior members of our community at research events to hear what’s on their mind and offer them perspectives on what they are experiencing.

My awareness of CRA grew after I became chair of the CS department at Rice in 2013 and began to appreciate how CRA’s mission to strengthen research and advanced education in computing plays a vital role in contributing to the well-being of CS departments overall.

I have been a member of CRA’s board since 2015, and was excited to have the opportunity to serve as co-chair of the CRA Snowbird 2018 conference, and to develop its focus themes of “Diversity in Leadership” and “Ubiquity of AI” when putting together the conference program with the rest of the committee, along with timely topics for CS departments such as faculty growth, department rankings, faculty recruiting, schools/colleges of computing, industrial research in CS, and teaching faculty.

Finally, I especially value opportunities to mentor junior members of our community in industry and academia. While at IBM, I had the privilege of recruiting and mentoring a large number of researchers who were members of the department that I managed, and it has been especially satisfying to see them grow into world-class leaders. I also take special pride in the 16 Ph.D. students that I supervised more recently during my 10 years at Rice, and look forward to supervising at least as many more in the remainder of my career. When I was department chair at Rice, I also interpreted mentoring more broadly as community building within the department. It was extremely rewarding to meet with leaders of the undergraduate and graduate student bodies to help them with their future initiatives and goals, and to discuss how to make our department more inclusive. One of my greatest satisfactions as department chair was to see the fraction of women in our undergraduate population increase from 23% to 35% during my term (2013-2016), while undergraduate enrollment in CS also doubled during that period.

About the Author
Vivek Sarkar is a professor in the School of Computer Science, and the Stephen Fleming Chair for Telecommunications, in the College of Computing at Georgia Institute of Technology. Prior to joining Georgia Tech, Sarkar was a professor of computer science at Rice University, and the E.D. Butcher Chair in Engineering. Since 2007, Sarkar has led the Habanero Extreme Scale Software Research Laboratory at Rice and Georgia Tech, which develops software foundations for current and future high-performance computing systems. He also served as chair of the Department of Computer Science at Rice during 2013-2016.

Prior to joining Rice in 2007, Sarkar was senior manager of programming technologies at IBM Research. Sarkar became a member of the IBM Academy of Technology in 1995, and was inducted as an ACM Fellow in 2008. He has been serving as a member of the U.S. Department of Energy’s Advanced Scientific Computing Advisory Committee since 2009, and on CRA’s board of directors since 2015.