-
Notifications
You must be signed in to change notification settings - Fork 1
Parallel processing
Plan is to use Twisted, a comprehensive Python library for networking. It also has side projects for embedding a web server and doing server method calls from clients.
By default MDiG will run as a server and spawn a client to run locally. Further clients can be run by specifying as such on the command line and providing the server IP address and port.
Only the server provides a web interface, but it displays information on all clients.
There needs to be a mechanism for transferring GRASS files between the server and client. The Server will run in the location/mapset of the simulation and the the clients will construct new locations and mapsets and copy necessary files from the server... and then copy them back once processing is complete.
On client connection:
- Check client has necessary executables (those that are listed in the xml file... not necessarily ALL MDiG modules).
- Client creates new temp location based on information from the server.
- For each task, create new mapset, copy required maps. Run sim/task. On completion return results to server.
- Ping server about next task, either:
- analyse recently run replicate (to avoid resending simulation results).
- rerun simulation, create new replicate
- run different experiment
- generating envelopes. Split each year being combined into an envelope into a separate task.
- running analysis on envelopes.
- running analysis on a replicate (that was simulated on different client).