Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП / ЯП / ЯП экзамен.doc
Скачиваний:
236
Добавлен:
11.05.2015
Размер:
322.05 Кб
Скачать
  1. Основные проблемы параллельного и распределенного программирования.

Параллельное программирование является более сложным по сравнению с последовательным как в написании кода, так и в его отладки. Для облегчения процесса параллельного программирования существуют специализированные инструменты, например, отладчик TotalView, статический анализатор кода VivaMP.

  1. Оценка максимально возможного параллелизма.

Процесс проектирования распределенных и параллельных систем состоит из этапов

  1. Декомпозиция – процесс разбиения задачи на части и её решение.

  2. Связывание – связь частей между собой.

  3. Синхронизация – координация функционирования компонентов единой системы, порядка работы, определения критерия, когда цель достигнута.

Проблемы параллельного и распределенного программирования

  1. Гонка данных – если несколько задач одновременно попытаются изменить некоторую общую область данных, а конечное значение данных при этом будет зависеть от того, какая задача обратится к этой области первой.

  2. Бесконечная отсрочка – ситуация, когда задача должна ожидаться до тех пор, пока не произойдет событие или не создадутся определенные условия для их запуска. Если ожидаемое событие не состоится, то задачи могут никогда не выполниться.

  3. Взаимоблокировка – возникает, когда две и более задачи постоянно блокируют друг друга в ситуации, когда у каждой задачи заблокирован ресурс, который пытается заблокировать другие задачи.

  4. Трудности организации связи

  5. Выбор оптимального количества процессоров – при увеличении степени параллельности она становится не эффективной.

  1. Основные модели параллельного программирования.

Модели параллельного программирования.

  1. Параллельная машина с произвольным доступом. Упрощенная теоретическая модель с N процессорами, которая использует общую глобальную память.

Все процессоры имеют доступ на чтение и запись к общей глобальной памяти. В такой системе возможен одновременный доступ. Обладает как параллельными (доступ к одной и той же области данных без порчи самих данных), так и исключающими алгоритмами (если нужна гарантия, что никакие 2 процесса не будут считывать данные из одной и той же области памяти одновременно) чтения и записи данных.

  1. Модель клиент-сервер. 1 сервер – несколько клиентов.

  2. Мультиагентные распределенные системы. Модель сети с равноправными узлами, в которой все компоненты имеют одинаковые права и при это у каждого компонента есть, что предложить другому.

  1. Оптимизатор. Основные функции оптимизатора.

Оптимизатор – специалист, осуществляющий продвижение сайта, то есть, предпринимающий определённые действия с тем, чтобы сайт стал известен максимальному числу пользователей всемирной паутины, в особенности, целевой аудитории.

ОПТИМИЗАТОР пытается улучшить код, убрать лишние операции, заменить медленные инструкции на более быстрые и т.д.

В результате оптимизации получается объектный код, который не соответствует исходному, из-за чего затрудняется процесс отладки.

Виды оптимизации:

1. Оптимизация промежуточного представления #(4+x)(8-y)-(8-y)(3434x-2)=(8-y)(2+3435x)

2. Машинно-ориентированная оптимизация #регистры вместо оперативной памяти

3. Локальная оптимизация #замена нескольких команд одной, более эффективной

Соседние файлы в папке ЯП