
About
Shan Lu is a Professor in the Department of Computer Science at the University of Chicago. She received her Ph.D. from the University of Illinois, Urbana-Champaign, in 2008. Her research focuses on software reliability and efficiency, particularly in detecting, diagnosing, and fixing functional and performance bugs in large software systems. She has made significant contributions to understanding concurrency bugs and performance bugs, with her work recognized through awards such as the ASPLOS Influential Paper Award. Prior to her current position, she served as the Clare Boothe Luce Assistant Professor of Computer Sciences at the University of Wisconsin, Madison, from 2009 to 2014. Shan Lu is an ACM Distinguished Member (2019), an Alfred P. Sloan Research Fellow (2014), and a recipient of the NSF Career Award (2010). Her research interests include systems, architecture, and networking, with a focus on the design and analysis of computing systems such as cloud, edge, Internet, and quantum systems. She is actively involved in the research community, serving as the Chair of ACM-SIGOPS and holding editorial and organizational roles in major conferences and committees.
Research topics
- Computer Science
- Programming language
- Machine Learning
- Artificial Intelligence
- Computer Security
- Human–computer interaction
- Telecommunications
- Simulation
- Software engineering
- Operating system
- Distributed computing
- Engineering
- Embedded system
- Internet privacy
Selected publications
VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Verus
Lecture notes in computer science · 2026-01-01
book-chapterOpen accessClusterin Drives Fiber Endocytosis by Mesothelial Cells to Resolve Liver Fibrosis
Gastroenterology · 2025-12-10 · 7 citations
articleOpen accessBACKGROUND & AIMS: Liver fibrosis, a common outcome of chronic liver diseases, is generally considered irreversible. Upregulation of clusterin (CLU), a secreted glycoprotein, occurs in several degenerative diseases and is suggested to have protective effects; however, its potential in treating or reversing liver fibrosis requires investigation. METHODS: Induction of CLU and its receptor low-density lipoprotein receptor-related protein 2 (LRP2) in fibrotic liver were determined using single-cell RNA sequencing and immunofluorescence. Its role and mechanism were examined in CLU knockout mice and mesothelial-specific LRP2 knockout mice. A peptide mimicking CLU was designed and verified. RESULTS: CLU expression was induced in pericentral senescent hepatocytes and then secreted during liver fibrosis in both patients and mice. CLU deletion exacerbated liver fibrosis, whereas treatment with recombinant CLU reduced fibrosis, suggesting that CLU induction feedback inhibits fibrosis progression. Mechanistically, LRP2, the receptor for CLU, is expressed specifically by liver mesothelial cells but not hepatic stellate cells. Recognition of CLU by LRP2 triggers mesothelial cell proliferation and migration from the liver surface into the pericentral region, followed by endocytosis of surrounding fibers, thus reducing liver fibrosis. Thereafter, we designed a 20-amino acid peptide mimicking CLU, named CLUtide, and determined its effect in resolving liver fibrosis, suggesting the considerable therapeutic potential. CONCLUSIONS: Pericentral senescent hepatocytes secrete CLU to induce the proliferation and migration of mesothelial cells to endocytose fibers by its receptor LRP2, thus reducing liver fibrosis. The engineered CLUtide mimicking CLU may be promising for resolving hepatic deposited fibers during liver fibrosis.
CacheBlend: Fast Large Language Model Serving for RAG with Cached Knowledge Fusion
2025-03-26 · 34 citations
articleOpen accessLarge language models (LLMs) often incorporate multiple text chunks in their inputs to provide the necessary contexts. To speed up the prefill of the long LLM inputs, one can pre-compute the KV cache of a text and re-use the KV cache when the context is reused as the prefix of another LLM input. However, the reused text chunks are not always the input prefix, which makes precomputed KV caches not directly usable since they ignore the text's cross-attention with the preceding texts. Thus, the benefits of reusing KV caches remain largely unrealized.
Lining up Garbage Collection and Application for a Far-Memory-Friendly Runtime
ACM Transactions on Computer Systems · 2025-07-18
articleOpen accessFar-memory techniques that enable applications to use remote memory are increasingly appealing in modern data centers, supporting applications’ large memory footprint and improving machines’ resource utilization. Unfortunately, most far-memory techniques focus on OS-level optimizations and are agnostic to managed runtimes and garbage collections (GC) underneath applications written in high-level languages. With different object-access patterns from applications, GC can severely interfere with existing far-memory techniques, breaking remote memory prefetching algorithms and causing severe local-memory misses. We developed MemLiner, a runtime technique that improves the performance of far-memory systems by aligning memory accesses from application and GC threads so that they follow similar memory access paths, thereby (1) reducing the local-memory working set and (2) improving remote-memory prefetching through simplified memory access patterns. We implemented MemLiner in two widely used GCs in OpenJDK: G1 and Shenandoah. Our evaluation with a range of widely deployed cloud systems shows that MemLiner improves applications’ end-to-end performance by up to 3.3× and reduces applications’ tail latency by up to 220.0× .
AutoVerus: Automated Proof Generation for Rust Code
Proceedings of the ACM on Programming Languages · 2025-10-09 · 4 citations
articleOpen accessSenior authorGenerative AI has shown its value for many software engineering tasks. Still in its infancy, large language model (LLM)-based proof generation lags behind LLM-based code generation. In this paper, we present AutoVerus. AutoVerus uses LLMs to automatically generate correctness proof for Rust code. AutoVerus is designed to match the unique features of Verus, a verification tool that can prove the correctness of Rust code using proofs and specifications also written in Rust. AutoVerus consists of a network of agents that are crafted and orchestrated to mimic human experts' three phases of proof construction: preliminary proof generation, proof refinement guided by generic tips, and proof debugging guided by verification errors. To thoroughly evaluate AutoVerus and help foster future research in this direction, we have built a benchmark suite of 150 non-trivial proof tasks, based on existing code-generation benchmarks and verification benchmarks. Our evaluation shows that AutoVerus can automatically generate correct proof for more than 90% of them, with more than half of them tackled in less than 30 seconds or 3 LLM calls.
Keeper: Automated Testing and Fixing of Machine Learning Software—RCR Report
ACM Transactions on Software Engineering and Methodology · 2025-06-05
articleSenior authorThis artifact aims to provide source code, benchmark suite, results, and materials used in our study “Keeper: Automated Testing and Fixing of Machine Learning Software” [ 3 ]. We developed an automated testing and fixing tool Keeper and its IDE plugin for ML software. It automatically detects software defects and attempts to change how ML APIs are used to alleviate software misbehavior. This artifact provides guidelines to set up and execute Keeper and also guidelines to interpret our evaluation results. We hope this artifact can motivate and help future research to further tackle ML API misuses. All related data are available online.
AutoVerus: Automated Proof Generation for Rust Code
arXiv (Cornell University) · 2024-09-19 · 1 citations
preprintOpen accessSenior authorGenerative AI has shown its values for many software engineering tasks. Still in its infancy, large language model (LLM)-based proof generation lags behind LLM-based code generation. In this paper, we present AutoVerus. AutoVerus uses LLMs to automatically generate correctness proof for Rust code. AutoVerus is designed to match the unique features of Verus, a verification tool that can prove the correctness of Rust code using proofs and specifications also written in Rust. AutoVerus consists of a network of LLM agents that are crafted and orchestrated to mimic human experts' three phases of proof construction: preliminary proof generation, proof refinement guided by generic tips, and proof debugging guided by verification errors. To thoroughly evaluate AutoVerus and help foster future research in this direction, we have built a benchmark suite of 150 non-trivial proof tasks, based on existing code-generation benchmarks and verification benchmarks. Our evaluation shows that AutoVerus can automatically generate correct proof for more than 90% of them, with more than half of them tackled in less than 30 seconds or 3 LLM calls.
Carcinogenesis · 2024-02-23 · 11 citations
articleFerroptosis is a new form of regulated cell death caused by the iron-dependent peroxidation of phospholipids and is related to cell metabolism, redox homeostasis and various signalling pathways related to cancer. The long non-coding RNA (lncRNA) KB-1460A1.5 acts as a tumour suppressor gene to regulate tumour growth in gliomas, but its molecular network regulatory mechanism is still unclear. In this study, we found that KB-1460A1.5 can induce ferroptosis in glioma and enhance sensitivity to RSL3, a ferroptosis inducer. Tandem mass tag proteomics and nontargeted metabolomics suggest that KB-1460A1.5 affects polyunsaturated fatty acid metabolic processes. Gas chromatography-mass spectrometry-based medium- and long-chain fatty acid-targeted metabolomics confirmed that upregulation of KB-1460A1.5 decreased the levels of monounsaturated fatty acids, oleic acid (OA) and palmitoleic acid (PO) in glioma cells. The addition of OA and PO restored KB-1460A1.5-induced cellular ferroptosis. Molecularly, KB-1460A1.5 inhibited the mammalian target of rapamycin signalling pathway to suppress the expression of downstream sterol regulatory element-binding protein 1 (SREBP-1), thereby attenuating the stearoyl-CoA desaturase-1 (SCD1)-mediated desaturation of polyunsaturated fatty acids. Finally, an animal model of subcutaneous glioma confirmed that KB-1460A1.5 could inhibit tumour progression, SREBP-1/SCD1 expression and ferroptosis. In conclusion, increasing the expression level of KB-1460A1.5 in glioma can promote the induction of oxidative stress and ferroptosis in cancer cells through SREBP-1/SCD1-mediated adipogenesis, demonstrating therapeutic potential in preclinical models.
Automated Proof Generation for Rust Code via Self-Evolution
arXiv (Cornell University) · 2024-10-21
preprintOpen accessEnsuring correctness is crucial for code generation. Formal verification offers a definitive assurance of correctness, but demands substantial human effort in proof construction and hence raises a pressing need for automation. The primary obstacle lies in the severe lack of data-there is much fewer proofs than code snippets for Large Language Models (LLMs) to train upon. In this paper, we introduce SAFE, a framework that overcomes the lack of human-written proofs to enable automated proof generation of Rust code. SAFE establishes a self-evolving cycle where data synthesis and fine-tuning collaborate to enhance the model capability, leveraging the definitive power of a symbolic verifier in telling correct proofs from incorrect ones. SAFE also re-purposes the large number of synthesized incorrect proofs to train the self-debugging capability of the fine-tuned models, empowering them to fix incorrect proofs based on the verifier's feedback. SAFE demonstrates superior efficiency and precision compared to GPT-4o. Through tens of thousands of synthesized proofs and the self-debugging mechanism, we improve the capability of open-source models, initially unacquainted with formal verification, to automatically write proofs for Rust code. This advancement leads to a significant improvement in performance, achieving a 52.52% accuracy rate in a benchmark crafted by human experts, a significant leap over GPT-4o's performance of 14.39%.
Keeper: Automated Testing and Fixing of Machine Learning Software
ACM Transactions on Software Engineering and Methodology · 2024-06-13 · 2 citations
articleOpen accessSenior authorThe increasing number of software applications incorporating machine learning (ML) solutions has led to the need for testing techniques. However, testing ML software requires tremendous human effort to design realistic and relevant test inputs and to judge software output correctness according to human common sense. Even when misbehavior is exposed, it is often unclear whether the defect is inside ML API or the surrounding code and how to fix the implementation. This article tackles these challenges by proposing Keeper, an automated testing and fixing tool for ML software. The core idea of Keeper is designing pseudo-inverse functions that semantically reverse the corresponding ML task in an empirical way and proxy common human judgment of real-world data. It incorporates these functions into a symbolic execution engine to generate tests. Keeper also detects code smells that degrade software performance. Once misbehavior is exposed, Keeper attempts to change how ML APIs are used to alleviate the misbehavior. Our evaluation on a variety of applications shows that Keeper greatly improves branch coverage, while identifying 74 previously unknown failures and 19 code smells from 56 out of 104 applications. Our user studies show that 78% of end-users and 95% of developers agree with Keeper’s detection and fixing results.
Recent grants
CAREER: Combating Performance Bugs in Software Systems
NSF · $358k · 2011–2015
XPS: FULL: CCA: Production-Run Failure Recovery Based Approach to Reliable Parallel Software
NSF · $750k · 2014–2018
BIGDATA: Collaborative Research: F: Holistic Optimization of Data-Driven Applications
NSF · $600k · 2015–2020
CAREER: Combating Performance Bugs in Software Systems
NSF · $239k · 2014–2017
Fighting Concurrency Bugs through Effect-Oriented Approaches
NSF · $469k · 2010–2014
Frequent coauthors
- 25 shared
Haryadi S. Gunawi
University of Chicago
- 21 shared
Henry Hoffmann
University of Chicago
- 20 shared
Tanakorn Leesatapornwongsa
Microsoft (United States)
- 20 shared
Guoliang Jin
City University of Hong Kong
- 17 shared
Yuanyuan Zhou
- 16 shared
Yuanyuan Zhou
Shanghai International Studies University
- 16 shared
Haopeng Liu
- 15 shared
Guangpu Li
China University of Petroleum, Beijing
Labs
Education
- 2008
Ph.D.
University of Illinois, Urbana-Champaign
Awards & honors
- ACM Distinguished Member (2019)
- Alfred P. Sloan Research Fellow (2014)
- Distinguished Educator Alumnus from Department of Computer S…
- NSF Career Award (2010)
- Google Scholar Classic Paper 2017
- Resume-aware match score
- Save to shortlist
- AI-drafted outreach
See your match with Shan Lu
PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.
- Free to start
- No credit card
- 30-second signup