Architecture and internals#
HTTomo separates orchestration from scientific processing. Backend libraries
implement algorithms, httomo-backends describes how those functions behave
inside a pipeline, and HTTomo validates, schedules and executes them.
Execution path#
The CLI loads and validates the pipeline configuration.
The UI and transform layers construct method wrappers and insert framework operations such as intermediate saving.
The pipeline is divided into sections with compatible processing patterns.
The loader supplies data to the runner, which distributes each section into per-rank chunks and memory-sized blocks.
Wrappers invoke backend methods and pass the resulting block onwards.
Dataset stores handle in-memory or disk-backed transitions between sections.
Read execution model and Core concepts first. The implementation-oriented concepts are:
Repository responsibilities#
httomoPipeline validation, loading, orchestration, MPI distribution, data stores, wrappers, monitoring and command-line behaviour.
- Backend library
The scientific implementation and its numerical tests.
httomo-backendsExecution metadata, generated method templates, memory estimation, padding and output-shape information. See Integrating methods with httomo-backends.
Most new scientific methods require changes to the backend library and
httomo-backends only. Change HTTomo when orchestration or wrapper behaviour
must also change.
Public entry points#
The API is exhaustive and includes implementation modules. New code should depend on the narrowest stable interface available, particularly the pipeline, method-wrapper, loader, method-repository and monitoring interfaces. Avoid importing from generated documentation paths or relying on private names.