- •Преимущества
- •Связь: ooa→oop→ood
- •Механизм работы virtual
- •Абстрактный класс
- •Виртуальный деструктор
- •{Основные элементы языка программирования}
- •Основные подходы к семантике:
- •Формальное описание семантики:
- •Среда программирования
- •Объекты данных
- •Атрибуты объекта данных
- •Система типизации данных
- •Реализация типов данных
- •Типизация
- •Система типизации данных
- •Реализация типов данных
- •Связывание переменных
- •Контроль типов
- •Статистический контроль типов
- •Алгоритм статистического контроля типов
- •Динамический контроль типов
- •Параллелизм
- •Полиморфизм
- •Статический полиморфизм
- •Динамический полиморфизм
- •Преобразование типов
- •Связь: ooa→oop→ood
- •Среда программирования
- •Цель технологий параллелизма
- •Схемы параллелизма
- •Проблемы параллельного программирования
- •Показатели эффективности параллельного алгоритма Ускорение
- •Закон Густавсона-Барсиса
- •Масштабируемый алгоритм
- •Схемы параллелизма
- •Подтипы данных
- •Разновидности массивов. Статические
- •Кортежи
- •Разновидности массивов. Статические
- •Динамические
- •Атрибуты объекта данных
- •Операции над целыми числами
- •Вещественные числа
- •Числа с фиксированной точкой
- •Числа с плавающей точкой(float)
- •Ошибки вычислений с вещественными числами
- •Утечки памяти и повисшие указатели
- •Указатели на указатели
- •Типизированные указатели
- •Указатели на функции
- •[Отличия указателей и ссылок]
- •Параметры подпрограмм
- •Преимущества подпрограмм
- •Позиционное сопоставление
- •Сопоставление по имени
- •Методы передачи параметров:
- •Передача параметров по значению
- •Передача параметров по ссылке
- •Передача параметров по значению-результату
- •Параметр по результату
- •Стековые языки
- •Циклы и рекурсия
- •Циклы со счетчиком
- •Операторы циклы без заданного числа повторений (бесконечно)
- •Динамический полиморфизм
- •Родовые (настраиваемые) сегменты и шаблоны
Показатели эффективности параллельного алгоритма Ускорение
Ускорение (speedup), получаемое при использовании параллельного алгоритма для p процессоров, по сравнению с последовательным вариантом выполнения вычислений определяется данной величиной.
т. е. как отношение времени решения задач на скалярной ЭВМ к времени выполнения параллельного алгоритма (величина n используется для параметризации вычислительной сложности решаемой задачи и может пониматься, например, как количество входных данных задачи).
Эффективность
• Эффективность использования параллельным алгоритмом процессоров при решении задачи определяется соотношением:
T – количество процессоров
• (величина эффективности определяет среднюю долю времени выполнения алгоритма, в течение которой процессоры реально используются для решения задачи).
Стоимость
Cp=p*Tp
• Стоимостно-оптимальный параллельный алгоритм – метод, стоимость которого является пропорциональной времени выполнения наилучшего последовательного алгоритма.
Оценка максимально достижимого параллелизма
Закон Амдала
• Всегда есть последовательные расчеты, которые не могут быть распараллелены.
• Пусть f есть доля последовательных вычислений в применяемом алгоритме обработки данных.
• Ускорение процессора вычислений при использовании p процессоров ограничивается величиной:
Sp<=1/(f+(1-f)/p)<=S*=1/f
• Только алгоритм, вовсе не содержащий последовательных вычислений (f=0), позволяет получить линейный приоритет производительности с ростом количества вычислителей в системе.
Закон Густавсона-Барсиса
• Ускорение масштабирования
Sp=g+(1-g)*p=p+(1-p)*g
• g – доля последовательных рассчетов в программе.
• p – количество процессоров.
• Оценка может показать, насколько эффективно могут быть организованы параллельные вычисления при увеличении сложности решаемых задач.
Масштабируемый алгоритм
• Параллельный алгоритм называется масштабируемым, если при росте числа процессоров он обеспечивает увеличение ускорения при сохранении постоянного уровня эффективности использования процессоров.
37. Основные модели параллельного программирования.
Модели параллельного программирования.
1) Параллельная машина с произвольным доступом. Упрощенная теоретическая модель с N процессорами, которая использует общую глобальную память.
Все процессоры имеют доступ на чтение и запись к общей глобальной памяти. В такой системе возможен одновременный доступ. Обладает как параллельными (доступ к одной и той же области данных без порчи самих данных), так и исключающими алгоритмами (если нужна гарантия, что никакие 2 процесса не будут считывать данные из одной и той же области памяти одновременно) чтения и записи данных.
2) Модель клиент-сервер. 1 сервер – несколько клиентов.
3) Мультиагентные распределенные системы. Модель сети с равноправными узлами, в которой все компоненты имеют одинаковые права и при это у каждого компонента есть, что предложить другому.
