typedParameters hold LogicalGroupId at the top level and the ChakraConfiguration object, which holds every other attribute; the tables group those by what they control. The page ends with the rules that stop a simulation and the settings to keep. Workload execution and Records explain the behavior behind the attributes.
How to read the tables
Default is the value an attribute carries in a Chakra application the platform adds to a configuration withPOST /api/v1/configurations/{config_id}/applications (Add the application). Such an application carries every attribute in these tables at its Default until you change it.
If you supply the application’s typedParameters yourself instead, for example in the applications of POST /api/v1/configurations, include every attribute of its ChakraConfiguration. Set NumOfChakraFiles to the number of servers in the topology; the request returns 400 when they differ. LogicalGroupId takes its Default if you leave it out.
Type is the value of the attribute’s type field in the API, which a patch must repeat. Values of type bytes carry a unit: B, KB (1,000 bytes), KiB (1,024 bytes), MB (1,000,000 bytes), or MiB (1,048,576 bytes). Values of type double that are times are in seconds of simulation time.
Application
This attribute sits at the top level of the application’stypedParameters.
ChakraConfiguration
These attributes sit in theChakraConfiguration object of the application’s typedParameters.
Ranks and placement
Collective algorithms
Each attribute selects the algorithm that expands one collective type into point-to-point transfers. Collectives describes each algorithm, with a worked example.Ordering and preparation
Compute and scaling
Profiling
Scale-up
These attributes apply to transfers between ranks that a mapping file places in the same scale-up group (Scale-up groups). The two sizes are checked at the start of every run, whether or not the configuration has a mapping file or scale-up groups.Setting up a Chakra simulation through the platform
A Chakra simulation needs a configuration with the Chakra application and a traceset attached to it, and it can have a mapping file. The reference pages for the APIs involved are Components, Configurations, and Tracesets. Get an API token first (Authentication) and export it asSCALA_API_TOKEN.
Read the workload’s parameters
GET /api/v1/components?category=application lists the application models the platform offers; the ChakraWorkload entry gives the Chakra workload’s id and its versions. GET /api/v1/components/{component_id}, with the version query parameter set to the model version these pages describe, returns the workload’s typedParameters. Each attribute in the tables above appears there as an object with its value, its type, a unit for bytes values, and, where the model sets them, its default (with defaultUnit for bytes values), description, min and max (each an object with a value), readonly, and allowed values in enum. ChakraConfiguration is a nested object.
Add the application
POST /api/v1/configurations/{config_id}/applications adds the Chakra workload to a configuration, with every attribute at its Default. The query parameters are modelId, the workload’s component id; name, a name for the application that is unique in the configuration, 1 to 64 characters; and version. Set CONFIG_ID to the configuration’s ID.
Attach a traceset
PATCH /api/v1/configurations/{config_id}/traceset attaches a traceset to the configuration, and GET on the same path lists the tracesets you can attach. Set the configuration’s traceset with this endpoint. The configuration must already have the Chakra application, and the traceset needs a rank count between 1 and 4,096: a traceset you upload reports its rank count as rankCountDerived on GET /api/v1/tracesets/{id} (Chakra mapping files explains where it comes from). The attach sets NumOfChakraFiles to the rank count and returns the configuration’s activeTraceset.
UseMapping fixed.
Change values in a configuration
PATCH /api/v1/configurations/{config_id}/applications/{app_name}/parameters merges a patch into the typedParameters of the application named app_name; GET /api/v1/configurations/{config_id}/applications?withDetails=true lists the configuration’s applications with their parameters. Set APP_NAME to the application’s name.
The patch repeats the nesting of the application’s typedParameters, down to each attribute you change:
- Only keys the application already has can be updated. An unknown key returns 400.
- Each attribute’s
typemust match the stored type, or the request returns 400. The request also returns 400 for an empty patch, or when a nested object is sent where an attribute is expected, or the reverse. - The
valueand theunityou send replace the stored ones, so send theunitwith everybytesvalue. - A string
valuecannot contain shell metacharacters, among them[]{}()'";$*?#~, or the request returns 400. - While a mapping file is attached, a patch that changes
UseMappingreturns 422. - A 200 response returns the application’s full, updated
typedParameters.
tree for AllReduce and turns profiling on:
RunTime and BeaconReportInterval, are not attributes of this model; change them with PATCH /api/v1/configurations/{config_id}/parameters. Set RunTime long enough for the traces to finish (How a run ends).
Configuration rules that stop a simulation
A simulation can start only from a configuration whosestatus is validated; POST /api/v1/simulations returns 422 for any other. POST /api/v1/configurations/{config_id}/validate returns the configuration’s validation errors and warnings. A configuration with the Chakra workload is invalid when:
- It has no traceset attached.
- It has another application besides the Chakra workload, or a second Chakra workload.
- A
ChakraConfigurationvalue is outside the attribute’s allowed values (enum) or its range (min,max), or abytesvalue has no valid unit. NumOfChakraFilesis greater than the number of servers connected to a NIC.- A server has a NIC other than the Scala RoCE NIC, the Scala UET NIC, or the Scala MRC NIC.
LogicalGroupIdis not the logical group of the servers.
POST /api/v1/configurations and PATCH /api/v1/configurations/{config_id} return 400 when a Chakra workload’s NumOfChakraFiles differs from the number of servers in the topology.
The run stops before the simulation starts when:
- The traceset’s rank count differs from the number of per-rank traces it holds.
- Trace preparation cannot process a trace: for example, a collective with
halvingorhalving-doublingruns over a process group whose size is not a power of two. AbortOnChakraWarningistrueand trace preparation logged a warning or an error.ScaleUpMaxPayloadSizeis 0 or larger than 64 MiB, orScaleUpHeaderSizeis larger than 64 MiB.- An attached mapping file breaks a rule that depends on the topology (Chakra mapping files).
Settings to keep
These pages describe a Chakra simulation that follows these settings:- Give the topology exactly as many servers as the traceset has ranks, all with a Scala RoCE NIC, all with a Scala UET NIC, or all with a Scala MRC NIC.
- Set the traceset with
PATCH /api/v1/configurations/{config_id}/traceset, not asactiveTracesetin a configuration create or update body. - Keep
UseMaxAsCommCollectiveStartTimeattrue. - Set
ProfilingIntervalgreater than0.