Distributed Memory Programming

9.8 Conclusions

Here are some rules-of-thumb that can be expected to pertain to most kinds of communication-situations you'll find yourselves in:

  • Latency is more important if sending many short messages

    As the ratio of latency to actual-message-bandwidth goes up, as will be the case with short messages, the cost of your communication will rise. If you use long messages, the latency increasingly tends to get masked out, to be overshadowed by the time spent in dealing with the actual message.

  • Bandwidth is more important for longer messages

    For various reasons (contention for space on the wire, and segmentation being the two most prevalent), bandwidth becomes increasingly important as message size increases.

  • Can decrease communication overhead by overlapping communications and computations

    Your application doesn't benefit by passive waiting, especially when it could be engaged in active waiting -- any time you can arrange for meaningful computation to be going on while communication is in progress, you will have achieved a potentially significant boost in your overall efficiency.