diff --git a/docs/dev-guide/changes.md b/docs/dev-guide/changes.md index 193dc0bad..2fba50a94 100644 --- a/docs/dev-guide/changes.md +++ b/docs/dev-guide/changes.md @@ -79,8 +79,13 @@ Version 1.3 introduces a new "[explicit](Explicit-Chunking)" chunking mechanism. Explicit chunking is simpler to use and understand than dynamic chunking, and in practice has been found to be more robust and reliable. It requires no "training" -and is activated by setting the `chunk_training_mode` configuration setting to -`explicit`. Then, for model components that may stress the memory limits of the machine, +and is activated in the top level model configuration file (typically `settings.yaml`): + +```yaml +chunk_training_mode: explicit +``` + +Then, for model components that may stress the memory limits of the machine, the user can specify the number of choosers in each chunk explicitly, either as an integer number of choosers per chunk, or as a fraction of the overall number of choosers. This is done by setting the `explicit_chunk` configuration setting in the model @@ -142,8 +147,46 @@ simulate (at the MAZ level for 2 zone systems) in This version adds a uniform interface for controlling sharrow optimizations at the component level. This allows users to disable sharrow entirely, or to disable the "fastmath" optimization for individual components. +Controls for sharrow are set in each component's settings under `compute_settings`. +For example, to disable sharrow entirely for a component, use: + +```yaml +compute_settings: + sharrow_skip: true +``` + +This overrides the global sharrow setting, and is useful if you want to skip +sharrow for particular components, either because their specifications are +not compatible with sharrow or if the sharrow performance is known to be +poor on this component. + +When a component has multiple subcomponents, the `sharrow_skip` setting can be +a dictionary that maps the names of the subcomponents to boolean values. +For example, in the school escorting component, to skip sharrow for an +OUTBOUND and OUTBOUND_COND subcomponent but not the INBOUND subcomponent, +use the following settings: + +```yaml +compute_settings: + sharrow_skip: + OUTBOUND: true + INBOUND: false + OUTBOUND_COND: true +``` + +The `compute_settings` can also be used to disable the "fastmath" optimization. +This is useful if the component is known to have numerical stability issues +with the fastmath optimization enabled, usually when the component potentially +works with data that includes `NaN` or `Inf` values. To disable fastmath for +a component, use: + +```yaml +compute_settings: + fastmath: false +``` -Code updates are in [PR #824](https://github.com/ActivitySim/activitysim/pull/824). +Code updates that apply these settings are in +[PR #824](https://github.com/ActivitySim/activitysim/pull/824). ### Configuration validation