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

Цикл for и OpenMP - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ графика (Написать программу «цветок»: распускается и закрывается.) http://www.cyberforum.ru/cpp-beginners/thread873649.html
Написать программу «цветок»: распускается и закрывается.
C++ Нужно что бы если в текстбокс не вводиться текст, то срабатывала исключительная ситуация, которая просила бы юзера заполнить его. Нужно что бы если в текстбокс не вводиться текст, то срабатывала исключительная ситуация, которая просила бы юзера заполнить его. String^ GetName() { try { ... http://www.cyberforum.ru/cpp-beginners/thread873646.html
Нахождение элементов в строках C++
пишу программу, которая позволяет найти элементы в строках, все замечательно ищется, но только ПЕРВЫЙ элемент, как сделать так, чтобы на экран выводились ВСЕ элементы, удовлетворяющие поиску? Все...
C++ Ошибка
В чем ошибка? #include<iostream> #include<stdio.h> #include<ctime> #include<cmath> using namespace std; double dist(int *a, int i1, int i2){ return sqrt((a-a)*(a-a)+(a-a)*(a-a)); }...
C++ Поиск количества вхождений слова в текст http://www.cyberforum.ru/cpp-beginners/thread873622.html
Уважаемые форумчане, цель данной программы ясна - найти количество вхождений заданного слова в текст. До первого цикла while все работает. После -нет. Не стал бы беспокоить,но уже сутки не могу...
C++ while,for,do while Начал с while,в чем ашипка #include <iostream> #include <math.h> #include <clocale> using namespace std; int main(){ setlocale(LC_ALL,"rus"); double n,xn=0,pref; cout<<"Введите n =... подробнее

Показать сообщение отдельно
nonedark2008
931 / 670 / 147
Регистрация: 28.07.2012
Сообщений: 1,827

Цикл for и OpenMP - C++

21.05.2013, 21:59. Просмотров 538. Ответов 1
Метки (Все метки)

Недавно распаралелил свой цикл for, а теперь решил посмотреть на сколько я выигрываю от этого.
Но вот неожиданность, все многопоточные версии работают дольше, чем одномоточная.
Грешу на синхронизацию, но не понимаю в чем дело...
Вот собственно код цикла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#pragma omp parallel for shared(breakNum) num_threads(4)
    for (INT i = 0; i < 500; ++i)
    {
      if (breakNum != -1)
        continue; 
      if (randDivision(numArr[i]) == false)
        continue;
      if (millerRabinTest(numArr[i], 50) == false)
        continue;
      #pragma omp critical 
        breakNum = i;
    }
Практически в любом случае однопоточный работает быстрее многопоточного. Для наглядности, однопоточный работает в пределах от 7 до 13 секунд. А многопоточный где-то от 11 до 25. В чем может быть проблема? Кроме как breakNum нигде общих ресурсов больше не используется...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru