Making Dream a Reality

October 11, 2022

Drones, Smart Cities, Object Tracking – these are some of the fascinating ideas that the DREAM Lab headed by Yogesh Simmhan works on 

Photo: Yogesh Simmhan

Have you ever wondered how companies like Facebook and Google manage the large amount of user data that only keeps growing by the day? Such voluminous data can’t be processed or stored within a single computer or even a handful of computers. Tackling this problem requires the power of Distributed Computing, a model in which processing power is distributed among dozens of machines that work independently to solve the same problem. And with advances in technology today, Distributed Computing has become so pervasive that its principles and core concepts can be applied in many critical scenarios – querying complex data, analysing video feeds from security cameras, and training machine learning models. These are the kinds of applications that the DREAM Lab, headed by Yogesh Simmhan, Associate Professor at the Department of Computational and Data Sciences (CDS), is keenly interested in.

Yogesh gives an example of a crucial application that his team used Distributed Computing for. When the country went into lockdown during the first wave of COVID-19, he and his collaborators worked on developing a contact-tracing app. This app collects anonymised data of people testing positive for COVID-19 and uses that to build a graph or a network, which can subsequently be probed using graph algorithms to detect primary, secondary and tertiary contacts. The app, called GoCoronaGo, predated Arogya Setu, the Government of India’s own contact-tracing app, and had several important privacy-protecting features built into it.

Although GoCoronaGo is a recent example, Yogesh’s lab has been working on Distributed Computing for many years now. “Everything that you touch today is really a Distributed System,” he explains.

Today’s computers are much more powerful than we could have imagined decades ago, but they are still unable to keep pace with the enormous amount of data being generated. Processing this kind of data requires a paradigm shift from the typical personal computer (PC) setup that many of us are familiar with. Distributed Computing is an answer to this problem: using the processing power of multiple, network-connected systems operating in tandem.

“To me, bringing multiple machines together has always been interesting. It shows you that the sum is greater than the parts,” says Yogesh, who became fascinated by the vast web that is Distributed Systems during his undergraduate days at SRM College of Engineering in Chennai. He recalls that he chose to work on a Distributed Systems project as his final year project, as it was a relatively new field at the time. Since then, there has been no looking back, and even though the projects he works on have diversified, there is always an underlying thread that connects them to the motif of Distributed Systems. After his bachelor’s degree, he went on to Indiana University to complete an MS and PhD in Computer Science. His PhD dissertation focused on developing a framework for the collection of metadata during the execution of distributed workflows. After his PhD, he worked as a Postdoctoral Researcher at Microsoft Research and a Research Assistant Professor at the University of Southern California (USC) for a brief stint, before joining IISc in 2013.

Edge GPU Accelerators used by the DREAM:Lab (Photo: Aakash Kochare)

Distributed Computing is a continuously evolving field because when someone develops a solution to a problem, it might no longer be sufficient soon after, if the computing or networking hardware changes. And so one will need to solve the same problem again from scratch, developing new algorithms, software or tools that can adapt to the evolving hardware. This is what keeps the field alive and kicking even after so many decades, according to Yogesh.

In recent years, the DREAM Lab has worked on projects to optimise graph algorithms, in particular, those that can operate on large temporal graphs. Temporal graphs, unlike regular mathematical graphs, are like networks where the set of vertices and edges change with time. For instance, if we consider a contact-tracing app like GoCoronaGo, each person would be a node in the graph, and their contacts would have edges connecting them to this person. And what makes this graph temporal would be how the primary, secondary and tertiary contacts keep changing with time.

Drones have also been an active area of exploration at the DREAM Lab. Yogesh’s team has been collecting data from drones – such as video camera feeds – to perform real-time analytics. One ambitious project, for example, is aimed at helping the visually challenged, almost like a seeing-eye dog. The idea is to use the camera feeds from drones in order to provide continuous and real-time instructions to visually challenged people so as to aid them in navigating their environment. Another project of his, called Anveshak, recently won the IEEE TCSC SCALE challenge. In this project, his lab developed a robust software platform that uses data from camera feeds across a city to track an object in real time, such as a stolen car. In a simulated setting, the team also demonstrated the platform’s ability to control traffic signals and create a “green corridor” for the rapid movement of ambulances.

Apart from these individual projects, Yogesh has worked on several collaborations that extend beyond the campus. “In an institute like IISc, where funding isn’t that hard a problem, we have the freedom to open our minds up a bit and see what’s interesting out there,” he explains. He has worked on projects related to the Smart Cities initiative launched by the Government of India, leveraging his experiences from similar work he had done at USC. A smart city is a technologically advanced city that uses many sensors to collect data about various operations and uses this data to improve the functioning of the city. Yogesh worked on a project called EqWATER with other collaborators from IISc, the goal of which was to collect and analyse the data from water management systems in a city like Bangalore so as to ensure fair and equitable distribution of water.

Yogesh also collaborates closely with the industry, and is currently heading the IBM-IISc Hybrid Cloud Lab, a venture to foster ties between academia and industry. He explains that at least in the area of systems research, the industry has clearly overtaken academia, given the enormous scale of data that they handle. He says that collaboration with industry is therefore beneficial for academics to get a glimpse into future possibilities, and also to take a plunge into tackling real-life problems.

In addition, Yogesh likes to keep an eye out for new research ideas from offbeat sources. Recently, when the DREAM lab conducted a Quantum Computing workshop at IISc, it turned out to be a light-bulb moment. The conversations with some of the participants made him realise that there are many unexplored questions at the intersection of cloud computing and quantum computing. “Having an open mind to such ideas is a prerequisite for research,” he says.

His advice to budding research students is to work hard and to be curious. “It doesn’t matter which path you take in life,” he says, “for as long as you work hard, you can achieve what you want to achieve. And one should never underestimate the importance of curiosity in research, for research is not about saying ‘What can I do?’ but rather ‘Why can’t I do something?’”

DREAMers from Yogesh Simmhan’s lab (Photo: Aakash Kochare)