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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
#1

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

04.01.2012, 19:04. Просмотров 1694. Ответов 3
Метки нет (Все метки)

Нужна помощь в разборе алгоритма, до меня никак не доходит по какой схеме этот алгоритм работает.
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++ в консоли - умножение матриц 10 на 10 с помощью...

Умножение матриц - C++
Ошибка: не хочет умножать. c=c+a*b; int **mat(int n){ int **matrix; matrix=new int *; for (int i=0; i<2; i++) ...

Умножение матриц - C++
Вообщем при вводе матриц размером 1х4 или 3х4, получается такое(на картинке), но если вводить матрицы к примеру 4х1 или 4х4, то все окей,...

Умножение матриц - C++
Задача такая : Для заданой квадратической матрицы А заданого порядка n найти произведение А * В, где элементы матрицы В узнаются за...

Умножение матриц - C++
Ребят помогите пожалуйста!!! Требуется написать программку умножения матриц,значения в матрице генерировать случайным образом число...

Умножение матриц - C++
Вычислить: q = min(2*MA*MB) где MA, MB – матрицы размером N1xN2. Числа N1 и N2 задаются пользователем в начале работы программы....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Сообщений: 482
05.01.2012, 04:05  [ТС]     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема #3
Vladimir., Может действительно все так просто... просто я пытался сделать по картинкам, алгоритм вроде понял, но слишком запарно получается...

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

Еще раз спасибо, реально думал что все гораздо сложнее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2012, 04:42     Умножение матриц делением на полосы (строки или столбцы) — ленточная схема
Еще ссылки по теме:

Умножение матриц - C++
Помогите с умножением матриц создал две идентичные таблицы 3х3 и тепер хочу вывести матрицу этих двух таблиц, но в переменной suma...

Умножение матриц - C++
#include &lt;iostream&gt; using namespace std; int main(int argc, const char * argv) { int **C; int n,k; /*...

Умножение матриц - C++
Помогите пожалуйста написать прогу для умножения матриц с использованием malloc. Юзал обычные проги для умножения, но вот с malloc что то...

Умножение матриц - C++
Здравствуйте, у меня простая прога для умножения матриц относительно произвольных размеров (&lt;100x100) #include &lt;iostream&gt; #include...

Умножение матриц - C++
Помогите умножить 2 матрицы размерностью 4х4, нужно создать ф-ю. Я пробовал, не получилось.. typedef int mat44; void...

Умножение матриц - C++
complex &lt;double&gt; c; for (int r = 0; r &lt; 4; r++) for (int col = 0; col &lt; 8; col++) for (int i =...


Искать еще темы с ответами

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

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru