3.9 Communication Optimizations for AMPI

AMPI is powered by the CHARM++ communication optimization support now! Currently the user needs to specify the communication pattern by command line option. In the future this can be done automatically by the system.

Currently there are four strategies available: USE_DIRECT, USE_MESH, USE_HYPERCUBE and USE_GRID. USE_DIRECT sends the message directly. USE_MESH imposes a 2d Mesh virtual topology on the processors so each processor sends messages to its neighbors in its row and column of the mesh which forward the messages to their correct destinations. USE_HYPERCUBE and USE_GRID impose a hypercube and a 3d Grid topologies on the processors. USE_HYPERCUBE will do best for very small messages and small number of processors, 3d has better performance for slightly higher message sizes and then Mesh starts performing best. The programmer is encouraged to try out all the strategies. (Stolen from the CommLib manual by Sameer :)

For more details please refer to the CommLib paper 6.

Specifying the strategy is as simple as a command line option +strategy. For example:

> ./charmrun +p64 alltoall +vp64 1000 100 +strategy USE_MESH
tells the system to use MESH strategy for CommLib. By default USE_DIRECT is used.

January 17, 2008
AMPI Homepage
Charm Homepage