Форум программистов, компьютерный форум, киберфорум
OpenMP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
OpenMP Как ускорить программу с OpenMP Добрый вечер. Я новичок в параллельном программировании, моя задача подсчитать минимальный и максимальный элемент массива. Но почти на всех размерах массива скорость параллельной функции сильно ниже, чем последовательной. Какая у этого может быть причина? #include "stdafx.h" #include <iostream> #include <Windows.h> #include "stdlib.h" #include <omp.h> #include <iomanip> https://www.cyberforum.ru/ openmp/ thread2233748.html OpenMP Параллельные вычисления с использованием параллельных секций в OpenMP
Доброго времени суток, ребята! Ребят, нужно вычислить интеграл на отрезке для функции. Нужно разбить вручную отрезок на несколько частей и запустить вычислений в параллельных регионах. Вот что получилось написать. Но алгоритм не создаёт копии нужных переменных для каждого потока, хотя я это указываю в параметре (firstprivate (startTime,endTime)), не работает функция reduction (+:function)....
OpenMP OpenMPI, цикл while https://www.cyberforum.ru/ openmp/ thread2232251.html
Доброго времени суток! Я только недавно начал вливаться в тему параллельного программирования, в связи с этим возникли вопросы по моему проекту. У меня есть функция, которая генерирует псевдослучайное число с нормальным распределением. double rand_gaus() { double u, v, r; do {
OpenMP Подключение openMP Visual Studio 2017 Здравствуйте, ребята! Ребят пытаюсь подключить openMP и протестировать. Создал проект С++, в свойствах проекта установил Поддержка openMP - "Да". Подключил библиотеку #include <omp.h>. Написал следующий код для тестирования: int main() { #pragma omp parallel { cout << "Hellow World!!!\n"<<endl; } https://www.cyberforum.ru/ openmp/ thread2231436.html
Параллельные секции из OpenMP OpenMP
Необходимо, чтобы две независимые последовательности операций выполнялись параллельно (в перспективе должен быть сервер, работающий с данными в одном потоке и ждущий команд с терминала в другом), решил попробовать использовать директиву parallel sections, но она не сработала, что нужно сделать для исправления? #include <omp.h> #include <stdio.h> #include <string.h> int main(int argc,...
OpenMP Генерация случайных чисел несколькими потоками - OpenMP необходимо реализовать генерацию случайных чисел с использованием нескольких потоков и выполнить минимаксную нормализацию вот сделал некоторые заготовки а как дальше делать в параллелизме не знаю помогите //main.cpp #include "ex_function.h" #include <iostream> using namespace std; int main() https://www.cyberforum.ru/ openmp/ thread2212766.html
OpenMP OpenMP с Intel C++ Compiler Добрый день, пытаюсь найти лучший вариант для программирования , пока получается, что windows 10+intel c++ compiler с openmp быстрее всего работают(на Линукс вообще ужас, 5 секунд против 0.22с на Винде(на OpenACC около 3.5 сек), правда это на GCC компиляторе, код по сути один и тот же, универсальный ).Так вот можно ли как-то к qt creator приделать intel compiler или к чему-то другому его... https://www.cyberforum.ru/ openmp/ thread2201372.html OpenMP OpenMP
Задание 2. Исследовать влияние настроек параметра shedule (не менее 4 опций ) парадигмы #omp parallel for. Вывести время выполнения циклов для: Итераций с равномерным временем выполнения; Итераций с неравномерным временем выполнения – нечетные итерации выполняются дольше. Итераций с неравномерным временем выполнения –итерации в первой половине цикла выполняются дольше. Результат вывести в...
OpenMP Не работает openMP, сбой компиляции Здравствуйте! Я включил поддержку OpenMP в свойствах проекта в Visual Studio 2010 (прописал значение "Да"), но произошел сбой компиляции следующей программы: #include "stdafx.h" #include <omp.h> #include <iostream> #include <cstdio> using namespace std; int _tmain(int argc, _TCHAR* argv) https://www.cyberforum.ru/ openmp/ thread2184498.html OpenMP Не удается правильно распараллелить программу табулирования функции, используя OpenMP Необходимо было написать программу для табулирования функции. Расчеты выводит правильные, но время выполнения программы увеличивается с увеличением числа потоков, а должно быть наоборот. Делала с использованием OpenMP Не могу понять в чем дело, то ли время неправильно считает, то ли я распараллелила не так(( Помогите найти ошибку #include "stdafx.h" #include <omp.h> #include <stdio.h>... https://www.cyberforum.ru/ openmp/ thread2152258.html
OpenMP OpenMp параллельная сортировка
Помогите реализовать параллельный метод пузырьковой сортировки. int N; int* mass; void bubbleSort(int *mass, int size) { // Для всех элементов for (int i = 0; i < size - 1; i++) { for (int j = (size - 1); j > i; j--) // для всех элементов после i-ого
OpenMP OpenMP и решение СЛАУ методом Гаусса https://www.cyberforum.ru/ openmp/ thread2148223.html
6 / 6 / 1
Регистрация: 04.01.2017
Сообщений: 465
0

Распараллеливание вычисления интеграла используя редукции (OpenMP) - OpenMP - Ответ 12351569

30.04.2018, 13:31. Показов 5731. Ответов 15
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, ребята!

Ксть задача распараллелить процесс вычисления интеграла методом редукцией. В интернете прочитал, что редукция в данном случае это разбиение задачи на более простые задачи. Первое о чём подумал, это распаралелить по циклу for(...), который вычисляет значение функции в каждой точке, но это не работает так переменная в данном цикле должна быть типа int, но в этой задаче это невозможно, т.к. значение независимой переменной должна быть типа double.
Вот этот вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
double integralReduction(double a, double b, double steps)
{
    int n = 3;
    double result = 0;
    double function = 0;
    double dx = (b - a) / steps;
    double startTime = 0, endTime = 0, time;
    omp_set_num_threads(n);
    double i;
#pragma omp parallel
    {
        startTime = omp_get_wtime();
#pragma omp for reduction (+:function)
            for (i = a; i <b; i += dx)
            {
                function += log(i) - (3 * sin(3 * i));
            }
            endTime = omp_get_wtime();
            printf("Time work: %f\nNumber potok: %d\n", endTime - startTime, omp_get_thread_num());
            result = function * dx;
    }
    return result;
}
Потом возник следующий вариант
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
double integralReduction(double a, double b, double steps)
{
    int n = 3;
    double result = 0;
    double function = 0;
    double dx = (b - a) / steps;
    double x = a;
    double startTime = 0, endTime = 0;
    omp_set_num_threads(n);
    int i;
#pragma omp parallel
    {
        startTime = omp_get_wtime();
#pragma omp for reduction (+:result,x) private (i)
            for (i = 0; i <steps; i++)
            {
                x += dx;
                function += log(x) - (3 * sin(3 * x));
                result += function * dx;
            }
            endTime = omp_get_wtime();
            printf("Time work: %f\nNumber potok: %d\n", endTime - startTime, omp_get_thread_num());
    }
    return result;
}
Но тут выдаёт следующею ошибку:
"Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C3017 неверный вид проверки завершения в операторе For директивы OpenMP Integral(OpenMP) d:\учеба фмит 2 курс\парал-ое программ-ие\integral(openmp)\integral(openmp)\integral(openmp).cpp 70
"
Подскажите пожалуйста в чём ошибка?

Вернуться к обсуждению:
Распараллеливание вычисления интеграла используя редукции (OpenMP) OpenMP
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2018, 13:31
Готовые ответы и решения:

Распараллеливание с помощью OpenMP
Здравствуйте, уважаемые участники форума! Имеется цикл вида:for (i=1; i&lt;number; i++) { do...

OpenMP распараллеливание цикла
Привет кодеры! Нужна ваша помощь. У меня есть код который нужно распараллелить и тем самым получить...

Перевести программу с паскаля на фортран, используя Параллельные вычисления и OpenMP
Есть несложная программа на паскале, надо ее перевести в фортран с помощью параллельных вычислений...

OpenMP: распараллеливание цикла
Ниже представлена программа для численного интегрирования методом средних прямоугольников,...

15
30.04.2018, 13:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2018, 13:31
Помогаю со студенческими работами здесь

OpenMP распараллеливание вычислений
Выручите, перепробовал уже с бубном плясать не выходит. Матрицу создаю рандомно, элементов должно...

Распараллеливание циклов в OpenMP
Доброго времени суток. Собственно в чем заключается вопрос: есть код, который заполняет трехмерный...

Распараллеливание цикла For с использованием OpenMP
Всем привет. Задался целью изучить OpenMP, что бы в дальнейшем уметь распараллеливать программы....

Распараллеливание циклов с использованием OpenMP C++
Доброго времени суток. (Нужен совет, так как разбираюсь с omp почти 3 дня и не хватает знанний) ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru