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

Преобразование последовательного кода в параллельный - 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 а с динамическим массивом TSymb. class TSymb {...} class TString//объект «строка»- массив из 15 симв, умеющий выводить на печать зн своих элем { private: TSymb **smb; public:
C++ Напишите программу обхода двоичных деревьев во внутреннем порядке
Помогите найти ошибку в коде. Задание: Напишите программу обхода двоичных деревьев во внутреннем порядке. #include<iostream> #include <cstdlib> using namespace std; //Создание упорядоченного двоичного дерева struct tree { char info; struct tree *left; struct tree *right;
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
23.04.2014, 15:02     Преобразование последовательного кода в параллельный
Программа 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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru