James Larus

EPFL IC IINFCOM VLSC
INN 238 (Bâtiment INN)
Station 14
CH-1015 Lausanne
Web site: Web site: https://ic.epfl.ch/page55549.html#former
Fields of expertise
Larus has been an active contributor to numerous communities. He published over 100 papers (with 9 best and most influential paper awards), received over 40 US patents, and served on many program committees and NSF, NRC, and DARPA panels. His book, Transactional Memory (Morgan Claypool), appeared in 2007. Larus received a National Science Foundation Young Investigator award in 1993 and became an ACM Fellow in 2006.
At EPFL, Larus co-founded DP3T, which produced the SwissCOVID contract-tracing app and developed the privacy-preserving contract-tracing protocol used by Apple's and Google's Exposure Notification framework. His Very-Large Scale Computing (VLSC) lab studies programming models for non-volatile memory (NVM), programming models for FPGAs, and accelerating bioinformatics computation.
Larus joined Microsoft Research in 1998 to start and lead the Software Productivity Tools (SPT) group, which developed and applied a variety of innovative program analysis techniques to build tools to find software defects. This group's ground-breaking research in program analysis and software defect detection was widely recognized by the research community and was shipped in Microsoft products such as the Static Driver Verifier, FX/Cop, and other software development tools. Larus became an MSR Research Area Manager for programming languages and tools. He started the Singularity research project, which demonstrated that modern programming languages and software engineering techniques could fundamentally improve software architectures. Subsequently, he helped create XCG, an MSR effort to develop hardware and software support for cloud computing. In XCG, Larus designed the Orleans framework for cloud programming and contributed to the Catapult FPGA accelerator for the Bing search engine.
Before joining Microsoft, Larus was an Assistant and Associate Professor of Computer Science at the University of Wisconsin-Madison. He published over 60 research papers and co-led the Wisconsin Wind Tunnel (WWT) research project with Professors Mark Hill and David Wood. WWT was a DARPA and NSF-funded project that investigated innovative approaches to simulating, building, and programming parallel shared-memory computers. Larus's research spanned many areas: including new and efficient techniques for measuring and recording executing programs' behavior, tools for analyzing and manipulating compiled and linked programs, programming languages for parallel computing, tools for verifying program correctness, and techniques for compiler analysis and optimization.
Larus received his MS and Ph.D. in Computer Science from the University of California, Berkeley in 1989, and an AB in Applied Mathematics from Harvard in 1980. At Berkeley, Larus developed one of the first systems to analyze Lisp programs and determine how to execute them on a parallel computer.
CV
Talks
Link to recent public talks.My blog
Blog about various technical and Switzerland related topics.Publications
Infoscience publications
James Larus's Publications
Building Chips Faster: Hardware-Compiler Co-Design for Accelerated RTL Simulation
Lausanne, EPFL, 2023. DOI : 10.5075/epfl-thesis-8990.Deploying Decentralized, Privacy-Preserving Proximity Tracing
Communications Of The Acm. 2022-09-01. DOI : 10.1145/3524107.Whose Smartphone Is It?
Communications Of The ACM. 2021-09-01. DOI : 10.1145/3454007.Enclosure: Language-Based Restriction of Untrusted Libraries
2021-02-15. ASPLOS 21, Virtual Conference, April 19-23, 2021. p. 255--267. DOI : 10.1145/3445814.3446728.Abacus: A Tool for Precise Side-channel Analysis
2021-01-01. IEEE/ACM 43rd International Conference on Software Engineering (ICSE), ELECTR NETWORK, May 25-28, 2021. p. 238-239. DOI : 10.1109/ICSE-Companion52605.2021.00110.Abacus: Precise Side-Channel Analysis
2021-01-01. 43rd IEEE/ACM International Conference on Software Engineering - Software Engineering in Practice (ICSE-SEIP) / 43rd ACM/IEEE International Conference on Software Engineering - New Ideas and Emerging Results (ICSE-NIER), ELECTR NETWORK, May 25-28, 2021. p. 797-809. DOI : 10.1109/ICSE43902.2021.00078.Software Support for Non-Volatile Memory (NVM) Programming
Lausanne, EPFL, 2021. DOI : 10.5075/epfl-thesis-7187.Early evidence of effectiveness of digital contact tracing for SARS-CoV-2 in Switzerland
Swiss Medical Weekly. 2020-12-16. DOI : 10.4414/smw.20457.Parallel and Scalable Precise Clustering
2020-01-01. ACM International Conference on Parallel Architectures and Compilation Techniques (PACT), ELECTR NETWORK, Oct 03-07, 2020. p. 217-228. DOI : 10.1145/3410463.3414646.Parallel and Scalable Bioinformatics
Lausanne, EPFL, 2020. DOI : 10.5075/epfl-thesis-10141.Fine-Grain Checkpointing with In-Cache-Line Logging
2019-04-13. 2019 Architectural Support for Programming Languages and Operating Systems (ASPLOS ’19), Providence, RI USA, April 13-17. DOI : 10.1145/3297858.3304046.IMPACT: Interval-based Multi-pass Proteomic Alignment with Constant Traceback
2019-02-16. 2nd HPCA Workshop on Accelerator Architectures in Computational Biology and Bioinformatics, Washington, DC USA, February 16, 2019.WOK: Statistical Program Slicing in Production
2019-01-01. IEEE/ACM 41st International Conference on Software Engineering - Software Engineering in Practice (ICSE-SEIP), Montreal, CANADA, May 25-31, 2019. p. 324-325. DOI : 10.1109/ICSE-Companion.2019.00136.Secured Routines: Language-based Construction of Trusted Execution Environments
2019. USENIX Annual Technical Conference 2019, Renton, WA, USA, July 10-12, 2019. p. 571-585.Object-Oriented Recovery for Non-volatile Memory
2018-11-07. Object-Oriented Programming, Systems, Languages, and Applications - OOPSLA 2018, Boston, MA, USA, November 7-9, 2018. p. Article 153. DOI : 10.1145/3276523.Detailed Heap Profiling
2018-06-18. International Symposium on Memory Management (ISMM 2018), Philadelphia, PA, USA, June 18, 2018. p. 1–13. DOI : 10.1145/3210563.3210564.POSTER: Reducing Transaction Aborts by Looking to the Future
2018-01-01. 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), Vienna, AUSTRIA, Feb 24-28, 2018. p. 385-386. DOI : 10.1145/3178487.3178518.Regulating Automated Decision Making
COMMUNICATIONS OF THE ACM. 2018. DOI : 10.1145/3231715.A Simple, Elegant Approach to Non-Numeric Parallelization
Communications Of The ACM. 2017. DOI : 10.1145/3139459.Efficient Logging in Non-Volatile Memory by Exploiting Coherency Protocols
2017. SPLASH 2017 OOPSLA, Vancouver, Canada, October 25-27, 2017. p. 67. DOI : 10.1145/3133891.Persona: A High-Performance Bioinformatics Framework
2017. USENIX Annual Technical Conference 2017, Santa Clara, California, USA, July 12-14, 2017.A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services
Communications Of The ACM. 2016. DOI : 10.1145/2996868.Technical Perspective: The Power of Parallelizing Computations
Communications Of The ACM. 2016. DOI : 10.1145/2985782.A Reconfigurable Fabric For Accelerating Large-Scale Datacenter Services
IEEE Micro. 2015. DOI : 10.1109/MM.2015.42.Technical Perspective Programming Multicore Computers
Communications Of The ACM. 2015. DOI : 10.1145/2742910.A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services
2014. 2014 ACM/IEEE 41st International Symposium on Computer Architecture, Minneapolis, MN, 14-18 June 2014. p. 13-24. DOI : 10.1109/ISCA.2014.6853195.SIMD Parallelization of Applications that Traverse Irregular Data Structures
2013. p. 1–10. DOI : 10.1109/CGO.2013.6494989.Look up!: Your Future is in the Cloud
2013. p. 1-2. DOI : 10.1145/2462156.2462157.Using Managed Runtime Systems to Tolerate Holes in Wearable Memories
2013. p. 297-308. DOI : 10.1145/2462156.2462171.Imagining the Future: Thoughts on Computing
IEEE Computer. 2012. DOI : 10.1109/MC.2011.327.Fine-grained Parallel Traversals of Irregular Data Structures
2012. p. 461-462. DOI : 10.1145/2370816.2370896.Zeta: Scheduling Interactive Services with Partial Execution
2012. p. 1-14. DOI : 10.1145/2391229.2391241.It's the End of the World as We Know It (And I Feel Fine)
2012. p. 48-48. DOI : 10.1007/978-3-642-35632-2_7.The Cloud Will Change Everything
2011. p. 1-2. DOI : 10.1145/1961295.1950367.Programming the Cloud
2011. p. 1-2. DOI : 10.1145/1941553.1941555.Join-Idle-Queue: A Novel Load Balancing Algorithm for Dynamically Scalable Web Services
Performance Evaluation. 2011. DOI : 10.1016/j.peva.2011.07.015.Orleans: Cloud Computing for Everyone
2011. p. 1-14. DOI : 10.1145/2038916.2038932.Transactional Memory: 2nd edition
Morgan & Claypool.The Singularity System
Communications of the ACM. 2010. DOI : 10.1145/1787234.1787253.Spending Moore's Dividend
Communications of the ACM. 2009. DOI : 10.1145/1506409.1506425.Multicore Computing and Scientific Discovery
The Fourth Paradigm: Data-Intensive Scientific Discovery; Microsoft Research, 2009. p. 125-130.Transactional Memory
Communications of the ACM. 2008. DOI : 10.1145/1364782.1364800.The Real Value of Testing
2008. p. 1-2. DOI : 10.1145/1390630.1390631.Spending Moore's Dividend
2008PL Research and its Consequences on PL Curriculum
SIGPLAN Notices. 2008. DOI : 10.1145/1480828.1480847.Singularity: Rethinking the Software Stack
ACM SIGOPS Operating Systems Review. 2007. DOI : 10.1145/1243418.1243424.Corezilla: Build and Tame the Multicore Beast?
2007. p. 632-633. DOI : 10.1109/DAC.2007.375240.Sealing OS Processes to Improve Dependability and Safety
2007. p. 341-354. DOI : 10.1145/1272996.1273032.Featherweight Transactions: Decoupling Threads and Atomic Blocks
2007. p. 134-135. DOI : 10.1145/1229428.1229453.Language Support for Fast and Reliable Message Based Communication in Singularity OS
2006. p. 177-190. DOI : 10.1145/1217935.1217953.Deconstructing Process Isolation
2006. p. 1-10. DOI : 10.1145/1178597.1178599.Singularity
MSDN Magazine. 2006.Is Process or Architecture the Solution?
2006. p. 5. DOI : 10.1145/1181309.1181310.Reflective Program Teneration with Patterns
2006. p. 275-284. DOI : 10.1145/1173706.1173748.Abolish Runtime Systems: Operating Systems Should Control the Execution
2006. p. 1. DOI : 10.1145/1134760.1134761.Foreward to Programming Language Pragmatics
Programming Language Pragmatics; Elsevier, 2006.Transactional Memory
Morgan & Claypool.An Overview of the Singularity Project
2005Broad New OS Research: Challenges and Opportunities
2005.Software and the Concurrency Revolution
ACM Queue. 2005. DOI : 10.1145/1095408.1095421.Foreword to Why Programs Fail: A Guide to Systematic Debugging
Why Programs Fail: A Guide to Systematic Debugging; Elsevier, 2005. p. xix-xx.Righting Software
IEEE Software. 2004. DOI : 10.1109/MS.2004.1293079.Debugging Temporal Specifications with Concept Analysis
2003. p. 182-195. DOI : 10.1145/781131.781152.Using Cohort-Scheduling to Enhance Server Performance
2002. p. 103-114.Mining Specifications
2002. p. 4-16. DOI : 10.1145/503272.503275.Behavioral Types for Structured Asynchronous Programming
2001Using Cohort Scheduling to Enhance Server Performance (Extended Abstract)
2001. p. 182-187. DOI : 10.1145/384197.384222.Facile: A Language and Compiler for High-performance Processor Simulators
2001. p. 321-331. DOI : 10.1145/378795.378864.Making Pointer-Based Data Structures Cache Conscious
IEEE Computer. 2000. DOI : 10.1109/2.889095.Using Paths to Measure, Explain, and Enhance Program Behavior
IEEE Computer. 2000. DOI : 10.1109/2.869371.Wisconsin Wind Tunnel II: a fast, portable parallel architecture simulator
IEEE Concurrency. 2000. DOI : 10.1109/4434.895100.Teapot: A Domain-Specific Language for Writing Cache Coherence Protocols
IEEE Transactions on Software Engineering. 1999. DOI : 10.1109/32.798322.Whole Program Paths
1999. p. 259-269. DOI : 10.1145/301618.301678.Cache-Conscious Structure Definition
1999. p. 13-25. DOI : 10.1145/301618.301635.Cache-Conscious Structure Layout
1999. p. 1-12. DOI : 10.1145/301618.301633.Programs Follow Paths
1999Fast Out-of-order Processor Simulation Using Memoization
1998. p. 283-294. DOI : 10.1145/291069.291063.Using Generational Garbage Collection to Implement Cache-Conscious Data Placement
1998. p. 36-48. DOI : 10.1145/286860.286865.Improving Data-flow Analysis with Path Profiles
1998. p. 72-84. DOI : 10.1145/989393.989451.Retrospective: Tempest and Typhoon: User-level Shared Memory
1998. p. 98-102. DOI : 10.1145/285930.285968.Protocol-based Data-race Detection
1998. p. 40-47. DOI : 10.1145/281035.281040.Sirocco: cost-effective fine-grain distributed shared memory
1998. Paris, France, October. p. 40-49. DOI : 10.1109/PACT.1998.727144.Shared-Memory Performance Profiling
1997. p. 240-251. DOI : 10.1145/263764.263796.HPF on Fine-Grain Distributed Shared Memory: Early Experience
1997. 9th International Workshop, LCPC'96, San Jose, California, USA, August 8–10, 1996. p. 450-465. DOI : 10.1007/BFb0017269.Optimizing Communication in HPF programs for Fine-Grain Distributed Shared Memory
1997. p. 100-111. DOI : 10.1145/263764.263780.The Use of Program Profiling for Software Maintenance with Applications to the Year 2000 Problem
1997. p. 432-449. DOI : 10.1145/267895.267925.Experience with a Language for Writing Coherence Protocols
1997. p. 51-66.Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling
1997. p. 85-96. DOI : 10.1145/258915.258924.Fine-grain Access Control for Distributed Shared Memory
Distributed Shared Memory: Concepts and Systems; IEEE Computer Society Press, 1997.Wisconsin Wind Tunnel II: A Fast and Portable Parallel Architecture Simulator
1997. Denver, CO, June.Instruction Scheduling and Executable Editing (prelim)
1996.Instruction Scheduling and Executable Editing
1996. 29th International Symposium on Microarchitecture, Paris, France, 2-4 Dec. 1996. p. 288-297. DOI : 10.1109/MICRO.1996.566469.Parallel Programming in C**: A Large-Grain Data-Parallel Programming Language
Parallel Programming Using C++; MIT Press, 1996. p. 297-342.Compiler-directed Shared-Memory Communication for Iterative Parallel Applications
1996. DOI : 10.1145/369028.369047.Parallel Computer Research in the Wisconsin Wind Tunnel Project
1996. p. 135-145.Efficient Path Profiling
1996. 29th International Symposium on Microarchitecture. p. 46-57. DOI : 10.1109/MICRO.1996.566449.Teapot: Language Support for Writing Memory Coherence Protocols
1996. p. 237-248. DOI : 10.1145/231379.231430.The Tempest Approach to Distributed Shared Memory
1996. p. 63-64. DOI : 10.1109/ICCD.1996.563534.Implementing Fine-grain Distributed Shared Memory on Commodity SMP Workstations
1996EEL: Machine-Independent Executable Editing
1995. p. 291-300. DOI : 10.1145/207110.207163.Portably Supporting Parallel Programming Languages
IEEE Computer. 1995.Efficient Support for Irregular Applications on Distributed-Memory Machines
1995. p. 68-79. DOI : 10.1145/209936.209945.StormWatch: A Tool for Visualizing Memory System Protocols
1995. DOI : 10.1145/224170.224287.Tempest: A Substrate for Portable Parallel Programs
1995. p. 327-332. DOI : 10.1109/CMPCON.1995.512404.Where is Software Headed? A Virtual Roundtable
IEEE Computer. 1995. DOI : 10.1109/2.402054.Why Write Real Software in a University?
1995. p. 1. DOI : 10.1145/1275165.1275166.The Wisconsin Wind Tunnel: Virtual Prototyping of Parallel Computers
Multiprocessor Performance Measurement and Evaluation; IEEE, 1994. p. 150-162.Optimally Profiling and Tracing Programs
ACM Transactions on Programming Languages and Systems. 1994. DOI : 10.1145/183432.183527.LCM: Memory System Support for Parallel Language Implementation
1994. p. 208-218. DOI : 10.1145/195473.195545.Using the Run-Time Sizes of Data Structures to Guide Parallel-Thread Creation
1994. p. 79-90. DOI : 10.1145/182409.182442.CICO: A Practical Shared-Memory Programming Performance Model
Portability and Performance for Parallel Processing; John Wiley & Sons Ltd, 1994. p. 99-119.The Wisconsin Wind Tunnel Project: An Annotated Bibliography
ACM SIGARCH Computer Architecture News. 1994. DOI : 10.1145/192537.192543.Cachier: A Tool for Automatically Inserting CICO Annotations
1994. p. 89-98. DOI : 10.1109/ICPP.1994.65.Static Branch Frequency and Program Profile Analysis
1994. p. 1-11. DOI : 10.1145/192724.192725.Tempest and Typhoon: User-Level Shared Memory
1994. p. 325-337. DOI : 10.1145/191995.192062.Where is Time Spent in Message-Passing and Shared-Memory Programs?
1994. p. 61-75. DOI : 10.1145/381792.195501.Rewriting Executable Files to Measure Program Behavior
Software: Practice and Experience. 1994. DOI : 10.1002/spe.4380240204.Mechanisms for Cooperative Shared Memory
CMG Transactions. 1994. DOI : 10.1145/173682.165151.Fine-grain access control for distributed shared memory
1994. ASPLOS'94. 6th International Conference on Architectural support for Programming Languages and Operating Systems, San Jose, CA, October. p. 297-306. DOI : 10.1145/195470.195575.Application-specific protocols for user-level shared memory
1994. Supercomputing '94, Washington D.C., USA, November 14-18. p. 380-389. DOI : 10.1109/SUPERC.1994.344301.The Wisconsin Wind Tunnel: Virtual Prototyping of Parallel Computers
1993. p. 48-60. DOI : 10.1145/166955.166979.Efficient Program Tracing
IEEE Computer. 1993. DOI : 10.1109/2.211900.Wisconsin Architectural Research Tool Set
ACM SIGARCH Computer Architecture News. 1993. DOI : 10.1145/165496.165500.C**: a Large-Grain, Object-Oriented, Data-Parallel Programming Language
1993. p. 326-341. DOI : 10.1007/3-540-57502-2_56.Compiling for Shared-Memory and Message-Passing Computers
ACM Letters on Programming Languages and Systems. 1993. DOI : 10.1145/176454.176514.Loop-Level Parallelism in Numeric and Symbolic Programs
IEEE Transactions on Parallel and Distributed Systems. 1993. DOI : 10.1109/71.238302.A Concurrent Copying Garbage Collector for Languages that Distinguish (Im)mutable Data
1993. p. 73-82. DOI : 10.1145/155332.155340.Branch Prediction for Free
1993. p. 300-313. DOI : 10.1145/155090.155119.Assemblers, Linkers, and the SPIM Simulator
Computer Organization & Design: The Hardware/Software Interface; Morgan Kaufmann, 1993.Cooperative Shared Memory: Software and Hardware for Scalable Multiprocessors
ACM Transactions on Computer Systems. 1993. DOI : 10.1145/161541.161544.Using Tracing and Dynamic Slicing to Tune Compilers
1993Mechanisms for cooperative shared memory
1993. 20th International Symposium on Computer Architecture, San Diego, CA, May. p. 156-167. DOI : 10.1145/165123.165151.Optimally Profiling and Tracing Programs
1992. p. 59-70. DOI : 10.1145/143165.143180.Dynamic Program Parallelization
1992. p. 331-323. DOI : 10.1145/141471.141567.Cooperative Shared Memory: Software and Hardware for Scalable Multiprocessors
1992. p. 262-273. DOI : 10.1145/143365.143537.Compiling Lisp Programs for Parallel Execution
Lisp and Symbolic Computation. 1991. DOI : 10.1007/BF01806061.Estimating the Potential Parallelism in Programs
1991. p. 331-349.Abstract Execution: A Technique for Efficiently Tracing Programs
Software-Practice and Experience. 1990. DOI : 10.1002/spe.4380201205.Exact Data Dependence Analysis Using Data Access Descriptors (Extended Abstract)
1990. p. 290-291.Exact Data Dependence Analysis Using Data Access Descriptors
1990Predicting the Effects of Optimization on Parallel Programs
1990Cache Considerations for Programmers of Multiprocessors
Communications of the ACM. 1990. DOI : 10.1145/79173.79180.Design Decisions in SPUR
Computers for Artificial Intelligence Processing; John Wiley & Sons, 1990. p. 273-299.Multiprocessing Extensions in SPUR Lisp
IEEE Computer. 1989. DOI : 10.1109/52.31651.Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors
Computer Science Division (EECS), University of California at Berkeley, 1989.Lisp Extensions for Multiprocessing
1989. p. 761-770. DOI : 10.1109/HICSS.1989.48084.Evaluation of Acuff's Lisp Benchmarks
1989Features for Multiprocessing in SPUR Lisp
1988Restructuring Lisp Programs for Concurrent Execution
1988. p. 100-110. DOI : 10.1145/62115.62126.Detecting Conflicts Between Structure Accesses
1988. p. 21-34. DOI : 10.1145/53990.53993.An Interactive Program Analysis System for Franz Lisp
University of California, 1987.Curare: Restructuring Lisp Programs for Concurrent Execution
1987SPUR Lisp: Design and Implementation
1987Register Allocation in the SPUR Lisp Compiler
1986. p. 255-263. DOI : 10.1145/12276.13337.Evaluation of the SPUR Lisp Architecture
1986. p. 444-452. DOI : 10.1145/17407.17379.Design Decisions in SPUR
IEEE Computer. 1986. DOI : 10.1109/MC.1986.1663096.Priority Queues on the Butterfly Multiprocessor
1984Using the Baskett Test as a Benchmark for the Butterfly Multiprocessor
1984On the Performance of Courier Remote Procedure Calls Under 4.1c Berkeley Unix
1983Parlez-Vous Franz? An Informal Introduction to Interfacing Foreign Functions to Franz LISP
1983Classy: A Method for Efficiently Compiling Smalltalk
1983A Comparison of Microcode, Assembly Code, and High-Level Languages on the VAX-11 and RISC I
ACM SIGARCH Computer Architecture News. 1982. DOI : 10.1145/641559.641561.Research
Very Large Scale Computing Laboratory
Very Large Scale Computing LaboratoryTeaching & PhD
Teaching
Computer Science
Communication Systems