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

Работа с OpenMP. Распараллеливание цикла for - C++

Восстановить пароль Регистрация
 
wanderer5800
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 4
26.11.2013, 16:12     Работа с OpenMP. Распараллеливание цикла for #1
Доброго времени суток товарищи. При работе с OpenMP возник следующий вопрос
Почему код
C++
1
2
3
4
5
    int i;
    int Mass[19]={0};
    //omp_set_num_threads( 8 );
    #pragma omp parallel for
    for (i=1; i<2147483647; ++i) Mass[0]=i;
Работает медленнее, чем код
C++
1
2
3
    int i;
    int Mass[19]={0};
    for (i=1; i<2147483647; ++i) Mass[0]=i;
А именно
5.928s против 4.553s
------------------------
И если можно, кто знает подскажите как "убыстрить" выполнение цикла for.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 16:12     Работа с OpenMP. Распараллеливание цикла for
Посмотрите здесь:

Некорректная работа цикла for. C++
Распараллеливание C++
C++ Работа цикла - считывание 1000 элементов (double)
Распараллеливание с помощью OpenMP C++
Как выполнить распараллеливание с помощью OpenMP C++
Распараллеливание циклов с ипользованием OpenMP C++
Условие цикла if, неправильная работа if C++
C++ Работа цикла типа while. Найти ошибку в коде
C++ Для распараллеливание процессов лучше пользоваться OpenMP или Win32?
Неправильная работа цикла C++
Openmp Распаралеливание цикла C++
Не корректная работа цикла при вызове функции добавления пользователя C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.11.2013, 16:15     Работа с OpenMP. Распараллеливание цикла for #2
wanderer5800, так у Вас цикл к одним и тем же данным обращается. Параллелить как бы нечего.
Raali
587 / 291 / 19
Регистрация: 06.07.2013
Сообщений: 960
Завершенные тесты: 1
26.11.2013, 16:18     Работа с OpenMP. Распараллеливание цикла for #3
Цитата Сообщение от wanderer5800 Посмотреть сообщение
как "убыстрить" выполнение цикла for.
C++
1
Mass[0]=2147483646;
wanderer5800
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 4
26.11.2013, 16:23  [ТС]     Работа с OpenMP. Распараллеливание цикла for #4
Внутри цикла for также будет содержаться раскрутка Массива Mass и вывод его в текстовый файл, при выполнении некоторых условий. Неужели нельзя раскидать цикл по ядрам процессора?
Raali
587 / 291 / 19
Регистрация: 06.07.2013
Сообщений: 960
Завершенные тесты: 1
26.11.2013, 16:24     Работа с OpenMP. Распараллеливание цикла for #5
Цитата Сообщение от wanderer5800 Посмотреть сообщение
Внутри цикла for также будет содержаться раскрутка Массива Mass и вывод его в текстовый файл
представляю какая каша будет в текстовом файле,
и вообще надо смотреть конкретный пример, чтобы видеть что распараллелить
wanderer5800
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 4
26.11.2013, 16:34  [ТС]     Работа с OpenMP. Распараллеливание цикла for #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int Mass[19]={0};
    //#pragma omp parallel for
    for (i=1; i<10000000; ++i)
    {
        Mass[0]=i;
        temp=i;
        for (int j=1; j<19; j++)
        {
            for (int y=0; y<32; ++y) OLZSHIFT(temp);
            Mass[j]=temp;
            temp=Mass[j];
        }
    }
Ну например, что то вроде такого.
OLZSHIFT возвращает int
Yandex
Объявления
26.11.2013, 16:34     Работа с OpenMP. Распараллеливание цикла for
Ответ Создать тему
Опции темы

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