Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2016, 00:41   #1
KaMaKaDzA
Пользователь
 
Регистрация: 17.07.2013
Сообщений: 20
По умолчанию MPI Гиперкуб отправка сообщения от 0 узла всем остальным

В общем, есть топология гиперкуб, нужно отправить сообщение от 0 процесса всем остальным. желательно без повторений.
Вот что я написал, но оно не работает. Оно тупо выполняет весь код для 0 процесса и зависает.
Код:
#include "mpi.h" 
#include <stdio.h> 
int main(int argc,char *argv[]) 
{ 
int myrank, size, message=8; 
int TAG = 0; 
MPI_Status status; 
MPI_Init(&argc, &argv); 
MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 
MPI_Comm_size(MPI_COMM_WORLD, &size); 
 
 
if((myrank<4)&&(myrank>1))
{MPI_Recv(&message, 20, MPI_CHAR, myrank-2, MPI_ANY_TAG, MPI_COMM_WORLD, &status);                                                                     
 printf("received :%i\n", myrank);     
}
 
if(myrank<2)
{if(myrank == 1)
 {MPI_Recv(&message, 20, MPI_CHAR, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status);                                                                     
  printf("received :%i\n", myrank);
  }
  
  MPI_Send(&message, 20, MPI_CHAR, myrank+1, MPI_ANY_TAG, MPI_COMM_WORLD);   
  printf("saled:%i\n", myrank+1);
  MPI_Send(&message, 20, MPI_CHAR, myrank+2, MPI_ANY_TAG, MPI_COMM_WORLD);   
  printf("saled:%i\n", myrank+2);
}
 
if((myrank-4)>=0)
{MPI_Recv(&message, 20, MPI_CHAR, myrank-4, MPI_ANY_TAG, MPI_COMM_WORLD, &status);                                                                     
 printf("received :%i\n", myrank);   
}
else
{MPI_Send(&message, 20, MPI_CHAR, myrank+4, MPI_ANY_TAG, MPI_COMM_WORLD);   
 printf("saled:%i\n", myrank+4);
 
}
 
 
 
MPI_Finalize(); 
return 0; 
}
KaMaKaDzA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TidIRC и отправка сообщения Reaktor1488 Работа с сетью в Delphi 0 02.10.2015 01:46
Отправка сообщения на ICQ c1759602 Общие вопросы Delphi 10 24.02.2013 23:23
отправка сообщения по локалке cemen13 Общие вопросы .NET 1 15.07.2010 17:18
Отправка сообщения от сервера всем клиентам Cold_Night Работа с сетью в Delphi 2 25.05.2009 21:50