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

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

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

  • T1 - оценка трудоемкости решения задачи на одном процессоре.
  • Tp(calc) - оценка трудоемкости решения задачи на p процессорах.
  • Tp(comm) - оценка трудоемкости выполняемых операций передачи данных.

Oбщая трудоемкость последовательного алгоритма является пропорциональной n^3:

T1 = n^3

Cложность параллельного алгоритма без учета затрат на передачу данных может быть определена при помощи выражения:

Tp = n^3 / p

С учетом этой оценки показатели ускорения и эффективности принимают вид:

S = n^3 / (n^3/p) = p;
E = S /p = n^3 / p*(n^3 / p) = 1

Таким образом, общий анализ сложности дает идеальные показатели эффективности параллельных вычислений. Для уточнения полученных соотношений оценим более точно количество вычислительных операций алгоритма и учтем затраты на выполнение операций передачи данных между процессорами.

С учетом числа и длительности выполняемых операций время выполнения вычислений параллельного алгоритма может быть оценено следующим образом:

  • Количество операций умножения
    в процессе на каждой итерации хранится n/p строк матрицы А и n/p строк матрицы В. Для одной строки матрицы А производим n/p (по числу строк матрицы В) операций умножения на n элементов. Для n/p строк матрицы А получим:
    n/p * n/p *n
    операций умножения.
  • Kоличество операций сложения
    для n/p элементов одной строки матрицы А будет произведено (n/p - 1)*n операций сложения, для n/p строк матрицы А получим:
    n/p * (n/p-1) * n
    операций

Для р итераций получим:

Tp(calc) = p*(n^3/p^2 + n^2/p * (n/p-1))*t = (n^3/p + n^2 * (n/p-1))*t = n^2*(n/p + n/p -1) *t = n^2 * (2n/p - 1) * t,

t есть время выполнения одной операции сложения или умножения(считается равным).

Для оценки коммуникационной сложности параллельных вычислений будем предполагать, что все операции передачи данных между процессорами в ходе одной итерации алгоритма могут быть выполнены параллельно. Объем передаваемых данных между процессорами определяется размером полос и составляет n/p строк длины n. Общее количество параллельных операций передачи сообщений на единицу меньше числа итераций алгоритма. Тем самым, оценка трудоемкости выполняемых операций передачи данных может быть определена как

Tp(comm) = (p - 1) * ( a + w * n * (n/p) / b),

где a – латентность, b – пропускная способность сети передачи данных, а w есть размер элемента матрицы в байтах.

Тогда ускорение может быть получено как:

S = T1/(Tp(calc) + Tp(comm)) = n^3 / (n^2 * (2n/p - 1)*t + (p - 1)*(a + w*n*(n/p) /b)),

a эффективность E = S / p .

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012