Опубликован: 28.07.2007 | Доступ: свободный | Студентов: 2035 / 507 | Оценка: 4.53 / 4.26 | Длительность: 25:10:00
ISBN: 978-5-9556-0096-3
Специальности: Программист
Лекция 6:

Параллельные методы умножения матрицы на вектор

6.5.5. Результаты вычислительных экспериментов

Рассмотрим результаты вычислительных экспериментов, выполненных для оценки эффективности приведенного выше параллельного алгоритма умножения матрицы на вектор. Кроме того, используем полученные результаты для сравнения теоретических оценок и экспериментальных показателей времени вычислений и проверим тем самым точность полученных аналитических соотношений. Эксперименты проводились на вычислительном кластере Нижегородского университета на базе процессоров Intel Xeon 4 EM64T, 3000 МГц и сети Gigabit Ethernet под управлением операционной системы Microsoft Windows Server 2003 Standard x64 Edition и системы управления кластером Microsoft Compute Cluster Server (см. п. 1.2.3).

Определение параметров теоретических зависимостей (величин \tau , w, \alpha , \beta ) осуществлялось следующим образом. Для оценки длительности \tau базовой скалярной операции проводилось решение задачи умножения матрицы на вектор при помощи последовательного алгоритма и полученное таким образом время вычислений делилось на общее количество выполненных операций – в результате подобных экспериментов для величины \tau было получено значение 1,93 нсек. Эксперименты, выполненные для определения параметров сети передачи данных, показали значения латентности \alpha и пропускной способности \beta соответственно 47 мкс и 53,29 Мбайт/с. Все вычисления производились над числовыми значениями типа double, т.е. величина w равна 8 байт.

Результаты вычислительных экспериментов приведены в таблице 6.1. Эксперименты проводились с использованием двух, четырех и восьми процессоров. Времена выполнения алгоритмов указаны в секундах.

Таблица 6.1. Результаты вычислительных экспериментов для параллельного алгоритма умножения матрицы на вектор при ленточной схеме разделения данных по строкам
Размер матрицы Последовательный алгоритм Параллельный алгоритм
2 процессора 4 процессора 8 процессоров
Время Ускорение Время Ускорение Время Ускорение
1000 0,0041 0,0021 1,8798 0,0017 2,4089 0,0175 0,2333
2000 0,016 0,0084 1,8843 0,0047 3,3388 0,0032 4,9443
3000 0,031 0,0185 1,6700 0,0097 3,1778 0,0059 5,1952
4000 0,062 0,0381 1,6263 0,0188 3,2838 0,0244 2,5329
5000 0,11 0,0574 1,9156 0,0314 3,4993 0,0150 7,3216

Сравнение экспериментального времени T'_p выполнения параллельного алгоритма и теоретического времени Tp, вычисленного в соответствии с выражением (6.8), представлено в таблице 6.2 и в графическом виде на рис. 6.3 и 6.4.

Таблица 6.2. Сравнение экспериментального и теоретического времени выполнения параллельного алгоритма умножения матрицы на вектор, основанного на разбиении матрицы по строкам
Размер объектов 2 процессора 4 процессора 8 процессоров
Tp T'p Tp T'p Tp T'p
1000 0,0069 0,0021 0,0108 0,0017 0,0152 0,0175
2000 0,0132 0,0084 0,0140 0,0047 0,0169 0,0032
3000 0,0235 0,0185 0,0193 0,0097 0,0196 0,0059
4000 0,0379 0,0381 0,0265 0,0188 0,0233 0,0244
5000 0,0565 0,0574 0,0359 0,0314 0,0280 0,0150
График зависимости экспериментального T'p и теоретического Tp времени выполнения параллельного алгоритма на двух процессорах от объема исходных данных (ленточное разбиение матрицы по строкам)

Рис. 6.3. График зависимости экспериментального T'p и теоретического Tp времени выполнения параллельного алгоритма на двух процессорах от объема исходных данных (ленточное разбиение матрицы по строкам)
Зависимость ускорения от количества процессоров при выполнении параллельного алгоритма умножения матрицы на вектор (ленточное разбиение по строкам) для разных размеров матриц

Рис. 6.4. Зависимость ускорения от количества процессоров при выполнении параллельного алгоритма умножения матрицы на вектор (ленточное разбиение по строкам) для разных размеров матриц