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

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

Трудоёмкость последовательного алгоритма (который к тому же применяется как один из шагов параллельного) в среднем составляет n*log(n) оперций.

Оценим трудоёмкость параллельного алгоритма. На первом этапе производится сортировка локальных последовательностей. Как нетрудно увидеть, трудоёмкость данной операции - n/p log(n/p). На втором этапе (слияния) мы производим log(p) параллельных шагов слияния. Получаем последовательность 2n/p, 4n/p, 8n/p,..., n/p * 2^log(p). Сумма этой последовательности равна 2n * (p - 1) / p или, если несколько огрубить, 2n.

Итого получаем сложность

n/p log(n/p) + 2n

Эффективность алгоритма в данном случае

p*log(n) / (log(n/p) + 2p)
Ускорение
log(n) / (log(n/p) + 2p)

Общее время всех выполняемых в ходе сортировки операций передачи блоков можно оценить при помощи соотношения вида

Tp(comm)=p(a+w(n/p)/b),
где a - латентность, b - пропускная способность сети передачи данных, w - размер элемента упорядочиваемых данных в байтах.
С учетом трудоемкости коммуникационных действий общее время выполнения параллельного алгоритма сортировки определяется следующим выражением (t-время выполнения базовой операции сортировки):
Tp=((n/p)log2(n/p)+2n)t+p(a+w(n/p)/b)

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012