
- •Тема 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.
Кластерные системы. Кластер игэу. Схема кластера. Основные характеристики.
Кластер – совокупность процессоров или компьютеров, объединённых в рамках одной сети для решения одной задачи. Набор рабочих станций (или даже ПК) общего назначения, используется в качестве дешевого варианта массивно-параллельного компьютера. Для связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора.
При объединении в кластер компьютеров разной мощности или разной архитектуры, говорят о гетерогенных (неоднородных) кластерах.
Узлы кластера могут одновременно использоваться в качестве пользовательских рабочих станций. В случае, когда это не нужно, узлы могут быть существенно облегчены и/или установлены в стойку.
Примеры
NT-кластер в NCSA
Beowulf-кластеры (технология организации параллельных вычислений на Linux-кластерах).
Кластер ИГЭУ
В
2006г в ИГЭУ была установлена кластерная
система, имеющая 128 процессоров
32 блока, содержащих 2 двухпроцессорных модуля AMD Opteron (2 ГГц) Процессоры внутри блока представляют собой SMP систему. Все процессоры кластера могут работать как MPP система.
У кластера 2 независимые сети: Gigabit Ethernet используется для передачи информации между блоками. Fast Ethernet является сервисной и связывает блоки с управляющим компьютером.
Система работает под управлением Linux
Используемые языки: C/C++, FORTRAN
MPI, OpenMP, DVM
Программирование, как правило, в рамках модели передачи сообщений (чаще всего - MPI). Дешевизна подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.
Тема 2. Система программирования mpi
Mpi. Характеристика системы. Основные понятия mpi.
MPI расшифровывается как "Message passing interface" ("Взаимодействие через передачу сообщений").
MPI - система параллельного программирования для MPP-систем. MPI-программа состоит из нескольких параллельных ветвей, которые могут либо обмениваться сообщениями, либо нет.
В дерективах предпроцессора нужно указать #include<mpi.h>.
Все константы, все функции, структуры начинаются с префикса: MPI_.
В той версии MPI, которая установлена на кластере ИГЭУ, инициализировать параллельную секцию в программе можно только 1 раз. Параллельная секция обязательно должна быть завершена.
Основные понятия MPI
К основным понятиям относятся: процесс, группа процессов, коммуникатор.
Процесс - выполнение программы на первом процессоре, при чем неважно будет ли это последовательный код, либо будет обращение к параллельным функциям. При старте MPIпрограммы,
при запуске функции MPI_Init, стартует всеобъемлющая группа, которой принадлежат все процессы приложения.
Группа процессов - совокупность процессоров, любой из которых внутри группы имеет собственный уникальный номер. Номер процесса - целое не отрицательное число (rank), принимающее значение rank=0,1,2,...,size-1, где size - размер группы.
Коммуникатор - коммуникационная среда передачи и синхронизации сообщений. При старте преобразования всеобъемлющей группы создается присущий ей коммуникатор, предопределенный ей идентификатором MPI_COMM_WORLD. Внутри коммуникатора все процессы соединены в топологию клика полный граф.