
- •Тема 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.
Топологии нейронных сетей.
Полносвязные нейронных сети
Все нейроны связаны друг с другом. Входные сигналы подаются каждому нейрону. Каждый нейрон передает свой выходной сигнал на все остальные и себе тоже. Выходом сети могут быть все или несколько выходных сигналов после нескольких тактов функционирования сети.
Многослойная сеть
Состоят из нескольких слоев: входной и выходной, и несколько скрытых слоев. Количество нейронов на каждом слое не зависит от количества нейронов на других слоях. Различают многослойные сети прямого распространения и сети с обратными связями, когда выход q+1 скрытого слоя передается на вход предыдущего q слоя.
Слабосвязанные сети
Каждый нейрон связан с 4мя соседним, либо 8
Алгоритмы обучения. Методы Хебба.
Различают алгоритмы обучения с учителем и без учителя.
Алгоритмы обучения с учителем
Такой алгоритм, при котором известны входные и выходные векторы, то есть известны условия задачи и решение. В процессе обучения изменяются параметры сети так, чтобы на выходе получилось результаты, которые нам уже известны. При обучении с учителем задаются множества пар векторов {X,Y}, которое называется обучающим множеством.
{X} = {x1, x2, …, xN} – множество образов
{Y} = {y1, y2, …, yN} – множество допустимых результатов
N – количество элементов в образе.
При обучении изменяются параметры сети таким образом, что сеть научится правильно отображать множество X на множество Y. Количество элементов в обучающем множестве строго не регламентировано, но должно быть достаточным для обучения сети.
Обучение без учителя
Процесс обучения заключается в подстраивании весовых коэффициентах, в некоторых сетях в процессе обучения изменяется и структура нейросети и количество нейронов (сети с
самоорганизацией). Изменения весов могут производиться только на основании информации о состоянии нейронов и уже известных весов. На этом алгоритме по аналогии с принципом самоорганизации нейронов в живых системах построены методы Хебба.
Метод Хебба
Хебб заметил, что синоптическое соединение двух нейронов усиливается, если оба нейрона возбуждены. Для изменения веса он предложил следующую формулу:
Wij(t+1)=Wij(t)+yi[n-1] * yj[n]
Si – уравнение возбуждения i-ого нейрона;
Sj – уравнение возбуждения j-ого нейрона;
Wij(t) и Wij(t+1) весовой коэффициент синапса, соединяющего эти нейроны, на итерациях t и t+1 соответственно;
Этот метод позволяет ответить на сложный вопрос: "Как происходит обучение без учителя?". В методе Хебба обучение является локальным действием, охватывающим только два нейрона. Здесь не нужна система обратных связей.
Сигнальный метод Хебба
В данном методе изменение веса проводится по следующей формуле:
Wij(t+1)=Wij(t)+a *yi[n-1] * yj[n]
yi[n-1] выходное значение нейрона i слоя n-1;
yj[n] выходное значение нейрона j слоя n;
Wij(t) и Wij(t+1) весовой коэффициент синапса, соединяющего эти нейроны, на итерациях t и t+1 соответственно;
a - коэффициент скорости обучения.
При обучении без учителя выполняются следующие шаги:
1) начальные значения весов инициализируются некоторыми небольшими случайными значениями;
2) на входы сети подается входной образ и сигнал о возбуждении распространяется по всем слоям, при этом для каждого нейрона рассчитывается сумма его входов и к полученной сумме применяется функция активации, получаем выходное значение
3) на основании полученных выходных значений по формулам вычисляются новые значения весовых коэффициентов
4) переходим к шагу 2 до тех пор, пока выходные значения не стабилизуются с заданной точностью. На шаге 2 попеременно показываем все входные значения.