Facebook
From Putrid Cat, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 58
  1. #include <iostream>
  2. #include <omp.h>
  3.  
  4.  
  5.  
  6. int main()
  7. {
  8.  
  9.     int a1 = 2000;
  10.     int a2 = 2000;
  11.     int b1 = 2000;
  12.     int b2 = 2000;
  13.  
  14.     double start, stop;
  15.     start = omp_get_wtime();
  16.    
  17.     int **A = new int *[a1];
  18.     int **B = new int *[a2];
  19.     int **C = new int *[a1];
  20.     int **BT = new int *[a2];
  21.  
  22.     for (int i = 0;i < a1;i++) A[i] = new int[b1];
  23.     for (int i = 0;i < a2;i++) B[i] = new int[b2];
  24.     for (int i = 0;i < a1;i++) C[i] = new int[b2];
  25.     for (int i = 0;i < a2;i++) BT[i] = new int[b1];
  26.    
  27.     for (int i = 0;i < a1;i++)
  28.         for (int j = 0;j < b1;j++)
  29.             A[i][j] = 1;
  30.    
  31.     for (int i = 0;i < a2;i++)
  32.         for (int j = 0;j < b2;j++)
  33.             B[i][j] = 1;
  34.    
  35.     for (int i = 0;i < a2;i++)
  36.         for (int j = 0;j < b1;j++)
  37.             BT[i][j] = B[j][i];
  38.    
  39.     for (int i = 0;i < a1;i++)
  40.         for (int j = 0;j < b2;j++)
  41.             C[i][j] = 0;
  42.    
  43.     //#pragma omp parallel for num_threads(1)
  44.     for(int k = 0;k < a1;k++)
  45.         for (int i = 0;i < a2;i++)
  46.             for (int j = 0;j < b1;j++)
  47.                 C[k][i] += A[k][j] * BT[i][j];
  48.  
  49.     stop = omp_get_wtime();
  50.  
  51.    
  52.     std::cout << "A:" << a1 << "x" << b1 << " B:" << a2 << "x" << b2 <<std::endl;
  53.     std::cout << "Time: "<< stop - start;
  54.              
  55.    
  56.     return 0;
  57. }

Replies to Untitled rss

Title Name Language When
Re: Untitled Whipped Partdridge text 3 Years ago.