-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
allowing sub partitioning of keys for allowing retina/ssa to be filtered via routing #158
allowing sub partitioning of keys for allowing retina/ssa to be filtered via routing #158
Conversation
…system for detemrining key spaces. screwdriver 1 relocated
… designed to handle it anyhows.
…d removed surplus code merged surplus into utilities code spanner has now been converted into a multitool
You had a few breaking problems; the main one was that you were using |
i hadnt even finished this donal! note the make work flag not being set. lol. |
…' of https://github.com/SpiNNakerManchester/PACMAN into reverse_ip_tag_multicast_source_destination_key_control
…tag_multicast_source_destination_key_control
pacman/utilities/algorithm_utilities/element_allocator_algorithm.py
Outdated
Show resolved
Hide resolved
reverse_ip_tag_multicast_source_destination_key_control Conflicts: pacman/operations/routing_info_allocator_algorithms/malloc_based_routing_allocator/compressible_malloc_based_routing_info_allocator.py pacman/operations/routing_info_allocator_algorithms/malloc_based_routing_allocator/malloc_based_routing_info_allocator.py pacman/utilities/algorithm_utilities/routing_info_allocator_utilities.py
i have a suspisoion that the work ive done via atom filtering and router compressor with bitfields makes this work obsolete......... will assess later and see if it can be killed |
I know at one point we were looking at having a way of specifying that part of the key space of a device is covered, and I think this was an attempt at detecting this and at present raising an exception. This seems to be done here by having the receivers say which part of the key space is covered, and then you get an error if there isn't a receiver for each part. However I can't see how users would make use of this, certainly in things like PyNN where they wouldn't get access to the ability to set the bit of the key that needs to be received. I could see this being an interesting way of doing things, particularly if we can then detect the part of the key not needed and push this in to the routing table nearest to the transmitter. I think this is therefore missing a couple of things that could make it work. Here is a TODO list:
There may be better ways to do this, but this is my first plan... |
the view that was missing when i left it was that it used the connectivity to determine the edges and keys needed to basically sub divide at src instead of at the destination (which the bitfields work does). The problem you've hit, was one which i still needed to solve, and got stuck on. Which was, once you've figured the areas the user isn't interested in, how you create entries for them to a core for sucking up. If id had finished it, the end user wouldn't ever see this stuff,. it would be hidden under the hood. But alas the math to figure the minimum keys and masks for uncovered keys was beyond me at the time of writing..... Having done the bitfield stuff.... it might be feasible to just use a bitfield to figure the left overs...... basically i think now with lessons learnt we could come back to this..... but not right now |
reverse_ip_tag_multicast_source_destination_key_control
Also remove a logger that was never used
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks OK to me. Perhaps ElementAllocatorAlgorithm
should just be ElementAllocator
(since it doesn't actually match what we call an “algorithm”) but I've not looked what the impact of that change would be on downstream code. Perhaps fix that in a different PR?
is this this worth keeping let alone updating? |
I think this is now covered under other work now in master. Retinas can be sub-divided into machine vertices which represent different parts of the retina, and filtering is also supported, with machine vertices which go nowhere ending with empty routing entries. |
to far behind as now covered by other work, |
depends upon:
FEC SpiNNakerManchester/SpiNNFrontEndCommon#320
SPY SpiNNakerManchester/sPyNNaker#526