next up previous
Next: Dynamic Redistribution Up: Communication Library Primitives Previous: Communication Primitive: GATHER

Implementation Issues

The implementation of the communication primitives presented in this section can be achieved by library code which need use only the basic READ and WRITE primitives. However, parallel machine vendors, realizing the importance of fast primitives ([8], [11], [29], and [15]), provide their own library calls which benefit from knowledge of and access to lower level machine specifics and optimizations.

  
Figure 1: Performance of Communication Primitives

Communication primitives are considered to be a black box, where the implementation is unimportant from the user's perspective, as long as the primitives produce the correct results. Figure 1 provides an example using the TRANSPOSE and BROADCAST primitives on the IBM SP-2. Note that the ``Vendor'' primitive library corresponds to a primitive function implemented directly on top of the respective collective communication library function provided by IBM. The ``Generic'' primitive library uses our generic (and portable) implementation which call only the READ and WRITE primitives. Note that for both implementation methods, and for both primitives, execution time is similar, and making use of a vendor's library can improve performance.



next up previous
Next: Dynamic Redistribution Up: Communication Library Primitives Previous: Communication Primitive: GATHER



David A. Bader
dbader@umiacs.umd.edu