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

C++

Войти
Регистрация
Восстановить пароль
 
SENDEJER
3 / 3 / 1
Регистрация: 22.05.2013
Сообщений: 353
#1

WMPI - функции коллективного обмена в MPI . Производные типы в MPI - C++

18.10.2015, 23:29. Просмотров 222. Ответов 0
Метки нет (Все метки)

помогите пожалуйста - вот задание: Разработать программу, создающую MPI - тип данных C- структуры (long a[15]; unsigned char b[3]; float c[8] ) и передает по помощью функций коллективного обмена экземпляр структурам всем процессам программы?

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 <stdio.h>
#include <stddef.h>
#include <mpi.h>   
#include<iostream>
using namespace std;
typedef struct { long a[15]; unsigned char b[3]; float c[8]; } st;
int main(int argc, char * argv[]) {
    int me, size;
    st st1[3];
    int blocklens[] = { 15, 3, 8, 15 };
    MPI_Aint indices[] = { offsetof(st, a), offsetof(st, b), offsetof(st, c), sizeof (st) };
    MPI_Datatype old_types[] = { MPI_LONG, MPI_UNSIGNED_CHAR, MPI_FLOAT, MPI_UB };
    MPI_Datatype newtype;
    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &me);
    MPI_Type_struct(4, blocklens, indices, old_types, &newtype); MPI_Type_commit(&newtype);
    st1[0].a = 3.14, st1[0].b[0] = 12, st1[0].c[0] = 5.16;
    cout << " me=" << me << " before bcast " << st1[0].a << " " << st1[0].b[0] << " " << st1[0].c[0] << endl;
    if (me == 0)
    {
        st1[0].a = 1.11;
        st1[0].b[0] = 4;
        st1[0].c[0] = 5.16;
 
    }
    MPI_Bcast(st1, 1, newtype, 0, MPI_COMM_WORLD);
    cout << " me=" << me << " after " << st1[0].a << " " << st1[0].b[0] << " " << st1[0].c[0] << endl;
 
    MPI_Finalize();
    system("PAUSE");
    return 0;
}
Добавлено через 2 минуты
код копировал у одногрупника) пытался модифицировать... но не как... ругается на "Ошибка 3 error C2440: =: невозможно преобразовать "double" в "long [15]" c:\users\sendejer\documents\visual studio 2013\projects\lab2\lab2\lab2.cpp 21 1 Lab2
" и пошло поехало...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2015, 23:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос WMPI - функции коллективного обмена в MPI . Производные типы в MPI (C++):

Компиляция MPI - C++
Доброго времени суток всем, даже не знаю где создать тему, но так как программа написана на с++ решил здесь. В общем вопрос следующий: как...

C++ MPI выделение потоков - C++
Здравствуйте, я к вам с немного нубским вопросом. Написал вот такой код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;ctime&gt; ...

MPI Распределение задач - C++
При инициализации процесса присваиваем N некое количество прохода цикла. При выполнении процессом всех проходов N нужно уменьшить N других...

Передача в MPI vector<char*> - C++
Пишу программу на MPI. И возникли сложности. Имеется массив слов и его нужно передать между процессами. Сначала у меня был vector&lt;string&gt;,...

MPI C++. Построение топологии сети - C++
Всем доброго времени суток. Задача следующая: каждый узел в сети знает только своих соседей(локальную топологию). Необходимо...

MPI использует только одно ядро - C++
MPI_Comm_size(MPI_COMM_WORLD, &amp;num); всегда возвращает 1. Ядра 100% два. В диспетчере задач проверил - Visual Studio использует оба ядра....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2015, 23:29
Привет! Вот еще темы с ответами:

Вопрос про mpi (рассылка элементов массива) - C++
Привет всем, вопрос у меня следующий: можно ли с помощью mpi организовать одновременный доступ ко всему массиву для всех...

Error LNK2019 при компиляции программы MPI - C++
Здравствуйте! Это уже становится чересчур.. все решения перепробованы. Вобщем, на VS 2012 устанавливаю MS SDK MPI. В свойствах проекта...

Вычисление суммы чисел, от параллельных процессов MPI - C++
Задача такая, запускаются параллельно 5 процессов, каждый из них генерит рандомное число и отправляет соседнему процессу, нужно вывести...

Параллельная программа для метода холецкого с помощью openMp и mpi - C++
Товарищи,помогите пожалуйста с параллельным программированием: надо написать параллельную программу для метода холецкого с помощью openMp...


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

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

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