NEST 2.18.0
WARNING: This version of NEST is affected by issue #1394, which can lead to incorrect simulation results under certain circumstances. Please double-check all simulation results obtained with this version and if in doubt, re-run using a different split between MPI processes and threads. The description of the issue contains more details and will be updated when new information becomes available.
NEST 2.18.0 is the result of 116 pull-requests (1128 commits) by 31 developers since NEST 2.16.0 which was released on 2018-08-21.
This release provides a number of new neuron and plasticity models and additional functionality. It improves memory allocation and performance during network construction. It includes a number of bug fixes and is the first release that can be installed via aptitude and in an Conda environment directly from conda-forge.
Enhancements
Model
- Add iaf_cond_alpha_multisynapse model
- Add conductance based I&F model with beta shaped PSCs
- Implemented step_rate_generator for piecewise constant rate input
- Add Clopath STDP synapse and two supported neuron models
- Add new neuron model hh_cond_beta_gap_traub
- Added test_multiarea_model_siegert_rates
- Add optional escape noise in iaf_psc_exp
- Add iaf_psc_alpha_ps neuron model
Installation
Documentation
- Add documentation in Topology User Manual
- hpc_benchmark.sli is now invariant under different MPI-process/thread splits with fixed VP number
- Implement breathe extension and improve generation/format of model documentation for website
- Add documentation on how to create C++-level unit tests
Kernel
- Code compatibility with C++17
- New container for connections
- Allow compile-time configuration of bit-field sizes in Target class
- Add ostream operator template for std::vectors
- Connection sorting using Boost's sorting function
Infrastructure
- Docker image for the NEST simulator
- Build on Travis using clang and gcc compilers
- Conditional travis builds using build stages
- Travis build on OSX
Pynest
- Make detailed exceptions from lower levels available in PyNEST
- Show periodic boundary conditions for masks and kernel
- Serialize output of GetStatus and GetDefaults for JSON
- Add PyNEST function to synchronize MPI processes
- Change to dynamic import in PyNEST API
- Simplify dynamic import of PyNEST submodules
Bug-Fixes
Model
- Fix header installation and multiplicity handling in MyModule
- Fix stability of iaf_psc_exp_ps for equal membrane and synaptic time constants
- Fix creation of inhomogeneous poisson generator with parameters
- Fix normalization factor for iaf_cond_beta
- Fix uninitialized variable in iaf_psc_exp
Installation
- Fix bug in JURON CMake file
- MyModule example missing Event methods
- Fix static linking of modules
- Fix header installation and multiplicity handling in MyModule
- Change target directory for doxygen from source to build
Interpreter
- Fix interpretation of
verbosity
anddebug
command line arguments as input script filename - Prevent execution of --debug and --verbosity options as files
Documentation
Kernel
- Handle number_of_connections<1 in topology
- Make GetConnection filter by synapse label when only target attribute is given
- Take multiplicity into account in local_spike_counter
- Throw error if creating too many connections on one thread
- Enable the use of connections without delay in Topology
- Bugfix: Reliably create masked layer when using topology's convergent connect
- Fix MPI synchronization problem in presence of very small layers
- Fix multiple definition of rho build complain observed on AArch64 with FCC
Infrastructure
- Make test_refractory.py run with make installcheck
- Make testsuite run when nosetests is unavailable
- Fix bug in test_stdp_multiplicity.py
- Use configured instead of standard Python executable
- Make python mpitest run during installcheck
- Fix postsynaptic trace edge case
- Use relative path to logo in documentation
- Fix incorrect flag in ProcessOptions.cmake
Pynest
- Fix issue when running hh_phaseplane.py with Python 2
- nest.Disconnect parameters are consistent with documentation
- Fix broken PyNEST, remove traces of ResumeSimulation
- Check recorder type_id instead of model name in plotting modules
Maintenance
Model
- Make stdp_facetshw synapse consistent with the temporal fix for STDP numerical imprecision
- Update description of rate model neurons and change parameter names
- Fix issues in siegert_neuron
- Add deprecation warnings and changed format of the warnings
- Remove unused functions in hh_psc_alpha models
Installation
- JURON support: Add platform specific CMake files
- Follow-up patch on the CMake with-warning variable and add -Xg flag to CMAKE_CXX_FLAGS
- Add CMake flag to enable/disable hpc synapses
- 32-bit compatibility (64-bit gid on 32-bit architecture)
- CMake option and documentation for using the Intel compiler
- Fix nest_vars in case of undefined PYTHONPATH
- Cleanup for the K computer specific CMake file for v2.18
- Fix up dependencies in Ubuntu install instructions
Interpreter
Documentation
- New User Documentation for NEST
- Fix the documentation (semantics) for
get_synaptic_elements_vacant()
- Refactor source code comment blocks
- Change HTML to CGI module import to eliminate extra Python2 dependency
- Source code comment blocks refactored
- Remove outdated README and empty directory from PyNEST examples
- Upgrade pyyaml in doc requirements due to vulnerability
- Minor updates to pynest tutorial part 2
- Fix documentation in sinusoidal_gamma_generator example
- Correcting documentation on current input in precise neurons (fixes #226).
- Remove outdated plot scripts from examples
- Add advice against using NEST in threaded processes; addresses #361.
- Fix links to NEST resources throughout the source code
- Improve documentation of get_verbosity and set_verbosity in PyNEST
- Convert topology user manual to ReStructuredText
- Update parallel computing docs regarding configuration
- Update links to model directory in docs
- Documentation update for #1177 ("Increase maximum line length in source code formatting style from 80 to 120")
Kernel
- Make lid to gid conversion (and vice versa) in the VPManager more consistent
- Move ConnectionManager methods from impl to h
- Use reverse iterator in get_history
- Rename {get,set}_delay to {get,set}_delay_steps
- Remove unused variables
- Remove old references to resume()
- Refactor GetConnections to improve performance
- Improve connection performance over threads
- Fix code formatting issue introduced by merging #1060
- Add documentation on splitting and repeating simulations, and deprecation warning for ResetNetwork
- Increase maximum line length in source code formatting style from 80 to 120
Infrastructure
- Move Travis-CI build script to
extras
directory - Remove outdated release-making script
- Remove emacs support for SLI
- Make the check for copyright headers and unused Names part of the CI run
- Explicit indices
- Add MPI test for correct number of spikes when multiplicity > 1
- Automatic discovery of sli examples in example runner
- Replace bash by sh to eliminate extra dependency
- Add tests for libnestutil/streamers.h
- Make version information consistent