If you ask Vivek Sarkar what his research area is, you won’t get just one answer. The School of Computer Science’s (SCS) newest professor and Stephen Fleming Chair for Telecommunications studies programming languages, compilers, high performance computing, computer architecture, machine learning, and even security.
But all these fields go back to his interest in parallel computing.
“The fundamental challenges of parallel computing are how to take a problem and design algorithms to solve it more quickly in parallel, and how to implement these algorithms on modern architectures,” Sarkar says.
Parallel computing was just starting to come over the horizon when Sarkar received his Ph.D. in computer science from Stanford University under advisor John Hennessy. Yet Sarkar studied the areas that would eventually be central to parallel computing while working at IBM Research for nearly two decades. There, Sarkar served as senior manager of programming technologies, researching all elements of software from programming languages of software from programming languages and compilers to virtual machines and middleware. Sarkar led three large-team projects during his time at IBM. These projects were:
- The Jikes Research Virtual Machine
- The X10 research parallel language
- The ASTI optimizer for locality and parallelism that was included in IBM’s compiler products
By the time he was recruited to join the Rice University faculty in 2007, parallel computing had become mainstream with the end of Dennard scaling (when power density remained costant even as transistors shrank) necessitating a fundamental change in how computers are built through the introduction of multicore processors.
“I like to tell my students that I saw clock speeds for a single computer increase by more than a factor of 1,000 during my career, but they will instead see the number of processors in a single computer increase by a similar factor during their careers,” he says.
Though parallel computing was central to the future of all computer systems, Sarkar found it was often taught only at the graduate level. Leaving industry for academia isn’t a typical career move, but Sarkar wanted to educate undergraduates in this growing field, so he created a new sophomore-level class on the fundamentals of parallel programming at Rice. Some of that course material was further developed into an online specialization on parallel, concurrent, and distributed programming this year for online teaching platform Coursera.
Sarkar’s teaching philosophy encourages collaboration. At Rice, he would often assign videos for students to watch, then teach a short lecture to solidify the topics covered, and use the remaining class time for in-class exercises that let students work together and directly engage with the material.
In his 10 years at Rice, Sarkar was department chair from 2013 to 2016 and he established the Habanero Extreme Scale Software Research Laboratory to develop new software technologies spanning languages, compilers, and runtime systems for parallel platforms. In addition to widespread research impact, results from Sarkar’s lab have influenced multiple industry standards for parallelism in OpenMP, Java, and C++. More recently, Sarkar’s leadership has increased in scope. He has served as a member of the U.S. Department of Energy’s Advanced Scientific Computing Advisory Committee (ASCAC) since 2009 and he has been on the CRA’s Board of Directors since 2015.
One of the things that attracted Sarkar to Georgia Tech was the reach of the Institute. “The scale of Georgia Tech is very different compared to most other CS departments, and that can really amplify your impact in research,” he says. “Being able to interact with so many world-class experts related to my research areas is an exciting opportunity.”
Sarkar has already been invited to become an associate director of Georgia Tech’s Center for Research into Novel Computing Hierarchies (CRNCH). He also hopes to take advantage of Tech’s strategic partnership with Oak Ridge National Laboratory, where he obtained a joint faculty appointment upon starting at Tech.
Sarkar’s current research focuses on exascale computing, or the ability to do 1018 floating point operations per second on a large computer, and beyond. Reaching this milestone was recognized as a major challenge 10 years ago, and the U.S. is expected to have its first exascale computer in the next five years.
Sarkar led a DARPA study on software challenges for exascale systems in 2009, and, since then, his research has focused on how to help ensure this goal by finding software abstractions that enable exascale hardware to realize its full potential in speed and correctness (parallel computing often has new classes of bugs not found in sequential computing).
Finding new solutions to ever-evolving problems is part of what attracted Sarkar to computer science in the first place.
“Computer science displays a unique combination of the rigor of engineering and the creativity of art,” Sarkar says. He speaks of art from experience, acting in and directing plays during his undergraduate years at Indian Institute of Technology, Kanpur; his graduate years at Stanford; and in occasional student productions at Rice. Theater is about creation through teamwork, which is how Sarkar approaches computer science.
“With computing you can envision something ambitious, and, with the right team, translate it to software and hardware that expand the horizon of what humanity can accomplish.”