Форум программистов, компьютерный форум, киберфорум
Наши страницы

Преобразование последовательного кода в параллельный - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок-схема по коду программы http://www.cyberforum.ru/cpp-beginners/thread1155190.html
блок схема к массиву #include <iostream.h> #include <conio.h> #include <stdlib.h> int main() { clrscr(); int b, a, i, j, s = 0, tum1, tum2, k; for (i = 0; i < 5; i++)
C++ Написание бота Здравствуйте! Знаю С++ на учебном уровне, хочу научится делать что-то более весомое, например программа которая будет выполнять какие либо действия на ПК! Подскажите литература которая подойдет, как... http://www.cyberforum.ru/cpp-beginners/thread1155186.html
C++ Создание класса-агрегата объектов
Есть класс TString являющийся агрегатом объектов класса TSymb Как написать конструктор TString при этом по его параметру-входной строке надо создать и экземпляры TSymb и обойтись без всяких vector...
C++ Напишите программу обхода двоичных деревьев во внутреннем порядке
Помогите найти ошибку в коде. Задание: Напишите программу обхода двоичных деревьев во внутреннем порядке. #include<iostream> #include <cstdlib> using namespace std; //Создание упорядоченного...
C++ Вектор структур, в которых также векторы. Ошибка переполнения вектора http://www.cyberforum.ru/cpp-beginners/thread1155175.html
Как реализовать такое дело: Есть структура MyStruct1 struct MyStruct1{ std::vector<MyStruct2> myStruct2; }; В которой вектор структур MyStruct2. struct MyStruct2{
C++ Напечатать все слова строки, которые начинаются цифрой Привет. Нужна помощь: Задана строка. Необходимо напечатать все слова строки, которые начинаются цифрой и подсчитать их количество. подробнее

Показать сообщение отдельно
Redginald
0 / 0 / 0
Регистрация: 12.04.2014
Сообщений: 37

Преобразование последовательного кода в параллельный - C++

23.04.2014, 15:02. Просмотров 541. Ответов 11
Метки (Все метки)

Программа karp вычисляет PI, используя интегральную аппроксимацию. Вам предоставлена последовательная версия программы karp, и от вас требуется модифицировать ее в параллельную версию в форме SPMD.
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
 * Parallelizing for MPI Lab
 * Karp Example
 * karp.c
 * Last revised RYL 2/6/95
 */
 
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
 
#define f(x) ((double)(4.0/(1.0+x*x)))
#define pi ((double)(4.0*atan(1.0)))
 
void startup (void);
int solicit (void);
void collect (double sum);
 
int main()
     
{
  /* This simple program approximates pi by computing pi = integral
   * from 0 to 1 of 4/(1+x*x)dx which is approximated by sum 
   * from k=1 to N of 4 / ((1+[(1/N)*(k-1/2)]**2) and then
   * multiplying the sum by (1/N). (This numerical integration rule
   * is called "Midpoint rule" and can be found in most numerical
   * analysis text books) The only input data 
   * required is N.                                       
   */
  double sum, w;
  int i, N;
 
  /*
   * The startup routine will create parallel tasks 
   */
  /* startup(); */
 
  /* 
   * The solicit routine will get and propagate the value of N
   */
  N = solicit();
 
  while (N > 0) {
    w = 1.0/(double)N;
    sum = 0.0;
    for (i = 1; i <= N; i++)
      sum = sum + f(((double)i-0.5)*w);
    sum = sum * w;
    /*
     * The collect routine will collect and print results
     */
    collect (sum);
    N = solicit ();
  }
 
  return (0);
}
 
/*  --------------------------------------------------------------  */
void startup (void)
{
}
 
/*  --------------------------------------------------------------  */
int solicit (void)
{
  int N;
  printf ("Enter number of approximation intervals:(0 to exit)\n");
  scanf("%d",&N);
  return (N);
}
 
/*  --------------------------------------------------------------  */
void collect(double sum)
{
  double err;
  err = sum - pi;
  printf("sum, err = %7.5f, %10e\n", sum, err);
}
Формат входного файла:
10
100
0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.