Você está na página 1de 11

UNIVERSIDADE FEDERAL DO TOCANTINS

CAMPUS UNIVERSITÁRIO DE PALMAS


CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
DISCIPLINA DE SISTEMAS DISTRIBUÍDOS

Álvaro Vinicius Pereira Borges


Douglas Chagas
Mariana de Oliveira Rocha
Sósthenes Oliveira Lima

Tutorial de Instalação e Configuração do MPI nos Sistemas


Operacionais Linux e Windows

Trabalho apresentado ao curso de


bacharel em Ciência da Computação, para
obtenção parcial de nota referente à
disciplina de Sistemas Distribuídos, sob a
orientação do Professor Dr. Marcelo Lisboa.

Palmas
2009
1. Introdução

Message Passing Interface (MPI) [4] é um padrão para comunicação de dados em


computação paralela. Existem várias modalidades de computação paralela, e dependendo do
problema que se está tentando resolver, pode ser necessário passar informações entre os
vários processadores ou nodos de um cluster, e o MPI oferece uma infra-estrutura para essa
tarefa.

No padrão MPI, uma aplicação é constituída por um ou mais processos que se


comunicam, acionando-se funções para o envio e recebimento de mensagens entre os
processos. Inicialmente, na maioria das implementações, um conjunto fixo de processos é
criado. Porém, esses processos podem executar diferentes programas. Por isso, o padrão MPI
é algumas vezes referido como MPMD (multiple program multiple data). Elementos
importantes em implementações paralelas são a comunicação de dados entre processos
paralelos e o balanceamento da carga. Dado o fato do número de processos no MPI ser
normalmente fixo, neste texto é enfocado o mecanismo usado para comunicação de dados
entre processos. Os processos podem usar mecanismos de comunicação ponto a ponto
(operações para enviar mensagens de um determinado processo a outro). Um grupo de
processos pode invocar operações coletivas (collective) de comunicação para executar
operações globais. O MPI é capaz de suportar comunicação assíncrona e programação
modular, através de mecanismos de comunicadores (communicator) que permitem ao usuário
MPI definir módulos que encapsulem estruturas de comunicação interna.

O objetivo de MPI é prover um amplo padrão para escrever programas com passagem
de mensagens de forma prática, portátil, eficiente e flexível. MPI não é um IEEE ou um
padrão ISO, mas chega a ser um padrão industrial para o desenvolvimento de programas com
troca de mensagens.

2. Instalação e Configuração

As etapas para instalação e configuração do MIPCH de forma detalhada.

2.1 Requisitos do Sistema:

A Instalação do MIPCH para o Sistema Operacional Windows requer o seguinte:

- WindowsNT4/2000/XP Professional ou Server (Win9x/ME não suporta).


- Habilitar a conexão socket TCP/IP entre todos os hosts conectados. (além de
desabilitar o firewall do Windows)
- Microsoft Developer Studio .NET 2003 ou superior
- Microsoft Platform SDK

Para utilizar a instalação padrão é necessário estar logado no sistema como


administrador para ter privilégios de execução do setup. Uma conta “teste” foi criada com
privilégios de administrador.
Duas (02) máquinas, ambas com o Sistema Operacional Windows XP, foram
configuradas para rodar executarem o processo paralelo proposto.

2.2 Download

Na webpage <http://www.mcs.anl.gov/research/projects/mpi/mpich1/mpich-nt/>
deve-se baixar o arquivo “mpich.nt.1.2.5.exe”.

2.3 Instalação

Executar o arquivo “mpich.nt.1.2.5.exe”, e deixar selecionada todas as opções


defaults. Foi instalada a versão Microsoft Visual Studio 2008 para o debug do programa na
linguagem C.

3. Configuração

A etapa a seguir deve ser feita caso a instalação tenha sido feita em mais de uma
máquina.

1. Ferramenta de Configuração:

Iniciar-> Programas-> MPICH-> mpd-> MPICH Configuration tool

2. No programa devemos adicionar os hosts na opção “add” ou em “select”, como pode ser
visualizado na figura abaixo:
3. Clique em “apply” para aplicar a configuração. Esta opção salva uma lista de hosts no
registro do Windows a partir do qual “mpirun” pode chamar os nomes quando precisar
selecionar hospedeiros para enviar processos.

4. Clique em OK para sair.

4. Exemplo

Existem aplicações prontas no diretório C:\Arquivos de


programas\MPICH\mpich\Examples\basic. Para configurarmos um processo distribuído
escolhemos um dos arquivos exemplos e debugamos o código, seguindo os passos a baixo:

1. Abrir arquivo “cpi.c”que está no diretório, com o programa Microsoft Studio Visual C++ :

C:\Arquivos de programas\MPICH\SDK\Examples\nt\Basic\cpi.c
2. Construir o Debug alvo da CPI projeto
3. Copiar o executável que foi gerado através do debug MPICH \ SDK \ Examples \ nt \ basic
\ Debug \ cpi.exe para um diretório compartilhado ou para o mesmo lugar em todas as
máquinas em seu cluster.

Por exemplo, copiar “cpi.exe” para C:\Documents and Settings\All Users\Documentos\


cpi.exe sobre todos os nós.

4. Abrir a janela do Programa MPICHConfiguration e adicionar os hosts conectados e


devidamente configurados com MPI, como explicado na seção 3 deste relatório.

5. Devemos Abrir a janela GUImpirun e adicionar o diretório onde se encontra o executável e


selecionar o número de processos.
Para melhor visualização selecionar a execução em outra janela e clicar em “execute”.
Linux DEBIAN 5 – kernel 2.6.26
(Máquina Virtual - VMWare Workstation 6.5.0)

1. Instalação e Configuração

As etapas para instalação e configuração do MIPCH de forma detalhada.

2.1 Requisitos:

A Instalação e configuração do MIPCH para o Sistema Operacional Debian requer os


seguintes arquivos:
- gcc;
- g77;
- g++;
- cpp;
- libc6;
- lib6c-dev.

Para utilizar a instalação e configuração padrão é necessário estar logado no sistema


como usuário “root” ou com os privilégios necessários. Sendo feita em todos os hosts
conectados e devidamente configurados, com o mesmo usuário e senha.

2.4 Download

O download pode ser feito através do comando abaixo:


# apt-get install gcc cpp libc6 libc6-dev g77 g++
2.5 Instalação

Devemos extrair os arquivos baixados para o diretório destino, compilar e instalar.


Além de adicionar o local de instalação no PATCH. Por default no diretório /usr/local/bin

bash e sh: export PATH=/home/you/mpich2-install/bin:$PATH


csh e tcsh: setenv PATH /home/you/mpich2-install/bin:$PATH

3. Configuração

A etapa a seguir deve ser feita em cada máquina. No nosso caso, (02) máquinas.

1. Primeiramente devemos criar os usuários com o comando:


#adduser user
2. Editar o arquivo abaixo e configurar em todas as máquinas conectadas:
#vi /etc/hosts
//acrescentar o IP e o nome da máquina e apagar a linha 127.0.0.1
192.168.0.1 debian1
192.168.0.2 debian2

3. Para a comunicação das máquinas devemos configurar o SSH:


Para o ssh não pedir senha devemos proceder da seguinte forma:
- gerar a chave # ssh-keygen -t dsa -b 1024
-configurar o ssh para autenticar sem senha, devemos copiar a chave da máquina debian 1
para debian2
#debian1 $ scp .ssh/id_dsa.pub usuario@ debian2
- autenticar a chave gerada para a máquina debian2
#debian2 $ cat id_dsa.pub >> .ssh/authorized_keys
#debian2 $ chown 600 .ssh/authorized_keys
Repetir o processo nas máquinas conectadas.
debian1 > debian2
debian2 > debian1

4. Configuração dos sequintes arquivos MPI: mpd.conf (autenticação mpi)e mpd.hosts


OBS: Este arquivo deve estar dentro de $home para usuário comum, para root em /etc
- adicionando a senha do mpd.conf e copiando para as outras máquinas:
#debian1 $ echo "MPD_SECRETWORD=mr45-j9z" > .mpd.conf
#debian1 $ chmod 600 .mpd.conf
#debian1 $ scp .mpd.conf debian2
#debian1 $ scp .mpd.conf debian2
O arquivo que contém as máquinas que fazem parte do custer é o “mpd.hosts”.
Adicionando as máquinas do cluster no arquivo .mpd.hosts, e replicando para as outras
máquinas:
#debian1$ echo " debian2" > .mpd.hosts
#debian1 $ echo " debian2" >> .mpd.hosts
#debian1 $ scp .mpd.hosts debian2
Para iniciar o processo do mpd:
#debian1 $ mpd&
#debian1 $ mpdtrace –l
A saída de tal comando será: a porta e o endereço das máquinas conectadas.
Configurar nas outras máquinas
#debian2 $ mpd –host=debian1 –port=porta_definida &

3. Exemplo

Existem aplicações prontas no diretório / mpich2-1.0.8p1/example/. Tais aplicações


podem ser construídas com o gcc e G77.

1. Abrir arquivo o arquivo cpi que está no diretório :

/ mpich2-1.0.8p1/example/.

2. Copiar / mpich2-1.0.8p1/example/cpi para um diretório compartilhado ou para o mesmo


lugar em todas as máquinas em seu cluster e executar

#debian1$ mpirun -n 2 mpich2-1.0.8p1/examples/CPI


REFERÊNCIAS

[1] Manual MPICH


Disponível em:
< http://www.mcs.anl.gov/research/projects/mpi/mpich1/docs/mpichntman.pdf>

[2] MIPCH - download.


Disponível em:
<http://www.mcs.anl.gov/research/projects/mpi/mpich1/download.html>

[3] Tradutor Google.


Disponível em:
<http://translate.google.com/translate_t#submit >

[4] Tutorial MPI - Linux


Disponível em:
< http://pt.wikipedia.org/wiki/Message_Passing_Interface>

[5] MPI - Wikipédia


Disponível em:
< http://www.wikipedia.com.br/mpi.html>

Você também pode gostar