[issue-722] Fix default recorder variable setup#939
Open
lnanduri2005 wants to merge 2 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves Graphitti’s default recorder variable setup (issue #722) so that key simulation outputs for STDP/static edges, growth simulations, and NG911 layouts are registered and populated with meaningful data before recorder output is saved.
Changes:
- Populate per-epoch active-edge recorder vectors in
ConnStatic::updateConnections()using active edges fromAllEdges. - Register growth (
radii,rates,outgrowth,deltaR) as dynamic recorder variables and NG911 layout coordinates as constant recorder variables viaLayout911::registerHistoryVariables(). - Update recorder documentation and the NG911 configuration example to reflect the current generic
XmlRecorderpath.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Simulator/Layouts/NG911/Layout911.h | Adds recorder mirror vectors and declares registerHistoryVariables() override for NG911 coordinate recording. |
| Simulator/Layouts/NG911/Layout911.cpp | Populates recorder mirrors during setup and registers x_Location/y_Location as constant outputs. |
| Simulator/Edges/AllEdges.h | Adds const accessors for edge source/dest indices, weights, and in-use flags to support recorder extraction. |
| Simulator/Connections/Neuro/ConnStatic.h | Declares updateConnections() override to populate per-epoch edge recorder outputs. |
| Simulator/Connections/Neuro/ConnStatic.cpp | Implements per-epoch active-edge list extraction into recorder vectors. |
| Simulator/Connections/Neuro/ConnGrowth.cpp | Registers growth-related VectorMatrix values as dynamic recorder variables. |
| docs/User/configuration.md | Updates NG911 example to use XmlRecorder instead of legacy Xml911Recorder. |
| docs/Notes/RecordersNotes.md | Updates recorder notes to describe active-edge output, growth variables, NG911 coordinate recording, and legacy Xml911Recorder status. |
|
|
||
| bool ConnStatic::updateConnections() | ||
| { | ||
| AllEdges &edges = getEdges(); |
Author
|
I added a |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes gaps in the default recorder setup for issue #722. The main problem was that some recorder variables were either not registered by default or were registered but not actually being filled with useful data before output was saved.
Changes include:
What changed
For STDP/static edge recording,
ConnStatic::updateConnections()now fills the recorder vectors for edge weight, source vertex, and destination vertex. It pushes one value per active edge into three parallel vectors:WCurrentEpoch_sourceVertexIndexCurrentEpoch_destVertexIndexCurrentEpoch_For the same index, those three values describe the same active edge for that epoch.
For growth simulations, this PR registers the existing growth values
radii,rates,outgrowth, anddeltaRas dynamic recorder variables.For NG911,
Layout911already hadxloc_andyloc_, but those areDeviceVector<BGFLOAT>values and cannot be registered directly with the recorder. This PR addsxlocRecorder_andylocRecorder_as recorder-compatible mirrors. These do not replace the original layout coordinates; they only make the coordinates available to the recorder.The
.assign(numVertices_, 0)calls size those recorder mirror vectors to one value per vertex before they are filled from the GraphML coordinates.Scope
This PR keeps the fix focused. It does not:
Documentation
Updated
docs/Notes/RecordersNotes.mdto make the issue #722 recorder behavior easier to follow, including active-edge output, growth dynamic values, NG911 coordinate recording, and Xml911Recorder’s legacy status.Updated the NG911 user config example to use
XmlRecorder.Verification
git diff --checkcmake --build buildcd build && ./tests— 133 tests passedRelated to #722