MPI_mestre_escravo_ordenacao

988 palavras 4 páginas
D:\FABIANO\AULAS\2015\2\PPD\T1\Fabiano-nauter_Pedro-Fillipe\ranksort.c

#include
#include
#include
#include
#include

quinta-feira, 24 de setembro de 2015 23:44

<mpi.h>
<stdio.h>
<sys/time.h>
<time.h>
<stdlib.h>

void salva_txt(int *vetor_ordenado, int TAM);

void imprime_tempo(struct timeval ti, struct timeval tf);

void le_arquivo(int *vetor_lido,char arquivo_entrada[100],int TAM); void merge(int array[], int begin, int mid, int end);

void ranksort(int *vetor_escravo, int *vetor_lido, int posicao_incial,int posicao_final); int main(int argc, char **argv)
{
int TAM = atoi(argv[2]); // TAM será o tamanho de elementos a ordenar
//Validacao do numero de elementos a ordenar if (TAM < 1)
{
printf("Erro: Numero de elementos tem que ser maior que 0. \n"); return (1);
}

int size, rank, tag=0;
// Variávis do MPI struct timeval ti, tf;
// Para imprimir tempo int vetor_lido[TAM];
// Vetor que vai ser lido int vetor_ordenado[TAM];
// Vetor que vai ser ordenado int numero_escravos;
// Numero de escravos int numero_tarefas;
// Numero de tarefas int tamanho_tarefa;
// Tamanho a ser ordenado por cada escravo int posicao_inicial=0;
// Inicio do pedaco a ser ordenado int posicao_meio=0;
// Posição do meio passada para a função merge int posicao_final=0;
// Fim do pedaco a ser ordenado int cont=0;
// Controle do vetor principal int escravo;
// rank recebido int send=0;
// Quantidade de vezes que foi enviado para escravo int receive=0;
// Quantidade de vezes que retornou para o mestre int i, j;
// Auxiliares para for
//Inicialização MPI
MPI_Status status;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size); processos(Processadores). numero_escravos = size - 1; numero_tarefas = 4*numero_escravos; tamanho_tarefa = TAM / numero_tarefas; escravo (np-1) int vetor_escravo[tamanho_tarefa];

// Numero do processo.
// Numero total de

// Tamanho a ser ordenado para cada
// Vetor que vai ser recebido pelo mestre

if( ((TAM%tamanho_tarefa)!=0)

Relacionados