- Youku interview link: dwz.cn/XGD9Ur1A
- Youku award speech link: dwz.cn/XGD9Ur1A
- Chinese article (first part): dwz.cn/ofMWCZBL
Youwei Zhuo: Today we have Professor Onur Mutlu here. First, let’s congratulate you on winning the Maurice Wilks award. Thank you for accepting this interview, I’m sure that it will provide a great opportunity, for students over the world, especially in China, to know more about you and your research. Let’s start the question from the early years. The first question is, you were born in Turkey and had a bachelor’s degree in Michigan. Most students I think in Turkey went to the US after the bachelor’s degree. Can you tell us when did you decide to go to the US, and why did you make the decision?
Onur Mutlu: That’s a good question actually. First of all, thank you very much for this interview. I appreciate that. I’m happy to win the award. I’m really happy to do this interview for anyone who’s interested, certainly the Chinese students. So I was born in Turkey, and yes, it’s unusual for someone to go after high school to the US. In Turkey, I actually started university called Bilkent University, which is one of the top universities. The way you get into the university in Turkey is you go through an entrance examination, lots of students take that examination. If you actually do well, at the time I took the examination, the Turkish government offered the top students the opportunity to do their bachelor’s studies outside Turkey. There are a bunch of countries, I think US, Canada, Australia … I’m missing some things, but yeah, Switzerland was one of them. I believe. The UK also. Yes. It’s five or six countries where you could choose. So I took that opportunity basically. Essentially it was a scholarship that the government provided because if that didn’t happen, I would have stayed in Turkey because we couldn’t afford really having your bachelor’s education in the US otherwise. So that’s, the reason I went to the US because I felt it was a good opportunity. And I applied to a bunch of schools in the US, Michigan was a good one, and I decided to go there. But I first started university in Bilkent, so I spent some time over there, worked at the computer center, learned about computers over there actually initially and then transferred to Michigan.
Qinyi Luo: Speaking of studying computer science, when we look at your CV, what’s interesting is that you have both degrees in computer science and also psychology. So that’s a very unique experience. How did you feel about psychology and why did you choose computer engineering eventually?
Onur: That’s a great question also. Uh, so, uh, let me, let me go back to the university entrance examination that I mentioned. Uh, the way it worked at the time I took it – it was in 1996 – was, uh, there were two steps, and the first step, it’s an elimination step and it basically reduced the number of students from, at that time, 1.5 million to maybe 500,000 or so. And then the second step, what happens is you, you basically decide your path for the future. And the way you decide your path is you essentially say, okay, I’m going to be an engineer or scientist. Then you need to take a very hard test that consists of science, math, uh, and Turkish topics. Uh, and also you need to say, okay, I want to go to this school and this department. So you basically create a rank list of which school and which department you want to go to. You, you basically create that list and then take the exam. And then afterwards there’s processing that goes on that figures out where you should be according to everybody who made the lists and the score that you got in the exam. So I was interested in computer science. I was actually interested in many things. I was interested in international relations, but my father told me that don’t go to international relations. And he was right actually because he, well his advice to me was he said that, uh, if you’re a great engineer, great scientist, you can always do international relations. And I feel, I know what it means a little bit right now, maybe. This doesn’t mean that international relations’ bad, but he encouraged me to go to science. Uh, so my first choice over there was computer science. The second choice was molecular biology and genetics. And I went to my first choice. So, uh, I was always interested in computers. That’s why I went to computers. But, uh, let’s go back to and go to Michigan right now. So when I went to Michigan or before I went to Michigan, I was always interested in psychology also. So I took a bunch of psychology class in high school. Uh, and when I went to Michigan, I, I saw the opportunity that you could actually do two degrees, which is a very hard thing to do in Turkey actually. But in Michigan you had the opportunity. So I took, the first class I took was actually Psych 111. At that time it was a huge class, uh, taught by a wonderful teacher, James, James Loyd Hilton (https://en.wikipedia.org/wiki/James_Hilton_(academic_administrator)). And I really enjoyed that. Um, and I decided, okay, I could do a degree in psychology also, but I was also interested in computer engineering. So I decided to follow both. So it was not a choice between, uh, computer engineering and psychology. There was more that I was very interested in psychology, so I decided, okay, let me do a degree in that also. That was wonderful.
Youwei: We know that you got your Ph.D. at UT Austin with Yale Patt, did you start working with Yale Patt at Michigan?
Onur: You found good questions. So, no, actually the answer is no, because, I stayed in Michigan for three years and when I became ready for research, Yale Patt had already moved to University of Texas. but, I actually took my first introduction to computing systems class from Yale Patt in winter 1998. And he was another great teacher and I really enjoyed the class and he really cares about teaching and research. So when I was applying for graduate school after three years, he was actually visiting Michigan once in a while because he had students there also. I went to his office and talked to him, said, I’m interested in applying, would you write me a recommendation letter? He looked at my CV, and he looked at my score in his class. He always tells me that I was not the top student. I was the second, but at least there were more than 400 students. That was a good part. Then he said, yeah, of course, I would write your recommendation letter, and I also expressed my interest in working with them also at that time, and he said, I would take you immediately. I’ll also write the recommendation letter to let you go through the process. So there was a bond between us, I think I really like the style he really liked me and, and we clicked for sure, and that’s why I decided to work with him at that time. But not at Michigan.
Qinyi: I see. Nearly every student in our community knows about Yale Patt, but the interactions are mostly during conferences. As one of the best students of Yale, can you describe the advising styles of him and did they also influence how you interacted with your own students?
Onur: I see. That’s a good question also. I guess you have a lot of good questions in stock for me. Uh, first of all, I’m not sure if I’m the best student of Yale, you know. Let me, let me… there are a lot of great students that Yale raised because of his advising style. Uh, I don’t know if you know Wen-mei Hwu. Wen-mei is one of Yale Patt’s students and he’s actually the first winner of the Maurice Wilkes Award. If you go back to 1998 when the award was first instituted, Wen-mei won the award. So I don’t want to claim that I’m the best student of Yale because he had a lot of great students. Uh, so, uh, uh, that was one of the reasons I worked with Yale actually because of his advising styles and uh, um, essentially, uh, how, how do I summarize it? Essentially Yale focused a lot on fundamentals. Basically you want to do fundamental research. Uh, you want to advance the fundamental of computer architecture. Uh, that’s where you want to work for sure. And also his advising style’s relatively hands off in the sense that he gives you a lot of freedom to explore your own ideas. He gives you feedback, uh, at the right times, but he leaves you free much of the time. So he created the environment in his group such that the group focused on fundamentals. You have a lot of freedom, you can interact with really strong students together, uh, so that you can do great research. And I really enjoyed that, that style for sure. Yeah. So has it affected the way I interact with my students? Absolutely. Yes. I think because I, I mean I fundamentally like that style, so I adopted it also. Maybe I’m a little bit more hands on than Yale, but I’m also younger at this point earlier in my career. But certainly I think it’s really important to focus on fundamentals and also give a lot of freedom, uh, to the students. I don’t know if that, does that answer all the questions you asked? Okay.
Youwei: Now we’re going to talk about one of your research contributions, — Runahead execution. How did you come up with that idea and what inspired you?
Onur: Okay, that’s a good question. I don’t know if people all know Runahead execution, so maybe I’ll explain that a little bit . So it’s my Ph.D. thesis topic, and I really enjoy it still. I teach it to freshmen sometimes actually in ETH. The idea is whenever you have a long latency memory access in the out-of-order processor, which has limited instruction window sizes and we wanted to design a mechanism that doesn’t stall the processor whenever we have a long latency memory access. So existing out-of-order processors, we analyzed at that time they would stall quickly after, the long latency memory access occurs, and they cannot do anything, they just stall for a long time. The idea of Runahead execution is not to stall but do useful work using speculative execution. Basically if you checkpoint the architectural state, whenever you get a long latency load miss that essentially fills up the window, and you get into the speculative execution mode called Runhead mode. And during this time, the processor is speculatively executing instructions and some of the data is not available of course, because you missed on that. But the data that’s available enables you to pre-execute these instructions that will lead to other cache misses, other long latency load operations. And now we can parallelize those long latency operations with the long latency operations that you would have otherwise stalled on. And this effectively serves as a nice prefetching mechanism. And whenever the original load miss comes back, you basically flush the pipeline, go back to the checkpoint and re-execute. Hopefully, while you’re re-executing all of those instructions that would have otherwise been loaded misses have already been prefetched into the cache. I really like this idea. Of course, it’s my baby, right? So how did we come up with it? I actually did five internships during my graduate school, during my Ph.D., the first internship, I worked with Eric Sprangle and the Pentium 4 architecture group at that time, and we looked a lot into prefetching. We actually have a patent on how to reorder the prefetches and memory demand accesses and the memory controller, FSB front side bus controller at that time. We were also looking at, okay, why you have these long latency memory accesses, how beneficial is out of order execution to tolerate it, how big should your buffers be to be able to tolerate this. And this got me thinking that maybe we should do something different as opposed to increasing the size of the buffers in the processor to make out-of-order execution be more effective. And next time I went for a second internship at Intel, Chris Wilkerson and Jared Stark, who were my mentors at that time, they were actually thinking in a similar way. Essentially, Chris was actually working on something very similar to what led to Runahead execution. And we work together, and we came up with the ideas, that essentially is known as Runahead execution today. So it basically started from the observation that maybe we should do something different as opposed to increasing the size of this large instruction windows. That really came through as a collaboration between the folks at Intel. And if you look at the original Runahead paper, I’m the first author, Jared, Chris and Yale. So there are fours authors.
Qinyi: That sounds great. So the next question is: Runahead Execution is a form of more aggressive speculation. When you study this idea, did you consider the security concern with respect to side-channel? It has become a really hot topic today.
Onur: Yeah, absolutely. That’s a good question. You know, absolutely not. Yeah. I mean basically security was not a concern at that time, uh, and until very recently I would say, and the design of hardware. And I think this is normal because people were really designing microprocessors to be very high performance and low cost. And those were the two major design constraints for a really long time. Energy efficiency became a design constraint in the late 1990s and early two thousands. But right now, that’s of course it’s a key design constraint: energy efficiency, power efficiency. Security was not even in the horizon, right? So that’s why we didn’t really think of any of the security issues that this could lead to because it was really not part of the radar. I think this is normal, as I said. Uh, that’s the evolution of computing. Uh, over time as you develop more sophisticated techniques, as you solve some of the big problems like performance, energy efficiency, reliability, at some point maybe other issues become even more important. And I think right now security is very important and clearly Runahead, uh, is similar to out-of-order execution in the sense that it speculates, pre-fetches data into the caches that could lead to side channels. And it probably exacerbates the Spectre problem, but we need to change the mindset so that we solve those problems in a fundamental, fundamentally good way. And I don’t know how to do that, but I think it’s good to do research on it.
Youwei: Before we move on to the next stage of your career, we want you to compare the CS and the ECE Department of UT Austin because we know at that time in the CS department, there are also some architecture projects like TRIPS. Can you compare the differences?
Onur: I see. Okay, that’s a tough question, you know. I mean certainly comparing the two departments is hard because I don’t know enough CS and ECE. But I could compare the style of, the different projects. And I don’t think this is really a function of the department. I think this is really a function of the advisor and their style of research at that point in time because advisors styles also may change depending on what they want to achieve, right? So with my advisor, our style was, as I described, that you focus on fundamental problems. Each student carved their own thesis. You’re relatively free in coming up with new ideas. So you can actually work on something that Yale was not thinking of at that time, and you go to Yale, and describe your idea. If he thinks this is great, then you work on it. So it was a different style certainly. And I liked that style. the other style at that time, the trips project was going on, which was also a very important project, I think, at ut in the CS department, uh, it was focused on building this large dataflow-like engine that is distributed. I don’t want go into details of course, but the key thing is really, uh, they wanted to implement this processor to demonstrate a prototype showing that this actually improves performance, energy efficiency, etc.. And that’s a very different style of research. Clearly, there’s a very clearly defined goal, uh, and there’s a very clear idea. But now the important part of research is for the research group is to find out how to build this processor. And that requires certainly some research but also a lot of implementation and also requires a big group because you’re really building a chip. So I think that’s the fundamental difference between the styles. Uh, I think it really depends on what you want to do as a Ph.D. student. if you have a choice between these two, it depends on what kind of a person you are. If you want to develop new ideas on your own, of course collaboratively with the group that you’re in, maybe the first style is better for you. But if you’re really like building real chips, implementing and you’re Okay working in a large group together and somehow figuring out what your thesis should be within that, working with your advisor, of course, uh, then you’ll need to, uh, uh, maybe that, that style of research is better for you. So I think, uh, it’s really a trade-off in the end there. Pros and cons of both approaches. I think that finding a thesis topic is, uh, probably easier if you actually tried to carve out your own path, uh, because in a, in a big project and if 20 people are working on it, the question is, will we be able to find 20 different thesis topics, right? Yeah, of course. This depends on the project and the advisor. And the students. So it’s very hard to say that it’s not possible, but it’s maybe a bit harder.
Qinyi: So after your Ph.D., you first went to Microsoft as a researcher. However, your research topics have drastically changed from Runahead Execution and improving memory level parallelism to memory controllers andNoC.So what inspired you to choose these new topics?
Onur: Oh, that’s a great question also. It’s good to change your research topic once in a while, especially after your Ph.D., you know. So, uh, what inspired… so essentially when, when I started, uh, actually I start, I wasa first, uh, founding member of the computer architecture group at Microsoft research. And uh, a week after I started, uh, Thomas Moscibroda, uh, came, uh, to, to the office next door and we clicked right away and we started working together. And at that time, multicore processors were just hitting the market in the sense that they were becoming mainstream. Intel, for example, I didn’t tell Pentium D, which you probably don’t know because it doesn’t exist anymore, but it was basically a replication of two cores and we were very interested in it because he, his background is in distributed systems. Clearly my background’s in computer architecture. I mean we were really interested in problems that are new to multicore systems because we thought those were the important problems to solve. Uh, and uh, I had some interest in memory controllers of course. And while we were brainstorming, we said that definitely memory controllers will be a problem because if you are putting all of these cores and they all have to go through the memory controllers, then you have a bottleneck here. And then we started looking into the algorithms that are employed in the memory controllers and we found a lot of fairness issues. So the first paper we wrote was actually on memory performance attacks and that was published in USENIX SECURITY (https://people.inf.ethz.ch/omutlu/pub/mph_usenix_security07.pdf). And similarly, NoC also becomes a problem because if you’re putting many cores on a chip, how should they communicate with each other and the memory controllers. So that was also a natural direction. So the real thinking was can we do something big in the multicore space, which is just starting, uh, that will also remain fundamental. I think memory controllers still remain fundamental. How to build energy efficient interconnects remains fundamental. Uh, the first work we did in the interconnect part was bufferless routing, a case for bufferless routingfor on-chip networks (https://people.inf.ethz.ch/omutlu/pub/bless_isca09.pdf), which was published in ISCA 2009. I could go on and on, but that was a real, uh, the, the reason we wanted to, I wanted to switch actually. Uh, this later became, we looked at memory quality of service quite a bit, but we also looked at some other, uh, fault tolerance issues at Microsoft at that time. Uh, and that was also important, I think. I always had this interest in fault tolerance, which later influenced my research quite a bit as you can see with the RowHammer problem, for example.
Youwei: I think actually next question is already partly answered. This question is, we noticed that you also published a paper in PODC, a conference in distributed computing theory. Because you do architecture, how did you find the connection?
Onur: I see. Yeah, I think I know what you mean by partly answered, but I’ll explicitly answer this. So PODC is the top conference in principles of distributed computing. I normally don’t publish there, but Thomas, who was my colleague, he was in that community. And the problem we were working on basically how to design memory controllers that can provide quality of service to different requests. Uh, it’s certainly a distributed computing problem because there are multiple memory controllers on chip. Then the question becomes, so if you want to actually provide quality of service, one of the mechanisms was Parallelism-Aware Batch Scheduling, which was published in ISCA in 2008 and one of the ideas in that work was to rank the threads in some order such that threads that would benefit the most from being prioritized should go first without, of course, destroying the performance of some other threads. I don’t want to go into the details of the idea. People who are interested can read the 2008 paper. This works nicely in a single memory controller, but what happens if you actually have multiple memory controllers? Now you really need to look at the requests in all of those memory controllers to be able to come up with a consistent ranking across those threads. So it’s really a distributed memory controller problem. Now the question becomes how do you actually design a mechanism that minimizes the messages between the memory controllers so that you’re more efficient and that’s why this was a perfect example of distributed computing and computer architecture put together. Thomas did a lot of the theory part of the work. I did a lot of the practice and implementation part of the work and we had a nice PODC paper. I think that’s my only PODC paper, but it’s thanks to the collaborators that we had actually.
Qinyi: That’s very nice.
Qinyi: That’s an interesting topic. Um,then after your time at Microsoft, you moved to CMU in 2009 as an Assistant Professor. So why did you make that choice?
Onur: OK, that’s a great question also. So, uh, essentially working at Microsoft was great. I had a lot of freedom because I was, I was a founding member of the computer architecture group and we, uh, we hired a lot of great people also. Uh, but I, and I was actually working with a lot of interns also. Uh, but, uh, I wanted to teach and I also wanted to, uh, maybe work with students even more closely for a longer term, five to six years. And it’s very hard to accomplish something like that in an industrial research lab. Certainly not a product group, but that also, uh, also not a research lab. And that was the major reason. And I really enjoy teaching. It’s, you can, you can do some teaching, uh, when you are in industry, but you don’t get rewarded much for it in the end. So as a result, you cannot really… that cannot be a big chunk of your focus. And I enjoy the teaching and mentoring part of being a professor, uh, quite a bit in addition to the research parts.
Youwei: The next question is, what is the difference between your academic life at Microsoft research and CMU?
Onur: Okay. What’s the difference? Yeah, that’s a good question, Also. Yeah, I think I can give you some differences basically at MSR, or in industry in general. even though MSR was also somewhat academic at that time, it’s one of the finest academic research labs in the world. Uh, it changed a bit over time, but still, it has its academic flavor. Um, essentially I think one of the big differences is how closely you work with students, whether or not you teach and whether or not you will be constrained at some point. I think these are the three key differences I should probably mention. Uh, clearly in industry you don’t work as closely with students. Even though you may have a lot of interns, they come and go. Uh, so we don’t mentor students for five, six years, which is the length of a Ph.D. Uh, you certainly don’t see a lot of undergraduate students or master’s students or high school students. That doesn’t happen unless they come for internships, which is not the common case. Uh, so working with students, is that what you do in academia? For sure. Teaching, again, as I mentioned, you don’t get rewarded much for teaching in industry. You could certainly teach in some local school around you, but, that’s extra effort for sure. Whereas teaching is a fundamental part of what you do in academia. And if you want to become a professor, it’s a good idea to teach, and to like teaching. And the third one is I think, about the long term. So while I was at Microsoft research, it was great because I had a lot of freedom. But the question always is, how long will your research freedom last in an industrial setting? And I think this is the important thing to think about. Uh, if a research lab lasts for a long time and it becomes this free, that’s great, but it turns out that’s not the case in most, existing examples. And even if it’s true, usually, at a company, you want to contribute to something in company and which is not a bad thing. Actually. If you go to an industrial research lab, I think you should definitely contribute to something in company. But this may also restrict your freedom, in terms of what you want to do at some point because you will really be working on some product line research even if it’s research and sometimes you will be working on products actually. I think that those three are the fundamental differences. There are some other differences, but I don’t think they are as fundamental.
Qinyi: I see. So at CMU, you changed your research direction slightly again from memory access scheduling and NoC to “memory problem” from all angles. So why are you so excited about this memory problem?
Onur: Okay, that’s a good, well, I think it’s obvious, right? That’s the biggest bottleneck that we have in computing systems today in my opinion. Essentially if you look at the processors, most of their time is spent waiting for data coming from memory, and most of the energy in the system is spent waiting for data coming from memory. And we recently wrote a paper in ASPLOS in 2018 (https://people.inf.ethz.ch/omutlu/pub/Google-consumer-workloads-data-movement-and-PIM_asplos18.pdf) where we analyzed four key workloads in mobile systems that are used in Android and Chromebooks, essentially Google’s workloads. And we found out that, uh, more than 60% of the energy is in data movement. And we knew a lot of this before actually. Uh, when I joined CMU, I was very interested in all of this, but I, I should also correct that. I didn’t really abandon the memory controller research and we continued doing memory controller research actually. We’re still doing some of that. Uh, but I also added some more research topics. For example, we started working on, actually we had started working on nonvolatile memory, phase-change memory while I was at Microsoft research, but we continued working on that and hybrid memory systems. Uh, the DRAM scaling problem, how to attack the DRAM scaling problem, that really started, uh, at CMU actually. Uh, that’s, uh, because we wanted to really tackle the DRAM scaling issues. Nonvolatile memory was certainly very interesting, but it was very speculative. But DRAM, clearly, uh, everybody uses DRAM, it’s everywhere, and we wanted to improve that. And that started, uh, at CMU for sure. I can go into more detail, but I don’t know how much time we have. Okay.
Youwei: And, then in CMU, your group discovered with this RowHammer problem in 2014, and this problem is now very important both in industry and research. How do you find this important problem?
Onur: Yeah, that’s a great question actually. Now you ask the right questions that I can talk in more details about the DRAM scaling. So we were looking at how to scale DRAM into the future, meaning how can you reduce the size of DRAM cells while keeping it reliable? So we were looking at issues like refresh because the critical issue of scaling DRAM is how do you determine the retention time when DRAM cells become more leaky and become more vulnerable to these quantum-like random effects that change the retention time. So we actually started the problem by looking at refresh, how can we get rid of refreshes? We also looked at another angle, which is how can we improve the parallelism, overcome the long latencies, but that’s not as related to the raw hammer problems. So I’m going to focus on the refresh. So while we were working on the refresh problem, we built a lot of infrastructures. These are FPGA-based testing infrastructures so that we can test DRAM chips, figure out the retention times, figure out the latencies and figure out when they failed at what retention times. Uh, concurrently we were also working on a flash memory infrastructure. Our first publication on a using FPGA-based testing infrastructure is on flash memory in DATE 2012. We were looking at error mechanisms, reliability mechanisms, similar scaling issues in flash memory. And we saw a lot of read disturb effects, and we already started thinking that some of these read disturb effects may be present in DRAM as well. Basically, read disturb means that whenever you read a row in memory, you disturb the adjacent rows. That’s true for flash memory also. Actually, that’s true for hard discs as true for phase change memory. That’s true for SRAM. And we asked the question, Oh, maybe it’s also true for DRAM. We had this infrastructure built and one of my students Yoongu Kim, he went to Intel as an intern in 2012. Summer 2012 actually. I spent the summer in 2012 in Intel also for a couple of months. And he started also looking at those issues, at Intel at that time. And when he came back, we used the infrastructure and our collective thinking to test, if this problem also exists in DRAM chips. And we found out that actually, they were vulnerable, the answers were vulnerable to these read disturb effects. Now it’s known as their RowHammer problem. So I think, we wrote the paper together with Intel folks, which was published in ISCA 2014, on this topic. So I think what enabled us to do this is really, three things. One is, we were already working on, memory, different types of memory, flush memory, and we had clues in flash memory that read disturb is a big problem that enabled to think, oh, it may be a big problem in DRAM chips, existing DRAM chips as well. The second thing was we built the infrastructure to test DRAM chips relatively easily using FPGA for some other reason, which was to check the retention times. We already had it available so that we can test raw hammer. And the third reason was the collaboration with Intel that enabled us to gain more insights into the problem and then solved the problem also.
Qinyi: So again on your papers, among all your papers, in your opinion, which one is the most important?
Onur: Uh, I don’t know if I can answer that question, you know! Because, uh, I like a lot of my papers. Everybody should like… but they’re all your babies, right? How are you going to choose between your different children?
Youwei: Maybe the top three.
Onur: Top three? How about top 20?
Qinyi: Maybe pick some from the top 20.
Onur: Okay. So let me, uh, let me think. Uh, you know, I like a lot of them. So Runahead paper. Of course the baby, right? It’s in HPCA 2003, that’s my first paper. That’s my thesis paper. I look back, it’s not written as nicely. I can write it better. So I rewrote it from my thesis. So that’s, I think I like it. I don’t know. I don’t want to rank them, but, uh, let me do it chronologically. Maybe. Some things that come to my mind.
Uh, at Microsoft we wrote this memory performance attackpaper (https://people.inf.ethz.ch/omutlu/pub/mph_usenix_security07.pdf) that I mentioned. I really enjoy it. I think it opened up a lot of research and memory controllers I think used in security. Uh, one of the papers that, uh, I was the first author on at Microsoft research wasParallelism-Aware Batch Scheduling (https://people.inf.ethz.ch/omutlu/pub/parbs_isca08.pdf). This is one potential solution to the memory quality of service problem and variance of this is implementing Samsung, some of the Samsung SoC memory controllers right now. I like this paper a lot because I think it’s a good example of how to write a good paper. I actually recommend that to my students, uh, to, uh, read and to follow, uh, as an example. Uh, let me think. We wrote this bufferless routingpaper (https://people.inf.ethz.ch/omutlu/pub/bless_isca09.pdf) at Microsoft. I like that also. Uh, we wrote the first PCMpaper (https://people.inf.ethz.ch/omutlu/pub/pcm_isca09.pdf), one of the first phase-change memory papers, uh, together with colleagues at Microsoft, which was published in ISCA 2009.
Of course, the RowHammerpapers. Exciting. I cannot say (the most important), uh, that’s, yeah, that’s, that’s also one of the babies and other papers…RAIDR, retention-aware intelligent DRAM refresh (https://people.inf.ethz.ch/omutlu/pub/raidr-dram-refresh_isca12.pdf), which we published in ISCA 2012. That opened up a lot of research, a lot of work including ours, but other people in the field in terms of how to reduce the refresh problem, how to get rid of the refresh problem. Uh, another one’s Subarray-Level Parallelism (https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf). That’s I think very important also because that’s gets rid of a lot of the bank conflict impact. Uh, and that was also picked up by Samsung and Intel. They wrote a paper (https://pdfs.semanticscholar.org/e762/b1b654798cec0fb9d6000c7f7c777ac0689f.pdf) in Memory Forumin 2014 saying that this is a good idea that should be used in future, uh, products because uh, it enables us to tolerate long latencies that we have because of bank conflicts.
Let me see. I’m sure I’m missing a lot because there are a lot of papers, but I’m going chronologically. I missed, I already missed a bunch of them and I like the works that we’ve done on processing in memory for sure. Like, uh, Vivek’s work on RowClone (https://people.inf.ethz.ch/omutlu/pub/rowclone_micro13.pdf), essentially cloning pages in DRAM without going through the processor. That’s very fast. And then his later work on Ambit(https://people.inf.ethz.ch/omutlu/pub/ambit-bulk-bitwise-dram_micro17.pdf), which is doing bulk bitwise operations in DRAM. I think these are very forward looking works. We did other work on 3D stacks in memory computing, like Tesseract, work in ISCA 2015 (https://people.inf.ethz.ch/omutlu/pub/tesseract-pim-architecture-for-graph-processing_isca15.pdf). Uh, it’s hard to pick one, you know.
Qinyi: They are all wonderful papers.
Onur: I think so. Yeah. I’m glad you think so as well. I mean we can keep going also. I mean more recently we recently published this paper. This is again based on theinfrastructurethat we’ve built over the years. There’s a paper in HPCA 2019 (https://people.inf.ethz.ch/omutlu/pub/drange-dram-latency-based-true-random-number-generator_hpca19.pdf) and it shows that you can actually generate random numbers in DRAM, true random numbers in DRAM by reducing the latencies and once you reduce the latency, if you get some cells failing at 50% rate, they’re essentially random number generator cells. If you have a mechanism that profile these cells, you can essentially generate true random numbers without changing DRAM at all by just changing the memory controller at high throughput and low latency. And this was enabled because of all our research that we’ve done in the past, understanding of the DRAM that we built.
Youwei: So speaking of time, our next question is, you have, many papers. Especially in ISCA, you have more papers than anyone else. How do you manage your time and how do you manage your students to produce so many papers?
Onur: Okay, that’s a good question also. So, okay, let me first say that the goal is not really to just write papers. Papers are a means to an end. I think my goal has always been how do I solve a problem such that it can make a big difference in the world, have high impact essentially. And I think, today to be able to have high impact, you need to generate a lot of good ideas. First of all you need to pick a big important problem. You need to generate good ideas to solve that problem and you need to do all the right things such that you get good results showing that your ideas are actually good at solving the problem, and then the next step is really writing the paper to show to the world that, okay, that’s a good idea. Or this is a mechanism that you should consider. So, I think that’s the steps that I follow, and I think this naturally leads to certainly, papers. I have a big group that enables a lot of papers so we can focus on a lot of topics. Uh, I worked with them closely, but I also give them a lot of freedom. Essentially I enable the idea of creativity in the students. And I try to pick students who can actually work independently, not all the time of course, but, who has the potential to work independently. So I think, um, that enables a lot of new ideas coming out, collaboratively with my students and also encourage my students to collaborate with each other so that they can, they can actually help each other. They can push back on each other so that they can develop a lot of ideas. In terms of managing, that’s how I manage my students. Uh, and I give them a lot of freedom. So if my students are doing well, for example, and I enable their freedom so that they can develop big ideas, I just give them the right feedback so that they can find their path in a nice way. Um, how do I manage my own time? I mean, I work hard, I think it takes a lot of effort to do a lot of good work. So I don’t think there’s any shortcut. Uh, but I also, try to, I mean, of course sometimes it’s stressful, so you need to find mechanisms to minimize your stress. Uh, so I swim a lot, but that’s the thing that I do. I swam this morning at 6:00 AM until 7:30, I think. So it took 90 minutes today? No, no, I think it was longer. It took a hundred minutes till 7:40. It was very nice because we are in Phoenix, you can swim outside and it’s beautiful. So I think, you work hard, but you also play hard. You figure out the best ways, basically do what you like. I enjoy what I’m doing, so I don’t feel like it’s really work. I think research is really a lifestyle for me, and I am living in that lifestyle. but I’m also adding other stuff that I think should be part of my lifestyle that I enjoy, like swimming and traveling.
Youwei: One side question is, how long distance can you swim?
Onur: That’s a good question, I don’t know the distance is. I guess we can calculate it. But I don’t swim extremely fast of course, I don’t swim very slow also. I think I swim definitely faster than average swimmers that you find in a reasonable swimming pool. For 100 minutes, it is definitely more than 4 km I think. But I have to check that you know.
Qinyi: So you mentioned that one criteria when choose students is their independence. So do you have any other criteria and will you encourage them to go to academia?
Onur: Okay, these are two separate questions. Let me tackle the first one. Well, the first one is I think it’s an art, it’s not easy. Certainly independence is a good metric, but I, am I, I want it all in a student! So creativity, hard work, resilience. I think really wanting to do a Ph.D. and basically I think the key thing is perhaps resilience in the end, meaning you set your mind to the Ph.D. and you go and do it no matter what. And of course you need to have the right ingredients in the sense of creativity, hard work, uh, and also working well, uh, with people. I think that also helps. Uh, so I tried to look for these different things, but I mean there’s no single algorithm, I think, to select good students. That’s, a Ph.D. is a long road. It’s not, it starts, uh, I can go up to seven, eight years, hopefully not. I took six years in my Ph.D. It was good. I’m glad I graduated within six years. I probably wouldn’t want it to last longer. So I think resilience is really important, but of course I think you need to have the other characteristics as well. I think you need to really have the right mindset while they are getting into a Ph.D., and I think that this is really, I look for a click between the student and me, if, if it really clicks between the student and me in terms of the style of work, style of thinking, that really helps for sure. Do I encourage them to go to academia? Uh, I mean, I don’t strongly encourage them to go to academia. It’s of course good for students to go to academia and become professors. But I think this is really up to the students in the end because academia is certainly different from industry. And if you really don’t like teaching, for example, maybe academia is not that great for you. Uh, but I, uh, if I, if I think students should go to academia because I think he would be a great teacher, great researcher, great professor. I definitely encourage students to go to academia in that case. And I think I’ve encouraged a lot of my students to go to academia, but most of them end up going to industry, which is not bad, of course. That’s what, if that’s what they want to do, that’s great. But I think one thing to consider after you’re done with your Ph.D. is, uh, if you go to industry, it may be hard to get back to academia. If that’s really what’s in your heart to go to academia and you’re making a decision, uh, after your Ph.D., uh, you might want to think twice before going to industry, uh, because once you go into industry, if you’re, especially if you get disconnected from the research community, if you stop publishing, if you stop being visible in the community, it’s very hard to go back to academia. Uh, you’ll need to do a lot of work, uh, to go back to academia. Whereas the other way is not, uh, hard, it’s not as hard. If you go to academia, you become a professor, you enjoy it and you decide, okay, it’s time for me to switch the industry, it’s usually not that hard because there are a lot of, uh, and, and the reason is very fundamental. There are many industry jobs compared to academic jobs. It’s, it’s usually harder to get an academic job for that reason. Positions are scarce.
Youwei: The next question is, you recently moved to ETH. Uh, what’s the difference between ETH and CMU, Europe and the US.
Onur: Oh, okay. Well that, those are different questions. You know, European, US is different from ETH and CMU, oh, let me start with the ETH and CMU first. Uh, I think they’re both top schools and that’s the reason I go to eth because it’s really a top school. I think it’s maybe a top in the world in computer science of course, I don’t believe in all of the rankings, but ranking says something also sometimes. Uh, so there’s a lot of good resource support in ETH. Uh, so what are the fundamental differences? Well, one is in Switzerland, one is in the US I think Switzerland is nice. Us is also nice. But, yeah. Uh, I think, Eh, one of the big differences is CMU is a private school. Uh, eth is it mostly federally funded school from a professor’s perspective, I get a lot of funding from the, Swiss federal government and that’s very generous. Uh, so I don’t need to write as many grants as I needed to write at CMU, at CMU. Basically as a professor you need to write a grant, for every student that you want to support, which wasn’t a big problem for me. But you spend a lot of time writing grants or you don’t have a lot of time for other things. Maybe like working with your students, or generating new ideas. So from the professor’s perspective, I think there is this fundamental difference. Um, I’m not sure from a phd students perspective, I think they are both top schools in the end. Uh, you’ll be working with your advisor is probably more important than the school you’re in as long as the school provides the right environment so that you can have enough resources or, and also the intellectual environment where you can attract with many other people, and collaboratively work with many other people, in both of these schools actually do because they are top schools. From a PHD students perspective, I don’t think there will be much of a difference. It’s really about who you’re working with, in my opinion. Let me think if there’s anything else. No, I think those are the fundamentals. In terms of USA in Europe, that’s a much different question because you know, Switzerland is not necessarily Europe. I mean it’s in the middle of Europe. Yes. But it’s not part of the European Union. Yes. And the universities in Switzerland are, and I will say are slightly different from the universities in other parts of Europe that European style sometimes is different. So Swiss universities I would say are closer to the US universities or maybe it’s a mix of US and European style universities, but closer to the US universities. The approach I take, in working with my students is very much similar to the approach I took at CMU. So from that perspective, I don’t think there’s much difference.
Qinyi: So in recent years you did intensive research on bioinfomatics, which is not a traditional topic in computer architecture. So can you tell us more about how you found this topic and what excited you the most?
Onur: Okay, that’s a great question. I like that question. I actually give talks describing how I started in this one. Uh, so it, it’s, again this one started collaboratively, uh, with one of my friends. He was at the University of Washington Genome Sciences Department. He was doing a postdoc over there. Can Alkan (http://www.cs.bilkent.edu.tr/~calkan/). He’s now a professor at the Bilkent University in Ankara. Uh, and I was at Microsoft Research and essentially he was doing genome analysis. He was very interested in building mappers, for example, with mappers to do fast genome analysis. And, uh, we started talking about this and we went on a hike together, uh, at Mount Rainierin 2007 and we did a lot of brainstorming during that hike. And one of the things that we, uh, were both very interested in was actually designing very fast genome analysis mechanism because at that time, if you look at genome analysis, uh, the tools that were there to, uh, reconstruct, uh, readsand map them to a reference genome, this is called a sequence alignment or read mapping.Uh, (they) were extremely slow and this is the first fundamental part of the genome analysis. If you want to ask questions like where do these different genomes differ, uh, what is your vulnerability to a particular drug or something, you need first reconstruct your genome. And that takes a lot of time. If it takes two weeks, then you have no hope for, uh, quickly, uh, generating an answer which we may need in real time. At that time, we actually, uh, envisioned embedded devices that could do this analysis really fast. Of course you needed to do research in architecture as well as bioinformatics to be able to enable that. So we started doing research and software to begin with. How do you design these mappers that are very comprehensive, that can do genome analysis? How do you make them really fast? So we had a lot software papers.The first one (https://www.nature.com/articles/ng.437) was in Nature Genetics in 2009 and then later we had a paper (https://bmcgenomics.biomedcentral.com/articles/10.1186/1471-2164-14-S1-S13) in BMC Genomics on software methods where accelerating’s really fast. And then we had a bunch of papers in bioinformatics to accelerate these mappers using FPGAs. And, uh, we looked at GPUs, we also looked at in memory processing techniques more recently. Uh, so that’s how it got started and now it’s a relatively large effort. My group actually, I, I, I graduated my first student who worked on genome analysis, uh, last year, Mohammed Alser (https://people.inf.ethz.ch/alserm/). He was co-advised with, uh, with Can Alkan. Now I have five students working on bioinformatics, but it’s not just bioinformatics. It’s really system designed for bioinformatics – how do we design systems for bioinformatics, of course with a lot of knowledge about the bioinformatics, uh, at the higher end so that we can make things much faster, much more efficient, such that we can do, we can enable large scale processing of a lot of data, because we can actually generate a lot of genomic data today, because people will be able to build genome sequencers that, that are very high bandwidth.I think it’s a really critical problem for enabling new applications that we may not even think of today. That’s the way I see it. We don’t know what we can do with genome if we can analyze them extremely fast. Certainly I can think of medical treatments. If a doctor is treating a patient and it’s life critical and they need to make a decision as to which drug to administer, they can make that decision very quickly, right? I think that’s what I feel really excited about. We can enable these, the sort of, uh, medical treatments that are really important for people, uh, if we actually succeed in this research. So the impact, in my opinion, the impact will be huge. That’s what I’m really excited about. And also, it’s not just medical treatments, it’s also scientific discovery, right? If you can analyze, manage genomes very quickly, maybe we can enable a lot of new discovery as to the origin of species and different relationships between different species. So basically, I don’t know what we can enable, but it feels like we can enable a lot. That’s what makes me really excited.
Youwei: Okay. So, this question is about China and over the years you have several Chinese students and visiting scholars and that you have also visited China several times. So what do you think about current architecture research in China?
Onur: Okay. That’s a good question. Yeah. I like China. I’ve been to China actually not several times, eight times right now. And I’m going there in August again to give the keynote speech at APPT conference in Tianjin. I don’t remember exactly when in August, but August, late August, hopefully. Uh, yeah. And I have a lot of Chinese students. Yixin was the last one to graduate, I think. Yes. Uh, and I work a lot with Yu Cai. For example, he did a lot of seminal work on flash memory issues. I still have some Chinese students in my group. I think, certainly a lot of China, there was not a lot of architecture research in China as far as I know when I started as a graduate student in 2000. Yeah, certainly there were a lot of Chinese who were in the architecture community, right? I mean Wenmei, that we mentioned. But over time I think in the last, let’s say 20 years, China definitely improved maybe exponentially. I don’t know. Of course I’m just making up this curve. Probably they improved exponentially in terms of how they generate ideas. Certainly we see a lot more papers from China right now in architecture conferences. And I also feel that, maybe during the early parts of the architecture research in China, it was much more implementation focused as opposed to idea focused. Uh, I think maybe that barrier is overcome right now. There were a lot of good people who started being idea focused and I feel right now there a lot of creative research that’s coming, from China in architectures and I expect there will be a lot more, going into the future. I don’t know if that answers your question fully.
Qinyi: Okay. So this is the last question. In (computer) architecture, there are three main conferences, ISCA, MICRO and HPCA. For our students, they look similar: if one paper gets rejected by one conference, we’ll just re-submit it to another one. Um, so that is, um, a very interesting phenomenon. Um, but it seems that they are managed by three organizations, SIGARCH, TCCA and SIGMICRO. Is this due to some historical reasons and is there something that can be done to further improve our community?
Onur: Okay, that’s, that’s a lot of questions. Pop question actually. So you mentioned three conferences, ISCA, MICRO, HPCA. I would add a fourth one, ASPLOS, but it’s a bit different because it’s really multiple communities, architecture, programming language and then operating system. So I’m going to ignore that one for now, even though I think a lot of architecture people publish also in ASPLOS. Uh, I think I understand your question because usually you may not submit to ASPLOS if you get rejected from one of those because you may want to look at a fit. So certainly these three conferences started differently because of historical reasons and different people started the different conferences. And as a result, we have these different organizations managing the different conferences. And I think that’s a good thing because it’s, it’s enabled diversity in the community. It’s always good to have different voices, uh, handling different things.And I like that diversity. It is diversity in terms of people, it’s also diversity in terms of thought. Uh, I can give you a little bit of history in terms of why they started differently. Actually MICRO was the first conference among all these three. It started in 1968, I think. I believe that’s true. Uh, but you could check also. And uh, it started as a workshop actually. It was a workshop on micro programming. At that time, people were very interested in how to do micro programming better. And incidentally, micro programming is invented by Maurice Wilkesin the 1951 paper that I mentioned during my, uh, award speech today. Uh, I was very honored to receive an award that’s named after him. Uh, but MICRO started as a micro programming workshop and it was both hardware and software because, uh, if you want to for example, reduce the size of your microcode, uh, you actually need to design a good software mechanism to reduce, uh, uh, to do the same thing with smaller number of lines of code. It’s essentially compilation, some sort of compilation or some sort of software optimization. So MICRO’s roots as a result have compilers as a very fundamental part of the conference. It’s also hardware of course, because micro programming is, uh, at that time all of the machines were micro program machines. And over time clearly MICRO evolved quite a bit. It became a full conference I believe in 1992 so it was a workshop for about 24 years and became a conference in the 25th year. Uh, and at that time it was about micro architecture plus compilers, uh, really. So it broadened up, uh, it was less about micro programming – you see fewer and fewer papers on micro programming overtime, you see zero papers on micro programming right now because it’s not about micro programming anymore. And right now it’s much more broad, of course. It’s, it’s similar to ISCA in its core, but it’s also slightly different because ISCA and HPCA don’t have this compiler aspect and also MICRO doesn’t have some aspects that ISCA and HPCA have. ISCA and HPCA, for example, have more higher-level system components aspects like uh, networking, sometimes, it’s towards sometimes, although that’s also going into MICRO and HPCA, uh uh MICRO recently. So I think because of the things, uh, because of the way research topics and interest of the community have evolved, conferences start resembling each other more and more, but they’re also slightly different. Now this is, I think, again good because now we have three conferences, uh, where students who are interested may submit papers to that enables more opportunity to get your work published. And also these are three diverse conferences. Uh, so for some reason conference A may not like your paper but conference B may be very receptive to it. And I think it’s good to keep that healthy diversity in the community for sure. Okay. That’s, that’s a hard question. Yeah. I mentioned that a little bit in my Maurice Wilkes talk today. I think, uh, I think our community has improved a lot. It’s become much more diverse and nicer over time for sure. Uh, I think we can improve the review system. It, I see one of the biggest problems that our community faces, because challenges that our community faces are our review system today. How do we handle the reviews, uh, and is it really fully merit-based or are there other factors that are affecting their views? I think a lot of people have complained, rightfully so in my opinion, that papers get rejected sometimes for arbitrary reasons. And I’ve experienced that also as I’ve shown, uh, examples of. Uh, for example, the Ambit paper got rejected four times. Uh, it was the paper that enabled in-memory bulk bitwise operations. And several of the times the rejection reasons where, uh, okay, this is a great paper, uh, novel idea, clever idea, but DRAM manufacturers will never implement it. I will consider this as an arbitrary reason to reject the paper because how do you know, all right? This is not a very scientific reason, right? How can you prove that DRAM manufacturers will never implement it? It’s not a flaw in the paper, basically that you’re pointing out. So I think we can fix, we need to fix such issues because if these papers get rejected arbitrarily, there’re multiple bad consequences to add. One is I think scientific research gets delayed. And we’ve experienced this with Ambit, actually. We published it two years after we developed the ideas, but we put out a technical report online called Buddy-RAM(https://arxiv.org/abs/1611.09988) at that time. And other people built on Ambitusing that technical report. So they published papers earlier than us that built on Ambitbefore we could publish Ambit. So we enabled scientific research, which is good, but I think this out-of-order thing is not good. But they, they didn’t cite the Pinatubo work (https://dl.acm.org/citation.cfm?id=2898064) in DACin 2016 for example – you want to chase a group, they will love that. They did citeBuddy-RAMas one of their inspirations. But I think this is not sustainable if we keep arbitrary rejections. So I think we need to solve this problem, or reviewer accountability in the system. So how we solve it, I mean this is, I think beyond the scope of this conversation, I think we need to think about potential solutions, brainstorm about the solutions. But I think the first step is really making this a first class citizen in one of the problems to solve. It’s important for the students also because it hurts to get your papers rejected for arbitrarily, right? Of course, you should be resilient and keep working on it. You should believe in the work that you’re doing, be passionate about it, but it still hurts as a student.