Все популярные реализации MPI будут взаимодействовать локально через разделяемую память. Производительность очень хорошая, если вы не тратите все свое время на упаковку и распаковку буферов (т. Е. Ваш дизайн приемлемый). Фактически конструкция, навязанная вам MPI, может работать лучше, чем большинство многопоточных реализаций, поскольку отдельное адресное пространство улучшает согласованность кэша. Чтобы постоянно превосходить MPI, многопоточные реализации должны знать иерархию кэша и над чем работают другие ядра.
При хорошем сетевом оборудовании (например, InfiniBand) HCA отвечает за включение и отключение ваших буферов в сети, чтобы процессор мог выполнять другие функции. Кроме того, поскольку многие задания имеют ограниченную пропускную способность памяти, они будут работать лучше при использовании, например, 1 ядро на каждый сокет на нескольких узлах, чем при использовании нескольких ядер на сокет.