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

Из данной задачи составить параллельную программу вычисления произведения элементов вектора - C++

Восстановить пароль Регистрация
 
FrankyMO
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 90
17.06.2014, 05:51     Из данной задачи составить параллельную программу вычисления произведения элементов вектора #1
Помогите, пожалуйста, из данной задачи составить параллельную программу вычисления произведения элементов вектора, используя функцию широковещательной рассылки


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
#include "mpi.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
 
 
int main (int argc, char *argv[]) 
    {
    srand(time(NULL));
    int Size, Rank, n, i;
    double t1, t2, ttime;
    t1=MPI_Wtime();
    MPI_Status Status; 
    MPI_Init (&argc, &argv);
    MPI_Comm_size (MPI_COMM_WORLD, &Size);
    MPI_Comm_rank (MPI_COMM_WORLD, &Rank);
    n=0;
    if(Rank==0)
    MPI_Send(&n, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
    for (i=1; i<Size; i++)
        { 
        if (Rank==i && Rank!=Size-1)
        {
            MPI_Recv(&n, 1, MPI_INT, i-1, 0, MPI_COMM_WORLD, &Status);
            n++;
            MPI_Send(&n, 1, MPI_INT, i+1, 0, MPI_COMM_WORLD);
        }
        if (Rank==Size-1 && i==Size-1)
            {
            MPI_Recv(&n, 1, MPI_INT, i-1,0, MPI_COMM_WORLD, &Status);
            n++;
            MPI_Send(&n, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
            }
        }
    if (Rank==0)
    {
        MPI_Recv(&n, 1, MPI_INT, Size-1, 0, MPI_COMM_WORLD, &Status);
        n++;
        printf("\n **************************************\n"); 
        printf("\n Rank: %d", Rank); 
        printf("\n chislo prosessoriv %d", Size); 
        printf("\n chislo N %d\n", n);
        t2=MPI_Wtime();
        ttime=t2-t1;
        printf("time: %f\n", ttime);
    }
    MPI_Finalize();
    return 0; 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 05:51     Из данной задачи составить параллельную программу вычисления произведения элементов вектора
Посмотрите здесь:

Составьте программу вычисления произведения элементов матрицы B(N,N), кратных 5. C++
Составить программу для вычисления произведения чисел из диапазона от а до b, кратных 6 C++
C++ Составить программу для вычисления произведения целых чисел из промежутка от A до B, кратных числу А
2. Составить программу для вычисления произведения квадратов чисел из диапазона от а до b, кратных 7 C++
Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора C++
Составить программу для вычисления произведения чисел из диапазона от а до b, кратных 5 C++
Составить схему алгоритма и написать программу вычисления суммы (произведения) конечного ряда C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru