Preferences (Brian 1 –> 2 conversion)

In Brian 1, preferences were set either with the function set_global_preferences or by creating a module somewhere on the Python path called brian_global_config.py.

Setting preferences

The function set_global_preferences no longer exists in Brian 2. Instead, importing from brian2 gives you a variable prefs that can be used to set preferences. For example, in Brian 1 you would write:

set_global_preferences(weavecompiler='gcc')

In Brian 2 you would write:

prefs.codegen.cpp.compiler = 'gcc'

Configuration file

The module brian_global_config.py is not used by Brian 2, instead we search for configuration files in the current directory, user directory or installation directory. In Brian you would have a configuration file that looks like this:

from brian.globalprefs import *
set_global_preferences(weavecompiler='gcc')

In Brian 2 you would have a file like this:

codegen.cpp.compiler = 'gcc'

Preference name changes

  • defaultclock: removed because it led to unclear behaviour of scripts.

  • useweave_linear_diffeq: removed because it was no longer relevant.

  • useweave: now replaced by codegen.target (but note that weave is no longer supported in Brian 2, use Cython instead).

  • weavecompiler: now replaced by codegen.cpp.compiler.

  • gcc_options: now replaced by codegen.cpp.extra_compile_args_gcc.

  • openmp: now replaced by devices.cpp_standalone.openmp_threads.

  • usecodegen*: removed because it was no longer relevant.

  • usenewpropagate: removed because it was no longer relevant.

  • usecstdp: removed because it was no longer relevant.

  • brianhears_usegpu: removed because Brian Hears doesn’t exist in Brian 2.

  • magic_useframes: removed because it was no longer relevant.