Introducing a new generation Adaptive Optics simulation framework: from PASSATA to SPECULA
Fabio Rossi, Alfio Puglisi, Guido Agapito
TL;DR
SPECULA addresses the limitations of PASSATA by providing a Python-based, end-to-end AO simulation framework with a declarative YAML description and an object-oriented network of processing/data objects. It enables CPU/GPU execution and scalable multi-node HPC operation via MPI, with automated object construction, device-specific allocation, and CUDA-graph optimization. The framework also supports hardware-in-the-loop, data replay, and live visualization, and includes extensive validation against PASSATA across multiple AO systems. Collectively, SPECULA offers a scalable, extensible, open-source platform for designing, validating, and operating complex AO systems in both lab and HPC environments.
Abstract
Numerical end-to-end simulation in Adaptive Optics (AO) is a key tool in the development of complex systems, from the initial design to the commissioning phase. Based on our previous experience with PASSATA, we decided to develop a new AO simulation framework in Python language, naming it SPECULA (short for: Scalable Parallel Execution of Computations Upscaling Large Adaptive optics simulations). Following an object-oriented approach, the physical entities are modeled as processing objects connected to each other to exchange data objects. A simulation is run by providing its description instead of writing and executing a specific script. The Python language and its library flexibility allowed us to write one single code that can be run on CPU and GPU platforms. We put a strong focus on computational efficiency, relying on CuPy and its interface to access the CUDA-stream mechanism. Moreover, SPECULA is capable of distributed computations over multiple processing nodes, making it suitable to run in an HPC environment, as tested on the Italian supercomputer Leonardo. SPECULA can also be used in laboratory environment to implement a hybrid simulation, allowing us to interface simulated and concrete objects: this feature was demonstrated in the Adaptive Optics laboratories at Arcetri Observatory. In this paper, we describe the main characteristics of SPECULA, show some relevant examples of its use, and finally draw our goals for the future.
