People of ACM - James Larus
July 19, 2022
At EPFL, you serve as Director of the Very-Large Scale Computing Lab (VLSC). What research areas is the VLSC focused on? Why are these challenges important to the broader computing landscape?
I started the VLSC to extend my work at Microsoft in the eXtreme Computing Group, which looked at the hardware and software infrastructure for cloud computing, including the hugely influential Catapult FPGA project with Microsoft Bing. This work left many questions unanswered, and fortunately, universities have the freedom to pursue open-ended problems such as how to construct and program cloud-computing accelerators.
However, universities do not have access to the same data and problems in industry, so I needed to start afresh. Universities are awash with genomic data, so the VLSC started looking at problems in that area. I thought we would build an FPGA accelerator, but it turned out that life science researchers were still using computers as everyone did decades ago. My students found enormous performance improvements for several important problems by exploiting the parallelism of multicore and cluster computers. We are currently looking at FPGA accelerators but from the perspective of improving the development experience to make them more widely accessible.
What led you to create SPIM, the MIPS processor simulator?
When I was an assistant professor at the University of Wisconsin, I taught the undergraduate compiler class. As a professor, I had a fancy workstation with a MIPS processor, but students were using computers with a different processor that was far more complex and difficult to generate code for. I thought I could make my students’ lives easier by writing a MIPS simulator and having them target it. Then, Dave Patterson and John Hennessey wrote their undergraduate textbook using MIPS as the exemplary processor. They wanted a simulator to accompany the book, so SPIM became widely used because of their very popular textbook.
I have been supporting SPIM for over 30 years now (there are still thousands of downloads per semester even though better simulators exist). It is an interesting and humbling experience to support open-source software through the many changes over that time. I am still fixing the occasional bug in software that should have been “fully” debugged and stable long ago. Every time I go back and fix SPIM, I cringe at some of my code. I’m not sure why I was so concerned about efficiency back then since it never mattered to any SPIM users and certainly does not matter today.
One of your more influential papers has been “Efficient Path Profiling.” What are path profiles? What new insights did you and co-author Thomas Ball introduce with this paper?
A path traces the dynamic execution history of a program. It is the sequence of basic blocks (straight-line code sequences between branches) that the program executes. Tom and I had been working on measuring program execution. We had come up with a very efficient technique for profiling (counting the number of times a block executes) that is still widely used. I thought about extending it to paths, which is a much harder problem because the number of potential paths is unbounded in most programs. I had a clumsy scheme using state machines when Tom had the insight into the arithmetic technique that we published. Fortunately, I also developed EEL, a program-executable editing tool that enabled us to implement and demonstrate this technique on real programs. I wrote a lot of code when I was an assistant professor!
With many publications devoted to technology, what unique role does Communications of the ACM (CACM) play in serving the global computing community?
CACM is obviously the publication that all members of ACM receive monthly, either on paper or online. It is the only way to share results with the broad computing community. Countless conferences and journals publish new results, many of which would be interesting to both researchers and practitioners who might never see them. CACM is the place for authors to share their best ideas and results with the computing community.
I would also like to see CACM become the public forum for our community, where people interested in computing come to find out what is happening outside their specialty and discuss the issues resulting from computing or affecting our community.
As EiC, what are a few of your key goals for CACM?
My first goal is to make CACM web-first. In other words, to take advantage of the technologies that we invented to publish a richer, timelier version of the print magazine (which will not go away). A new website will be up next year, and it will enable CACM to publish more articles without the inherent delays and capacity limitations of print. The web also lets authors enrich their articles with videos, demonstrations, and links.
At the same time, I am bringing new voices to ACM who can globally explore a wider range of issues that affect our field and society. This builds on my predecessor Andrew Chien’s great work on making CACM more international by recruiting editors and publishing articles by authors from outside the US and Europe. In addition, CACM will publish technically relevant pieces on the broader implications of computing.
I also plan to increase the amount of material relevant to practitioners, who are a majority of ACM members and CACM readers. These topics have been a stable aspect of CACM but have not been given enough weight. Fortunately, by going web-first, we can grow this aspect without taking pages away from other topics.
However, my ultimate goal comes back to making CACM the forum where the computing field, whether ACM members or not, discusses the most important results and issues. The enormous growth of our field over my career has splintered the community. CACM can’t change that fact, but it can provide a forum where the many sub-disciplines can share and discuss.
James “Jim” Larus is a Professor and former Dean of the School of Computer and Communication Sciences at EPFL (École Polytechnique Fédérale de Lausanne) in Switzerland. Earlier in his career, Larus was a researcher, manager, and director in Microsoft Research for over 16 years and a faculty member at the University of Wisconsin, Madison.
Larus has published over 100 papers (with nine best and most influential paper awards), received over 40 US patents, and is co-author of the book Transactional Memory. His honors include receiving a National Science Foundation Young Investigator Award and being selected as an ACM Fellow for contributions to programming languages, compilers, and computer architecture.
In July 2022, Larus will begin a five-year term as Editor-in-Chief (EiC) of Communications of the ACM (CACM), ACM’s flagship magazine. He succeeds Andrew Chien, a professor at the University of Chicago, who was the EiC of CACM since 2017.