Программная модель
Принята следующая модель работы PARIX-приложения.
При запуске на каждом узле стартует одна и та же программа
затем она определяет свое положение в решетке раздела и
организует обмен данными с другими своими копиями
На каждом узле имеется набор глобальных данных (доступных программе), которые определяют положение узла в разделе. Именно
количество процессоров в разделе
идентификатор данного процессора
размеры решетки раздела
положение данного процессора в решетке (координаты)
Обмен данных основан на концепции виртуальных связей между процессорами, которые образуют каналы ``точка-точка'' между любыми процессорами. Набор созданных виртуальных связей задает виртуальную топологию (решетка, конвейер, дерево, гиперкуб).
В PARIX связи могут быть одного из следующих трех видов:
Синхронный канал. Это естественный для архитектуры Parsytec CC тип коммуникационного канала. Процессы, связанные синхронным каналом, синхронизуются при обмене данных: если одна сторона еще не готова к обмену данными, то другая будет ждать готовности. Следующие системные вызовы относятся к синхронным каналам: Send, Recv, Select, SendLink, RecvLink.
Синхронная ``случайная'' передача. Это единственный способ передачи данных, при котором не требуется создавать коммуникационный канал. Данные передаются по системным каналам. Однако, при большом размере сообщения библиотечные вызовы автоматически создают виртуальный канал, с целью повышения скорости обмена. Для сообщений данного типа PARIX предоставляет системные вызовы SendNode и ReceiveNode.
Асинхронный канал. Такой канал может осуществлять обмен данными не прерывая вычислений на узле. Поэтому канал такого типа улучшает кпд процессора. Прием/передача выполняются с буферизацией как на стороне передатчика, так и на стороне приемника. Следующие системные вызовы обслуживают асинхронные каналы: AInit, ASend, ARecv, ASync, AInfo, AExit
Содержание раздела