.. daolite documentation master file daolite — Adaptive Optics Latency Analysis =========================================== .. raw:: html

daolite

Model and optimize computational latency in Adaptive Optics real-time control systems.

Estimate per-component timing, compare hardware configurations (CPUs, GPUs, network), and iterate on pipeline designs to meet real-time constraints.

What is daolite? ================ .. raw:: html
DOI License: GPL v3 Python 3.8+
daolite is a Python package for modeling the computational timing and latency of adaptive optics (AO) systems. It helps you: * **Design AO Systems**: Compare different hardware configurations before building * **Identify Bottlenecks**: Find which components limit your frame rate * **Optimize Performance**: Test different algorithms and processing strategies * **Validate Timing**: Ensure your system meets real-time requirements .. raw:: html

🔬Component-Based Modeling

Model cameras, calibration, centroiders, reconstructors, and controllers with accurate timing estimates based on hardware specifications.

⚙️Hardware Comparison

Compare CPUs, GPUs, and network configurations. Use built-in hardware profiles or define your own custom resources.

Pipeline Visualization

Generate timing diagrams showing when each component runs, where dependencies occur, and total pipeline latency.

🎯Agenda-Based API

Model pipelined and grouped processing patterns that match real RTC implementations for accurate timing predictions.

🔗Flexible Dependencies

Build complex multi-guide star, multi-DM systems with automatic dependency resolution and parallel component execution.

JSON Configuration

Define pipelines in JSON for reproducible experiments, parameter sweeps, and version-controlled system designs.

Key Features ============ **Comprehensive Component Library** Built-in models for all major AO pipeline stages: PCO cameras, pixel calibration, Shack-Hartmann centroiders, matrix-vector multiplication reconstruction, and DM control. **Realistic Hardware Models** Pre-configured profiles for AMD EPYC CPUs, Intel Xeon processors, NVIDIA GPUs (RTX, A100, H100), and various network technologies. **YAML-Based Hardware Definitions** Easily add new hardware by creating YAML configuration files with memory bandwidth, FLOP rates, and other specifications. **Python and JSON APIs** Build pipelines programmatically with Python or define them declaratively in JSON for easy sharing and reproducibility. .. toctree:: :maxdepth: 2 :caption: Getting Started: :hidden: about install quick_start contributing latency_model compute_resources pipeline examples tests building_docs .. toctree:: :maxdepth: 2 :caption: Components: :hidden: camera calibration centroider reconstruction control network pipeline_designer json_pipeline .. toctree:: :maxdepth: 2 :caption: Community: :hidden: dao projects .. toctree:: :maxdepth: 2 :caption: API Reference: :hidden: api/camera_api api/calibration_api api/centroider_api api/reconstruction_api api/control_api api/network_api api/pipeline_api api/compute_resources_api Built with DAO ============== .. raw:: html
DAO - Durham Adaptive Optics

DAO — Durham Adaptive Optics

High-Performance Real-Time Control Framework

daolite was developed alongside DAO, a real-time software framework for adaptive optics systems. Use daolite to design your system, then implement it with DAO.

Learn More about DAO View on GitHub
Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`