Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 0 / 1
Регистрация: 28.01.2018
Сообщений: 294
1

распаралелить в опен мп

30.03.2020, 21:41. Показов 914. Ответов 4
Метки нет (Все метки)

есть такая штука,при попытке задать распаралеривание дает другое число,это нормально?

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
#include "pch.h"
#include <omp.h>
#include <iostream>
#include <iomanip>
 
using namespace std;
double f(double x)
{
    //  return x * x;
    return (2 * x*x*x - 7 * x + 4);
}
 
int main()
{
    double a = 0, b = 2;
    int n = 10000;
    double s = (f(a) + f(b)) / 2;
    double h = (b - a) / n;//метод прямоугольников
 
//#pragma omp parallel
//  {
        for (int i = 1; i <= n - 1; i++)
        {
            s += f(a + i * h);
        }
//  }
 
    double I = h * s;
    cout << setprecision(10) << I << endl;
    system("pause");
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2020, 21:41
Ответы с готовыми решениями:

Распаралелить программу
Здравствуйте уважаемые форумчане! Нужно распаралелить программу которая меняет местами столбцы...

Распаралелить select union all
Есть таблица куда нужно добавить записи из множества внешних таблиц ссылающихся на файлы из папок...

Распаралелить работу с базой (фоновый процесс)
Проблема состоит в следующем. Когда пользователь запускает рассылку, то может идти пить чай --...

Распаралелить алгоритм нахождения кратчайшего пути
Здравствуйте. Помогите, пожалуйста, распаралелить алгоритм Дейкстры. Вообще идей нету как это можно...

4
4 / 0 / 1
Регистрация: 28.01.2018
Сообщений: 294
01.04.2020, 15:10  [ТС] 2
апну
0
6738 / 4537 / 1839
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
01.04.2020, 15:14 3
Лучший ответ Сообщение было отмечено Yelle как решение

Решение

Цитата Сообщение от Yelle Посмотреть сообщение
for (int i = 1; i <= n - 1; i++)
        {
            s += f(a + i * h);
        }
C++
1
2
3
#pragma omp parallel for reduction(+: s) 
        for (int i = 1; i < n ; ++i)
            s += f(a + i * h);
1
4 / 0 / 1
Регистрация: 28.01.2018
Сообщений: 294
01.04.2020, 19:01  [ТС] 4
oleg-m1973, а без редукции как?
0
6738 / 4537 / 1839
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
01.04.2020, 19:16 5
Цитата Сообщение от Yelle Посмотреть сообщение
oleg-m1973, а без редукции как?
C++
1
2
3
4
5
6
#pragma omp parallel for
    for (int i = 1; i <= n - 1; i++)
    {
#pragma omp atomic
        s += f(a + i * h);
    }
Добавлено через 3 минуты
https://habr.com/ru/company/intel/blog/88574/

Добавлено через 15 секунд
https://habr.com/ru/company/intel/blog/88574/
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2020, 19:16

Как распаралелить цикл с помощью второго потока?
double Y(double p) { return sin(p); } void PrM ( double a1, double b1, int n1, double h1) {...

Не видит файл на опен сервере
Текст ошибки: Warning: include(function\db.php): failed to open stream: No such file or...

Как лучше распаралелить задачи, если их количество больше ядер процессора?
Есть много задач Task task1 = new Task(() =&gt; { ...

Посоветуйте аналог Опен Сервера с phpMyAdmin
Народ, подскажите какой нибудь виртуальный сервер для теста сайтов кроме Денвера и Опен Сервера....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.