Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Utilizar MPI_Finalize em Aplicações MPI no Linux

O MPI (Message Passing Interface) é um padrão amplamente utilizado para programação paralela em sistemas de computação de alto desempenho. O MPI_Finalize é uma função crucial dentro desse padrão, responsável por finalizar o ambiente MPI. Neste artigo, vamos explorar como utilizar o MPI_Finalize em um ambiente Linux, com exemplos práticos.


O que é MPI_Finalize?


MPI_Finalize é uma função que encerra o ambiente MPI que foi iniciado com MPI_Init. Ela deve ser chamada por todos os processos MPI antes de saírem do programa. Isso garante que todos os recursos alocados pelo MPI sejam liberados adequadamente.


Exemplo Prático


Vamos criar um programa simples em C que utiliza MPI para ilustrar o uso do MPI_Finalize. Certifique-se de ter o OpenMPI instalado em seu sistema Linux para compilar e executar o exemplo.


Código de Exemplo


#include <mpi.h>
#include <stdio.h>

int main(int argc, char** argv) {
// Inicializa o ambiente MPI
MPI_Init(&argc, &argv);

// Obtém o número total de processos
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);

// Obtém o rank do processo atual
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);

// Imprime uma mensagem de "Hello World" de cada processo
printf("Hello world from process %d of %d\n", world_rank, world_size);

// Finaliza o ambiente MPI
MPI_Finalize();

return 0;
}

Compilando e Executando o Programa


1. Compilação: Use o mpicc para compilar o programa. Este é o compilador do OpenMPI para código C.


   mpicc -o hello_mpi hello_mpi.c

2. Execução: Use o mpirun para executar o programa com o número desejado de processos. Por exemplo, para executar com 4 processos:


   mpirun -np 4 ./hello_mpi

Explicação do Código



  • MPI_Init: Inicializa o ambiente MPI. Deve ser chamado antes de qualquer outra função MPI.

  • MPI_Comm_size: Retorna o número total de processos no comunicador MPI_COMM_WORLD.

  • MPI_Comm_rank: Retorna o rank do processo atual no comunicador MPI_COMM_WORLD.

  • MPI_Finalize: Finaliza o ambiente MPI. Deve ser a última função MPI chamada em qualquer programa.


Considerações Finais


O uso correto de MPI_Finalize é essencial para garantir que os programas MPI sejam encerrados de maneira limpa, liberando todos os recursos alocados. Este exemplo básico demonstra como configurar um ambiente MPI, executar um programa paralelo e finalizar corretamente o ambiente.


To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.