Skip to content

Latest commit

 

History

History
31 lines (24 loc) · 1.16 KB

README.md

File metadata and controls

31 lines (24 loc) · 1.16 KB

communication

Implements ServerClient class, which maps the server-client communication model onto MPI. Perfect for running embarrassingly parallel jobs on supercomputers with many nodes. Implements load balancing: clients request more work from server and also signal when they wish to return their results. Server distributes the work list based on client availability, until empty. Instantiated clients are reusable, i.e. other tasks can be worked on collaboratively after completion of a task. This showcase includes a minimal.py example (please read the docstring there). Requires mpi4py and, obviously, an MPI installation.

####Contents of this dir####

signalflow_serverclient.png shows the flow of signals and data between root (Server) to worker ranks (Clients). Only one rank i is shown, all other ranks communicate in an identical fashion, and simultaneously, with root. Solid arrows show the advancement of the program execution, dashed arrows indicate communication between root and ranks (the sending of signals and of data).

minimal.py is a trivial example of how to use the ServerClient class. Run:

   python minimal.py --help

for more info.