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

Распараллеливание с помощью OpenMP - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обращение к вложенными структурами http://www.cyberforum.ru/cpp-beginners/thread565954.html
Описал структуру struct personal{ char firstname,lastname,middlename,nationality; struct date{ int day,month,year; }; }; Пишу следующее: personal pbuf; А потом в цикле:
C++ Скорректировать циклы под задачу Задача. Любимое занятие котенка Мурхика - прыгать по лесенке вверх, перепрыгивая через ступеньки. Лестница имеет определенное количество ступенек N. Котенок может одним прыжком преодолеть не более К ступенек. Для разнообразия Мурзик пытается каждый раз найти новый путь к вершине лестницы. Студентам второго курса факультета экономической информатики стало интересно, сколько различных способов есть... http://www.cyberforum.ru/cpp-beginners/thread565951.html
LNK 2001 C++
Error 6 error LNK2001: unresolved external symbol "private: static char * myText::szText" (?szText@myText@@0PADA) test.obj OOPCursEx Error 7 error LNK2001: unresolved external symbol "public: virtual bool __thiscall myRect::Draw(struct HDC__ *)" (?Draw@myRect@@UAE_NPAUHDC__@@@Z) test.obj OOPCursEx Ув. господа. Что означают эти ошибки и как их можно исправить?
C++ Пример из книги Лафоре
Здравствуйте! Не могли бы подсказать, по какой причине в листинге ниже переменные должны быть обязательно быть изначально изначально с определенным значением( например int chCount=0;int wdCount=0;char ch='a'; )? Почему если их оставить пустыми, то программа не будет выполняться, и компилятор ответит, что переменные не инициализированны вообще? Заранее спасибо. char ch='a'; #include...
C++ поиск и сравнения числа в строке http://www.cyberforum.ru/cpp-beginners/thread565933.html
даны строки:30...50,40...60,50...120.Надо выделить эти числа из строк и использовать для сравнения с условием в алгоритме.Как их выделить???помогите пожалуйста.
C++ Алгоритм Брона-Кербоша или помогите с Java перевести на С++ В общем Алгоритм Брона-Кербоша представляет из себя поиск наибольшего независимого множества вершин в графе... Мне надо написать эту программку на С++. Но у меня имеется алгоритм на Java, если кто умеет можете помочь перевести его на C++, но желательно без всяких классов и тд... Ну или может быть у кого-нибудь просто есть этот алгоритм. Алгоритм на Java: import java.util.*; // Search for... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
06.05.2012, 18:31     Распараллеливание с помощью OpenMP
Здесь все нити работают с одной и той же переменной g, изменяя её. Поэтому процессору надо постоянно синхронизировать значение этой переменной между ядрами. Промежуточные результаты стоить делать принадлежащими только одной нити, указав, например, private(g) в прагме. Переменные цикла по умолчанию приватные.
Но вообще пример не очень хороший, так как оптимизатор может его сильно изменить в зависимости от режима компиляции.
Предлагаю несколько модифицировать и сравнить быстродействие и результат на таком коде:
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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <omp.h>
 
using namespace std;
 
int const NPROC = 2;
int results[NPROC];
 
int main()
{
    double start, end;
    start = omp_get_wtime();
    int i, k, g;
 
    omp_set_num_threads(NPROC);
 
#pragma omp parallel private(g)
    {
        g = 1;
        for (i = 0; i<100000; i++)
        {
            for (k = 1; k<10000; k++)
            {
                g = g*k % 654321;
            }
        }
        results[omp_get_thread_num()] = g;
    }
 
    end = omp_get_wtime();
 
    cout << "time: " << end-start << endl;
    
    for (int i = 0; i < NPROC; ++i)
        cout << "r[" << i << "] = " << results[i] << endl;
    
    return 0;
}
Компилировать лучше с включённой оптимизацией.
 
Текущее время: 05:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru