
- •Тема 1. Введение в архитектуру многопроцессорных вычислительных систем
- •Необходимость введение классификации параллельных вычислительных систем. Требования, которым должна удовлетворять классификации.
- •Классификация м. Флинна. Достоинства и недостатки.
- •Компьютеры с разделенной памятью: mpp-системы. Принципиальная схема. Примеры mpp-систем.
- •Компьютеры с общей памятью: smp-системы. Многоядерные системы. Принципиальная схема. Примеры smp-систем.
- •Системы с неоднородным доступом к памяти: ccNuma-системы. Принципиальная схема.
- •Кластерные системы. Кластер игэу. Схема кластера. Основные характеристики.
- •Тема 2. Система программирования mpi
- •Mpi. Характеристика системы. Основные понятия mpi.
- •Константы. Типы. Сообщения, атрибуты сообщения. Структура mpi_Status.
- •Основные функции mpi: mpi_Init(), mpi_Finalize(), mpi_Wtime().
- •Функции работы с коммуникатором: mpi_Comm_size(), mpi_Comm_rank().
- •Функции коллективного взаимодействия процессов: mpi_Bcast(), mpi_Barrier(), mpi_Reduce(),mpi_Allreduce(),(), mpi_Scan(),. Коллективные операции.
- •Функции обмена с блокировкой: mpi_Send(), mpi_Recv(), mpi_Ssent(),mpi_Bsend(), mpi_Rsend(), mpi_Buffer_attach(), mpi_Buffer_detach().
- •Тема 3. Система программирования OpenMp
- •Система программирования OpenMp. Понятие нити. Структура OpenMp-программы. Схема fork/join. Понятие директивы, клаузы. Классы переменных.
- •Директива OpenMp определения параллельной области. Клаузы.
- •Директива для параллельного выполнения циклов. Клаузы.
- •Директива для однократного выполнения участка кода. Клаузы.
- •Директива для параллельного выполнения независимых фрагментов программы. Клаузы.
- •Директива синхронизации.
- •Директива выполнения блока программы нитью-«мастер».
- •Атомарная директива.
- •Директива создания критической секции. Именованная критическая секция.
- •Директивы flush, ordered, threadprivate.
- •Функции OpenMp.
- •Тема 4. Нейрокомпьютерные системы
- •Обучение простейшего персептрона распознаванию двух образов.
- •Отображение
- •Реакция на образ
- •Блок подготовки
- •Блок обучения
- •Блок проверки
- •Функции активации.
- •Топологии нейронных сетей.
- •Алгоритмы обучения. Методы Хебба.
- •Ассоциативная память нейронных сетей.
- •Тема 5. Параллельные вычисления
- •Виды параллелизма.
- •Ускорение вычислений. Основной закон Амдала. Закон Густавсона-Барсиса.
- •Сетевой закон Амдала. Недостатки закона Амдала.
- •Решение уравнения теплопроводности на мвс. Постановка задачи. Расчетные формулы. Параллельный алгоритм. Распределение точек по процессам. Обработка стыков. Ускорение и точность вычислений.
- •Тема 6 Технология cuda.
- •Основные термины: концепция simd, мультипроцессор, устройство (device), хост (host), ядро (kernel). Организация потоков.
- •Архитектура устройства, виды памяти.
- •Расширения языка с. Спецификаторы функций, спецификаторы переменных, добавленные типы.
- •Функции cuda: функция вызова ядра, функции работы с памятью.
- •Функции определения времени вычислений.
- •Пример программы на cuda: решение системы обыкновенных дифференциальных уравнений методом Рунге-Кутта 4.
Тема 1. Введение в архитектуру многопроцессорных вычислительных систем
Необходимость введение классификации параллельных вычислительных систем. Требования, которым должна удовлетворять классификации.
Существует большое разнообразие способов организации параллельных вычислительных систем: конвеерно-векторные системы, системы с многопоточной архитектурой, массивно-параллельные и матричные системы, кластерные системы, спецпроцессоры. Это многообразие требует введения классификации.
Классификация должна удовлетворять двум требованиям:
Каждая система должна однозначно относиться к тому или иному классу
Каждый класс должен достаточно полно характеризовать относящиеся к нему системы.
Классификация м. Флинна. Достоинства и недостатки.
В 1966 году М. Финн предложил первую версию своей классификации
В основу классификации Флинн положил понятие «поток», под которым понимал последовательность команд и последовательность данных, обрабатываемых процессором.
По числу команд и потоков данных он выделил 4 класса:
Single (0) – одиночный поток
Multiple (1) – множественный поток
Instruction stream(I) – Поток команд
Data stream (D) – Поток данных
Классы:
SISD – В данных системах выполняется последовательность команд, каждая из которых работает только с одним потоком данных. Не имеет значения, что для ускорения выполнения арифметических операций в некоторых системах осуществляется конвейерная обработка. К данному классу относятся все однопроцессорные компьютеры.
SIMD – В данных системах сохраняется один поток команд, включающий векторные команды, это позволяет выполнять одну операцию над элементами вектора. Порядок выполнения векторных операций в данном классе не оговаривается. Cray-1, ILLIAC-IV
MISD – В данных системах множественный поток команд обрабатывает один поток данных. К этому классу не относят ни одной системы.
MIMD – В данных системах есть несколько устройств обработки команд, объединённых в единое целое. Каждое устройство работает со своим потоком команд и со своим потоком данных. К данному классу относятся все многопроцессорные системы.
Достоинства классификации Флинна
Используется давно и достаточна для начальной характеристики системы.
Каждый класс достаточно полно характеризует относящиеся к нему системы.
Недостатки ~
Некоторые системы трудно однозначно отнести к определённому классу. Например: конвеерно-векторные системы можно отнести к классу SIMD и MIMD
Чрезвычайная переполненность класса MIMD. Системы с различным числом процессоров, организацией памяти относятся к одному классу.
Компьютеры с разделенной памятью: mpp-системы. Принципиальная схема. Примеры mpp-систем.
M
PP
Системы(Massive parallel processing - Массово-параллельная
архитектура)
Системы с массивным параллелизмом / массивно-параллельные системы
В этих системах каждый процессор имеет свою память, доступную только ему. Единственным способом общения процессов между собой является передача сообщений с помощью некоторой коммуникационной среды. Это системы с разделённой памятью.
MPP Системы являются в настоящее время самыми высокопроизводительными системами.
Преимущества архитектуры
Главным преимуществом систем с раздельной памятью является хорошая масштабируемость: в отличие от SMP-систем, в машинах с раздельной памятью каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров.
Недостатки архитектуры
отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами. Требуется специальная техника программирования для реализации обмена сообщениями между процессорами;
каждый процессор может использовать только ограниченный объём локального банка памяти;
вследствие указанных архитектурных недостатков требуются значительные усилия для того, чтобы максимально использовать системные ресурсы. Именно этим определяется высокая цена программного обеспечения для массово-параллельных систем с раздельной памятью.
Операционная система
Полноценная ОС работает только на управляющей машине (front-end), на каждом узле работает сильно урезанный вариант ОС, обеспечивающие только работу расположенной в нем ветви параллельного приложения. Пример: Cray T3E.
На каждом узле работает полноценная UNIX-подобная ОС (вариант, близкий к кластерному подходу). Пример: IBM RS/6000 SP + ОС AIX, устанавливаемая отдельно на каждом узле.
Программирование в рамках модели передачи сообщений ( MPI, PVM, BSPlib)
Системами с раздельной памятью являются суперкомпьютеры МВС-1000, IBM RS/6000 SP, SGI/CRAY T3E, системы ASCI, Hitachi SR8000, системы Parsytec.
Машины последней серии CRAY T3E от SGI, основанные на базе процессоров Dec Alpha 21164 с пиковой производительностью 1200 Мфлопс/с (CRAY T3E-1200), способны масштабироваться до 2048 процессоров.