Xentara v2.0.4
User Manual
JSON Format for Execution Tracks

A JSON object describing an execution track has the following syntax:

{
"@Track": {
"name": "Track 1",
"UUID": "31537d09-b27f-4cd2-bbf3-2bcfcc21547e",
"ACL": { ... },
"threadCount": 2,
"timing": "realtime",
"cpus": [ 14, 15 ],
"children": [
...
]
}
}

Object Members
nameA string value containing the name of the track. The name is used to construct the track’s primary key.
UUIDA string value containing the unique UUID of the track.
ACLAn optional JSON object containing the element ACL of the track. The format of the object is described under JSON Format for ACLs.
threadCount

An optional integer value describing the size of the thread pool used for this track. This value must be greater than 0. Usually, the thread count should not be greater than the number of cores available on the target machine. If you specify 1 as the thread count, all tasks in the track will run sequentially.

If you do not specify this member, then the thread count will be automatically determined.

timing

An optional string value describing the timing precision used by the execution track. The following values are supported:

Value Timing Precision
"relaxed" relaxed timing
"precise" precise timing
"realtime" realtime timing

If you do not specify this member, then the execution track will use precise timing.

cpus

An optional JSON array containing the CPUs this execution track should be restricted to, as described under CPU Affinity. The array must contain the 0-based CPU indices of the CPUs the track should be bound to. You must specify at least one CPU.

The array can contain CPU numbers outside the range of CPUs actually available on the system. For example, you can specify CPU numbers 7, 8, 9 etc. even on a system that only has four CPUs. The extra CPUs will be ignored. However, the array must contain at least one eligible CPU. If the array does not contain any eligible CPUs, Xentara will issue a warning, and the track will use the default CPU affinity.

On Windows machines with more than 64 cores, Windows groups the CPUs into so called Processor Groups. It is not possible to bind threads to processors spanning multiple groups, so under Windows, all the CPUs in this array must belong to the same processor group. If the array contains CPUs from multiple processor groups, Xentara will issue a warning, and the track will use the default CPU affinity.

If you do not specify this member, then the track will have the default CPU affinity assigned by the operating system. This will normally include all available CPUs, but can be affected by core isolation, or other OS facilities like the Linux taskset(1) command.

children

A JSON array containing the child elements of the track. Execution tracks only support pipelines and timers as children.

The individual child elements are each represented by a double nested JSON object, as described in Element Blocks under Structure of the Model File. The outer object has a single member whose name is the type of element, and whose value is another JSON object that contains the actual properties of the element.