Fecha y hora actual: Lunes 23 Oct 2017 03:44
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Programacion MPI

Responder al Tema

Índice del Foro > C, C#, Visual C++ > Programacion MPI

Autor Mensaje
Raul_ual



Registrado: 12 Oct 2017
Mensajes: 1

Mensaje Publicado: Jueves 12 Oct 2017 09:54

Título del mensaje: Programacion MPI

Responder citando

Buenas estoy con unas practicas de la universidad y no consigo dar con el fallo me podriais exar una mano?


#include "mpi.h"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#define MASTER 0
//Se inicia el programa
int main(int argc,char **argv)
{
int rank,size,numero,numero1,numero2,numero3,tamano,i,n,suma;

char letra,palabra[20],palabra1[20],palabra2[20],palabra2alreves[20],palabra3[20],palabra4[20];

MPI_Status status;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);

// Repetimos el bucle hasta que nos den un 0
do{

//PROCESO 0: leemos un numero y una palabra

if (rank == MASTER)
{

printf("**********************************************\n");
printf("Proceso: %d\n",rank);
printf("Deme un numero entre 0-4:\n");
scanf("%d",&numero);
printf("Deme una palabra\n");
scanf("%s",palabra);

//Mandamos a los procesos 1, 2 y 3 el numero tecleado para saber si es 0 o no y asi continuar si lo llaman a ellos o no

MPI_Send(&numero,1,MPI_INT,1,123,MPI_COMM_WORLD);
printf("Envio numero proceso 1 \n");
MPI_Send(&numero,1,MPI_INT,2,123,MPI_COMM_WORLD);
printf("Envio numero proceso 2 \n");
MPI_Send(&numero,1,MPI_INT,3,123,MPI_COMM_WORLD);
printf("Envio numero proceso 3 \n");

//Si pulsamos 0 salimos del programa
if (numero == 0)
{
printf("**********************************************\n");
printf("Ha pulsado 0, se finaliza el programa\n");
MPI_Finalize();
return 0;
}
//Si pulsamos 1 pondremos texto en mayuscula

if (numero == 1)
{
printf("**********************************************\n");
printf("Proceso %d envia %s al proceso 1\n", rank, palabra);
MPI_Send(&palabra,20,MPI_CHAR,1,123,MPI_COMM_WORLD);
printf("Envio palabra al proceso 1\n");
MPI_Recv(&palabra,20,MPI_CHAR,1,123,MPI_COMM_WORLD,&status);
printf("Recibo la palabra del proceso 1\n");

printf("Se recibe del proceso 1 %s: \n", palabra);
}

}

//PROCESO 1
if (rank == 1)
{
// Recibimos el numero tecleado y si es 0 salimos el programa y si no, si es 1 pues ejecutamos su codigo
MPI_Recv(&numero1,1,MPI_INT,0,123,MPI_COMM_WORLD,&status);
printf("Recibo numero proceso 1 \n");
if (numero1==0)
{
MPI_Finalize();
return 0;
}
else if (numero1==1)
{
printf("PROCESO1 Recibo numero del proceso 0\n");

MPI_Recv(&palabra1,20,MPI_CHAR,0,123,MPI_COMM_WORLD,&status);
tamano=strlen(palabra1);
for (n=0; n<tamano; n++) {
palabra1[n]=toupper(palabra1[n]);}
MPI_Send(&palabra1,20,MPI_CHAR,0,123,MPI_COMM_WORLD);
printf("PROCESO1 envio numero al proceso 0\n");
}
else {printf("salgo del proceso 1 sin hacer nada\n");}
}

//PROCESO 2

if (rank == 2)
{
MPI_Recv(&numero2,1,MPI_INT,0,123,MPI_COMM_WORLD,&status);
printf("Recibo numero proceso 2 \n");
if (numero2==0)
{
MPI_Finalize();
return 0;
}
else if (numero2==2)
{

}
else {printf("salgo del proceso 2 sin hacer nada\n");}
}

//PROCESO 3
if (rank == 3)
{
MPI_Recv(&numero3,1,MPI_INT,0,123,MPI_COMM_WORLD,&status);
printf("Recibo numero proceso 3 \n");
if (numero3==0)
{
MPI_Finalize();
return 0;
}
else if (numero3==3)
{
}
else {printf("salgo del proceso 3 sin hacer nada\n");}

}

}while (numero != 0);
MPI_Finalize();
return 0;
}

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 1 Hora

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Hola amigos de la programacion

69Roberto Preséntate a la comunidad 1 Lunes 18 Sep 2017 22:53 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Programacion en c++

Jean Pool C, C#, Visual C++ 1 Viernes 18 Ago 2017 00:31 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Programacion en objetos

Anita4 Programación en general 0 Domingo 26 Mar 2017 07:43 Ver último mensaje
El foro no contiene ningún mensaje nuevo

mi proyecto de aprende programación

jaime hernandez ramirez Programación en general 0 Sábado 25 Feb 2017 02:29 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Programacion de servicios y procesos

Juan28 Programación en general 0 Jueves 17 Nov 2016 21:45 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,