Новости
О Центре
Кластер
Обучение
Основной курс по параллельному программированию
Учебные курсы
Магистратура
Дополнительное образование
Работы студентов
Библиотека
Исследования
Конференции
Полезные ссылки
NVIDIA
Контакты
О сайте
Имя:
Пароль:
запомнить:
Забыли пароль? Регистрация

Анализ эффективности

Чтобы оценить время работы алгоритма, составим рекуррентное соотношение. Пусть T(n) - время сортировки массива длины n, тогда для сортировки слиянием справедливо T(n) = 2T(n/2)+O(n) (O(n) - это время, необходимое на то, чтобы слить два массива). Распишем это соотношение:

Осталось оценить k. Мы знаем, что 2k = n, а значит k = log2n. Уравнение примет вид:

Так как T(1) - константа, то T(n) = O(n) + log2nO(n)=O(n∙log2n).

Для анализа будем использовать следующие показатели:

·         T1 - время решения задачи на одном процессоре.

·         Tp - время решения задачи на p процессорах.

·         S - ускорение. Ускорение определяется из отношения: S=T1/Tp

 

 Таким образом, оценка сложности последовательного алгоритма

.

 Для оценки работы на p потоках оценим трудоемкость слияния отсортированных массивов, которые передаются по кольцу:

 Тогда работе на p потоках мы получим следующую оценку:

Исходя из полученных результатов можно дать оценку полученному ускорению:

.

 

Так же, для оценки сложности, необходимо учитывать время, затраченное на передачу данных. Данная оценка проводится с использованием модели Хокни: T = alfa+w/beta; где alfa и beta - латентность и пропускная способность среды передачи соответственно, w - объём памяти, требуемый для хранения элемента данных. Для приведенной программы формула трудоемкости представлена ниже. В ней учитывается начальная рассылка частей массива процессом с номером 0, а так же передача отсортированной части массива следующему по номеру процессу:

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012