There is a control thread, one per a processor, which compares the local node load with the loads of neighboring processors. |
In the case of a significant load imbalance, the overloaded processors send some of their regions to others. Sending regions involves creating a new thread at the destination processor, which then receives the state of the region together with four channels to continue the communication with the neighbors. |
The set of simulation processes form a parallel server, to which different users can connect to interact with the shared simulation (changing parameters) or to run their independent simulations. |
For each connected user, there is an independently run thread, which sends to a user process the simulation image, and receives from it the simulation parameters. |