Currently, the Manager object in evaluator.py simply scatters/gathers the population across its entire farm of processors, ignoring the fact that some of them will be on the same physical node. Ideally, the head rank on each node would store a shared memory buffer for the node's population and results, that way no MPI calls will be required for communicating between a processor and its node head.
For now I have chosen to ignore this issue to avoid premature optimization.
Currently, the
Managerobject inevaluator.pysimply scatters/gathers the population across its entire farm of processors, ignoring the fact that some of them will be on the same physical node. Ideally, the head rank on each node would store a shared memory buffer for the node's population and results, that way no MPI calls will be required for communicating between a processor and its node head.For now I have chosen to ignore this issue to avoid premature optimization.