Доступные слайды здесь указывают на различия между различными режимами отправки данных MPI (стр. 29). Меня интересуют следующие характеристики:
MPI_Send
- самое быстрое время передачи
MPI_Ssend
- высокая задержка / лучшая пропускная способность
MPI_Bsend
- низкая задержка / плохая пропускная способность
В чем могут быть причины различий? Насколько я понимаю, эти причины должны исходить от реализаций, поскольку стандарт MPI, похоже, ничего не говорит о различиях в производительности.
Единственное объяснение, которое я придумал, касалось MPI_Ssend
. Я думаю, что это высокая задержка, потому что, когда он вызывается, он блокируется, пока приемник не запускает MPI_Recv
, таким образом увеличивая общее время перед отправкой любых данных.
Прав ли я в этом объяснении? По каким причинам MPI_Send
предлагает самое быстрое время передачи, MPI_Ssend
- лучшая пропускная способность и MPI_Bsend
- низкая задержка и плохая пропускная способность?