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
List of all arrays to be filled with numbers (list of (var, varname, start) tuples
Dictionary mapping
ArrayVariable
objects to their value or toNone
if the value (potentially) depends on executed code.Dictionary mapping
ArrayVariable
objects to their globally unique nameWhether a run should trigger a build
build options
Code lines that have been manually added with
device.insert_code()
Dictionary mapping slot names to lists of lines.List of all dynamic arrays Dictionary mapping
DynamicArrayVariable
objects with 1 dimension to their globally unique nameDictionary mapping
DynamicArrayVariable
objects with 2 dimensions to their globally unique nameWhether to generate profiling information (stored in an instance variable to be accessible during CodeObject generation)
Whether the simulation has been run
CodeObjects that use profiling (users can potentially enable profiling only for a subset of runs)
The directory which contains the generated code and results
The directory which contains the results (relative to
project_dir`
)Whether apply_run_args has been called
Dict of all static saved arrays
Set of all existing synapses
Dict of all TimedArray objects
Dictionary storing compile and binary execution times
List of all arrays to be filled with zeros (list of (var, varname) )
Methods
add_array
(var)Add an array to this device.
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 (eitherCPPStandaloneCodeObject
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_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 thisDevice
.static_array
(name, arr)variableview_get_with_expression
(...[, ...])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 toNone
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 ofmain_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) )
- 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
- 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 (eitherCPPStandaloneCodeObject
class or input)
- delete(code=True, data=True, directory=True, force=False)[source]
Delete code and/or data generated/stored by the device.
- generate_objects_source(writer, arange_arrays, synapses, static_array_specs, networks, timed_arrays)[source]
- network_run(net, duration, report=None, report_period=10. * second, namespace=None, profile=None, level=0, **kwds)[source]
- reinit()[source]
Reinitialize the device. For standalone devices, clears all the internal state of the device.