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

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

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

OpenMP цикл for - C++

12.11.2015, 09:59. Просмотров 271. Ответов 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 чисел генерирует нулевой поток. А остальные вообще ничего не выводят. В чем ошибка? Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2015, 09:59     OpenMP цикл for
Посмотрите здесь:

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

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

Программирование на OpenMP - C++
Такой вопрос, у меня есть прога, которая работает ~сутки, не буду вдаваться что и как она делает, мне посоветовали для быстроты...

OpenMP и SIMD - C++
Добрый день. Не могу исправить код, чтобы использовалось 4 ядра, а не 1. В функцию proizv нужно добавить распараллеливание вычислений с...

Сортировка с использованием OpenMP - C++
Ребят, помогите пожалуйста распараллелить с помощью OpenMP сортировку подсчетом (Counting Sort). Код последовательной версии: ...

Создание потоков в openmp - C++
Доброго времени суток. Мне удалось распараллелить цикл for, но внутри данного цикла, помимо прочего, содержится ещё один цикл for,...

Параллельные сортировки с OpenMP - C++
Привет, читателю . Надеюсь не поленитесь прочесь до конца, кто понимает =) Вообщем суть такова, у меня есть функции 3 разных сортировок(...

OpenMP, тройной интеграл - C++
Здравствуйте! Стоит задача нахождения интеграла с использованием технологии OpenMP. Написал следующий код нахождения интеграла методом...

OpenMP долгий dinamic - C++
Добрый день. Была задача разобраться с OpenMP. Возникла следающая проблема- при распаралеливании цикла по методу dinamic, код: void...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
17540 / 5778 / 370
Регистрация: 30.03.2009
Сообщений: 15,909
Записей в блоге: 26
12.11.2015, 10:48     OpenMP цикл for #2
Если поправить опечатку "schedul" на "schedule", то всё работает нормально
У тебя точно включен режим поддержки OpenMP? Какой компилятор?
agent150
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 18
12.11.2015, 13:03  [ТС]     OpenMP цикл for #3
Evg, Спасибо за ответ. Это просто описка была. Режим поддержки OpenMP включен. До сегодняшнего дня все нормально было. А сейчас такое ощущение, как будто и правда не включаю поддержку OpenMP. При чем если я этот текст копирую в ту программу, которую создавал до сегодняшнего дня, то все тоже работает. Такое ощущение, что просто перестала включаться поддержка OpenMP.
Ответ Создать тему
Опции темы

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