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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание QT4 project в CodeBlocks http://www.cyberforum.ru/cpp-beginners/thread1114108.html
Я создаю нвый проект, выбираю QT4 project, присваиваю имя проекту, а дальше он просит указать расположение QT. Где его взять??
C++ Как сделать, чтобы сочетание клавиш 'enter'+'space' выходили из консоли #include <iostream> #include <conio.h> using namespace std; int main() { char c; cout<<"test\n"; A: c = getch(); http://www.cyberforum.ru/cpp-beginners/thread1114102.html
C++ Присваивание объекта класса ofstream
Задача стоит в том, что нужно передать объект класса ofstream конструктору анонимного объекта (допустим, класса Store) и, как следствие, присвоить его члену типа ofstream класса Store. Судя по тому,...
Как пользоваться с scanf, и чем отличается от cout C++
Знающие, подскажите как пользоваться с scanf, и чем отличается от cout. И чем лучше всего пользоваться.
C++ Расположить первые N натуральных чисел так, чтобы между любыми двумя из расположенных не было их среднего арифметического http://www.cyberforum.ru/cpp-beginners/thread1114044.html
#include<iostream> #include<vector> using namespace std; void func (vector<int> vec, int p) { int i; i = 0; stop1:while (i<p) {
C++ Как реализовать наследование классов Здравствуйте, уважаемые форумчане. Помогите с решением проблемной ситуации, связанной скорее всего с аргументами в коде. Я определяю дочерний класс Diagonalsandrectangle, но при выполнении метода... подробнее

Показать сообщение отдельно
_LoneR_
90 / 90 / 9
Регистрация: 15.01.2011
Сообщений: 494

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

08.03.2014, 19:02. Просмотров 276. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru