RIFT Architecture
The RIFT (Rapid inference via Iterative FiTting) framework is designed for highly parallelized, efficient parameter inference for gravitational wave (GW) sources. Its core philosophy is to replace computationally expensive waveform evaluations with fast interpolants, iteratively refining the parameter space.
Core Components
Simulation Manager (
RIFT.simulation_manager) The entry point for large-scale runs. It handles the submission and tracking of simulations across different HPC schedulers (Condor, Slurm, PBS). It manages theSimulationArchive, which tracks which simulations have been generated and where their results are stored.Integrators (
RIFT.integrators) The “engines” of the inference process. RIFT provides multiple sampling strategies: - Standard MC Samplers: Basic Monte Carlo integration. - Ensemble Samplers: Using parallel chains to explore the posterior. - GPU Samplers: Leveraging CUDA for massive acceleration of likelihood evaluations. - NFlow Samplers: Using Normalizing Flows for more efficient sampling. - Unreliable Oracle: A set of optimization tools (like hill climbing) used to find peaks in the likelihood surface.Interpolators (
RIFT.interpolators) To avoid calling expensive waveform generators millions of times, RIFT uses interpolants. This module implements various techniques: - Gaussian Processes (GP): For flexible, non-parametric interpolation. - Bayesian Least Squares: For structured fits. - Senni / GPyTorch: Integration with modern ML frameworks for high-dimensional interpolation.Likelihood Engine (
RIFT.likelihood) The core mathematical heart of the package. It computes the inner products between data and templates. It is heavily optimized, with GPU-accelerated kernels for the most frequent operations.Physics Layer (
RIFT.physics) Handles the astrophysical and numerical relativity (NR) inputs. - EOSManager: Manages Equation of State tables. - Waveform Managers: Handles the loading and rotation of NR waveforms.Miscellaneous Utilities (
RIFT.misc) The “glue” of the package, providing XML parsing, coordinate transformations, and parameter handling.
Data Flow
The typical execution flow is as follows:
Simulation Setup: The
SimulationManageridentifies missing simulations and submits them to the cluster.Integration: An
Integrator(e.g.,mcsamplerEnsemble) is initialized.Evaluation: For each sample, the
Integratorasks theLikelihoodengine for a value.Acceleration: The
Likelihoodengine checks if anInterpolatorcan provide a fast approximation. If not, it triggers a new simulation or uses a base-level waveform.Refinement: The process repeats, with the interpolators becoming more accurate as more simulation data is gathered.