В этой главе описываются топологические механизмы MPI. Топология является необязательным атрибутом, который дополняет систему интра-коммуникаторов и не применяется в интер-коммуникаторах. Топология обеспечивает удобный способ обозначения процессов в группе (внутри коммуникатора) и оказывает помощь исполнительной системе при размещении процессов в аппаратной среде.
Как было сказано в главе 5, группа процессов в MPI - это объединение n процессов. Каждому процессу в группе соответствует номер в диапазоне от 0 до n-1. Во многих параллельных приложениях линейное распределение номеров не отражает в полной мере логическую структуру обменов между процессами, которая зависит от структуры задачи и ее математического алгоритма. Часто процессы описываются в двух- и трехмерных топологических средах. Наиболее общим видом топологии является организация процессов, описываемая графовой структурой. В этой главе логическая организация процессов будет именоваться ``виртуальной топологией''.
Следует различать виртуальную топологию процессов и физическую топологию процессов. Виртуальная топология должна применяться для назначения процессов физическим процессорам, если это позволит увеличить производительность обменов на данной машине. С другой стороны, описание виртуальной топологии зависит от конкретного приложения и является машинно-независимым. Функции, предложенные в этой части, относятся только к машинно-независимым расчетам.
Объяснение: Хотя физическое размещение в настоящем стандарте не обсуждается, наличие информация о виртуальной топологии может быть использовано как подсказка для исполнительной системы. Имеются широко известные методы для размещения многомерных структур данных (матрицы, тороиды) в физической среде, такой как гиперкубы. Для более сложных графовых структур используются эвристические алгоритмы, которые дают результаты, близкие к оптимальным [20]. С другой стороны, если пользователь не может описать логическое размещение процессов как ``виртуальную топологию'', наиболее подходящим будет случайное размещение этих процессов. На некоторых машинах это может привести к конфликтам в аппаратной переключательной сети. Некоторые подробности о предсказанном и измеренном приросте производительности в результате хорошего размещения процессов по процессорам можно найти в [10,9].
Кроме возможности получить выгоду в производительности, виртуальная топология может быть использована как средство обозначения процессов, которое значительно улучшает читаемость программ.[]