Goobley/Lightweaver: Performance Focused Improvements

Cmo; Asensio Ramos, Andrés
Referencia bibliográfica


Fecha de publicación:
Número de autores
Número de autores del IAC
Número de citas
Número de citas referidas
The v0.8 release of Lightweaver focuses significantly on performance enhancements in the backend, with some improved frontend flexibility regarding the printing of results. If you've been using a v0.8.0rc* version then you will already have most/all of these features. Notable features: Manual SIMD (x86_64) vectorisation throughout the opacity/emissivity gathering process and calculation of the radiative Gamma matrix. This can be a >50% performance uplift on iterative schemes depending on available instruction sets. (SSE2 seems fully supported on Apple M1, thanks J. Jenkins for testing) Reduced multithreading overhead. Assured data over-alignment where possible. Optimised interpolation schemes and parallelisation of PRD/hPRD scattering integral calculations. Ability to override the iteration scheme with dynamic libraries, similar to the formal solver. Added IterationUpdate class, returning a lot more information about the updates going on in the backend. (This also ties in with the ability to override the iteration scheme -- consider how a GS method works :eyes:) Finally added default function to iterate context to statistical equilibrium convergence. See lw.iterate_ctx_se Added a benchmark and config file system to select the optimal SIMD implementation for the current machine. Home folder config can be overriden with a lightweaverrc in the folder where a script is run. Minor documentation improvements.