Can you explain for those of us who are not specialists in the field, is there a difference between distributed and parallel computing?
Maurice Herlihy: Usually when people use these terms, they mean slightly different things. The two terms are very close to each other and in some cases they even overlap. Distributed computing means running several processes on different computers, which can be connected to one system. Parallel computing on the other hand means that several computing processes are run with only one device.
Do you mean that distributed computing requires several computers that can be connected to a parallel computing system?
Nir Shavit: Parallel computing can be produced on one or more computers at the same time, while distributed computing always requires more than one computer. The classic example to explain the difference is Internet vs your laptop. Your laptop has typically 4 processors all on the same chip communicating by sharing the same memory, while the Internet has many processors at different physical locations, each with its own separate memory, and the ability to communicate by passing messages.
Great examples for better understanding. And how about explaining to an 11-year-old girl what computer science and distributed computing means, how would you do it?
Maurice: Computer science is a wide scientific discipline not primarily about computers, just like astronomy is not primarily about telescopes. Computers serve as instruments to reach different results. In astronomy the scientists are not trying to develop further the telescopes just to make a perfect telescope, but to find an answer to an astronomical question with the help of the telescope. In exactly the same way computer science is interested in solving different problems with the help of computing and mathematical algorithms. Specialists in computer science work with a variety of problems of which each requires their own instruments.
Nir: I would like to add that the base of computer science is algorithms. An algorithm is the combination of the steps that are required to reach the desired goal. Computer science is basically about the way you combine these steps and use them to do the calculations in order to get a result.
What is the coolest thing about your work?
Maurice: The possibility to make difficult things easier and to solve problems. If we think about our work in everyday life, it may be difficult dealing with problems especially if they appear at the same time. But if we look at the situation in a systematic way and try to solve the problems with a mathematical approach, the whole situation will look simpler and the achieved solutions might even bring some unexpected bonuses. I personally really like to try to use this ability to solve problems with a systematic approach, because this way it is possible to understand things that might be very difficult to work with intuitively.
Nir: The same for me. I also like to solve problems. When I go to work I know that on my table I have problems that I have been trying to solve for a long time. And I need to think about them again and again. If I ever get tired of it, I have my students as a source of fresh thoughts. They always succeed to add to my enthusiasm, which is cool.
Do you ever think about to what extent your work is important to society?
Nir: For example right now I’m working with maps of the human brain, trying to understand how different neurons interact. In the future this could allow us to build artificial intelligence. Of course decades of work are still needed to reach that goal. Right now we have the ability to construct only a little piece of a brain, and imagine, that there are a thousand million pieces like this in one brain.
What is the most boring part of your work?
Maurice: In order to conduct scientific research, you always need finances. The University is not always able to finance all research, and that is why sometimes we have to turn to the government or to different funds. It involves a lot of documents and applications, and describing your project again and again can be really tiring. You really need to show the significance of your project and try to explain why your idea is so great, what practical advantages can it bring. These problems with financing apply to the whole world.
What made you interested in computer science in the first place?
Maurice: I studied mathematics first, and when I received my bachelor degree, I didn’t really know what I wanted to do next. For sure I needed a job so I started to work as a programmer. After some time I came to understand that working as an average statistical programmer you don’t really have tasks that require creative thinking. I decided to return to university and started Ph.D. studies in computer science. There I studied distributed computing and it was really interesting to me. I became a computer scientist almost by accident.
Nir: My father was a professor and scientist; his field was biochemistry. I also started to study biology at university, and during the second year we had one module of computer science. That was the end of biology for me. Biology is great of course, and some of my work is connected to it. But working with computer science is an intellectual pleasure. Writing programs and algorithms requires constant brainwork. Also in this field the basic rules of how everything works are always the same, unlike in biology, where you need to conduct endless experiments which can become a boring routine.
Maurice: We can say that scientific work in the field of computer science is more like a life style. You think about the problems connected to your work all the time, also when commuting or having your lunch.
Did you ever have moments of surprising findings while doing research?
Maurice: Yes, many times. Once I was working on a problem trying to solve it mathematically. Suddenly I understood that it was not possible, as there were many different kinds of problems to be solved at once. We lost a lot of time trying to solve the problem in a wrong way. This moment of understanding came to me intuitively, not as a result of logical thinking. Actually in research it is very important to be able to look at the problem from different angles and not to stick to only one. When I’m teaching I tell my students, that once you can’t get forward but either can’t find any mistakes in your work, the best thing to do is to go to sleep and look at the problem again the next day with fresh thoughts.
Nir: I once had a situation when I was stuck with a problem, and finally I saw the solution in a dream. But in my dream this solution didn’t work out. When I tried the solution, it actually did work out. I believe that once you think about a problem a lot, your brain continues to work on it subconsciously.
You have received some prestigious awards. What were your first thoughts when you got to know about your victory?
Maurice: Distributed computing is a relatively new area in computer science. It is common that everyone considers their own work important. That is why for me the fact that my work was awarded, meant that the scientific community acknowledged the importance of our field.
Nir: For me it was hard to believe. For sure the results of the awarded work that we did were great, but as Maurice already mentioned, distributed computing was not one of the most popular fields of computer science at that time so our getting the awards is important to our community.
We probably know about Grigory Perelman, the man who refused a million dollar prize because he didn’t think he should have been chosen the winner. This was quite strange, what do you think?
Nir: First of all I would like to mention that I highly appreciate the work of Perelman in mathematics. But also I want to underline that these kinds of awards are not only important for the winners to finance their further research, but also to all the scientists to give motivation to continue their work. For example computer science is a field that requires lots of collaboration. For young scientists it is very important to understand that their work is appreciated. Not too long ago a scientist that I know won an award with a research on a theme that is not widely known. If he had refused it, I truly wouldn’t have understood why.
Talking about collaboration, Maurice, in one of your interviews you mentioned that in computer science scientists are not very well organized as a community. Why is that?
Maurice: Probably you are talking about the interview that I gave 3 or 4 years ago. Back then we actually had a problem like that, but by now a lot has changed. The scientific community in computer science is now more organized and we worked a lot to raise the status of the field. And it is safe to say that the governments and funds are now also aware of the importance of computer science.
What do you think the future of computer science looks like?
Maurice: In the fundamental research in computer science a lot has been done already. Now it is time to take all the theory into practice. I believe that distributed computing has a lot of potential in the sphere of bitcoins, as well as financial networks such as blockchains.
What are your impressions of ITMO University?
Nir: I led a workshop with the students and I was pleasantly surprised by how prepared they were. The students asked a lot of very good and smart questions and I really felt that they are passionate about their field. This was unexpected for me.
Maurice: I am pleased to see that here programming and IT are given lot of importance. When we first entered the university I straight away noticed a poster about the victory in ACM ICPC. In my home university these kinds of posters are mainly made for sport teams. That’s why I was happy to see a new approach to programming here
Translated by Mia Eriksson