Skip to content

Commit

Permalink
additional example code snips
Browse files Browse the repository at this point in the history
  • Loading branch information
jpn-- committed Jul 26, 2024
1 parent 3a0ea8b commit 3a1f0c0
Showing 1 changed file with 46 additions and 3 deletions.
49 changes: 46 additions & 3 deletions docs/dev-guide/changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 3a1f0c0

Please sign in to comment.