Similar presentations:
Методы параллельных вычислений
1. ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ Самарский государственный технический
университетКафедра «Вычислительная техника»
Методы параллельных вычислений
курс лекций
к.т.н., доцент Камальдинова Зульфия Фаисовна
Самара, 2022
1
2. Список источников
1. Эндрюс Г.Р. Основы многопоточного, параллельного ираспределенного программирования.: Пер. с англ. М: 2003. –
512 с.
2. Лин
К.,
Снайдер
Л.
Принципы
параллельного
программирования: Учеб. пособие. М.: Изд-во Московского
университета, 2013. – 408 с.
3. Стронгин Р.Г., Гергель В.П., Гришагин В.А., Баркалов К.А.
Параллельные
вычисления
в
задачах
глобальной
оптимизации. М.: Изд-во Московского университета, 2013. –
280 с.
2
3. Критерии оценки
На «отлично»:Качественные ответы на вопросы, написанные «от
руки»
На «хорошо»:
Либо все ответы на вопросы, написанные «от
руки», но с неточностями, либо 85% качественных
ответов на вопросы, написанные «от руки»
На «удовлетворительно»:
Ответы на вопросы, распечатанные на принтере
3
4. Лекция 1 Обзор области параллельных вычислений
1.1. Краткая история появления1.2. Основной смысл параллельного
программирования
1.3. Обзор аппаратного обеспечения
параллельных вычислений
4
5. 1.1. Краткая история появления
• Параллельно программирование возникло в 60-х годахпрошлого века с изобретением каналов – независимых
аппаратных контроллеров. Первоначально применялось
только разработчиками ОС
• В 70-х – 80-х годах появились компьютерные сети. Сети
привели к росту распределенного программирования.
• Начало 2000-х – появление многопроцессорных рабочих
станций и ПК Параллельное программирование
становится необходимым
Как обычно в вычислительной технике, прогресс
исходит от разработчиков аппаратного обеспечения…
5
6. Аспекты параллельных вычислений
• ОС – многопоточность, протоколы взаимодействия ираспределенные файловые системы;
• Архитектура ВТ – многопроцессорность и сети;
• Вопросы компиляции для параллельных машин
• Модели параллельной обработки данных – в технологии
обработки больших данных;
• Теория алгоритмов – параллельные алгоритмы;
• БД – блокировка и распределенные базы данных;
• Компьютерная графика – параллелизм при визуализации и
трассировке лучей;
• Научные исследования и инженерные дисциплины.
6
7. 1.2. Основной смысл (суть) параллельного программирования
Параллельная программа содержит несколькопроцессов, работающих совместно над выполнением
некоторой
задачи.
Каждый
процесс
–
это
последовательная
программа.
Последовательная
программа имеет один поток управления, а параллельная
– несколько.
Взаимодействие
Разделяемые переменные или Пересылка сообщений
Синхронизация
Взаимное исключение и Условная синхронизация
7
8. Области параллельного программирования
- Императивныепрограммы
(с
явной
параллельностью,
взаимодействием
и
синхронизацией).
- Декларативные программы (взаимодействие и
синхронизация происходит неявно).
- Асинхронное программирование (каждый процесс со
своей скоростью).
8
9. 1.3. Обзор аппаратного обеспечения параллельных вычислений
1.3.1 Однопроцессорная машина1.3.2 Мультипроцессор с разделяемой памятью
1.3.2 Мультикомпьютер с распределенной
памятью
9
10.
1.3.1 Однопроцессорная машинаПервичная память
КЭШ уровня 2
КЭШ уровня 1
ЦПУ
10
11.
1.3.2 Мультипроцессор с разделяемой памятьюПамять
...
Память
Связующая сеть
КЭШ
КЭШ
...
ЦПУ
ЦПУ
UMA (uniform memory access) – однородный или симметричный
мультипроцессор, время доступа каждого из процессоров к любому участку
памяти одинаково
NUMA machines – неоднородные мультипроцессоры, время доступа не
равное, память организована иерархически
11
12.
1.3.2 Мультикомпьютер с распределеннойпамятью
Связующая сеть
Память
Память
...
КЭШ
КЭШ
ЦПУ
ЦПУ
12
13. Мультикомпьютеры с распределенной памятью
Мультикомпьютер (многомашинная система) –мультипроцесссор с распределенной памятью, процессоры и
сеть расположены физически близко (тесно связанная
машина), сеть с большой пропускной способностью.
Сетевая система – многомашинная система с
распределенной памятью, узлы которой связаны с помощью
локальной или глобальной сети (слабо связанный
мультикомпьютер).
Сеть рабочих станций (network of workstations –
NOW) или кластер рабочих станций (cluster of workstations
– COW). Все рабочие станции выполняют одно или
несколько приложений, возможно, связанных между собой.
13