Функции задания топологии процессов

Топология процессов является одним из необязательных атрибутов коммуникатора. Такой атрибут может быть присвоен только intra коммуникатору. По умолчанию предполагается линейная топология, в которой процессы пронумерованы в диапазоне от 0 до n-1, где n - число процессов в группе. Однако для многих задач линейная топология неадекватно отражает логику коммуникационных связей между процессами. MPI предоставляет средства для создания достаточно сложных "виртуальных" топологий в виде графов, где узлы являются процессами, а грани - каналами связи между процессами. Конечно же, следует различать логическую топологию процессов, которую позволяет формировать MPI, и физическую топологию процессоров.

Рис. 2. Соотношение между идентификатором процесса (верхнее число) и координатами в двумерной сетке 2х3 (нижняя пара чисел)

 

В идеале логическая топология процессов должна учитывать как алгоритм решения задачи, так и физическую топологию процессоров. Для очень широкого круга задач наиболее адекватной топологией процессов является двумерная или трехмерная сетка. Такие структуры полностью определяются числом измерений и количеством процессов вдоль каждого координатного направления, а также способом раскладки процессов на координатную сетку. В MPI, как правило, используется row-major нумерация процессов, т.е. используется нумерация вдоль строки. На рис. 53 представлено соответствие между нумерациями 6 процессов в одномерной и двумерной (2х3) топологиях.