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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Try..catch..Throw http://www.cyberforum.ru/cpp-beginners/thread330029.html
Объясните пожалуйста разницу. Желательно с примерами, например деление на ноль, ну или чтобы было сразу несколько исключений. Расскажите пожалуйста про библиотеку exception. Заранее спасибо
C++ Оформление программы Как довести до ума программу на с++? Оформить, поменять цвет, шрифт, подписать??? http://www.cyberforum.ru/cpp-beginners/thread330026.html
C++ Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template <class T> class matrix { friend class diagonal; //Вложенный класс public: class diagonal;
C++ Создать класс время с данными-членами часы, минуты, секунды
отучилась на программиста уже год, но пока что как-то тяжко с заданиями, тем более с классами, не успели пройти их... помогите пожалуйста решить Создать класс время с данными-членами часы, минуты,...
C++ Как послать своё сообщение другому приложению? http://www.cyberforum.ru/cpp-beginners/thread330016.html
#define WM_MYMESSAGE 2000 void main() { HWND hWnd; hWnd = ::FindWindow(NULL,"MyApp"); ::SendMessage(hWnd,WM_MYMESSAGE,0,0); }
C++ Класс "Студент", реализовать динамический список "Группа студентов" реализовать динамический список " группа студентов". Узел: -группа -фамилия Функции списка: -добавление по алфавиту -удаление указанного -очистка списка -поиск студента -печать... подробнее

Показать сообщение отдельно
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
06.07.2011, 00:11
sever1313,

Средствами OpenMP можно так..:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
omp_set_num_threads(omp_get_num_procs()); //устанавливаем количество потоков равным количеству доступных процессоров в системе
 
#pragma omp parallel for shared(result, matrix_1, matrix_2) private(i, j, k) schedule(static, N / omp_get_num_threds()) 
// устанавливаем перемножаемые и результирующую матрицу общими для всех потоков;
 //переменные i, j, k делаем частными, т.е. для каждого потока своя;
 //устанавливаем статическое планирование распределения итераций по потокам (делим общее число итераций на потоки),
 //каждый поток будет выполнять примерно одинаковое количество итераций
for (i = 0; i < N; i++)
{
   for (j = 0; j < N; j++)
   {
      result[i][j] = 0;
      for (k = 0; k < N; k++)
         result[i][j] += matrix_1[i][k] * matrix_2[k][j];
   }
}
C
1
#pragma omp parallel for shared(result, matrix_1, matrix_2) private(i, j, k) schedule(static, N / omp_get_num_threds())
Собственно одна строчка и задает распараллеливание;
Не забудьте подключить <omp.h>
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru