Docs · Context Assimilation Engine
Install the Context Assimilation Engine.
The CAE core module ships in every CLIO Core package. The file, string and HTTP assimilators need nothing extra. HDF5, S3, Google Cloud Storage and Globus are opt-in at build time, so for those you build from source or pick a package that enabled them.
- CMake
- CLIO_CORE_ENABLE_CAE=ON by default
- HDF5
- CLIO_CORE_ENABLE_HDF5=ON
- Cloud
- CAE_ENABLE_S3, CAE_ENABLE_GCS, CAE_ENABLE_GLOBUS
- Summarizer
- libcurl + nlohmann_json
What each package includes
The general installation page covers every method. This page says what each one gives you for the CAE.
- pip wheel (
pip install iowarp-core). Built withCLIO_CORE_ENABLE_CAE=ONandCLIO_CORE_ENABLE_HDF5=OFF; the S3, GCS and Globus options are left at their OFF defaults. The wheel contains the CAE core client and runtime libraries, soclio_runcomposes the CAE pool from the default configuration and the Pythonclio_ceemodule can submit transfers. The wheel does not install aclio_caecommand: its console scripts areclio_run,clio_cte_fuse,clio_cte_benchandclio_run_thrpt_bench. Use clio_cee to import from a pip install. - conda (
iowarp-coreon theiowarpchannel). Includes the CAE and installsclio_caeunder$CONDA_PREFIX/bin. The recipe's cloud SDK lines are commented out; to add S3 or GCS, build the recipe yourself with the matching CMake flag. - Docker (
iowarp/deploy-cpu). Built with thebuild-cpu-releasepreset, which leavesCLIO_CORE_ENABLE_HDF5and the cloud options at their OFF defaults. The image hasclio_caewith the file, string and HTTP assimilators. The HDF5 VOL connector it ships is a CTE adapter, not the CAE HDF5 assimilator. - Spack. The
iowarppackage has variants+cae(default on),+s3_caefors3://import and+gcsforgs://import. Both cloud variants require+cae. - .deb, .rpm, AppImage, Windows installer. Ship the native binaries without Python bindings. The Linux packages include
clio_cae. The Windows presets build the CAE with HDF5 off. - Source. Everything below.
Build options
All options are set at configure time on the top-level project. The CAE is on by default; the sources that need an SDK are off by default.
| Option | Default | Effect |
|---|---|---|
CLIO_CORE_ENABLE_CAE | ON | Builds context-assimilation-engine: the core module, the summarizer, clio_cae and the tests. |
CLIO_CORE_ENABLE_HDF5 | OFF | HDF5 support in the CAE: the hdf5:: assimilator, the hdf5_vol format and .h5 export. Needs the HDF5 library. |
CAE_ENABLE_S3 | OFF | s3:// import. Needs the AWS SDK for C++ (component s3) for the cae_s3_tool helper and Poco (Net, NetSSL, Crypto) for the in-process read path. If either is missing, configure warns and turns the option off. |
CAE_ENABLE_GCS | OFF | gs:// and gcs:// import. Needs google-cloud-cpp with the storage component. Missing SDK: warn and turn off. |
CAE_ENABLE_GLOBUS | OFF | globus:// import and the globus format. Needs Poco (Net, NetSSL, Crypto, JSON) and nlohmann_json. Missing: warn and turn off. |
CLIO_CAE_ENABLE_SUMMARY | OFF | Builds the summarizer's live-model tests and the semantic-search tests. They need a running Ollama server. The summarizer module itself builds regardless. |
The summarizer compiles its HTTP client when libcurl and nlohmann_json are found. Without libcurl the module still builds and forwards operations, but labeling returns false. http:// and https:// sources are POSIX only: the assimilator spawns curl, and the cae_http_tool helper is not built on Windows.
Build from source
Start from the general source instructions, then add the CAE options you need. A Linux example with HDF5 and S3:
$ sudo apt install -y libhdf5-dev libpoco-dev
$ git clone --recurse-submodules https://github.com/iowarp/clio-core.git
$ cd clio-core
$ cmake --preset release \
-DCLIO_CORE_ENABLE_HDF5=ON \
-DCAE_ENABLE_S3=ON
$ cmake --build build -j"$(nproc)"
$ sudo cmake --install buildThe AWS SDK for C++ is not an apt package on most distributions; install it from source or through CI/ci-deps.sh, Spack (+s3_cae) or conda before configuring. Check the configure output for these lines:
found AWS SDK + Poco (CAE S3 support: ENABLED)
found google-cloud-cpp storage (CAE GCS support: ENABLED)
CAE summarization support: ENABLED (libcurl + nlohmann_json found)
Context Assimilation: ONThe install puts clio_cae in bin, with clio_cae_omni as a symlink (a copy on Windows) for older scripts, and cae_s3_tool and cae_http_tool beside it when built.
Runtime configuration
The default configuration already composes the CAE core at pool 400.0 with next_pool_id: "563.0". If you wrote your own clio.yaml, the entry you need is:
compose:
# ... CTE core and chain entries first ...
- mod_name: clio_cae_core
pool_name: cae_main
pool_query: local
pool_id: "400.0"
next_pool_id: "563.0"The entry must come after the pool its next_pool_id names. Point next_pool_id at "512.0" to write to the bare core, skipping the cache and the indexer. The summarizer entry is in the default file, commented out; see the usage page to enable it.
Check the install
Start the runtime with clio_run start. From a pip install, import an inline string through the CEE and list it back:
import clio_cee as cee
ctx = cee.ContextInterface()
rc = ctx.context_bundle([cee.AssimilationCtx(
src='string::hello', dst='iowarp::cae_check', format='binary',
src_data="hello from the CAE")])
print("bundle rc", rc)
print(ctx.context_query("cae_check", ".*")) # ['hello']
ctx.context_destroy(["cae_check"])With a native install, check the tool against a real file:
$ clio_run start &
$ head -c 3M /dev/urandom > /tmp/sample.bin
$ printf 'transfers:\n - src: file::/tmp/sample.bin\n dst: iowarp::sample\n format: binary\n' > /tmp/sample.yaml
$ clio_cae /tmp/sample.yaml
$ cte_search 'sample.*'A successful run prints ParseOmni completed successfully! and the number of transfers scheduled. The tool exits 1 if the runtime is not running, if the OMNI file is invalid, if a transfer's scheme was not compiled in, or if nothing was scheduled.