1 Followers
9 Following
14 Posts
My name is Antonio Ragagnin, and I am an astrophysicist. In this server, I will blog about my new project, hotwheels: a flexible and modular new implementation of an n-body cosmological hydrodynamic simulation #Gadget-like code. It incorporates a decade of lessons I learned working with HPC. Designed to work with CPU and GPU parallelism + strongly focusing on modularity, which is necessary to cooperate with engineers working for HPC facilities and GPU vendors
Do you have a numerical simulation and need to compute the gravitational potential of a cosmological simulation? hotwheels Particle-Mesh OpenMP+MPI stand-alone module (inspired by Gadget2,4) can do it easily and is integrated with Python wrappers too!

This March, I 🔊 presented at the Leibniz Supercomputing Centre (LRZ) my code, hotwheels. There, I showed its modular design, GPU-ready kernels, and how they could change the game for cosmological simulations.

Slides here: https://docs.google.com/presentation/d/14BeqAdOqfYc5rbpVECS_ghbFJorFckbAbfjhlebwJUs 🧑‍🏫

#HPC #LRZ #cosmology #nbody

hotwheels march 2025

hotwheels: an hydro-cosmo sims code based on my HPC learned lessons Antonio Ragagnin (INAF-OAS)

Google Docs

🔥 New hotwheels tutorial is out!

A direct consequence of hotwheels extreme modularity is that you can easily stack multiple particle-mesh (PM) solvers like nested dolls!

In this demo, we layer PM grids over a N-body sampled Navarro-Frenk-White (NFW) halo and match the analytic acceleration profile down to 1 kpc on a galaxy cluster scale.

Link: https://www.ict.inaf.it/gitlab/hotwheels/gitlab-profile/-/blob/main/run_pm_dmo_NFW_fixed_timestep.md

run_pm_dmo_NFW_fixed_timestep.md · main · hotwheels / gitlab-profile · GitLab

Documentation for hotwheel with examples of installing and running hotwheel packages for running simulations.

GitLab

🚀 hotwheels Tree Build: CPU vs GPU scaling tst🚀

CPU OpenMP parallel tree build scales linearly with threads up to 32 threads! GPU scales like an 8-thread CPU - great when cores are limited! More particles per leaf = faster tree & less traversal!

#HPC #GPU #OpenMP #Octree #Scaling https://www.ict.inaf.it/gitlab/hotwheels/

hotwheels · GitLab

A new, modular, mini-app friendly, highly testable, GPU-friendly code for N-body cosmological hydrodynamic simulations.

GitLab

Reminder: @numba is an *excellent* accelerator for numeric computations in Python. Also, issues with Python's stability are greatly exaggerated. Case in point: I just ran my 8yo n-body benchmarks without modification:

https://github.com/jni/nbody-numba

and they were just 10% slower than the fastest C code — and that's including all the Python launch time and JIT warmup!

#numba #Python

GitHub - jni/nbody-numba

Contribute to jni/nbody-numba development by creating an account on GitHub.

GitHub
🚀 hotwheels is a modern code for n-body cosmological simulations.
⚡️Kernels are written in C for best exploitation of HPC facilities
🛠️Python wrappers make it easy to run them (inspired by the power of ML tools).
🔗Link: https://www.ict.inaf.it/gitlab/hotwheels
hotwheels · GitLab

A new, modular, mini-app friendly, highly testable, GPU-friendly code for N-body cosmological hydrodynamic simulations.

GitLab
Building large cosmological n-body simulations has always been a battle against tangled code and conflicting edits, especially when physics modules need to define their own particle properties on a common `allvars.h`. Enter **hotwheels**: a game-changer design. Each module operates independently, registering its fields within its own space. At runtime, my code dynamically assembles a clean, optimized Structure of Arrays (SoA) tailored specifically to your simulation.

A look back at #ESAEuclid in 2024, and a look forward into what to expect from #Euclid in the coming year:

https://www.euclid-ec.org/euclid-in-2024-and-whats-to-come-in-2025/

#astronomy #science #space #astrodon

I am writing a new GPU- and vector-friendly code for n-body cosmological simulations. I re-implemented an octree, allowing multiple particles per leaf to speed up neighbour search and improve memory efficiency. Figure: I test the tree with up to 10 particles per leaf.
You can see how easy it is to use hotwheels C kernels in Python:
https://colab.research.google.com/drive/1EObmEt7XK56EpwHh7PQ-viR7PHZ5H0pl
Google Colab

Here is the n-body xmas tree🎄
an image from the multi-domain Hilbert-based domain decomposition of the new n-body code for hydrodynamic cosmological simulations `hotwheels`
(repo: https://www.ict.inaf.it/gitlab/hotwheels)
hotwheels · GitLab

A new, modular, mini-app friendly, highly testable, GPU-friendly code for N-body cosmological hydrodynamic simulations.

GitLab