Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2011, 21:51   #11
Borisov
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 10
По умолчанию

В общем вот что я сделал: (Непонимание в следующем: ну прописал я #pragma omp parallel - только вот не могу наглядно увидеть работает ли это.. Просьба просмотреть понимающих..
присутствует 2 пункта в одном я подсчитываю сумму параллельно в другом нет - не вижу разницы в скорости выполнения - Есть ли она вообще??? )
Код:
#include "stdafx.h"
#include <fstream>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <omp.h>
using namespace std;

//функция сортировки строк матрицы
void quickSort(int left, int right, int* arr)
{
int i = left, j = right;
double pivot = arr[(left + right) / 2];
while (i <= j)
{
while (arr[i] < pivot)
i++;
while (pivot < arr[j])
j--;
if (i <= j)
{
double tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
if (left < j)
quickSort(left, j, arr);
if (i < right)
quickSort(i, right, arr);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
#ifndef _OPENMP // объявление
int i=0,j=0,n=100,m=1000,**a;
srand(time(0));
ofstream fout("mat.txt");
char stroka[3000];
//Выделение и заполнение памяти
 a=(int**)new int*[n];
 #pragma omp parallel for schedule(dynamic, 100) 
 {
 for(i=0;i<n;i++)
	{
	a[i]=new int[m];
	for(j=0;j<m;j++)
		{a[i][j]= rand() % 10 ;}//Заполняем матрицу числами от 0 до 9
	}
 }
//Вывод матрицы на экран
 #pragma omp parallel for
 {
 for(i=0;i<n;i++)
   {
   for(j=0;j<m;j++)
	  {cout<<a[i][j]<<" "; }
   cout<<endl;
   }
 }
cout<<endl<<endl;
getch();
 // подсчитаем сумму элементов в каждой строке 
 int *с = new int[n];
   for(i=0;i<n;i++)
      {с[i]=0;
        for(j=0;j<m;j++)
           {
	         с[i]+=a[i][j];
           }
       cout<<с[i]<<" ";
       }
 cout<<endl<<endl;
 getch(); 
// подсчитаем сумму элементов в каждой строке параллельно
int *b = new int[n];
#pragma omp parallel
{
 #pragma omp for schedule(dynamic, 100)
   for(i=0;i<n;i++)
      {b[i]=0;
        for(j=0;j<m;j++)
           {
	         b[i]+=a[i][j];
           }
       cout<<b[i]<<" ";
       }
 cout<<endl<<endl;
 getch(); 
}
// отсортируем строки параллельно
#pragma omp parallel
{
 #pragma omp for schedule(dynamic, 100)
for (i=0; i<n; i++)
quickSort(0, m-1, a[i]);
}
// запишем матрицу в текстовый файл
fout<<n<<endl;
fout<<m<<endl;
for(i=0;i<n;i++)
   {
   for(j=0;j<m;j++)
		{fout<<a[i][j]<<" ";}
     fout<<endl;
   }
// считаем матрицу из текстового файла

ifstream inF("mat.txt");
if (!inF)
{
cout << endl << "Error !";
}
inF >>n;
inF >>m;
 a=(int**)new int*[n];
 for(i=0;i<n;i++)
	{
	a[i]=new int[m];
	for(j=0;j<m;j++)
		{inF >> a[i][j];}
	}

inF.close();
 for(i=0;i<n;i++)
 {
   for(j=0;j<m;j++)
   {
	   cout<<a[i][j]<<" ";
   }
   cout<<endl;
 }

getch();
//освободение памяти
delete[] b;
 for(i=0;i<n;i++)delete a[i];
 delete (int*)a;
 getch();
#endif
	return 0;
}
Borisov вне форума Ответить с цитированием
Старый 10.01.2011, 22:32   #12
Borisov
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 10
По умолчанию

Возможно я некорректно поставил вопрос..
Готов исправиться, вы только подскажите в каком направлении .. В общем что конкретно вызвало непонимание?
Borisov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Транспонирование матрицы . Порядка [м,н]. Alex_sim Общие вопросы .NET 4 03.05.2010 23:14
Матрицы:функция изменения порядка столбцов матрицы Fajyz Помощь студентам 0 13.01.2010 09:40
Определение собственных значений для матрицы 2-го порядка Игорь777 Помощь студентам 0 26.04.2009 18:33
Формирование квадратной матрицы порядка n по заданному образцу. NeAlSe Помощь студентам 7 05.12.2007 16:04