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

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

Восстановить пароль Регистрация
 
_LoneR_
 Аватар для _LoneR_
90 / 90 / 9
Регистрация: 15.01.2011
Сообщений: 494
08.03.2014, 19:02     Передать число 987.5 между четырьмя процессами в MPI #1
Здравствуйте! Помогите разобраться необходимо сделать кольцевую передачу числа 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;
}
Укажите мне на мою ошибку! Буду благодарен за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 19:02     Передать число 987.5 между четырьмя процессами в MPI
Посмотрите здесь:

C++ Канал между процессами
Обмен данными между двумя процессами C++
Обмен данными между процессами с помощью файлов, которые отображаются в память C++
C++ Взаимодействие между процессами двух приложений
Обмен данными между процессами в консольных приложениях C++
Обмен данными между процессами C++
Переслать вектор N процессам, используя различные виды связи между процессами (MPI_Alltoall) C++
C++ Обмен данными между процессами

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

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

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