- •Назначение, область применения и способы оценки производительности многопроцессорных вычислительных систем
- •Классификация архитектур по параллельной обработке данных
- •Гибридная архитектура (numa). Организация когерентности многоуровневой иерархической памяти
- •Организация когерентности многоуровневой иерархической памяти
- •Кластерная архитектура.
- •Кластерная архитектура. Проблемы выполнения сети связи процессоров в кластерной системе Кластерная архитектура
- •Сети связи процессоров в кластерной системе
- •Принципы построения коммуникационных сред на основе интерфейса sci
- •Принципы построения коммуникационных сред на основ среды Myrinet
- •Способы организации высокопроизводительных процессоров. Ассоциативные процессоры.
- •Ассоциативные процессоры
- •Способы организации высокопроизводительных процессоров. Конвейерные процессоры.
- •Конвейерные процессоры
- •Способы организации высокопроизводительных процессоров. Матричные процессоры
- •Матричные процессоры
- •Простые коммутаторы с временным разделением. Алгоритмы арбитража
- •Простые коммутаторы с временным разделением
- •Алгоритмы арбитража
- •П ростые коммутаторы с пространственным разделением. Особенности реализации шин
- •Особенности реализации шин
- •Составные коммутаторы. Коммутатор Клоза. Баньян-сети
- •Распределенные составные коммутаторы. Граф межмодульных связей Convex Exemplar spp1000.
- •Распределенные составные коммутаторы. Граф межмодульных связей мвс-100.
- •Распределенные составные коммутаторы. Граф межмодульных связей мвс-1000.
- •Требования к компонентам мвс. Отношение "стоимость / производительность".
- •Требования к компонентам мвс. Масштабируемость
- •Требования к компонентам мвс. Совместимость и мобильность программного обеспечения
- •Надежность и отказоустойчивость мвс.
- •Пути достижения параллелизма
- •Примеры параллельных вычислительных систем
- •Принципы разработки параллельных методов
- •Моделирование параллельных программ
- •Этапы разработки параллельных алгоритмов
- •1. Разделение вычислений на независимые части
- •2. Выделение информационных зависимостей
- •3. Масштабирование набора подзадач
- •4. Распределение подзадач между процессорами
- •Mpi: основные понятия и определения
- •Введение в разработку mpi программ. Инициализация и завершение mpi-программ. Операции передачи данных. Типы данных.
- •Коллективные операции передачи данных в mpi
- •Передача данных от одного процесса всем процессам программы
- •Передача данных от всех процессов одному процессу. Операция редукции
- •Обобщенная передача данных от одного процесса всем процессам
- •Обобщенная передача данных от всех процессов одному процессу
- •Общая характеристика среды выполнения mpi-программ
- •Понятие производного типа данных в mpi
- •Способы конструирования производных типов данных. Непрерывный способ конструирования
- •Непрерывный способ конструирования
- •Способы конструирования производных типов данных. Векторный способ конструирования
- •Векторный способ конструирования
- •Способы конструирования производных типов данных. Индексный способ конструирования
- •Индексный способ конструирования
- •Способы конструирования производных типов данных. Структурный способ конструирования
- •Структурный способ конструирования
- •Формирование сообщений при помощи упаковки и распаковки данных
2. Выделение информационных зависимостей
При наличии вычислительной схемы решения задачи после выделения базовых подзадач определение информационных зависимостей между ними обычно не вызывает больших затруднений. При этом, однако, следует отметить, что на самом деле этапы выделения подзадач и информационных зависимостей достаточно сложно поддаются разделению. Выделение подзадач должно происходить с учетом возникающих информационных связей, после анализа объема и частоты необходимых информационных обменов между подзадачами может потребоваться повторение этапа разделения вычислений.
3. Масштабирование набора подзадач
Масштабирование разработанной вычислительной схемы параллельных вычислений проводится в случае, если количество имеющихся подзадач отличается от числа планируемых к использованию процессоров. Для сокращения количества подзадач необходимо выполнить укрупнение (агрегацию) вычислений.
4. Распределение подзадач между процессорами
Распределение подзадач между процессорами является завершающим этапом разработки параллельного метода. Надо отметить, что управление распределением нагрузки для процессоров возможно только для вычислительных систем с распределенной памятью, для мультипроцессоров (систем с общей памятью) распределение нагрузки обычно выполняется операционной системой автоматически. Кроме того, данный этап распределения подзадач между процессорами является избыточным, если количество подзадач совпадает с числом имеющихся процессоров, а топология сети передачи данных вычислительной системы представляет собой полный граф (т. е. все процессоры связаны между собой прямыми линиями связи).
Mpi: основные понятия и определения
Под параллельной программой в рамках MPI понимается множество одновременно выполняемых процессов. Процессы могут выполняться на разных процессорах, но на одном процессоре могут располагаться и несколько процессов.
Основу MPI составляют операции передачи сообщений. Среди предусмотренных в составе MPI функций различаются парные (point-to-point) операции между двумя процессами и коллективные (collective) коммуникационные действия для одновременного взаимодействия нескольких процессов. Для выполнения парных операций могут использоваться разные режимы передачи, среди которых синхронный, блокирующий и др.
Под коммуникатором в MPI понимается специально создаваемый служебный объект, который объединяет в своем составе группу процессов и ряд дополнительных параметров (контекст), используемых при выполнении операций передачи данных.
Введение в разработку mpi программ. Инициализация и завершение mpi-программ. Операции передачи данных. Типы данных.
Инициализация и завершение MPI-программ
Первой вызываемой функцией MPI должна быть функция:
int MPI_Init(int *argc, char ***argv),
где
argc — указатель на количество параметров командной строки,
argv — параметры командной строки,
применяемая для инициализации среды выполнения MPI-программы. Параметрами функции являются количество аргументов в командной строке и адрес указателя на массив символов текста самой командной строки.
Последней вызываемой функцией MPI обязательно должна являться функция:
int MPI_Finalize(void).
Для передачи сообщения процесс-отправитель должен выполнить функцию:
int MPI_Send(void *buf, int count, MPI_Datatype type, int dest,
int tag, MPI_Comm comm),
где
buf — адрес буфера памяти, в котором располагаются данные отправляемого сообщения;
count — количество элементов данных в сообщении;
type — тип элементов данных пересылаемого сообщения;
dest — ранг процесса, которому отправляется сообщение;
tag — значение-тег, используемое для идентификации сообщения;
comm — коммуникатор, в рамках которого выполняется передача данных.
Типы данных
При выполнении операций передачи сообщений для указания передаваемых или получаемых данных в функциях MPI необходимо указывать тип пересылаемых данных. MPI содержит большой набор базовых типов данных, во многом совпадающих с типами данных в алгоритмических языках C и Fortran. Кроме того, в MPI имеются возможности создания новых производных типов данных для более точного и краткого описания содержимого пересылаемых сообщений.