arbor
arbor copied to clipboard
Coupling to NEST
This is one stepping stone towards a CoSim workflow as described by HBP:SGA3 T5.5.
Minimalist Steering
- Receive KILL command
- hard kill: UNIX signal
- soft kill: command via, will stop after current call to
simulation::run
finishes
- Send heartbeat
- 1st implementation via stdio
- can leverage #1870
- Output minimal delay
- via stdio
- maybe JSON
Coupling
- Open a connection to another spiking simulator (or its proxies)
-
MPI_Comm_connect
(https://www.mpich.org/static/docs/v3.2/www3/MPI_Comm_connect.html) - Metadata for connect must be transferred via stdio or similar measures
-
- Receive remote spikes in our native format over said intercommunicator
-
likely Intercomm
Allgather
works, but these are weird, so do some reading - one or two rounds of exchange? So, Arbor -> Arbor and then Arbor -> NEST, or do all in one
-
likely Intercomm
- Allow 'remote' connections during setup.
- Will need an extra tag and/or method on recipe
Notes
- There's prior work by @apeyser in https://github.com/apeyser/arbor/tree/feature/nestio
- Ideas look sane, but not mergeable anymore
- As said Intercomm collectives are weird, but here they do what we want?!
- After the AllgatherV both Arbor and the coupled application have all slices of spikes
-
However the semantics imply that we need two rounds anyhow, so maybe AllgatherV(intra) and Broadcast(inter) is better?
Great write down. No specific remarks from my side. Mainly commenting so I get registered to the updates on this topic
@w-klijn Any experience and/or suggestion on how to provide identifiers of the remote endpoints across the airgap?
Since we do not know what lives on the other side assuming a simple integer is not enough (Arbor uses (cell_gid, offset_on_cell)
). For the time being I'd go with a free form (ie string
) field here, but this disables some optimisations
on filtering spikes.
Also, related: Do we foresee N:M coupling, so for example Arbor, NEST, TVB in a triangle? Then we'd have to offer a way to dynamically attach more partners.