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

OpenMP долгий dinamic - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Двусвязаный список и очередь http://www.cyberforum.ru/cpp-beginners/thread580478.html
Помогите написать пожалуйста программы 1) За один просмотр очереди с информационным полем - действительные числа напечатать информационные элементы в следующем порядке: сначала - все числа, меньшие а, затем — все числа из отрезка , и наконец — все остальные числа, сохраняя исходный порядок в каждой из этих трех групп чисел. Числа а и b задает пользователь. 2) Даны указатели Рх и Ру на два...
C++ задача расчет произвольного треугольника по трем значениям Дан произвольный треугольник ABC, для которого определен следующий набор характерных параметров: а, b, с — стороны треугольника; α, β, γ — углы (в градусах); h — высота, опущенная на сторону с; S — площадь; Р — периметр треугольника. По трем заданным параметрам вычислить все остальные. пожалуйста подкиньте алгоритм решения этой задач, заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread580450.html
Исправьте, пожалуйста, код C++
нужно определить класс поезд. в программе сделать вывод массива объектов, упорядочение массива по номерам поездов, вывод расписания, соответствующему заданому маршруту #include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h> #include <ctype.h> #include <iomanip.h> #define n 4
обработка функции в textbox C++
подскажите как сделать в 1м textbox вводим значение x: что то вроде 2+3, во 2м textbox мы брали значение 1го текстбокса, и использовали его как переменную х, вроде этого: x*3+x*x+3
C++ Описать структуру с именем WORKER (найти ошибку) http://www.cyberforum.ru/cpp-beginners/thread580430.html
Описать структуру с именем WORKER, содержащую поля: фамилия и инициалы работника; название занимаемой должности; зарплату; год поступления на работу. Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из 5 структур типа WORKER; вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;...
C++ Вычислить Z с использованием функции Вычислить Z с использованием функции, где xmax ,xmin ,ymax ,ymin – максимальные и минимальные элементы соответственно массива x(5,2) и массива y(3,4). подробнее

Показать сообщение отдельно
BAH--zer
0 / 0 / 0
Регистрация: 23.02.2012
Сообщений: 5
20.05.2012, 20:05  [ТС]     OpenMP долгий dinamic
У меня не выводится матрица на экран. Все остальные методы отрабатывают на 30-40 процентов быстрее. А вот dinamic практически наравне со стандартным.

Добавлено через 2 часа 35 минут
Решил следующим образом:
Команда
C++
1
schedule(dynamic, 15)
означает, что каждому потоку будет дано 15 итераций цикла, после их выполнения поток получает еще 15 итераций, и так пока не закончится цикл. Необходимо увеличить число итераций цикла для каждого потока, а так же явно задать число потоков.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void ResultCalculation15Din (int* pMatrix, int* pVector, int* pResult, int Size) 
    {// multiplication
    for(int tmp=0; tmp<100; tmp++)
        {
        omp_set_num_threads(15);
        #pragma omp parallel for schedule(dynamic, 1000) shared(pMatrix, pVector, pResult) firstprivate(Size) 
        for (int i=0; i<Size; i++) 
            {
            pResult[i]=0;
            for (int j=0; j<Size; j++)
                pResult[i] += pMatrix[i*Size+j]*pVector[j];
            }
        }
    }
 
Текущее время: 04:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru