-
Notifications
You must be signed in to change notification settings - Fork 371
2022 10 24 Open NEST Developer Video Conference
Dennis Terhorst edited this page Oct 24, 2022
·
8 revisions
- Welcome
- Review of NEST User Mailing List
- Project team round
- In-depth discussion
- Compressed spikes
Here we discuss topics that need broader attention, for example questions that came up but are outside a single project's scope, larger planned changes/PRs that affect all teams or pending work that is blocked by external factors.
- Models / NESTML
- working on refactoring "printers" for SpiNNaker back-end
- design pattern: compositionality over inheritance
- working on refactoring input-ports
- working on refactoring "printers" for SpiNNaker back-end
- NEST GPU
- unifying python interface with pynest
- working on 2.0 release
- Q: API-server available?
A: API is same as NEST, no difference from nest-server perspective.
- PyNEST
-
pynest
branch by @jougs and @hakonsmb with many accumulated changes due to kernel refactoring - Python wheel by @helveg and @jougs possible since last Friday, thanks to SLI-less NEST, merge coming
- #2170 to be updated
-
- NEST Desktop
- issues causing the release to be postponed to November
- looking for beta-testers! Contact @babsey!
- moved default port of
nest-server
from5000
to52425
- Kernel
- fixed a number of bugs
- see in-depth discussion
- Installation & Infrastructure
- worked on Spack package
- started looking into containerization with Apptainer (former Singularity)
- Testing
- shift towards pytest'ing also kernel
- huge test matrix (CO2 footprint!!)
- smarter setup of tests required
- interoperability testing
- Documentation
- EBRAINS
- token handling for cloud+HPC installations with NEST Desktop is being worked on
- test option requested for HPC operations staff (as discussed under Infrastructure)
- with some updates bug that connection information was not passed to pre-synaptic side
- lengthy debugging due to issues only showing up in multi-threaded mode
-
conclusion: need a new aproach handling compressed spikes
- till now update connection infrastructure postponed "compressed/not-compressed" decision to the latest point
- not optimal, many things "come for free" with compressed spikes
- Discussed code in temporary branch of @heplesser. Look for:
update_connection_infrastructure()
-
EventDeliveryManager::gather target_data_compressed()
L795 -
EventDeliveryManager::collocate_target_data_buffers_()
L871- Now exploit that when preparing compression all selection work was already done: only need to call new method
fill_target_buffer()
inConnectionManager
L1643- avoids multiple insertion
- only needs compressed spike data map (
csd_maps
) - no find/search operations required
- Works on single thread
- failing weight recorder test fixed
- failing volume transmitter test fixed
- Now exploit that when preparing compression all selection work was already done: only need to call new method
-
SourceTable::collect_compressible_sources()
L455, thread parallel, check if multiple targets on thread, now done for free -
SourceTable::fill_compressed_spike_data()
L481, check if source neuron has connection on any thread, later used for spike delivery to unpack the structure- still requires a "find" operation, which might not be strictly necessary since we have sorted data (potential for optimization) Conceptually one currently has the choice of
- "sorted connections" yes/no (per thread compression)
- "spike compression" yes/no (per rank compression) Maybe both or none is enough choice. In principle heuristic possible, e.g. "use compression only if 99% of neurons have targets on other threads".
Next steps:
- re-enable multiple rounds of connectivity communication
- with MPI some tests still fail
NEST Homepage: www.nest-simulator.org
NEST Initiative: www.nest-initiative.org