- •Назначение, область применения и способы оценки производительности многопроцессорных вычислительных систем
- •Классификация архитектур по параллельной обработке данных
- •Гибридная архитектура (numa). Организация когерентности многоуровневой иерархической памяти
- •Организация когерентности многоуровневой иерархической памяти
- •Кластерная архитектура.
- •Кластерная архитектура. Проблемы выполнения сети связи процессоров в кластерной системе Кластерная архитектура
- •Сети связи процессоров в кластерной системе
- •Принципы построения коммуникационных сред на основе интерфейса sci
- •Принципы построения коммуникационных сред на основ среды Myrinet
- •Способы организации высокопроизводительных процессоров. Ассоциативные процессоры.
- •Ассоциативные процессоры
- •Способы организации высокопроизводительных процессоров. Конвейерные процессоры.
- •Конвейерные процессоры
- •Способы организации высокопроизводительных процессоров. Матричные процессоры
- •Матричные процессоры
- •Простые коммутаторы с временным разделением. Алгоритмы арбитража
- •Простые коммутаторы с временным разделением
- •Алгоритмы арбитража
- •П ростые коммутаторы с пространственным разделением. Особенности реализации шин
- •Особенности реализации шин
- •Составные коммутаторы. Коммутатор Клоза. Баньян-сети
- •Распределенные составные коммутаторы. Граф межмодульных связей Convex Exemplar spp1000.
- •Распределенные составные коммутаторы. Граф межмодульных связей мвс-100.
- •Распределенные составные коммутаторы. Граф межмодульных связей мвс-1000.
- •Требования к компонентам мвс. Отношение "стоимость / производительность".
- •Требования к компонентам мвс. Масштабируемость
- •Требования к компонентам мвс. Совместимость и мобильность программного обеспечения
- •Надежность и отказоустойчивость мвс.
- •Пути достижения параллелизма
- •Примеры параллельных вычислительных систем
- •Принципы разработки параллельных методов
- •Моделирование параллельных программ
- •Этапы разработки параллельных алгоритмов
- •1. Разделение вычислений на независимые части
- •2. Выделение информационных зависимостей
- •3. Масштабирование набора подзадач
- •4. Распределение подзадач между процессорами
- •Mpi: основные понятия и определения
- •Введение в разработку mpi программ. Инициализация и завершение mpi-программ. Операции передачи данных. Типы данных.
- •Коллективные операции передачи данных в mpi
- •Передача данных от одного процесса всем процессам программы
- •Передача данных от всех процессов одному процессу. Операция редукции
- •Обобщенная передача данных от одного процесса всем процессам
- •Обобщенная передача данных от всех процессов одному процессу
- •Общая характеристика среды выполнения mpi-программ
- •Понятие производного типа данных в mpi
- •Способы конструирования производных типов данных. Непрерывный способ конструирования
- •Непрерывный способ конструирования
- •Способы конструирования производных типов данных. Векторный способ конструирования
- •Векторный способ конструирования
- •Способы конструирования производных типов данных. Индексный способ конструирования
- •Индексный способ конструирования
- •Способы конструирования производных типов данных. Структурный способ конструирования
- •Структурный способ конструирования
- •Формирование сообщений при помощи упаковки и распаковки данных
Понятие производного типа данных в mpi
В самом общем виде под производным типом данных в MPI можно понимать описание набора значений предусмотренного в MPI типа, причем в общем случае описываемые значения не обязательно непрерывно располагаются в памяти. Задание типа в MPI принято осуществлять при помощи карты типа (type map) в виде последовательности описаний входящих в тип значений; каждое отдельное значение описывается указанием типа и смещения адреса месторасположения от некоторого базового адреса, т.е. TypeMap = {(type0, disp0),...,(typen-1, dispn-1)}.
Часть карты типа с указанием только типов значений именуется в MPI сигнатурой типа: TypeSignature = {type0,...,typen-1}.
Сигнатура типа описывает, какие базовые типы данных образуют некоторый производный тип данных MPI, и, тем самым, управляет интерпретацией элементов данных при передаче или получении сообщений. Смещения карты типа определяют, где находятся значения данных.
Нижняя граница есть смещение для первого байта значений рассматриваемого типа данных. Верхняя граница представляет собой смещение для байта, располагающегося вслед за последним элементом рассматриваемого типа данных. При этом величина смещения для верхней границы может быть округлена вверх с учетом требований выравнивания адресов.
Протяженность – это размер памяти в байтах, который нужно отводить для одного элемента производного типа. Размер типа данных – это число байтов, которые занимают данные (разность между адресами последнего и первого байтов данных).
Способы конструирования производных типов данных. Непрерывный способ конструирования
Для снижения сложности в MPI предусмотрено несколько различных способов конструирования производных типов:
непрерывный способ позволяет определить непрерывный набор элементов существующего типа как новый производный тип;
векторный способ обеспечивает создание нового производного типа как набора элементов существующего типа, между элементами которого имеются регулярные промежутки по памяти;
индексный способ отличается от векторного метода тем, что промежутки между элементами исходного типа могут иметь нерегулярный характер;
структурный способ обеспечивает самое общее описание производного типа через явное указание карты создаваемого типа данных.
Непрерывный способ конструирования
При непрерывном способе конструирования производного типа данных в MPI используется функция:
int MPI_Type_contiguous(int count, MPI_Data_type oldtype, MPI_Datatype *newtype),
где
count — количество элементов исходного типа;
oldtype — исходный тип данных;
newtype — новый определяемый тип данных.
Как следует из описания, новый тип newtype создается как count элементов исходного типа oldtype.
В определенном плане наличие непрерывного способа конструирования является избыточным, поскольку использование аргумента count в процедурах MPI равносильно использованию непрерывного типа данных такого же размера.