Simulating the Universe Using Modern C++
summary
Describes a production-scale numerical experiment: the Full Universe Run simulating 13.7 billion years of structure formation on the Curie thin‑nodes supercomputer, producing petabytes of output (≈1.6 PB) and using spatial trees for gravity. Reports concrete software choices — C++11/14 template metaprogramming, constexpr and std::thread — and measurable engineering results: cache‑aware layouts, improved data locality, scaling limits encountered (memory, I/O and communication), and which optimizations actually yield wall‑clock speedups.
AI-written summary · about
chapters (49)
- 0:00Cosmic simulations in C++ intro
- 1:07Modern C++ for astrophysics
- 2:37Cosmology basics
- 4:07Homogeneous universe models
- 6:05Observations supporting models
- 7:32Challenges in simulations
- 9:47Simulations vs real experiments
- 11:21Large-scale structure formation
- 12:34Adaptive mesh refinement
- 14:05Supercomputing limits
- 15:33Physics vs computation balance
- 16:15Max viable simulation size
- 17:00Data storage challenges
- 18:09Astrophysics software design
- 19:58Scientific codebase challenges
- 21:27C++ community practices
- 23:00Exascale computing future
- 24:28Exascale memory bottlenecks
- 25:30Optimizing for supercomputers
- 26:14HPC communication limits
- 27:18Memory vs computation trade-offs
- 28:35Legacy physics code maintenance
- 29:40Version control in teams
- 31:13Expertise in large teams
- 32:17Data types and efficiency
- 33:02OOP and group development
- 34:05Memory management in C++
- 35:08Generic programming for science
- 36:11Domain-specific languages
- 37:34Compilation and performance
- 38:38Template metaprogramming
- 40:07Compile-time computation
- 41:33Concepts and templates
- 42:58Static vs runtime polymorphism
- 44:25Execution time optimizations
- 45:29Template pattern
- 46:34Template instantiation control
- 47:40Operator overloading
- 48:24Astrophysical code abstractions
- 49:29Simulation software hierarchy
- 50:37Memory usage optimization
- 51:42Tree data for neighbor searches
- 53:12Pointer tricks for speed
- 54:20SIMD and instruction-level
- 55:25Kinematic simulation design
- 56:11Exascale cultural shift
- 57:18Active vs passive libraries
- 58:13Code complexity challenges
- 59:19Conclusion and future
related talks
36mThe (Hello) World, The Universe and Uranus
01h 07mGeneric Parallel Programming
01h 06mNumerical Integrators From Scratch in C++
01h 00mPhysics at the Large Hadron Collider: A New Window on Matter, Spacetime and the Universe II
36mAn almost perfect match: cloud native and scientific computing
31m"Optimizing Scientific Python with C++, CUDA, and Serverless Compute"
51mWhen the Universe Calls
31mThe universe as balls and springs: molecular dynamics in Python
