Cisco Blogs

Cisco Blog > High Performance Computing Networking

MPI concepts that didn’t make it

The following is an abbreviated list of my favorite concepts and/or specific functions that never made the cut into an official version of the MPI specification:
  • MPI_ESP(): The “do what I meant, not what my code says” function.  The function is intended as a hint to the MPI implementation that the executing code is likely incorrect, and the implementation should do whatever it feels that the programmer really intended it to do.
  • MPI_Encourage(): A watered-down version of MPI_Progress().
  • MPI_Alltoalltoall(): Every process sends to every other process, and then, just to be sure, everyone sends to everyone else again.  Good for benchmarks.
  • MPI_NonCommunicator: A communicator that is semantically equivalent to /dev/null.  All messages sent on this communicator are dropped; all messages received on this communicator result in MPI_ERR_TRUNCATED.
  • MPI_Sleep(): This is a hint to the MPI implementation that the application is running too fast: please slow down (perhaps by sleeping, blocking, or other implementation-specific mechanism).
  • MPI_Ibarrier(): Short for “ignore barriers”, meaning that the MPI implementation is free to ignore barriers after this call. This is a hint to the MPI implementation that the application is going to slow, mainly because the application is using too many barriers. NOTE: This function name unfortunately was later re-used in the non-blocking collectives proposal.
  • MPI_Toast(N, M): Under the assumption that MPI/HPC applications tend to generate excess thermal energy via the environments on which they’re running, feed in N pieces of bread into the heat exchanger.  Eject M seconds later (specialized hardware may be required).

Tags: ,

Comments Are Closed