I wasn't quite sure if I should post the issue here or on the PACMAN repo instead and therefore sorry if I misplaced that one.
I have a workflow which creates a network of arbitrary size but with a fixed topology whose interconnected populations of neurons (targets) are also connected to SpikeSourceArray input populations (sources). The targets have been set to stream their output in real-time.
The workflow fails during partitioning graph vertices with the following (abbreviated) error message:
Partitioning graph vertices
|0% 50% 100%|
2017-07-17 15:51:29 ERROR: Error when calling pacman.operations.partition_algorithms.partition_and_place_partitioner.PartitionAndPlacePartitioner.call with inputs {'machine': [Machine: max_x=23, max_y=11, chips=[[Chip: x=0, y=0, sdram=117 MB, ip_address=192.168.2.1, router=[Router: clock_speed=157 MHz, emergency_routing=False,available_entries=1023, links=[[Link: source_x=0, source_y=0, source_link_id=0, destination_x=1, destination_y=0, default_from=3, default_to=3], [Link: source_x=0, source_y=0, source_link_id=1, destination_x=1, destination_y=1, default_from=4, default_to=4], [Link: source_x=0, source_y=0, source_link_id=2, destination_x=0, destination_y=1, default_from=5, default_to=5], [Link: source_x=0, source_y=0, source_link_id=3, destination_x=23, destination_y=0, default_from=0, default_to=0], [Link: source_x=0, source_y=0, source_link_id=4, destination_x=23, destination_y=11, default_from=1, default_to=1], [Link: source_x=0, source_y=0, source_link_id=5, destination_x=0, destination_y=11, default_from=2, default_to=2]]], processors=[[CPU: id=0, clock_speed=200 MHz, monitor=True], [.......] [CPU: id=17, clock_speed=200 MHz, monitor=False]], nearest_ethernet=16:8]]], 'graph': <pacman.model.graphs.application.application_graph.ApplicationGraph object at 0x7f79ee7c27a0>, 'preallocated_resources': <pacman.model.resources.pre_allocated_resource_container.PreAllocatedResourceContainer object at 0x7f79ec2af200>}
It is important to mention that the failing program runs successfully when using a sPyNNaker release from September 2016 instead of sPyNNaker7.
I also tried to reproduce the error in a separate minimalistic script using a single source and target neurons but it ran just well. So it must be something in the network's topology that breaks it, I assume. However when I down-scaled my SNN such that only 32 populations are created (preserving the original topology) the PartitionAndPlacePartitioner completed without any exception. Then I tried it slightly larger (36 populations) and it failed with the aforementioned error message.
Do you have any idea what might be causing that? A spynnaker.cfg issue? Or maybe I miss something when porting my sPyNNaker Sept 2016 code to sPyNNaker7? The only thing I have changed are some import statements:
Interestingly, the code ran without exceptions some two weeks ago but started to fail after I reinstalled the SpiNNaker tool chain on the 10.07.2017. I will try to revert to a previous commit and check whether it is any more successful. I will also try to compose a fairly small script reproducing this issue if you have absolutely no idea.