CPPStandaloneDevice class

(Shortest import: from brian2.devices.cpp_standalone.device import CPPStandaloneDevice)

class brian2.devices.cpp_standalone.device.CPPStandaloneDevice[source]

Bases: Device

The Device used for C++ standalone simulations.

Attributes

arange_arrays

List of all arrays to be filled with numbers (list of (var, varname, start) tuples

array_cache

Dictionary mapping ArrayVariable objects to their value or to None if the value (potentially) depends on executed code.

arrays

Dictionary mapping ArrayVariable objects to their globally unique name

build_on_run

Whether a run should trigger a build

build_options

build options

code_lines

Code lines that have been manually added with device.insert_code() Dictionary mapping slot names to lists of lines.

dynamic_arrays

List of all dynamic arrays Dictionary mapping DynamicArrayVariable objects with 1 dimension to their globally unique name

dynamic_arrays_2d

Dictionary mapping DynamicArrayVariable objects with 2 dimensions to their globally unique name

enable_profiling

Whether to generate profiling information (stored in an instance variable to be accessible during CodeObject generation)

has_been_run

Whether the simulation has been run

profiled_codeobjects

CodeObjects that use profiling (users can potentially enable profiling only for a subset of runs)

project_dir

The directory which contains the generated code and results

results_dir

The directory which contains the results (relative to project_dir`)

run_args_applied

Whether apply_run_args has been called

static_arrays

Dict of all static saved arrays

synapses

Set of all existing synapses

timed_arrays

Dict of all TimedArray objects

timers

Dictionary storing compile and binary execution times

zero_arrays

List of all arrays to be filled with zeros (list of (var, varname) )

Methods

add_array(var)

Add an array to this device.

apply_run_args()

build([directory, results_directory, ...])

Build the project

check_openmp_compatible(nb_threads)

code_object(owner, name, abstract_code, ...)

code_object_class([codeobj_class, fallback_pref])

Return CodeObject class (either CPPStandaloneCodeObject class or input)

compile_source(directory, compiler, debug, clean)

copy_source_files(writer, directory)

delete([code, data, directory, force])

Delete code and/or data generated/stored by the device.

fill_with_array(var, arr)

Fill an array with the values given in another array.

freeze(code, ns)

generate_codeobj_source(writer)

generate_main_source(writer)

generate_makefile(writer, compiler, ...)

generate_network_source(writer, compiler)

generate_objects_source(writer, ...)

generate_run_source(writer)

generate_synapses_classes_source(writer)

get_array_filename(var[, basedir])

Return a file name for a variable.

get_array_name(var[, access_data])

Return a globally unique name for var.

get_value(var[, access_data])

init_with_arange(var, start, dtype)

Initialize an array with an integer range.

init_with_zeros(var, dtype)

Initialize an array with zeros.

insert_code(slot, code)

Insert code directly into main.cpp

network_get_profiling_info(net)

network_restore(net, *args, **kwds)

network_run(net, duration[, report, ...])

network_store(net, *args, **kwds)

reinit()

Reinitialize the device.

resize(var, new_size)

Resize a DynamicArrayVariable.

run([directory, results_directory, ...])

run_function(name[, include_in_parent])

Context manager to divert code into a function

seed([seed])

Set the seed for the random number generator.

spike_queue(source_start, source_end)

Create and return a new SpikeQueue for this Device.

static_array(name, arr)

variableview_get_subexpression_with_index_array(...)

variableview_get_with_expression(...[, ...])

variableview_set_with_index_array(...)

write_static_arrays(directory)

Details

arange_arrays

List of all arrays to be filled with numbers (list of (var, varname, start) tuples

array_cache

Dictionary mapping ArrayVariable objects to their value or to None if the value (potentially) depends on executed code. This mechanism allows to access state variables in standalone mode if their value is known at run time

arrays

Dictionary mapping ArrayVariable objects to their globally unique name

build_on_run

Whether a run should trigger a build

build_options

build options

code_lines

Code lines that have been manually added with device.insert_code() Dictionary mapping slot names to lists of lines. Note that the main slot is handled separately as part of main_queue

dynamic_arrays

List of all dynamic arrays Dictionary mapping DynamicArrayVariable objects with 1 dimension to their globally unique name

dynamic_arrays_2d

Dictionary mapping DynamicArrayVariable objects with 2 dimensions to their globally unique name

enable_profiling

Whether to generate profiling information (stored in an instance variable to be accessible during CodeObject generation)

has_been_run

Whether the simulation has been run

profiled_codeobjects

CodeObjects that use profiling (users can potentially enable profiling only for a subset of runs)

project_dir

The directory which contains the generated code and results

results_dir

The directory which contains the results (relative to project_dir`)

run_args_applied

Whether apply_run_args has been called

static_arrays

Dict of all static saved arrays

synapses

Set of all existing synapses

timed_arrays

Dict of all TimedArray objects

timers

Dictionary storing compile and binary execution times

zero_arrays

List of all arrays to be filled with zeros (list of (var, varname) )

add_array(var)[source]

Add an array to this device.

apply_run_args()[source]
build(directory='output', results_directory='results', compile=True, run=True, debug=False, clean=False, with_output=True, additional_source_files=None, run_args=None, direct_call=True, **kwds)[source]

Build the project

TODO: more details

check_openmp_compatible(nb_threads)[source]
code_object(owner, name, abstract_code, variables, template_name, variable_indices, codeobj_class=None, template_kwds=None, override_conditional_write=None, compiler_kwds=None)[source]
code_object_class(codeobj_class=None, fallback_pref=None)[source]

Return CodeObject class (either CPPStandaloneCodeObject class or input)

compile_source(directory, compiler, debug, clean)[source]
copy_source_files(writer, directory)[source]
delete(code=True, data=True, directory=True, force=False)[source]

Delete code and/or data generated/stored by the device.

fill_with_array(var, arr)[source]

Fill an array with the values given in another array.

freeze(code, ns)[source]
generate_codeobj_source(writer)[source]
generate_main_source(writer)[source]
generate_makefile(writer, compiler, compiler_flags, linker_flags, nb_threads, debug)[source]
generate_network_source(writer, compiler)[source]
generate_objects_source(writer, arange_arrays, synapses, static_array_specs, networks, timed_arrays)[source]
generate_run_source(writer)[source]
generate_synapses_classes_source(writer)[source]
get_array_filename(var, basedir=None)[source]

Return a file name for a variable.

get_array_name(var, access_data=True)[source]

Return a globally unique name for var.

get_value(var, access_data=True)[source]
init_with_arange(var, start, dtype)[source]

Initialize an array with an integer range.

init_with_zeros(var, dtype)[source]

Initialize an array with zeros.

insert_code(slot, code)[source]

Insert code directly into main.cpp

network_get_profiling_info(net)[source]
network_restore(net, *args, **kwds)[source]
network_run(net, duration, report=None, report_period=10. * second, namespace=None, profile=None, level=0, **kwds)[source]
network_store(net, *args, **kwds)[source]
reinit()[source]

Reinitialize the device. For standalone devices, clears all the internal state of the device.

resize(var, new_size)[source]

Resize a DynamicArrayVariable.

run(directory=None, results_directory=None, with_output=True, run_args=None)[source]
run_function(name, include_in_parent=True)[source]

Context manager to divert code into a function

Code that happens within the scope of this context manager will go into the named function.

seed(seed=None)[source]

Set the seed for the random number generator.

spike_queue(source_start, source_end)[source]

Create and return a new SpikeQueue for this Device.

static_array(name, arr)[source]
variableview_get_subexpression_with_index_array(variableview, item, run_namespace=None)[source]
variableview_get_with_expression(variableview, code, run_namespace=None)[source]
variableview_set_with_index_array(variableview, item, value, check_units)[source]
write_static_arrays(directory)[source]