Форум программистов, компьютерный форум CyberForum.ru

Распараллеливание потоков для нахождения суммы матрицы <omp.h> - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти координаты числа в бесконечной спирали из чисел http://www.cyberforum.ru/cpp-beginners/thread990640.html
Дана бесконечная во все стороны спираль из чисел, в центре которой - единица, нужно найти координаты числа по самому числу. (Прикрепил) В общем-то идея только одна, строить спираль в массиве Знаю, что должна быть формула.
C++ Написать программу, организующую заполнение целого массива из n элементов случайными значениями Написать программу, организующую заполнение целого массива из n элементов случайными значениями (n – целая переменная) и корректный вывод массива. http://www.cyberforum.ru/cpp-beginners/thread990633.html
Компрессия данных C++
Я хочу написать программу (что-то наподобие FreeARC) которая хорошо сжимает данные. Помогите мне подобрать алгоритмы компрессии для текстовой информации и картинок (всех типов), самое главное чтобы после обработки данные имели минимально возможный размер и по возможности бистро розархивировались. Также буду благодарен за предоставление исходных кодов этих (компрессорных) алгоритмов и их...
Определить численную характеристику массива C++
– Создать масив заданым способом; – определить численную характеристику; – сформировать новый масив на основе созданого Объясните суть работы! Раньше не изучал программирование, поэтому ничего не могу понять! Что нужно сделать? напишите тезисно
C++ Ошибка при вводе двумерного массива http://www.cyberforum.ru/cpp-beginners/thread990613.html
Здравствуйте! Нужно: 1. Написать программу с использованием двумерного массива для сохраниния данных о месячных продажах книжек (количество книжек, не деньги) за 3 года. 2. Требуется выдать общую сумму (к-во книжек) продаж за каждый год и за все годы вместе. Последнего я не сделал да и программа выдает ошибку под конец ввода. Вот сама программа #include <iostream>
C++ Создать рекурсивную функцию Водится любое целое число b и вещественныеa, c. Вычислить z=ab +cb, используя рекурсивную функцию xn1, если n = 0 xn= 1/ xn , если n< 0 xxn-1 , если n> 0 Как написать прогу на С++ по этой задаче? подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
16.11.2014, 23:27     Распараллеливание потоков для нахождения суммы матрицы <omp.h>
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
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <omp.h>
#include <stdio.h>
 
int main (void)
{
  int arr[10][10];
  int i, j;
  int sum, lsum;
 
  for (i = 0; i < 10; i++)
    for (j = 0; j < 10; j++)
      arr[i][j] = (i+1) * (j+1);
 
  sum = 0;
#pragma omp parallel for num_threads(4) private(j, lsum) shared(sum, arr)
  for (i = 0; i < 10; i++)
    {
 
#pragma omp critical
      {
        printf ("i=%d, thread=%d\n", i, omp_get_thread_num());
      }
 
      /* В потоке вычисляем сумму i-го ряда и помещаем в локальную переменную lsum */
      lsum = 0;
      for (j = 0; j < 10; j++)
        lsum += arr[i][j];
 
      /* Далее сумму по каждому ряду складываем в общую переменную sum */
#pragma omp atomic
      sum += lsum;
    }
 
  printf ("sum=%d\n", sum);
 
  return 0;
}
Добавлено через 19 минут
Тут тоже на дату создания поста внимания не обратил
 
Текущее время: 14:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru