Q&A with Professor Benjamin C. Lee
Originally published in DukEngineer Magazine
Benjamin C. Lee is a professor in the Department of Electrical and Computer Engineering. His research focuses on power-efficient computer architectures and high-performance applications. Lee has held various visiting research positions at Microsoft Research, Intel Corporation and Lawrence Livermore National Laboratory, and received a highly valued 2012 NSF CAREER Award. DukEngineer had the opportunity to discuss his work with him recently.
What is your current topic of research at Duke?
I am what you would call a computer architect, which is doing research at the interface between hardware and software. That means we try to design new hardware architectures but we also try to understand software trends and make software perform better.
How did you get into this research?
Within computer architecture there are different areas; power efficiency is an important one and is something I have been working on since graduate school. Power efficiency matters because you usually have power budgets associated with temperature constraints. When I started this research in the early 2000s, we were in an era where we were trying to build a lot of hardware but the power density was just too difficult to manage.
Can you tell me a bit about the NSF CAREER Award?
The Career Award is one of the more prestigious awards given by the NSF to early career researchers, which I believe means it has been five years since you started your faculty position.
The Career Award is one of the things that is really great to jump-start a research program because it is a five-year grant. In my case, the Career Award was for data center research, so it was about designing and managing processors and memory systems for large data centers, getting better energy efficiency and delivering good performance.
So the data centers are the clouds as we know them today?
That’s right. So, typically when you talk to, say, Google, Microsoft or Amazon, they are going to build these large data centers, maybe dissipating on the order of megawatts of power with thousands of servers. The question is, how do we design and manage memory processors and memory systems in that setting? We are looking at applications like web search and machine learning and trying to figure out how to build hardware systems that better suit those other duties.
So your research is trying to minimize the power loss?
My research attempts to minimize power while guaranteeing performance targets, and we have a particular strategy for that. We have multiple types of hardware, so sometimes you have high-performance components and sometimes you have low-power components in the system or a mix of the two. And then, whenever possible, when the computation is able to run on the low-power hardware without violating performance targets, we try to do that.
But sometimes you just cannot do that, you just need to answer quickly, which means you need to send it to a high-performance, high-power component. So our approach has been heterogeneity, which is the mix of different types of hardware, and then trying to manage , allocate and schedule work onto those heterogeneous systems.
What is the biggest challenge in your current research?
The biggest challenge is system complexity. We know how to build new pieces of hardware, but managing those complex hardware systems is increasingly difficult. It involves resource management, software scheduling and guaranteeing performance while reducing power. It is a management question in addition to a design question. So, if we can build whatever we want—and I think we can build whatever we want- folks at Intel and IBM are going to be able to build any architecture we propose. However, the question is whether or not people will be able to use it, and the answer is not if we make the system too complex to manage. What we need to do is find ways to manage the systems more effectively and that is sort of new approach to thinking about computer architecture because in the past most architects have simply built it. What we do is we integrate the processes of building and managing it.
How did your work come to receive this award?
We wrote a research proposal, outlining the vision and technical approach and experimental way to run, and that proposal was evaluated by a committee of our peers. The proposal was then scored to determine the funding received. And most of the money from this award will go toward student funds and fellowships, as Ph.D. students at Duke are funded by research assistantships.
Why did you choose to work in academia over industry?
I did a lot of undergraduate research, and I found that I liked it. It gave me a really good breadth of experiences. In addition to simply coding and working on technical areas, research allows you to think about the big picture, allows you to, once you have the data, do data analysis. I also like giving talks on the work. Not only am I doing the hard technical work, but also the data interpolation and analysis as well as the writing and presentations. I like the mix of responsibilities as a Ph.D.
Can you clarify the difference between computer science and computer engineering?
If you ask a computer architect, most architects will say that there is no difference, and most of the ECE kids doing computer engineering also double major in computer science. Hardware is typically computer engineering and software is typically computer science. If you write good software, that might be fine, but you still need to understand the hardware that it is running on to get good performance.
You mentioned machine learning--how fast is it advancing in 21st century?
Machine learning is advancing very rapidly, and the main reason for that is the amount of data we are producing. There have been some studies that say that the data we are generating is increasing by 50 percent each year and it is compounding as fast geometric growth. This means you have a large amount of data that require more effective algorithms. One example is the language translation that Google idoes. Historically, when researchers tried to do translations they would really try to understand the grammar. Now they are realizing that you don’t need all of that—just throw in the data and put a good algorithm on top of it. If you speak in EU Parliamentarian, then your language translation is very good, because that is what they are drawn on. So if you want something translated and it sounds a lot like what the EU would say, you are going to get very accurate results. I think that the amount of data we have is driving the quality of machine learning.
Any advice for the incoming class of Pratt 2018?
Within Pratt, I will recommend electrical and computer engineering (ECE) to incoming students, because I think the job prospects are quite good after graduation. My second piece of advice is to go for breadth; don’t assume that you want to do programming and focus on the computer science side, because breadth is important. Additionally, try to get involved in more extracurricular activities like undergraduate research, as many faculty are happy to have undergraduates. It is a great experience to have before attending graduate school, and undergraduates will do projects that are directly related to what my Ph.D. students do, such as simulation and design, so they will be writing large programs to understand behavior and data analysis on performance and power of design.
Efe Aras is a Pratt freshman leaning towards both BME and ECE.