Skip to content

MPI communication classes and communication models (e.g. ServerClient) for Python (uses mpi4py)

Notifications You must be signed in to change notification settings

rnikutta/communication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

MPI communication classes and communication models (e.g. ServerClient) for Python (uses mpi4py)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages