Форум программистов, компьютерный форум CyberForum.ru

Умножение матриц делением на полосы (строки или столбцы) — ленточная схема - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
04.01.2012, 19:04     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема #1
Нужна помощь в разборе алгоритма, до меня никак не доходит по какой схеме этот алгоритм работает.
http://www.intuit.ru/department/calc...aralltp_7.html
Пункт 7.3. вроде хорошо описанно, но я все равно не могу понять.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2012, 19:04     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема
Посмотрите здесь:

Умножение матриц C++
C++ Умножение матриц
Умножение матриц C++
Умножение матриц C++
C++ Умножение матриц
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
04.01.2012, 22:36     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема #2
всё просто:
как бы вы умножали матрицы в одном потоке?? (для наглядности - квадратные размера size*size)
C++
1
2
3
4
5
6
7
8
9
for(int i = 0;i<size; ++i){
//!!!
    for(int j = 0; j<size; ++j){
        c[i][j] = 0;
        for (int k = 0; k<size; ++k)
            c[i][j] += a[i][k]*b[k][j];
    }
//!!!
}
теперь, если мы хотим распараллелить задачу, нужно просто вынести блок кода обрамлённый восклицательными знаками в отдельные потоки. В этом случае вы получите искомый вами алгоритм.

ps:
умножение матриц неплохой (вернее, классический) пример для параллельных вычислений и очень дурной пример для многопоточности.
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
05.01.2012, 04:05  [ТС]     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема #3
Vladimir., Может действительно все так просто... просто я пытался сделать по картинкам, алгоритм вроде понял, но слишком запарно получается...

А вообще потом нужно сделать его для параллельных вычислений, но это уже другая история=)

Еще раз спасибо, реально думал что все гораздо сложнее.
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
17.01.2012, 04:42  [ТС]     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема #4
Такой вопрос возможно ли применить алгоритм параллельного ленточного умножения для матриц
N*M*K

точнее говоря можно ли при любом количестве процессов и при любой размерности матриц применить этот алгоритм???

просто везде примеры квадратных матриц, а про прямоугольные нигде ни слова...
Yandex
Объявления
17.01.2012, 04:42     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема
Ответ Создать тему
Опции темы

Текущее время: 00:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru