- •Характеристики
- •План
- •Алгоритмы
- •Декомпозиция, Связь, Синхронизация
- •Эффективность
- •Модель
- •Характеристики
- •Характеристики
- •Характеристики системы обмена информацией
- •Масштабируемость (количество операций
- •Характеристики
- •Примеры характерных размерностей
- •Примеры
- •Другие характеристики
- •Основные свойства параллельных алгоритмов
- •Граф операций
- •Постановка задачи в терминах графа
- •Пример расписания (общая память)
- •Ограничения на расписание
- •Определение времени выполнения параллельного
- •Некоторые свойства параллельных алгоритмов
- •Доказательство 2
- •Доказательство 2
- •Доказательство 2 (продолжение)
- •Другие свойства
- •Использование описания с помощью графов
- •Факторы ограничения и повышения
- •Гипотеза Минского
- •Закон Амдала (Amdahl, 1967)
- •Иллюстрация закона Амдаля
- •Оценка времени выполнения
- •Коэффициент ускорения и эффективность
- •Графики зависимостей
- •Примеры закона Амдала
- •Централизованная схема
- •SMP система
- •Конвейер
- •Закон Густафсона
- •Оценка времени для закона Густафсона
- •Связь или противоречие?
- •Практическое применение законов Амдала и Густафсона
- •Гетерогенность
- •Дисбаланс нагрузки
- •Балансировка нагрузки
- •Сверхлинейное ускорение
- •Аппаратное сверхлинейное ускорение
- •Алгоритмическое сверхлинейное ускорение
- •Пример: подбор пароля
- •Параллельный алгоритм подбора
- •Иллюстрация
- •Счастливый случай
- •Оценка времени последовательного алгоритма
- •Оценка времени параллельного алгоритма
- •Ускорение
- •Сравнение факторов ограничения производительности
- •Выводы
- •Вопросы
Характеристики
масштабируемости
Характерная размерность задачи
Количество входных данных
Количество операций алгоритма
Нотация большого O
Как ведет себя количество N(n) при стремлении объема входных данных к бесконечности
n
N(n)
O(n)
Примеры характерных размерностей
Количество элементов массива n
Размер квадратной матрицы nxn
Примеры
масштабируемости
Другие характеристики
Производительность
системы
Цена алгоритма
Суммарные затраты процессорного времени
Основные свойства параллельных алгоритмов
На сколько вообще можно ускорить вычисления за счет параллельной обработки?
Какое оптимальное количество процессоров ?
…
Граф операций
Граф операции- аргументы
Вершины графа – выполняемые операции
Дуги – какие результаты предыдущих операций используются на следующем этапе
Результаты операций соответствуют вершинам
(a+b)(c+d) |
|
|
|
a |
b |
c |
d |
ac * ad * cb * bd *
ac+ad + + cb+bd
+
ac+ad+cb+bd
Постановка задачи в терминах графа
Последовательности операций соответствует путь на графе
Параллельно могут быть выполнены те операции, между которыми нет пути на графе
Каждой схеме распараллеливания на p процессоров соответствует расписание:
Для операции i
Выбирается процессор Pi
В момент времени ti
Задача: Найти оптимальное расписание для распараллеливания
Пример расписания (общая память)
Момент времени 1
H=(операция 1:загрузить а, процессор 1, момент1 )
H=(операция 2:загрузить b, процессор 2, момент1 )
H=(операция 3:загрузить c, процессор 3, момент1 )
H=(операция 4:загрузить d, процессор 4, момент1 )
Момент времени 2
H=(операция 5: а*с, процессор 1, момент2 )
H=(операция 6: а*b, процессор 2, момент2 )
H=(операция 7: c*d, процессор 3, момент2 )
H=(операция 8: b*d, процессор 4, момент2 )
Момент времени 3
H=(операция 9: а*с+b*d, процессор 2, момент3 )
H=(операция 10: a*d+b*c, процессор 3, момент3 )
Момент времени 4
H=(операция 11: а*с+b*d+ a*d+b*c, процессор 3, момент4 )
Ограничения на расписание
В один и тот же момент времени один процессор не может выполнять разные операции
Если для выполнения следующей операции должен быть готов результат предыдущей
Момент выполнения следующей операции должен быть больше момента выполнения предыдущей операции
Определение времени выполнения параллельного
алгоритмаВремя выполнения соответствует максимально длинному пути графа
Соответствует максимально возможному моменту времени, когда была назначена операция + время выполнения операции
Для практики интересно
минимальное время при данной схеме вычислений
Минимальное время для всех схем вычислений
Минимально возможное время при неограниченном количестве процессоров
