Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A_Kpo.pdf
Скачиваний:
157
Добавлен:
10.06.2015
Размер:
1.82 Mб
Скачать

Все они при последовательном исполнении должны содержать циклы повторений с различными исходными данными.

В отличии от этих задач существуют строго последовательные задачи, не подлежащие параллельному решению. Например, задача управления технической системой состоит из трех сугубо последовательных фаз: съем информации с датчиков, обработка информации, выдача управляющего воздействия. Однако, эта же задача, решаемая, например, в цикле для трех каналов управления, может быть успешно распараллелена на три процессора. Каждому каналу управления – свой процессор.

Но все равно применение многопроцессорных машин не приводит к увеличению их производительности пропорционально числу используемых ядер или процессоров. Есть простой расчет производительности, позволяющий понять за счет чего это происходит.

Закон Амдела

Исполнение распараллеленного кода на N ядерном процессоре не приводит к N кратному увеличению производительности.

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

В лучшем случае верхняя оценка повышения производительности – примерно корень квадратный из числа процессоров или ядер. Основные причины этого – необходимость синхронизации параллельных секций кода и наличие не распараллеленных участков ПО. Пусть в задаче объемом S операций доля операций

немогущих исполняться параллельно составляет а. Тогда доля операций, могущих исполняться парал-

лельно составляет (1-а).

Время исполнения распараллеленной части задачи тогда составит

Тпар = (1-а)*S/Р*С, где

Р-число процессоров,

С- производительность одного процессора.

Общее время исполнения задачи на Р параллельных процессорах

Тобщ = Тпосл+Тпар = а*S/С+(1-а)*S/(Р*С) = ( )

Учитывая, что время исполнения задачи на одном процессоре равно

Тодн = S/С

[Введите текст]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]