Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2018, 18:26   #1
VolodyaBuzin
Пользователь
 
Регистрация: 10.11.2017
Сообщений: 56
По умолчанию Расчет числа pi - параллельное программирование

Добрый день! Проверьте, правильно ли я написал программу, если нет, в комментариях к коду покажите, что нужно сделать на самом деле. Как правильно распараллелить цикл прописать количество ядер? программа иногда выдаёт результат, отличный от 3.14, например, 1,4752

Код:
// Integral.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <omp.h>
#include <time.h>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <conio.h>
using namespace std;
 
double InFunction(double x) //Подынтегральная функция
{
  return (4.0/(1 + pow(x, 2)));
}
 
double CalcIntegral(double a, double b, int n, int k)
{
omp_set_num_threads(k);
  int i;
  double result, h;
 
  result = 0;
 
  h = (b - a) / n; //Шаг сетки
#pragma omp parallel for reduction(+: result)
  for(i = 0; i < n; i++)
  {
    result += InFunction(a + h * (i + 0.5)); //Вычисляем в средней точке и добавляем в сумму
  }
 
  result *= h;
 
  return result;
}
 
 
int _tmain(void)
{
    clock_t st, et;
      double integral, iv;
      int n, k;
  cout << "Enter N:\n";
  cin >> n;
  cout << "Enter number of threads:\n";
  cin >> k;
  st = clock();
  integral = CalcIntegral(0, 1, n, k);
  et = clock();
  iv = (double)(et-st)/CLOCKS_PER_SEC;
  printf("time is %f\n", iv);
  printf("The value of the integral is: %lf \n", integral);
    _getch();
    return 0;
}
VolodyaBuzin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параллельное программирование в С++ Beginner_1 Помощь студентам 3 05.07.2013 21:45
параллельное программирование @lenk@ Помощь студентам 3 30.10.2010 18:42
Параллельное программирование mages Общие вопросы C/C++ 18 25.12.2009 17:59
Параллельное программирование Renegad Фриланс 5 10.06.2008 18:11
Параллельное программирование Ugly Win Api 7 16.03.2008 15:33