Распараллеливание С Ипользованием Openmp

Тема в разделе "Общие вопросы по С и С++", создана пользователем Shperung, 11 окт 2012.

  1. Shperung

    Shperung Гость

    Репутация:
    0
    Коректно ли я все сделал ? Время роботы программы с распараллеливанием дольше на 1 сек чем без распараллеливания, ожидалось наоборот .

    Код:
    #include <stdio.h>
    #include <iostream>
    #include <conio.h>
    #include <time.h>
    #include <stdlib.h>
    #include <omp.h>
    using namespace std;
    
    int main()
    {
    srand(time(NULL));
    int heilth= 1000;
    int width = 40;
    double start_time,end_time,time;
    int a[1000][40];
    int i,j;
    
    start_time = omp_get_wtime();
    #pragma omp parallel for private(i,j)\
    shared (a)
    
    for ( i = 0; i<heilth;++i)
    {
    for( j=0; j<width; j++)
    {
    a[i][j] = 0+rand()%10;
    cout<<a[i][j]<<" ";
    }
    cout<<endl<<endl;
    }
    cout<<endl<<endl;
    int sum =0;
    int collNum = 0;
    cout<<endl<<endl;
    cout<<"--------Matrix "<<heilth<<" x "<<width<<"--------"<<endl<<endl;
    
    
    collNum = 0+rand()%width - 1;
    
    for (int i = 1; i<heilth;i=i+2)
    
    sum+= a[i][collNum];
    
    
    cout<<endl<<"Sum of even numbers on the placement of elements "<<collNum<<" coll = "<<sum<<endl;
    
    end_time = omp_get_wtime();
    
    cout<<endl<<endl;
    time=end_time-start_time;
    
    cout <<"Time= "<<time;
    
    getch();
    
    
    return 0;
    }
     

Поделиться этой страницей