Nengo configuration¶
Certain features of Nengo can be configured globally through RC settings.
RC settings can be manipulated either through the nengo.rc
object,
or through RC configuration files.
The nengo.rc
object¶
The nengo.rc
object gives programmatic access to
globally configured features of Nengo.
-
nengo.
rc
= <nengo.rc._RC object>¶ Allows reading from and writing to Nengo RC settings.
This object is a
configparser.ConfigParser
, which means that values can be accessed and manipulated like a dictionary:oldsize = nengo.rc["decoder_cache"]["size"] nengo.rc["decoder_cache"]["size"] = "2 GB"
All values are stored as strings. If you want to store or retrieve a specific datatype, you should coerce it appropriately (e.g., with
int()
). Booleans are more flexible, so you should use thegetboolean
method to access boolean values.simple = nengo.rc["exceptions"].getboolean("simplified")
In addition to the normal
configparser.ConfigParser
methods, this object also has areload_rc
method to resetnengo.rc
to default settings:nengo.rc.reload_rc() # Reads defaults from configuration files nengo.rc.reload_rc(filenames=[]) # Ignores configuration files
Configuration files¶
nengo.rc
is initialized with configuration settings read
from the following files with precedence to those listed first:
nengorc
in the current directory. This is intended to allow for project specific settings without hard coding them in the model script.An operating system specific file in the user’s home directory.
Windows:
%userprofile%\.nengo\nengorc
Other (OS X, Linux):
~/.config/nengo/nengorc
INSTALL/nengo-data/nengorc
(whereINSTALL
is the installation directory of the Nengo package).
The RC file is divided into sections by lines containing the section name
in brackets, i.e. [section]
. A setting is set by giving the name followed
by a :
or =
and the value. All lines starting with #
or ;
are
comments.
For example, to set the size of the decoder cache to 512 MB, add the following to a configuration file:
[decoder_cache]
size = 512 MB
Configuration options¶
All of the configuration options are listed in the example configuration file, which is included with Nengo and copied below.
Commented lines show the default values for each setting.
[precision]
# Default bit precision for all NumPy arrays made by Nengo (e.g., bits: 64
# would use float64/int64 dtypes). Must be one of '16', '32', or '64'. (string)
#bits: 64
# --- Settings for the decoder cache
[decoder_cache]
# Enable or disable the cache. (bool)
#enabled = True
# Path where the cached decoders will be stored. (str)
#path = ~/.cache/nengo/decoders # Linux/Mac OS X default
# Set the cache to readonly. In readonly mode cached decoders will be
# loaded, but no newly calculated decoders will be written to the cache.
# (bool)
#readonly = False
# Set the maximum cache size. Whenever the cache exceeds this limit, cached
# decoders will be deleted, beginning with the oldest, until the limit
# is met again. Please specify the unit (e.g., 512 MB). (str)
#size = 512 MB
# --- Settings for error messages due to exceptions
[exceptions]
# Use simplified exceptions. In most cases, simplified exceptions will be
# easier to read and more useful for model development. However,
# developers of Nengo internals or tools extending Nengo
# may benefit from full exception tracebacks.
#simplified = True
# --- Settings for the progress bar used when running the simulator
[progress]
# Set the progress bar to use. The default of 'auto' or will display
# a progress bar when the estimated simulation run time exceeds one second.
# Setting this to 'none' will disable to progress bar. Any other string
# will be interpreted as a module and class name
# (e.g., 'nengo.utils.progress.ProgressBar'), which Nengo will attempt
# to load. (str)
#progress_bar = auto
# --- Settings for the Nengo core simulator
[nengo.Simulator]
# Fail misconfigured operators immediately. If True, operators are tested
# when they are created in build functions, rather than when they are
# initialized by the simulator. Failing fast is useful when creating and
# debugging new operators, but adds some time to the build.
#fail_fast = False