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

Анализ алгоритма

Рассмотрим N-мерный гиперкуб из p=2^N процессоров (p < N).

Cложность алгоритма сортировки.

После разделения исходного набора данных, каждый процессор выполняет разбиение своего блока на два, согласно ведущему элементу. Это может быть выполнено за n/p операций (будем предполагать, что на каждой итерации сортировки каждый блок делится на равные по размеру части). Также, на каждой из итераций, каждый процессор выполняет слияние частей блоков, сложность этой операции оценивается величиной (n/p). После всех итераций, мы выполняем последовательную операцию быстрой сортировки. Таким образом, общее время вычислений параллельного алгоритма быстрой сортировки оценивается величиной [2(n/p)(log₂p) + (n/p)log₂ (n/p)]*t, где t есть время выполнения базовой операции перестановки.

Сложность выполняемых коммуникационных операций.

Общее количество межпроцессорных обменов для рассылки ведущего элемента на N-мерном гиперкубе может быть ограничено оценкой (log₂p)^2. При используемых предположениях (выбор ведущих элементов осуществляется самым наилучшим образом, количество итераций алгоритма равно (log₂p), а объем передаваемых данных между процессорами всегда является равным половине блока, т.е. (n/p)/2), коммуникационная сложность параллельного алгоритма быстрой сортировки определяется при помощи соотношения (α+w/β)(log₂p)^2 + (α+w(n/2p)/β)(log₂p), где α - латентность, β - пропускная способность сети, а w – размер элемента набора в байтах.

Общая трудоемкость алгоритма

С учетом полученных соотношений, она =[2(n/p)(log₂p) + (n/p)log₂(n/p)]*t + (α+w/β)(log₂p)^2 + (α+w(n/2p)/β)(log₂p).

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012