Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/42: Рейтинг темы: голосов - 42, средняя оценка - 4.55
71 / 71 / 23
Регистрация: 22.05.2011
Сообщений: 528
1

Умножение матриц с использованием OpenMP

02.04.2012, 22:06. Просмотров 8770. Ответов 3
Метки нет (Все метки)

Здрасте. Есть следующая задача. Нужно реализировать умножение двух квадратных матриц с использованием OpenMP. Без него все пашет нормально, но вот когда использовать его, то нельзя изменять счетчик в теле цыкла. Долго копался в коде но не смог сделать. Вот мой код умножения, если можно переделать именно его для использования OpenMP буду очень признателен)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int** Multipl(int** matr1, int** matr2,int N)
{   
    clock_t start;
    int **rezultMatr=CreateMatr(N,false);
    int d=0,i=0,f=0;
 
      for(i=0;i<N;)
     {
         for(int j=0;j<N;j++)
         {
             rezultMatr[i][d]+=matr1[i][j]*matr2[j][d];
         }
 
        d++;
        if(d==N)
            {
              d=0;
              i++;
            }
     }
    printf("Multiplication time = %f\n\n", (long double) (clock() - start) / CLOCKS_PER_SEC);
 
    return rezultMatr;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2012, 22:06
Ответы с готовыми решениями:

Умножение матриц с использованием классов
Написал простенькую программу для умножения 2ух матриц. Все работает, собственно, кроме умножения....

Ленточное умножение матриц с использованием MPI
Помогите разобраться, почему в результирующей матрице С диагональные элементы считаются...

Умножение матриц с использованием динамических двумерных массивов
Нужно написать программу, которая будет считывать размер матриц и их члены с клавиатуры, умножать и...

Умножение треугольных матриц«Методы обработки разреженных матриц»
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным проблем нет. Доступ...

3
Делаю внезапно и красиво
Эксперт С++
1309 / 1224 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
03.04.2012, 07:56 2
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  int n ; // размер матрицы
  double sum;
  int i, j, k;
...
  double *MatrixA=new double [n*n];
  double *MatrixB=new double [n*n];
  double *MatrixC=new double [n*n];
...
#pragma omp parallel for private(j,k,sum)
 for(i=0;i<n;i++)
 {
      for(k=0;k<n;k++)
      {   
             sum=0;
             for(j=0;j<n;j++)
            {
               sum+=MatrixA[i*n+j]*MatrixB[j*n+k];
 
            }
             MatrixC[i*n+k]=sum;
      }
 
 }
1
0 / 0 / 0
Регистрация: 19.06.2013
Сообщений: 110
19.04.2015, 01:46 3
Deviaphan, немного не понял как вы перемножаете? обычно элемент на элемент
например:
C++
1
c[i][j]+=a[i][k]*b[k][j];
а в вашем случаи что?
0
1346 / 986 / 312
Регистрация: 28.07.2012
Сообщений: 2,743
19.04.2015, 02:12 4
Цитата Сообщение от pluprod Посмотреть сообщение
а в вашем случаи что?
Там то же самое, только метод индексации другой.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2015, 02:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перемножение матриц блоками. OpenMP
Помогите до работать программу. Необходимо чтобы каждый поток отдельно брал строку или столбец...

Параллельное программирование openmp (Умножение матрицы на вектор)
Есть задание : написать программу умножения матрицы на вектор. Сравнить время выполнения...

Умножение прямоугольных матриц с использованием функции пользователя.
Превратить квадратную матрицу порядка N, вывестиначальную и превращеную матрици. Найти сумму...

Перемножение матриц, умножение матриц на вектор, сложение матриц
Помогите пожалуйста написать программу, которая производит основные действия с матрицами...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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