spawns simulation threads
Then the actual simulations are executed in parallel
Instead we need to do all the above in parallel to do things mpi style. This requires the following
[x] Each process loads the network, runs partitioning, then stores the local network partition and id-mapping of the other partitions
[x] Each process loads the population and keeps the agents which start on the local partition
[x] Each process needs a message broker similar to the current one. Instead of mpsc::channel we use MPI send and receive primitives for message passing
[x] Event Handling which writes into a separate events file per process for starters. This can include A structure similar to the current matsim one, where we have an events manager, which has event handlers and one of the handlers could be an events writer. Also, define events via protobuf, so that we prepare to send them over the wire already
[x] Bind everything together and figure out testing
[ ] Add ci testing similar to rsmpi; this script is run as part of their ci build
[ ] Think about using one of the processes as event writer, which gathers events from other processes and writes them into a single file
The current approach starts a main thread which
Instead we need to do all the above in parallel to do things mpi style. This requires the following
mpsc::channel
we use MPI send and receive primitives for message passingAdd ci testing similar to rsmpi; this script is run as part of their ci buildThink about using one of the processes as event writer, which gathers events from other processes and writes them into a single file