Описание индексов распределения служит для отображения двух индексных направлений индексного пространства области задачи на матрицу процессорных элементов (ПЭ) распределенной системы. Разделы или функции, в которых присутствует это описание, называются распределенными, если оно отсутствует - нераспределенными. В распределенном разделе или функции это описание должно встречаться не более одного раза.
Данное описание приводит к распределению между ПЭ системы как данных, так и управления, и автоматической генерации операторов обмена данными между ПЭ, если это необходимо. Распределению подлежат величины, участвующие в расчетах и имеющие индексы, совпадающие с указанными в описании DISTRIBUTION INDEX.
Например, если задано описание
DISTRIBUTION INDEX i=1..8, j=1..1.то все переменные, определенные на областях с индексами i и j, будут распределены по ПЭi,j с виртуальными номерами строк i=1..8 в столбце с номером j=1 матрицы ПЭ.
Вычисления, описанные в нераспределенном разделе или нераспределенной функции, выполняются целиком в одном ПЭ (хотя таких ПЭ может быть и несколько).
Описание
DISTRIBUTION INDEX i=2...8,j=0..0.неверно: считается, что элементы матрицы ПЭ нумеруются, начиная с 1.
В языке Норма принята модель наследуемого распределения: раздел, в котором задано описание DISTRIBUTION INDEX, является головным распределенным разделом - он может вызываться только из нераспределенных разделов.
Раздел, в котором задано описание DISTRIBUTED INDEX, является распределенным разделом-наследником - он может вызываться только из распределенных разделов (головного распределенного раздела или других распределенных разделов-наследников).
При этом во всех распределенных разделах, входящих в цепочку вызовов
головной распределенный раздел > распределенный раздел-наследник > распределенный раздел-наследник
описания DISTRIBUTION INDEX и DISTRIBUTED INDEX должны иметь одинаковые параметры name-index = simple-range , name-index = simple-range. Пример структуры вызовов:
MAIN PART ABC. ! Главный нераспределенный раздел