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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
_LoneR_
90 / 90 / 9
Регистрация: 15.01.2011
Сообщений: 494
#1

Передать число 987.5 между четырьмя процессами в MPI - C++

08.03.2014, 19:02. Просмотров 275. Ответов 0
Метки нет (Все метки)

Здравствуйте! Помогите разобраться необходимо сделать кольцевую передачу числа 987.5 между четырьмя процессами уменьшая его в трое до 5 в MPI, но при более чем двум процессам программа не работает, не могу понять что я делаю не так. Вот мой код, для 4-х процессов я добавлял ещё одну ветвь if-else с номерами процессов.
C++ (Qt)
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
#include <mpi.h>
#include <iostream>
int main (int argc, char * argv[])
{
   float message = 987.5;
   int myrank;
   MPI_Status status;
   MPI_Init (&argc, &argv);
   MPI_Comm_rank (MPI_COMM_WORLD, &myrank);
   while(message > 5)
   {
       if (myrank==0)  
       {
          message /= 3;
          MPI_Send(&message, 1, MPI_FLOAT, 1, 99, MPI_COMM_WORLD);
       }
       else  
       {
          MPI_Recv (&message, 1, MPI_FLOAT, 0, 99, MPI_COMM_WORLD, &status);
          printf ("receiveds :%f:\n", message);
       }
   }
   MPI_Finalize();
   return 0;
}
Укажите мне на мою ошибку! Буду благодарен за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 19:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передать число 987.5 между четырьмя процессами в MPI (C++):

Канал между процессами - C++
Задача у программы такова. Имеется основная программа(main) и две дополнительных(prc1 и prc2). В prc1 и prc2 стоит прогресс бар, который...

Обмен данными между процессами - C++
При создании дочернего процесса при помощи функции BOOL CreateProcess ( LPCTSTR lpApplicationName, // имя...

Обмен данными между процессами - C++
Уважаемое сообщество, подскажите, пожалуйста, с решением такой проблемы: у меня два процесса c# и с++, и мне необходимо передавать массив...

Обмен данными между процессами - C++
Добрый день! Нужно распараллелить программу. Суть в следующем: должны быть два процесса(разные функции), идущих параллельно, и второй...

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

Обмен данными между двумя процессами - C++
Добрый день/вечер. Усердно слушал преподавателя на паре, прошуршал много литературы дома, но так и не понял, как заюзать обмен данными...

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

Обмен данными между процессами в консольных приложениях - C++
Привет. Можно ли как - то обмениваться данными между двумя запущенными консольными приложениями без WinAPI и без использования файлов...

Обмен данными между процессами с помощью файлов, которые отображаются в память - C++
Классическая задача &quot;читатели-писатели&quot;, обмен информацией должен проходить с помощью файлов, отображаемых в память. Задание уже готово, но...

Переслать вектор N процессам, используя различные виды связи между процессами (MPI_Alltoall) - C++
Переслать вектор, размерности M, N процессам, используя различные виды связи между процессами. Элементы вектора задаются произвольно....

Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат - C++
Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и...


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

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

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