Dynamic Load Balancing
The "Card Game"

|
- Parallel algorithm uses the Message Passing Interface (MPI) for
communication.
- The total number of observations is divided into chunks or
aliquots such that the number of aliquots (naliquot) is larger
than the number of processors.
- The algorithm uses a master/slave relationship among
processors.
- The master process serves as a "card dealer" by first
distributing centroid coordinates to all slave processes, and then
distributing an aliquot of observations (or "card") to each slave
process.
- Slaves assign each observation in their aliquot to a centroid,
and then report the results back to the master.
- If additional aliquots (or "cards") remain to be processed ("in
the deck"), the master will "deal" the slave another "card" for
processing.
- As a result, faster and less-busy nodes effectively perform
the majority of the processing for each iteration.
- If the load on the nodes changes during a run, the distribution
of work will automatically be shifted away from busy or slow nodes onto
idle or faster nodes.