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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
agent150
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 18
#1

OpenMP цикл for - C++

12.11.2015, 09:59. Просмотров 385. Ответов 2
Метки нет (Все метки)

Здравствуйте. Хочу что бы каждый поток вывел по 2 случайных числа, используя цикл for. Вот программа:

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
#include <iostream>
using namespace std;
#include <cmath>
#include <cstdlib>
#include <random>  
#include <ctime>
#include <fstream>
#include "omp.h"
 
int main()
{
    default_random_engine generator;
    normal_distribution<double> distribution(0., 1.);
#pragma omp parallel num_threads(10)
    {
#pragma omp for schedul(static, 2)
    
        for (int j = 0; j < 20; j += 1)
        {
            cout<<omp_get_thread_num()<<"  " << distribution(generator) << '\n' << "  ";
        }
        
    
    }
    system("pause");
    return 0;
 
}
Вызываю функцию omp_get_thread_num(), что бы понять какой поток выдал ответ. В результате оказывается, что все 20 чисел генерирует нулевой поток. А остальные вообще ничего не выводят. В чем ошибка? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2015, 09:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос OpenMP цикл for (C++):

Цикл for и OpenMP - C++
Недавно распаралелил свой цикл for, а теперь решил посмотреть на сколько я выигрываю от этого. Но вот неожиданность, все многопоточные...

Как завершить цикл в OpenMP - C++
Использую OpenMP для параллельных расчетов очень нужно при определенном условии экстренно завершить цикл break; с OpenMP не...

Распараллелить цикл со сложной индексацией используя OpenMP - C++
Пусть есть такой цикл, преобразующий массив: #define N 6 #define RADIUS 1 int arr; int flag; int x,y; do { flag = 0;

OpenMP. Время выполнения программы больше чем без OpenMP - C++
Сегодня первый раз сел за OpenMP. Читаю на сайте майкрософта как работает этот API. Так вот там сказано:&quot;Директива #pragma omp for...

OpenMP - C++
есть код в общем виде... #pragma omp parallel for for (i = 0; i &lt; n; ++i) { temp = B; // обращаемся for (j = 0; j &lt; k; ++j)...

OpenMP - C++
#pragma omp parallel private(i) shared(j) { #pragma omp for for (j = 0; j &lt; n; j++) { for (i = 0; i &lt; m;...

2
Evg
Эксперт CАвтор FAQ
18884 / 6839 / 498
Регистрация: 30.03.2009
Сообщений: 19,253
Записей в блоге: 30
12.11.2015, 10:48 #2
Если поправить опечатку "schedul" на "schedule", то всё работает нормально
У тебя точно включен режим поддержки OpenMP? Какой компилятор?
1
agent150
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 18
12.11.2015, 13:03  [ТС] #3
Evg, Спасибо за ответ. Это просто описка была. Режим поддержки OpenMP включен. До сегодняшнего дня все нормально было. А сейчас такое ощущение, как будто и правда не включаю поддержку OpenMP. При чем если я этот текст копирую в ту программу, которую создавал до сегодняшнего дня, то все тоже работает. Такое ощущение, что просто перестала включаться поддержка OpenMP.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2015, 13:03
Привет! Вот еще темы с ответами:

Параллельность в openMP - C++
Использую Visual Studio 2013. Проц - двухъядерный Intel E6550. omp_get_max_threads() возвращает 2, что логично, но прагма omp parallel...

Не работает openmp - C++
Написал простенькую программку с распараллеливанием собрал откомпилил, но распараллеливания нет. Программка выглядит так: ...

Технологии OpenMP - C++
Доброго времени суток. Объясните, почему на такой код void quickSortR(int left,int right,int *mass) { int i,j; bool f; double...

Вопросы по OpenMP - C++
Всем доброго времени суток! 1. Заметил, что потоки создаваемые в цикле for так и висят в диспетчере задач Windows до завершения работы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru