Алгоритм 1: ленточная схема

advertisement
Нижегородский государственный университет
им. Н.И.Лобачевского
Факультет Вычислительной математики и кибернетики
Образовательный комплекс
Введение в методы параллельного
программирования
Лекция 9.
Параллельные методы умножения
матрицы на вектор
Гергель В.П., профессор, д.т.н.
Кафедра математического
обеспечения ЭВМ
Содержание
Постановка задачи
 Способы распределения данных
 Последовательный алгоритм
 Алгоритм 1 – ленточная схема, разделение
матрицы по строкам
 Алгоритм 2 – ленточная схема, разделение
матрицы по столбцам
 Алгоритм 3 – блочная схема
 Заключение

Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
2 из 45
Введение



Матрицы и матричные операции широко используются
в разных областях приложений науки и техники
Матричные вычисления требуют выполнения
вычислительно-трудоемких расчетов
Матричные операции предоставляют прекрасную
возможность для демонстрации многих приемов и
методов параллельного программирования
Матричные операции представляют собой
классическую область применения
параллельных вычислений
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
3 из 45
Постановка задачи
Умножение матрицы на вектор
или
c  A b
a0,1 , ..., a0,n 1   b0 
 c0   a0, 0 ,


 

...
  b1 
 c1   
 b 
c  a
,
a
,
...,
a
m 1,1
m 1, n 1   n 1 
 m 1   m 1, 0
 Задача умножения матрицы на вектор может быть
сведена к выполнению m независимых операций умножения
строк матрицы A на вектор b
n
ci  ai , b   ai j bj , 0  i  m
j 1
В основу организации параллельных вычислений может
быть положен принцип распараллеливания по данным
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
4 из 45
Способы распределения данных: ленточная схема
Непрерывное (последовательное) распределение
горизонтальные полосы
вертикальные полосы
A  ( A0 , A1 ,..., A p 1 ),
A  ( A0 , A1 ,..., A p 1 )T ,
Ai  ( i0 ,  i1 ,...,  ik 1 ) ,
Ai  (ai0 , ai1 ,..., aik 1 ),
i j  ik  j , 0  j  k , k  m / p
i j  il  j , 0  j  l , l  n / p
( ai , 0i  m,  ст роки м ат рицыA)
( i , 0  i  т,  ст олбцым ат рицыA)
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
5 из 45
Способы распределения данных: ленточная схема
Чередующееся (цикличное) горизонтальное разбиение
A  ( A0 , A2 ,..., Ap 1 )T ,
Ai  (ai0 , ai1 ,..., aik 1 ),
i j  i  jp, 0  j  k , k  m / p
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
6 из 45
Способы распределения данных: блочная схема
 A00

A
A
 s 11
 ai0 j0

Aij  

 aik 1 j0
A02
... A0 q 1 

...
,
As 12 ... As 1q 1 
ai0 j1
...
aik 1 j1
...ai0 j l 1 

,

aik 1 jl 1 
iv  ik  v, 0  v  k , k  m / s
ju  jl  u, 0  u  l , l  n / q
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
7 из 45
Последовательный алгоритм
// Алгоритм 7.1
// Последовательный алгоритм умножения матрицы на вектор
for ( i = 0; i < m; i++ ) {
c[i] = 0;
for ( j = 0; j < n; j++ ) {
c[i] += A[i][j]*b[j]
}
}
Для выполнения матрично-векторного умножения
необходимо выполнить m операций вычисления
скалярного произведения
 Трудоемкость вычислений имеет порядок O(mn).

Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
8 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Распределение данных – ленточная схема
(разбиение матрицы по строкам)

Базовая подзадача - операция скалярного
умножения одной строки матрицы на вектор
n
ci  ai , b    ai j bj , 0  i  m
j 1
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
9 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Выделение информационных зависимостей
– Базовая подзадача для выполнения вычисления должна
содержать строку матрицы А и копию вектора b.
После завершения вычислений
1
x
=
каждая базовая подзадача
будет содержать один из
2
x
=
элементов вектора результата c
3
x
=
– Для объединения результатов
расчетов и получения полного
вектора c на каждом из процессоров вычислительной
системы необходимо выполнить операцию обобщенного
сбора данных
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
10 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Схема информационного взаимодействия
1
x
=
2
x
=
3
x
=
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
11 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Масштабирование и распределение подзадач
по процессорам
– Если число процессоров p меньше числа базовых
подзадач m (p<m), базовые подзадачи могут быть
укрупнены с тем, чтобы каждый процессор выполнял
несколько операций умножения строк матрицы А и
вектора b. В этом случае, по окончании вычислений
каждая базовая подзадача будет содержать набор
элементов результирующего вектора с
– Распределение
подзадач
между
процессорами
вычислительной системы может быть выполнено с
учетом возможности эффективного выполнения
операции обобщенного сбора данных
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
12 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Анализ эффективности
– Общая оценка показателей ускорения и эффективности
Sp 
n2
n2 / p
p
Ep 
n2
p  (n / p)
2
1
Разработанный способ параллельных вычислений
позволяет достичь идеальных
показателей ускорения и эффективности
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
13 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Анализ эффективности (уточненные оценки)
- Время выполнения параллельного алгоритма, связанное непосредственно
с вычислениями, составляет
Tp calc  n p  2n  1  
- Длительность выполнения операции сбора данных при использовании
модели Хокни может быть определена при помощи следующего выражения:
T p (comm) 
log2 p 

(  2 i 1 w n / p  /  )   log 2 p   w n / p (2 log2 p   1) / 
i 1
Общее время выполнения параллельного алгоритма составляет
T p  (n / p)  2n  1      log 2 p  w(n / p) p  1 / 
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
14 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Программная реализация
– Первый этап: Инициализация и распределение данных
между процессорами:
• Получение конкретных числовых данных для размера матрицы
выделено в функции GetRowSize и GetRowNum,
• определение исходных данных для матрицы A (переменная
pMatrix) и вектора b (переменная pVector) на нулевом
процессе (функция DataGeneration),
• Пересылка исходных данных между процессорами вынесено в
отдельную функцию DataDistribution.
Программа
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
15 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Программная реализация
– Второй этап: умножение на вектор тех строк матрицы,
которые распределены на данный процесс и, таким
образом, получение блока результирующего вектора b
реализовано в функции ResultCalculation
Программа
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
16 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Программная реализация
– Третий этап: Функция ResultReplication объединяет
блоки результирующего вектора b, полученные на
разных процессах, и копирует вектор результата на все
процессы вычислительной системы (если количество
строк матрицы n не является кратным числу
процессоров p, объем пересылаемых данных для
процессов может оказаться разным, и для передачи
сообщений необходимо использовать функцию
MPI_Allgatherv библиотеки MPI)
Программа
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
17 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)…

Результаты вычислительных экспериментов
– Сравнение теоретических оценок и экспериментальных
данных
Размер матрицы
2 процессора
Модель
4 процессора
Эксперимент
Модель
6 процессоров
Эксперимент
Модель
Эксперимент
1000x1000
0,0145
0,0166
0,0075
0,0097
0,0053
0,0071
2000x2000
0,0574
0,0601
0,0291
0,0313
0,0198
0,0217
3000x3000
0,1289
0,1336
0,0649
0,0675
0,0439
0,0459
время
2 процессора
0,16
0,14
0,12
0,1
0,08
0,06
0,04
0,02
0
Эксперимент
Модель
1000
2000
3000
размер матрицы
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
18 из 45
Алгоритм 1: ленточная схема
(разбиение матрицы по строкам)

Результаты вычислительных экспериментов
– Ускорение вычислений
Параллельный алгоритм
Размер
матрицы
Последовательный
алгоритм
2 процессора
4 процессора
6 процессоров
Время
Ускорение
Время
Ускорение
Время
Ускорение
1000x1000
0,0291
0,0166
1,7471
0,0097
2,9871
0,0071
4,0686
2000x2000
0,1152
0,0601
1,9172
0,0313
3,6775
0,0217
5,1076
3000x3000
0,2565
0,1336
1,9203
0,0675
3,7991
0,0459
5,4181
6
ускорение
5
4
1000
3
2000
3000
2
1
0
2
4
6
количество процессоров
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
19 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Распределение данных – ленточная схема
(разбиение матрицы по столбцам)

Базовая подзадача - операция умножения столбца
матрицы А на один из элементов вектора b
x
Н.Новгород, 2005 г.
=
Основы параллельных вычислений: Умножение матрицы на
вектор
20 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Выделение информационных зависимостей
– Базовая подзадача для выполнения вычисления должна
содержать должна содержать i-й столбец матрицы А и i-е
элементы bi и ci векторов b и с
– Каждая базовая задача i выполняет умножение своего
столбца матрицы А на элемент bi, в итоге в каждой
подзадаче получается вектор c'(i) промежуточных
результатов
– Для получения элементов результирующего вектора с
подзадачи должны обменяться своими промежуточными
данными
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
21 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Схема информационного взаимодействия
Н.Новгород, 2005 г.
x
=
+
+
=
x
=
+
+
=
x
=
+
+
=
Основы параллельных вычислений: Умножение матрицы на
вектор
22 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Масштабирование и распределение подзадач по
процессорам
– В случае, когда количество столбцов матрицы n
превышает число процессоров p, базовые подзадачи
можно укрупнить, объединив в рамках одной подзадачи
несколько соседних столбцов (в этом случае исходная
матрица A разбивается на ряд вертикальных полос). В
этом случае, по окончании вычислений и проведения
операции обмена каждая базовая подзадача будет
содержать набор элементов результирующего вектора с
– Распределение подзадач между процессорами
вычислительной системы может быть выполнено с учетом
возможности эффективного выполнения операции обмена
элементами векторов частичных результатов
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
23 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Анализ эффективности
– Общая оценка показателей ускорения и эффективности
Sp 
n2
n2 / p
p
Ep 
n2
p  (n / p)
2
1
Разработанный способ параллельных вычислений
позволяет достичь идеальных
показателей ускорения и эффективности
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
24 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Анализ эффективности (уточненные оценки)
- Время выполнения параллельного алгоритма, связанное непосредственно
с вычислениями, составляет
T p calc  [n  2  n p  1  n]  
- Операция обобщенной передачи данных может быть реализована двумя
способами:
• каждый процессор последовательно передает свои данные всем остальным
процессорам вычислительном системы, длительность такой операции при
использовании модели Хокни:
T p1 comm    p  1  wn / p  /  
• в случае, когда топология вычислительной сети может быть представлена в
виде гиперкуба, операция обобщенной передачи может быть выполнена за
log2p шагов :
2
Tp comm  log 2 p(  w(n / 2) /  )
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
25 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Анализ эффективности (уточненные оценки)
- Общее время выполнения параллельного алгоритма при
использовании первого способа реализации операции обобщенной
передачи данных составляет:
T p1  [n  2  n p   1  n]     p  1  wn / p  /  
- При использовании второго способа реализации операции обобщенной
передачи данных, общее время выполнения алгоритма составляет:
Tp2  [n  2  n p  1  n]    log 2 p(  w(n / 2) /  )
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
26 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)…

Результаты вычислительных экспериментов
– Сравнение теоретических оценок и экспериментальных данных
Размер
матрицы
2 процессора
T p1 (модель1)
4 процессора
T p2 (модель2)
T p*
T p1 (модель1)
T p2 (модель2)
T p*
1000x1000
0,0145
0,0145
0,0144
0,0076
0,0075
0,00826
2000x2000
0,0574
0,0574
0,0610
0,0292
0,0292
0,03106
3000x3000
0,1289
0,1289
0,1201
0,0650
0,0651
0,06834
время
4 процессора
0,08
0,07
0,06
0,05
0,04
0,03
0,02
0,01
0
Эксперимент
Модель 1
Модель 2
1000
2000
3000
размер матрицы
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
27 из 45
Алгоритм 2: ленточная схема
(разбиение матрицы по столбцам)

Результаты вычислительных экспериментов
– Ускорение вычислений
Размер
матрицы
2 процессора
Последовательный
алгоритм
4 процессора
6 процессоров
Время
Ускорение
Время
Ускорение
Время
Ускорение
1000x1000
0,0291
0,0144
2,0225
0,0083
3,5185
0,00595
4,8734
2000x2000
0,1152
0,0610
1,8869
0,0311
3,7077
0,0213
5,4135
3000x3000
0,2565
0,1201
2,1364
0,0683
3,7528
0,04186
6,1331
7
ускорение
6
5
1000
4
2000
3
3000
2
1
0
2
4
6
количество процессоров
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
28 из 45
Алгоритм 3: блочная схема…

Распределение данных – блочная схема
предполагается, что количество процессоров p=s·q , количество строк
матрицы является кратным s, а количество столбцов – кратным q, то есть
m=k·s и l=n·q.
 A00

A

 As 11
A02
...
As 12
... A0 q 1 



... As 1q 1 
Н.Новгород, 2005 г.
 ai0 j0

Aij  

 aik 1 j0
ai0 j1
...
aik 1 j1
...ai0 j l 1 



aik 1 jl 1 
iv  ik  v, 0  v  k , k  m / s
ju  jl  u, 0  u  l , l  n / q
Основы параллельных вычислений: Умножение матрицы на
вектор
29 из 45
Алгоритм 3: блочная схема…

Базовая подзадача определяется на основе
вычислений, выполняемых над матричными
блоками:
– Подзадачи нумеруются индексами (i, j) располагаемых в подзадачах
матричных блоков
– Подзадачи выполняют умножение содержащегося в них блока матрицы A
на блок вектора b
b(i, j )  (b0 (i, j ),, bl 1 (i, j ))T ,
bu (i, j)  b ju , ju  jl  u, 0  u  l, l  n / q
– После перемножения блоков матрицы A и вектора b каждая подзадача
(i,j) будет содержать вектор частичных результатов c'(i,j),
l 1
c' (i, j )   ai ju b ju , iv  ik  v, 0  v  k , k  m / s,
u 0
Н.Новгород, 2005 г.
ju  jl  u, 0  u  l , l  n / q
Основы параллельных вычислений: Умножение матрицы на
вектор
30 из 45
Алгоритм 3: блочная схема…

Выделение информационных зависимостей
– Поэлементное суммирование векторов частичных
результатов для каждой горизонтальной полосы (редукция)
блоков матрицы A позволяет получить результирующий
вектор c
q 1
c 
 c' (i, j), 0    m, i   / s,     i  s
j 0
- организуем вычисления таким образом, чтобы при
завершении расчетов вектор c располагался поблочно в
каждой из вертикальных полос блоков матрицы A
- информационная зависимость базовых подзадач
проявляется только на этапе суммирования результатов
перемножения блоков матрицы A и блоков вектора b
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
31 из 45
Алгоритм 3: блочная схема…

Схема информационного взаимодействия
a)
b)
c)
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
32 из 45
Алгоритм 3: блочная схема…

Масштабирование и распределение подзадач
по процессорам
– Размер блоков матрицы А может быть подобран таким
образом, чтобы общее количество базовых подзадач
совпадало с числом процессоров p, p=s·q.
• Большое количество блоков по горизонтали (s) приводит к
возрастанию числа итераций в операции редукции результатов
блочного умножения,
• увеличение размера блочной решетки по вертикали (q)
повышает объем передаваемых данных между процессорами.
– При решении вопроса распределения подзадач между
процессорами должна учитываться возможность
эффективного выполнения операции редукции.
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
33 из 45
Алгоритм 3: блочная схема…

Анализ эффективности
– Общая оценка показателей ускорения и эффективности
Sp 
n2
2
n /p
p
Ep 
n2
p  (n / p)
2
1
Разработанный способ параллельных вычислений
позволяет достичь идеальных
показателей ускорения и эффективности
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
34 из 45
Алгоритм 3: блочная схема…

Анализ эффективности (уточненные оценки)
- Общее время умножения блоков матрицы А и вектора b может быть
определено как
T p calc   n / s   2  n q   1  
- Операция редукции данных может быть выполнена с использованием
каскадной схемы и включает, тем самым, log2q итераций передачи сообщений
размера wn s . Как результат, оценка коммуникационных затрат параллельного
алгоритма при использовании модели Хокни может быть определена при
помощи следующего выражения:
T p (comm)  (  w n / s  /  ) log 2 q 
Общее время выполнения параллельного алгоритма составляет
T p  n / s   2  n q   1    (  w n / s  /  ) log 2 q 
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
35 из 45
Алгоритм 3: блочная схема…

Результаты вычислительных экспериментов
– Сравнение теоретических оценок и экспериментальных
данных
Размер
матрицы
2 процессора
4 процессора
T p*
T p (модель)
T p(модель)
6 процессоров
T p*
T p (модель)
T p*
1000x1000
0,0145
0,0157
0,0073
0,0085
0,0049
0,0061
2000x2000
0,0574
0,0614
0,0288
0,0322
0,0193
0,0215
3000x3000
0,1290
0,1378
0,0646
0,0705
0,0431
0,0478
время
4 процессора
0,08
0,07
0,06
0,05
0,04
0,03
0,02
0,01
0
Эксперимент
Модель
1000
2000
3000
размер матрицы
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
36 из 45
Алгоритм 3: блочная схема

Результаты вычислительных экспериментов
– Ускорение вычислений
Размер
матрицы
Последовательный
алгоритм
2 процессора
4 процессора
6 процессоров
Время
Ускорение
Время
Ускорение
Время
Ускорение
1000x1000
0,0291
0,0157
1,8515
0,0085
3,4252
0,0061
4,7939
2000x2000
0,1152
0,0614
1,8768
0,0322
3,5815
0,0215
5,3456
3000x3000
0,2565
0,1378
1,8606
0,0705
3,6392
0,0478
5,3620
6
ускорение
5
4
1000
3
2000
3000
2
1
0
2
4
6
количество процессоров
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
37 из 45
Заключение

Рассмотрены возможные схемы разделения данных
между процессорами многопроцессорной
вычислительной системы для параллельного выполнения
матричных вычислений:
– Ленточная схема (горизонтальное и вертикальное разбиение),
– Блочная схема

Описаны три возможных параллельных реализации одной
из наиболее часто используемых матричных операций умножения матрицы на вектор:
– Алгоритм 1 – ленточное горизонтальное разбиение данных,
– Алгоритм 2 – ленточное вертикальное разбиение данных,
– Алгоритм 3 – блочное разбиение данных

Теоретические оценки позволяют достаточно точно
определить показатели эффективности параллельных
вычислений
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
38 из 45
Сравнение алгоритмов
7
6
ускорение
5
разделение матрицы
по строкам
4
разделение матрицы
по столбцам
3
блочное разделение
матрицы
2
1
0
2
4
6
количество процессоров
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
39 из 45
Вопросы для обсуждения
Почему при разработке параллельных
алгоритмов умножения матрицы на вектор
допустимо копировать вектор на все
процессоры?
 Какой из алгоритмов обладает наилучшими
показателями ускорения и эффективности?
 Может ли использование циклической схемы
разделения данных повлиять на время работы
каждого из представленных алгоритмов?
 Какие операции передачи данных необходимы в
алгоритмах умножения матрицы на вектор?

Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
40 из 45
Темы заданий для самостоятельной работы
Выполните реализацию параллельного
алгоритма, основанного на ленточном разбиении
матрицы на вертикальные полосы
 Выполните реализацию параллельного
алгоритма, основанного на разбиении матрицы
на блоки
 Постройте теоретические оценки времени работы
этих алгоритмов с учетом параметров
используемой вычислительной системы
 Проведите вычислительные эксперименты.
Сравните результаты реальных экспериментов с
полученными теоретическими оценками

Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
41 из 45
Литература
Гергель В.П. (2007). Теория и практика
параллельных вычислений. – М.: ИнтернетУниверситет, БИНОМ. Лаборатория знаний.
 Kumar V., Grama, A., Gupta, A., Karypis, G.
(1994). Introduction to Parallel Computing. - The
Benjamin/Cummings Publishing Company, Inc.
(2nd edn., 2003)
 Quinn, M. J. (2004). Parallel Programming in C
with MPI and OpenMP. – New York, NY: McGrawHill.

Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
42 из 45
Следующая тема

Параллельные методы матричного
умножения
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
43 из 45
Авторский коллектив
Гергель В.П., профессор, д.т.н., руководитель
Гришагин В.А., доцент, к.ф.м.н.
Сысоев А.В., ассистент (раздел 1)
Лабутин Д.Ю., ассистент (система ПараЛаб)
Абросимова О.Н., ассистент (раздел 10)
Гергель А.В., аспирант (раздел 12)
Лабутина А.А., магистр (разделы 7,8,9, система ПараЛаб)
Сенин А.В. (раздел 11)
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
44 из 45
О проекте
Целью
проекта
является
создание
образовательного
комплекса
"Многопроцессорные
вычислительные
системы
и
параллельное
программирование", обеспечивающий рассмотрение вопросов параллельных
вычислений, предусматриваемых рекомендациями Computing Curricula 2001
Международных организаций IEEE-CS и ACM. Данный образовательный комплекс
может быть использован для обучения на начальном этапе подготовки
специалистов
в
области
информатики,
вычислительной
техники
и
информационных технологий.
Образовательный комплекс включает учебный курс "Введение в методы
параллельного программирования" и лабораторный практикум "Методы и
технологии разработки параллельных программ", что позволяет органично
сочетать фундаментальное образование в области программирования и
практическое обучение методам разработки масштабного программного
обеспечения для решения сложных вычислительно-трудоемких задач на
высокопроизводительных вычислительных системах.
Проект выполнялся в Нижегородском государственном университете
им. Н.И. Лобачевского на кафедре математического обеспечения ЭВМ факультета
вычислительной математики и кибернетики (http://www.software.unn.ac.ru).
Выполнение проекта осуществлялось при поддержке компании Microsoft.
Н.Новгород, 2005 г.
Основы параллельных вычислений: Умножение матрицы на
вектор
45 из 45
Download