A curated reading list for simulator engineers: textbooks on discrete-event simulation and computer architecture, university courses, the key LLM-serving and simulator papers, and the open-source tools worth reading the source of.
Concepts used here, and where they are explained. Each links to its series glossary entry: a short explanation, then links to the slides that explain it in depth, in this series, the Local LLM Hosting and Key Publications decks, or the FHE Accelerator Simulators series.
One evening a day for four weeks, assuming solid Python and computer architecture already. Each week ends with something built.
| Week | Read | Build |
|---|---|---|
| 1. Simulation craft | SimPy docs; Harchol-Balter ch. 1–6 (queueing basics); Lazowska QSP ch. 3 (operational laws); deck 02 | The 30-line kernel; M/M/1 against theory; the deck 02 exercises |
| 2. LLM inference | Roofline paper; Pope et al.; PagedAttention; Orca; Sarathi-Serve; How to Scale Your Model inference chapters | Reproduce deck 03's tables from first principles in a notebook |
| 3. Serving simulators and power | Splitwise, DistServe, Vidur papers; the Vidur and splitwise-sim source; Horowitz on energy; POLCA | Extend Disaggregated_Inference_Sim with layer-wise KV streaming or chunked prefill; validate with tests |
| 4. Hardware and frameworks | LLMCompass; ASTRA-sim 2.0; PyTorch export, compile-backend and PrivateUse1 docs; the MLIR Toy tutorial; HEIR docs | A TorchDispatchMode tracer that feeds a real model's operator trace into the simulator |
Reading a mature simulator's source teaches more about structure than any book. Start with the smaller ones.
| Repository | Read it for |
|---|---|
| Mutinifni/splitwise-sim | A compact Python DES of phase-split clusters: the closest relative of this series' simulator |
| microsoft/vidur | Profiling pipeline, runtime predictors, scheduler zoo, configuration search |
| PrincetonUniversity/LLMCompass | Hardware description, operator mapping, area and cost models |
| hahnyuan/LLM-Viewer | A small analytical roofline tool for many models |
| astra-sim/astra-sim and mlcommons/chakra | A layered C++ simulator; execution-trace formats |
| ARM-software/SCALE-Sim and NVlabs/timeloop | Systolic-array simulation; loop-nest mapping search |
| gem5 and SST | Event queues and ports at industrial scale; Python-configured C++ |
| vLLM, ai-dynamo/dynamo, ai-dynamo/nixl, kvcache-ai/Mooncake | The real schedulers and KV-transfer engines that serving simulators model |
| google/heir, OpenFHE, zama-ai/tfhe-rs | An MLIR FHE compiler; the reference C++ FHE library; a Rust FHE library |
| Disaggregated_Inference_Sim | This series' simulator: about 1,150 lines of SimPy plus tests, written to be read |