С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Распараллеливание вычислений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оптимизация обмена http://www.cyberforum.ru/cpp-beginners/thread1008327.html
Дан файл последовательного доступа размером не менее 384 Кбайт, содержащий информацию числового типа. Переписать этот файл в ОП 10 раз поблочно, с использованием алгоритма чтения "от конца файла"....
C++ не могу подключить framework google c++ testing в проект не могу подключить framework google c++ testing в проект пользовался инструкцией с сайта http://habrahabr.ru/company/infopulse/blog/164471/ выводит такие ошибки: как можно подключить? и что я... http://www.cyberforum.ru/cpp-beginners/thread1008325.html
Написать через оператор while C++
Здравствуйте, возник такой вопрос. Написал совсем простенькую программу и вроде бы всё хорошо, но тут возникла некоторая обходимость. #include "iostream.h" #include "math.h" int main() double...
C++ m - мерный массив
Дано n точек m мерного пространства, каждая точка имеет массу. Найти координаты точки наиболее удаленной от точки центра масс. Помогите плз...
C++ Создание классов и объектов http://www.cyberforum.ru/cpp-beginners/thread1008314.html
Написать программу создания класса. File: Имя файла, Размер, Дата создания, Количество обращений. Определить возможно ли записать файл на CD-диск.
C++ Функция сложения двух чисел здравствуйте все, сидящие на форуме в столь поздний час. Не могли бы вы мне чем нибудь помочь с заданием с института, а то я его совсем почти не понимаю( хоть какие нибудь идеи, или алгоритм, но... подробнее

Показать сообщение отдельно
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
15.11.2013, 15:30
Цитата Сообщение от ShishkOff92 Посмотреть сообщение
C++
1
2
#pragma omp parallel for shared(a) private(i,j) num_threads (thread_num) 
for (i=0; i<ISIZE; i++){ for (j=0; j<JSIZE; j++){ a[i][j] = 10*i +j; } }
здесь все ок - у каждого потока есть своя диагональ/несколько диагоналей, поэтому они не конфликтуют
Цитата Сообщение от ShishkOff92 Посмотреть сообщение
C++
1
2
3
4
5
6
7
   #pragma omp parallel for shared(a) private(i,j) num_threads (thread_num)
   for (i=1; i<ISIZE; i++){
      for (j = 0; j < JSIZE-1; j++){
               //a[ISIZE][0] = 10*ISIZE;
               a[i][j] = sin(0.00001*a[i-1][j+1]);
      }
   }
здесь это не так - за счет (i-1) и (j+1) есть ощущение, что разные потоки могут работать с одними и теми же данными, тоесть в ходу идут race condition'ы
надо прикидывать как правильно распараллелить второй случай
я бы для начала проверил, что в нем дело (убрав omp'ную директиву и сверив)

Добавлено через 13 часов 28 минут
для распараллеливания здесь нужно разворачивать матрицу на ленты
дело это не очень сложно, но достаточно неприятное
если это дело не простого интереса, то могу прикинуть как это сделать
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.