Вы можете предположить, что несколько вызовов никогда не будут быстрее, чем один вызов для одной и той же общей громкости.Простая причина в том, что реализация MPI могла бы просто разделить один вызов на несколько внутренних вызовов, если бы он был быстрее, таким образом 1 .В общем случае рекомендуется использовать API MPI наиболее высокоуровневым способом, т. Е. Коллективы вместо p2p, используя пользовательские составные типы данных вместо отдельных сообщений и т. Д. Это также гарантирует, что программа наиболее переносима.
Тем не менее, если у вас есть конкретная идея, как улучшить производительность с помощью низкоуровневой настройки, вам следует измерить с вашей конкретной реализацией в вашей конкретной системе.В конце концов, ваша реализация может иметь определенную проблему с большими сообщениями.Но вы должны предпочесть добиться улучшения с помощью системной настройки (например, пороговых значений активных сообщений для конкретной реализации), так как это не загрязняет исходный код.
1: если вы включаете создание / использование данных вИсходя из ваших соображений, вполне возможно, что множественные вызовы быстрее из-за эффектов конвейерной передачи или кэшированияНо это, скорее всего, незначительно.