Mor Harchol-Balter

Mor Harchol-Balter

Women@SCS conducted an interview with Mor Harchol-Balter, Professor at the School of Computer Science.

Women@SCS
Hi, Mor! Thank you again for agreeing to do this interview with us! Could you tell us a little bit about your background and your journey before you came to Carnegie Mellon?

Professor Harchol-Balter
I did my undergraduate at Brandeis University, a small four-year college. My advisor wanted me to immediately apply for graduate school, but I decided that I wanted to get a job and take a break from school. When I went off to work, it was really nice to get away from all the stress of school and to have evenings and weekends to myself.

But at the same time I felt like work wasn't challenging me in the way that I was used to being challenged. It's amazing how you miss how difficult school is, and you miss making your brain work. After a couple years I went back to my advisor and said, "You were right. I belong in graduate school. And so I went to Berkeley for my PhD.

It was actually kind of a shock when I got to graduate school. Just being away for 2 years was enough to forget everything! I started my PhD in theoretical computer science, working with Manuel Blum. But I felt like the theoretical models didn't capture a lot of the realities of computer systems. So I ended up in an area which I call performance modeling. A lot of this is something that I really created as I tried to capture what I was measuring in computer systems. Then I graduated this must've been 1996.

Then I went into a post-doc at MIT and had a baby. I actually showed up to MIT already pregnant, and nobody at MIT could tell. I told my postdoc advisor when I was seven months pregnant, and he was like, "No, you're not pregnant!"

It just shows you how people at MIT can't tell anything [laughter]. So I had a baby, taught a class, and did a lot of research. And then I applied for jobs, and I end up here. So that's kind of the story.

Women@SCS
Wow. That's so awesome. You said that theoretical computer science didn't really capture what you wanted, but what excited you specifically about distributed computing and performance modeling?

Professor Harchol-Balter
So theoretical computer science is all about looking at the worst case. You assume there's some kind of big, bad adversary, and the adversary's sending you this worst-case input. When you say algorithm A beats algorithm B, what you mean is that Algorithm A, when run on its worst-case input, does better than algorithm B, when run on its worst-case input. But thats just one input. In reality its very unlikely that each algorithm is run on its absolute worst input. In fact, it may be the case that algorithm A performs worse than algorithm B on almost every input. It felt like a lie to me to claim that algorithm A was superior.

Suppose what you have are people submitting web requests. The inter arrival times are coming from a distribution, and the sizes of the requests are coming from a distribution. Nobody's trying to send you the worst-case set of arrivals. Does it really make sense to assume the worst case inputs?

So I became interested in thinking about what happens when the inputs are drawn from some distribution, rather than chosen by a worst-case adversary. I started looking at models used in Operations Research, rather than Theoretical CS. So I tried taking classes in operations research, where they deal with distributions on their inputs. But a lot of the distributions they were dealing with had certain memoryless properties, or Markovian properties, which are very nice for analysis purposes but didn't seem to me like they fit the real world, either.

So then I went off and started measuring real workloads. I asked myself, "What do real jobs look like? What is their duration? What is their CPU lifetime?" I actually spent a whole year measuring Unix jobs to understand their CPU usage the total CPU usage is called the CPU lifetime. What I discovered was that the CPU lifetimes had a heavy tailed Pareto distribution.

Basically, what this says is that the probability a job of size t requiring more than t seconds of CPU is proportional to 1/t. So it's a power law distribution, which is also called the heavy tail distribution. This was a surprising finding at the time. In fact, at the time when I discovered it, a whole bunch of computer systems professors just told me that my work is wrong, my thesis is wrong, everything I'm doing is wrong, and how could I possibly know anything, 'cause I'm a theory person?

So it was kinda harsh. But the paper won a best paper award, and got a lot of press and stuff like that, and that's what became my thesis. Now the fact that CPU lifetimes follow a heavy-tailed Pareto distribution is widely accepted, but at the time it was quite controversial.

My work today on performance modeling of computer systems assumes that the inputs come from distributions, but Im assuming empirical distributions -- that is, ones based on computer measurements. In this way, my work is more CSy than operations research, and it's also not exactly theoretical computer science, but it definitely involves proving theorems. Lots of theorems!

Women@SCS
That's a really scientific approach to systems!

Professor Harchol-Balter
Well, I was trying to get to the truth. One of the things that's so nice about graduate school as opposed to industry is that you have all the time in the world, or at least I felt like I had all the time in the world, to get at the truth. When I was working in industry, it was always like, "Okay, you have two weeks till the next deadline."

It just seemed like everything was two weeks, and there was no "I'm gonna spend a year measuring Unix jobs and seeing what they look like because I need it to formulate the right model."

Women@SCS
Yeah. That sounds so interesting and also nerve-racking to do.

Professor Harchol-Balter
It's very scary to go do your own thing. Graduate school is like a roller coaster [laughter]. When your paper gets accepted and get these amazing reviews, you're just feeling on top of the world. But maybe a month before that, you're feeling like, "Nobody believes me. Nobody likes the stuff. Maybe this isnt the right problem to be working on?"

It's a very scary kind of feeling. And it's not just women who get scared; everybody gets scared. One of my former PhD students had to give a big talk at one of these big conferences in front of 300 people, and he said to me, "Y'know, I'd rather have any other job than this. Anything else would be better than what I have to go through right now." He's like, "Why didn't I just become a teacher in a grade school or something? Why didn't I pick something that was less scary than what I'm doing?" It's a very scary kind of feeling. And it's not just women who get scared; everybody gets scared. One of my former PhD students had to give a big talk at one of these big conferences in front of 300 people, and he said to me, "Y'know, I'd rather have any other job than this. Anything else would be better than what I have to go through right now." He's like, "Why didn't I just become a teacher in a grade school or something? Why didn't I pick something that was less scary than what I'm doing?"

And the thing is, it's not that he was thinking, "Will I remember my words or be able to answer the question?" It's more, "What will people think of this work? What if they think that it's stupid? What if they just don't like it?" For many people, in their first few talks, they feel like they can barely get the words out of their mouths. Thats why they always have water at the podiums!

Women@SCS
Yeah. I've definitely heard people say that PhDs are like rollercoasters [laughter]. So the next question is, could you tell us about the current research projects that you're working on?

Professor Harchol-Balter
One of the things that has intrigued me for a long time is the question of the optimal scheduling policy. Suppose you want to minimize average latency, and you have different-sized jobs. Some jobs are little, and some jobs are big. What would you do to minimize latency? You could schedule the jobs basically in the order that they arrive, and that certainly sounds fair.

But as you know from going to a supermarket, there might be people who have just a few items in their cart, and then people who have a lot of items in their cart, and you end up with small jobs being stuck behind big jobs, which is not so good. If you really wanted to minimize latency, what you might try to do is take the small jobs and give them priority over the big jobs and move them ahead. Even if a job wasn't that small, but it had very, very little left to go, you might say "Let's run it ahead of some other job."

So that's SRPT scheduling, or shortest remaining processing time. You take the job with the shortest remaining process time, and you run it ahead of the other jobs. You can actually prove this is the optimal way to organize a queue. But suppose instead of just one server, you have many servers that process jobs.

If you have k servers that process jobs, should you still at all times work on the shortest k jobs that are the shortest? Should you be doing SRPT? One of the things I'm working on right now with a graduate student is trying to understand what happens in k server systems. This kind of problem is very hard because people dont know how to even calculate latency in multi-server systems, and when you add complex scheduling on top of that it gets a lot harder.

Redundancy research area is about fixing that kind of problem. How do you go to the best queue when you can't tell what the best queue is? Do you know how to solve it in the supermarket? Do you know how to never have to deal with this price check, and bathroom breaks, and all this stuff?

Women@SCS
Can you join multiple queues at the same time?

Professor Harchol-Balter
Yeah. So you bring a friend, bring the whole family, and you have everybody join a queue. If everybody joins a queue, then whoever gets to the head of the line first can say, "Okay, goodbye, everybody else." That's a way of dealing with the problem. So I work in this area of redundancy for computer systems: creating extra copies of tasks and waiting for the first to complete. There's a whole area of mathematics on how much redundancy helps, and how much it hurts if you have too much redundancy. In computer systems, you have to wait for things to complete, so too much redundancy can actually add load to the system, which makes response times can go up. But a little bit of redundancy can make things a lot better I do research on that. Easy to understand, right? [Laughter]

Women@SCS
Its just like the supermarket.

Women@SCS
Well, I'm sure you've thought a lot about how to present these ideas to people, so that's why it's easy to understand.

Professor Harchol-Balter
Oh, yeah. Research is something I'm doing all the time, so I'm constantly thinking about presenting it.

Women@SCS
So what made you go into academia? I understand that you really like research and such, so is that part of the reason why?

Professor Harchol-Balter
I like it to be very, very open ended. I like to say, "I wish I knew what the right scheduling policy was. Let me try to play around a little bit." Or, "I'm not sure what's bothering me about this, but something doesnt seem right. Maybe Im not looking at the right metric. Let me take some time to figure out what the right one is." I don't think you get to do that in industry. Many times you dont get to the bottom of problems, just patch things up. I want to do much more fundamental research.

Academia is a heavenly position for me. I get to work on open-ended research. I get to work with super-smart people. My students are all brilliant, and meeting with them is the best part of my day. And at the same time, I get to teach, which is something I really love to do. It couldn't be a better job. Although, I do sometimes wish it would take fewer hours especially when Im here late at night.

Women@SCS
So am I, so [laughter] What made you choose CMU over faculty positions at other schools?

Professor Harchol-Balter
One of the things that you look for if you're going to do research is the best PhD students. That's probably the most important factor. I think the quality of the PhD students is just so much the number-one factor that almost nothing else matters.

You're gonna spend all your time with your students. I mean, I have my weekly meeting with a student which is supposed to be an hour, but it often turns into an hour and a half or two hours. And if I'm writing a paper with a student, then sometimes I'm meeting with them every day for an hour. You're just gonna put so much time into working with students that its important to have the best ones.

Back when I applied for my PhD, 30 years ago, there were 4 schools ranked number one: CMU, MIT, Berkeley, and Stanford. And those same four schools are still ranked number one - not in any particular order. So the PhD students, when they're picking where to go, they order the schools that way, too, so the best students end up at those schools. I had a job offer from MIT, and I had a job offer from CMU. I knew it was gonna be one of those. Then it just became a question of other secondary factors.

Women@SCS
And you mentioned that you really enjoy teaching. When you first started teaching, what did you find or even now, what did you find surprising or unexpected?

Professor Harchol-Balter
I first started teaching as a tutor probably around age 12. I used to tutor people all the time, not for money or anything, just kind of for fun. But when I was in high school, we didn't have a lot of money. My parents were divorced, and money was very, very tight. I definitely didn't have money to go to college, so I used to tutor every single day after school for two hours.

I would take the school bus home with a different kid every day after school, and I would tutor them for two hours. Then the deal was they had to feed me dinner. In addition the parents still paid me, but the main thing was they fed me dinner and drove me home, because my mom was working multiple jobs, and I wanted dinner. I did this five days a week, just to bring in money.

I loved the way that you could take something very complicated, something that people think is complicated, and if you just explain it the right way, it becomes very easy. Then everybody says, "Why didn't I get that? That's so obvious." I wondered why people didnt all try to find the clearest explanation.

So that was my first experience with teaching. My second experience was when I was an undergraduate. I had a professor who taught the automata theory class. The professor was not great at teaching the class, and the students couldnt follow the material. And so I volunteered myself to be the TA for the class, and the professor said, "Okay, no problem."

I had one session every Sunday night, from 7 to 10pm. I found a conference room with a big, long table in the middle of the room, and I stood on the table and marched along explaining things to people. Sometimes I'd jump off the table and go to the whiteboard, and then I'd march back on the table.

I spent three hours basically re-teaching the course, and there wasn't a single student in the class who didn't come to the Sunday night session. It was my favorite thing.

Women@SCS
I can't believe you volunteered for that, and that you were able to do it.

Professor Harchol-Balter
Yeah, well, I really liked it. I also TA'd when I was a graduate student for algorithms, where we had a different problem. The professor didn't get tenure, and so he just kind of stopped teaching halfway through. Because it was Berkeley, it was a class of 160 students with only two TAs. One PhD student (myself) and one master's student. And the master's student turned to me and said, "Well, you're the PhD student. You need to go teach class."

[Laughter] I ended up teaching a lot of the class, with no notice. I must have my binder here somewhere with my notes from that algorithms class.

I basically just started teaching the class and loved it. I went to my advisor and said, "I figured out my calling. I'm gonna be a teacher at one of those small liberal arts schools and teach forever and ever, and it's gonna be so wonderful." And he said, "Absolutely not!"

I said, "What do you mean? Clearly this is what I was meant to do." Here I've been teaching this class of 160 students, and it's all going wonderfully. I won a whole bunch of TA awards and teaching awards and stuff. He said, "No way. I'm forbidding you to do any more teaching. You'll thank me later. What's important is that you do your research, because if you go to one of these small liberal arts schools, you will just end up teaching the same stuff over and over again. The real joy is inventing new things and discovering new things, and then you can teach the stuff that you did research on. You'll see that you're a much better teacher when you can lend all the insights from your research into your teaching."

I didn't believe him at the time, but I didn't really feel like I could argue. But he was right. The way I see it, all teaching is fun, but getting to teach stuff that youre researching yourself is the best!

Women@SCS
So you obviously really enjoy teaching, but what's your favorite and least favorite part of your job?

Professor Harchol-Balter
Okay, so my job has very little teaching in it actually [laughter]. I think that undergraduates think that professors are spending most of their time on teaching, but I would say for most professors, they're probably spending 20 percent of the time on teaching. I'm very unusual in that I spend maybe a third or more of my time on teaching. Partly I put extra time into it because I like to write books. Im working on my second textbook now. When Im thinking about how to explain something in the clearest way, I dont even feel like Im working -- its just pure relaxation.

My favorite part of my job is working with my PhD students. I like meeting with them, hearing their new ideas, coming up with new ideas together.

I also spend a lot of time on committees to try to make this place better. So the committees involve policy things like what courses you guys should take. What should be requirements? Should we have another major, or should we not have this major? Should we allow certain concentrations? What about PhD students, what requirements should they have? For a long time I was the Associate Department Head, which is basically head of the PhD program. I had to manage the 180 PhD students. There were a million policy questions.

I would say my favorite parts are research and teaching. My least favorite part is begging companies for money. You would think that companies would be excited to sponsor a class or a research seminar, but surprisingly they arent.

On the other hand, I don't mind writing research grants to the NSF. I find that writing research grants is actually interesting, 'cause you get to have a big picture view. I always come up with new problems when Im writing grants. Instead of thinking about my own little research, I get to think about how it applies in the bigger world, why it's relevant, and who else might be able to use it.

Women@SCS
Next question: What advice do you have for women in male-dominated fields such as computer science?

Professor Harchol-Balter
[Laughter] I'm sure I'm gonna forget to say all the things that I have in mind, 'cause I'm sure that I have more things in mind than I can possibly come up with, so -

Women@SCS
That's okay.

Professor Harchol-Balter
Indee . I came as a post-doc here, and then one thing led to another and I found myself as teaching faculty. I came in 2006 but I started my faculty position in 2012. There's this tendency when you're feeling insecure because you're in some new place to look around and say, "I need to be more like this other person, because they're successful, and they're here, and it's working for them." I felt this way when I came to graduate school. I came to Berkeley, and I just felt very insecure since I'd come from a small liberal arts school.

I wasn't as well trained in everything. I had been working for a while, so my brain seemed to have atrophied. Here I was with these super-smart people, and I felt like, "I need to really be like them." They were all guys, so I was like, "Well, I need to be like a guy. I should dress like a guy, and I should behave like a guy, and I should try to be aggressive like a guy," and all that kind of stuff.

My first piece of advice is really try to figure out what made you successful in the past and then stick to doing that, regardless of what those around you are doing. And this is true whether you're male or female or whatever. I like to go shopping. I find it very relaxing. When I was in graduate school, every time I finished submitting a paper or dealing with a big test, or something like that, I would reward myself with a day of just going around to look at all the pretty clothes.

I couldn't afford any of 'em, but [laughter] it was still very relaxing to go look at all of 'em. Now, this is not a male thing to do, and none of my colleagues did it. None. In fact, a lot of the women were like, "Oh, how yucky!" But for me, it was very relaxing, and that helped me work harder on the other days.

Another thing: I like to write everything down. When I'm reading a paper, for me to get it into my head, I'm constantly rewriting things that I see in the paper. And many people say to you, "Oh, that's silly. You should read it and just get it." And I don't know why, but for me, I need to write it all down in order to get it right in my head. That's just the way I work. It took me a while to accept that the way that I do things works for me.

For example, when I was a student, I would always recopy my lecture notes. My husband would look at me like, "You're recopying the notes?" I'm like, "Yes. That's how I get it into my head."

You hear a lot of criticism from people on why youre not doing things the way they expect you to do them. Many people early on told me, "You're spending too much time on teaching." When I was teaching my graduate course, people told me, "You should just kind of roughly get the idea in your head, and then go in there and just put it all on the board." And I said, "That really doesn't work for me, because I need to get it perfectly in my head. Otherwise I feel like I'm wasting everybody's time while I'm standing there going, "Uh, uh, uh" and getting the proof wrong. I want it to be right, so that I can spend all my time engaging with students and asking them questions, not just hurrying through the proof.

People will criticize you left and right, but the important thing is to somehow have the confidence to do it the way it works for you. That's my biggest piece of advice for the male-dominated world. Each time this has happened to me, at first I'm like, "Oh, maybe they're right. Maybe I'm spending too much time on this teaching thing," or, "Maybe I'm not doing this the right way, because, look, they're telling me this stuff."

But you know what? It was never right. It wasn't right for me. I mean, maybe it was right for them, but it wasn't right for me. So that's my biggest piece of advice. You have to figure out what works for you, and then keep doing that.

Women@SCS
So what do you like to do in your free time? Do you have free time?

Professor Harchol-Balter
Do I have any free time [laughter]? I like to hang out with friends. I really like to cook. I like to cook dinners and host dinners.

Women@SCS
Oh, what's your favorite dish to make?

Professor Harchol-Balter
I like a lot of different things! I tend to like goulash and stew and Italian food and heavy kinds of food. Chicken parmesan kinda stuff. But my husband is vegetarian, and so we also have a lot of vegetarian kind of foods, like stuffed vegetables.

I also like to watch movies, particularly TV series.

Women@SCS
What do you watch?

Professor Harchol-Balter
Well, right now, The Handmaid's Tale is very fascinating.

As I said, I also like to go shopping. I would say that I like to exercise, but I don't really like to exercise. I like to have exercised. Like having gone for a run. [Laughter] In the summer I'm much better about running regularly. In the winter I'm like, "We're so not doing this."

Women@SCS This goes hand in hand with the previous question. How do you manage to find time to do everything that you do? Are there any time management tips or strategies that you'd like to share?

Professor Harchol-Balter
I'm terrible at time management. Somebody told me something about managing time a long time ago that has stuck with me. They said you can divide what you do into quadrants. There's the things that are good for you that can be done quickly. Things that are good for you that are long term. The things that are good for others that can be done quickly, and the things that are good for others that are long term.

Most of the time, you're only doing the stuff that's of benefit to others, because others are waiting for it, or else stuff that can be done very quickly. What people are least likely to do is the stuff that's very time consuming but has the biggest long-term benefit for themselves.

If you have to invest in really learning a whole new research area that would be really good for you in the long run, but its gonna be time consuming and nobody else is benefiting, you're least likely to do it. And so the advice that I got was that you have to watch out for that. You have to do some of the things that are good for you, even if they're time consuming, and even if it means sometimes saying no to the things that are good for everybody else. I'm still terrible at this. But at least now I know that I'm terrible at it. [laughter].

I try to set aside some time where I say, "I'm gonna spend the day on just reading this paper, so I can learn something that is good for me." Or sometimes I can force myself to do it by being on some program committee where I have to read papers. It's hard to do the things that are of benefit to you.

Women@SCS
Also, what advice do you have for freshmen or new students?

Professor Harchol-Balter
I think that you have some flexibility in the courses that you can take, the order in which you take classes, and whom you take them with. I think you should get advice from other people in making these choices. You should not try to go it alone. People will tell you which professors are better teachers. Listen!

Another thing thats good for students to do is to see the difference between a graduate class and an undergraduate class. They're very, very different. In fact, you might say the graduate class is actually easier than the undergraduate class. But really it's just a completely different mindset.

So for instance if you take undergraduate Operating Systems, it's really hard. You have to build a kernel from scratch yourself. And you stay up night after night writing a lot of code. On the other hand, if you take a graduate Operating Systems class, it's not about writing code at all. Mostly you're reading research papers that other people have written about how they build operating systems, and what are good ways to build operating systems, and how memory should be managed, and how jobs should be scheduled, and whatever. Reading research papers might not seem as hard, but it's very different.

If you don't take a graduate course, then when you graduate, and you work for a while, youll always wonder, "What is graduate school, and what are these graduate courses, and what is research?. The easiest way to find out is to take a graduate course. If you want to think about doing research with a professor, the easiest way to get a professor to do research with you is to take their graduate course.

If the professor still somehow is too busy and unwilling to do research with you, find their graduate student, and start doing research with them. Remember, the graduate students we have here are the best in the world, so doing research with them is a great way to go.

I also want to mention one more thing that people dont think about. Sometimes youll find that youre totally overwhelmed by some class. Maybe its just an introductory undergraduate class, but, given that its a CMU class, its hard as hell. Ask the professor and see if theres a PhD student who might be able to tutor you a bit in the class. Many of our PhD students are fantastic teachers, and a little one-on-one time can go a long way at a place like CMU. This is worth paying for if youre drowning.

These are things that I don't think people realize are available to them when they come in here, because they're just so overwhelmed by the wall of work, which is unbelievable here.

Women@SCS
It is quite a wall.

Professor Harchol-Balter
It is a wall. It's just a flood of work. And the topics are just changing so fast. You go to a class, and the class has nothing to do with the previous class and that class had nothing to do with the previous class before that. So much stuff is being fed into you. It's really worth stopping and asking, "Let me talk to my friends. Can I maybe skip out on taking this class, and take it later? Is there a way to more quickly get to the things that are interesting to me?"

Most of the undergraduate advisors are also very good at helping you. My general feeling is you are at a very unique school that has as many PhD courses as undergrad courses, if not more. Take some of them. Try to get into one of those areas. Meet the PhD students. Work with them. There are so many PhD students here. The number of PhD students in the computer science department alone is close to the number of undergraduates in SCS. Most of the undergraduates don't ever take advantage of it. They don't know that this graduate world exists.

Women@SCS
I feel like students may also be scared of taking graduate courses.

Professor Harchol-Balter
The graduate course professors are usually very happy to talk to you about their graduate courses, because grad classes are about their own research. Contact the professor. "What are the prereqs for taking your course? What do I really need to know?"

I think if you leave here without having done it, then you've missed at least half of what CMU has to offer.

Women@SCS
Thats the end of our interview. Thank you so much for your time!