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

Цикл for и OpenMP - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ графика (Написать программу «цветок»: распускается и закрывается.) http://www.cyberforum.ru/cpp-beginners/thread873649.html
Написать программу «цветок»: распускается и закрывается.
C++ Нужно что бы если в текстбокс не вводиться текст, то срабатывала исключительная ситуация, которая просила бы юзера заполнить его. Нужно что бы если в текстбокс не вводиться текст, то срабатывала исключительная ситуация, которая просила бы юзера заполнить его. String^ GetName() { try { return textBoxName->Text; } http://www.cyberforum.ru/cpp-beginners/thread873646.html
Нахождение элементов в строках C++
пишу программу, которая позволяет найти элементы в строках, все замечательно ищется, но только ПЕРВЫЙ элемент, как сделать так, чтобы на экран выводились ВСЕ элементы, удовлетворяющие поиску? Все делается через стринги :) вот кусок программы: label2: SetConsoleTextAttribute(hStdout, 15); cout<<"Введите символы для поиска "<<endl; cin>>str4; cout<<"Введенные символы: "<<endl; ...
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)); } int main()
C++ Поиск количества вхождений слова в текст http://www.cyberforum.ru/cpp-beginners/thread873622.html
Уважаемые форумчане, цель данной программы ясна - найти количество вхождений заданного слова в текст. До первого цикла while все работает. После -нет. Не стал бы беспокоить,но уже сутки не могу найти ошибку. Отпишитесь если не сложно. Заранее спасибо. #include <iostream> #include <fstream> #include <cstring> #include <clocale> using namespace std; int main() { ...
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 = ";cin>>n; подробнее

Показать сообщение отдельно
nonedark2008
889 / 628 / 126
Регистрация: 28.07.2012
Сообщений: 1,697

Цикл for и OpenMP - C++

21.05.2013, 21:59. Просмотров 524. Ответов 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 нигде общих ресурсов больше не используется...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru