Technologies · Context
Context Assimilation Engine: bring any data in.
Pipeline data rarely starts in one place. The Context Assimilation Engine turns files, datasets and objects from wherever they live into tags and blobs in the stack, so they can be tiered, replicated, searched, mounted and trained on like anything written through CLIO Core.
- Module
- clio_cae_core (pool 400.0)
- Sources
- file, HDF5, HTTP(S), S3, Google Cloud, Globus
- Submit
- clio_cae transfers.yaml
- Labels
- clio_cae_summarizer
Key takeaways
- Brings files, HDF5 datasets, web downloads, S3, Google Cloud and Globus data into the stack with one YAML file.
- Ingests on fault: register a source and only the parts that are read are pulled in, when they are read.
- Describes data in the I/O path: the summarizer labels it and the indexer makes it searchable as it lands.
- Serves imported data as numbered pages, so memory expansion and clio-ml can work on it directly.
One file describes the import
An OMNI file lists transfers: a source URL, a destination tag and a format, with optional byte ranges and dependencies. clio_cae transfers.yaml submits it to the running engine, and the source scheme selects the assimilator: file::, hdf5::, http(s)://, s3://, gs:// or globus://. Each HDF5 dataset becomes its own tag, so later work can address one variable instead of a whole file.
name: ocean_run_42
transfers:
- src: hdf5::/scratch/run42/output.h5
dst: iowarp::run42
format: hdf5
- src: s3://climate-obs/sst/2024.bin
dst: iowarp::sst_obs
format: binaryOnly what is read
A transfer marked on_fault copies nothing up front. The engine registers itself as the destination tag's fault handler on every node, and the first read of a missing blob pulls exactly that blob from the source and stores it on the composed tiers. Large archives become usable at once, and data that is never touched is never moved. A reserve keeps re-fetchable data from filling the last of a tier.
Described as it lands
The engine and its summarizer speak the Context Transfer Engine's own interface, so they can sit in the write path. The summarizer sends matching blobs to a language model and stores the reply beside the data as an ordinary blob; the indexer makes both keyword-searchable. Imported data is findable by what it says without a separate pass.
Pages for paged consumers
Memory expansion and clio-ml address data as page 0, page 1, and so on. The engine can serve numbered pages assembled from named blobs, and with an empty blob prefix an imported file's blobs are the pager's pages. That is how clio-ml trains on an assimilated CSV or Parquet table without first loading it into memory.
Where to go next
- Context Assimilation Engine docs: assimilators, OMNI files, ingest on fault and pagify.
- CAE core and summarizer module reference.
- Context Exploration Engine: find and read what was imported.