|
CAPIO-CL 1.2.0
CAPIO-CL: Cross Application Programmable I/O - Coordination Language
|
This document describes the syntax and semantics of the CAPIO-CL V1 configuration language, expressed through a JSON-based configuration file. A valid CAPIO-CL file defines workflow structure, file dependencies, streaming semantics, storage behavior, and home-node mapping policies for distributed execution.
A CAPIO-CL V1 configuration file is a single JSON object composed of the following sections. Sections marked with * are mandatory.
| Section | Required | Purpose |
|---|---|---|
| name* | Yes | Identifies the workflow |
| aliases | No | Provides named groups of files/directories |
| IO_Graph* | Yes | Describes data dependencies among modules |
| permanent | No | Files to keep at the end of execution |
| exclude | No | Files CAPIO-CL should ignore |
| home_node_policy | No | Rules assigning files to CAPIO-CL servers |
The workflow name is provided under the key name. This unique identifier allows distinguishing multiple workflows running on the same system.
Aliases reduce verbosity by allowing groups of files or directories to be referenced by a single identifier. The aliases section is an array of objects, where each object contains:
The IO_Graph describes how application modules exchange data. It is an array of objects, each representing one module.
| Key | Required | Description |
|---|---|---|
| name | Yes | Module name |
| input_stream | No | Files/directories the module reads |
| output_stream | No | Files/directories the module writes |
| streaming | No | Commit and firing rules for produced data |
Each entry in streaming may describe rules for files or directories.
The exclude section identifies files that CAPIO-CL must ignore even if they appear inside CAPIO-CL_DIR. Values may include filenames, wildcard patterns, or alias names.
The permanent section specifies which files should persist on the filesystem after workflow completion.
At the end of the workflow, CAPIO-CL will store output.dat and all files belonging to alias group0.
The home_node_policy section defines where files and metadata are stored across CAPIO-CL servers. The following optional strategies may be defined:
Important constraint: no file may appear in more than one policy group.
Wildcards introduce risk of conflicting rules.
Example:
Files file1.dat and file2.dat match both rules, which leads to undefined behavior in the current version of CAPIO-CL.
Proper use of aliases can help write a non-ambiguous and clean configuration file.