Parallel Virtual Machine

Instalação, Configuração e Execução do PVM

OBSERVAÇÃO: É importante salientar que as configurações mostradas na seção 1 somente poderão ser feitas pelo usuário root da máquina. As configurações das seções seguintes podem ser feitas por um usuário comum.

1. Roteiro para Configuração do rsh

Antes que possamos configurar o PVM, é preciso configurar o rsh, tendo em vista que este é imprescindível para que o PVM possa funcionar.

O rsh é um utilitário UNIX que permite que um processo seja executado remotamente em outra máquina de sua rede. O comando rsh interage com o processo servidor na máquina remota, chamado rshd.

Por default, o rsh não vem habilitado nas máquinas com Linux. Portanto, os procedimentos abaixo devem ser efetuados em todas as máquinas usadas que farão parte do ambiente PVM.

Alterar o arquivo /etc/pam.d/rsh:
  • na linha auth required pam_rhosts_auth.so, colocar um # no início da mesma, para comentá-la.
  • salvar o arquivo alterado.
  • ii. Habilitar o rsh, no arquivo /etc/xinet.d/rsh:
  • verificar a variável disable. Se for igual a yes, altere-a para no.
  • salvar o arquivo alterado.
  • "Matar" o processo xinetd em execução e reinicializá-lo para que as alterações anteriores tenham efeito.
  • Utilize o comando ps - ef | grep xinetd para verificar o número do processo. Após identificar o número do processo, dê um kill -9 <número do processo>.
  • Em seguida reinicialize o processo xinetd com o seguinte comando: /usr/sbin/xinetd - stayalive.
  • Testar se o rsh está funcionando:
  • Sintaxe: rsh -l <usuario> <host> <comando>.
  • Exemplo: rsh -l alunoucb 172.16.1.2 date.
  • OBSERVAÇÃO: Para o rsh funcionar, o usuário alunoucb deve existir na máquina 172.16.1.2. Este comando irá logar na referida máquina usando o usuário alunoucb e executará o comando (processo) date naquela máquina. O valor retornado será o referente à data da máquina 172.16.1.2.

    Agora, edite o arquivo /etc/hosts e inclua uma linha no mesmo representando a máquina local, caso a mesma ainda não exista. Por exemplo

    # Do not remove the following line, or varios programs
    # that require network functionality will fail.
    127.0.0.1      localhost.localdomain     localhost
    172.16.1.1    lab_c101_001              lab_c101_001
    

    2. Roteiro para Configuração do PVM

    Nesse roteiro estaremos usando o PVM versão 3.4.4. Para obter o pacote PVM, você pode fazer o download do arquivo pvm3.4.4.tgz a partir do site http://www.netlib.org/pvm3.

    Para a instalação do PVM não é preciso estar logado na máquina como o usuário root. Consideraremos, nesse documento, que você está logado com o usuário usuario.

    Após o download do PVM é preciso descompactá-lo em algum diretório. Escolha um diretório que você tenha permissão para gravação e descompacte o arquivo. Vamos considerar aqui o diretório /home/usuario.

    [usuario@lab_c101_001 usuario]% gunzip pvm3.4.4.tgz
    [usuario@lab_c101_001 usuario]% tar xvf pvm3.4.4.tar
    

    Esse último comando irá descompactar todo o pacote PVM dentro do diretório /home/usuario/pvm3.

    Para que o PVM possa funcionar corretamente, é preciso criar uma variável de ambiente chamada PVM_ROOT. Também é preciso alterar a variável PATH. Vamos fazer isso de forma que, quando o usuário logar na máquina, essas variáveis sejam criadas/modificadas automaticamente.

    Sendo assim, edite o arquivo .bashrc que está dentro do diretório /home/usuario. Você pode usar o comando: vi .bashrc.

    Inclua, no final do arquivo .bashrc as duas linhas abaixo:

    export PVM_ROOT=/home/usuario/pvm3
    export PATH=$PATH:$PVM_ROOT/lib
    

    PVM_ROOT indica o diretório onde encontra-se instalado o PVM. A variável PATH precisa ser modificada para que seja possível localizar os aplicativos necessários à execução do PMV.

    Agora, é preciso compilar o pacote PVM. Para isso, execute os comandos abaixo:

    [usuario@lab_c101_001 usuario]% cd /home/usuario/pvm3
    [usuario@lab_c101_001 pvm3]% make
    

    3. Compilando as Aplicações de Exemplo do PVM

    Para compilar os programas de exemplo dque vêm com o pacote PVM, podemos utilizar o utilitário aimk. Para tal, basta executar esse utilitário informando os nomes dos programas que você quer compilar. Por exemplo:

    [usuario@lab_c101_001 usuario]% cd /home/usuario/pvm3/examples
    [usuario@lab_c101_001 pvm3]% aimk hello hello_other
    

    O segundo comando descrito acima irá compilar os programas hello.c e hello_other.c. Se não houver nenhum erro na compilação, os arquivos compilados serão automaticamente colocados no diretório /home/usuario/pvm3/bin/LINUX. Confira!

    4. Utilizando o PVM

    Agora que já temos o rsh funcionando e o PVM instalado, adicionaremos os hosts que constituirão a máquina virtual PVM.

    Digite pvm para entrar na console do PVM. Aparecerá o prompt abaixo:

    [usuario@lab_c101_001 usuario]% pvm
    pvm>
    

    Para se verificar os hosts já cadastrados na máquina virtual PVM, digite conf no prompt:

    pvm> conf
    

    Para adicionar um novo host à máquina virtual, utilize o comando add. Por exemplo, para adicionar o host com endereço IP 172.16.1.2, temos:

    pvm> add 172.16.1.2
    

    Para sair da console do PVM digite quit. Nesse caso, o daemon pmvd ainda fica rodando. No entanto, se quiser sair e também parar o daemon, digite halt.

    Outros comandos do PVM podem ser vistos digitando help no prompt do console.

    5. Executando Aplicações na Máquina Virtual PVM

    Para rodar aplicações que façam uso da máquina virtual PVM, é preciso colocá-las em um diretório que o PVM possa localizá-las. Geralmente, colocamos essas aplicações dentro do diretório bin/LINUX.

    Você pode executar suas aplicações a partir do console do PVM usando o comando spawn. Por exemplo, para executarmos o programa hello, temos:

    pvm> spawn hello
    

    Entretanto, não é necessário usar esse console para a execução das aplicações. Nesse caso, considerando o exemplo acima, a execução do programa hello poderia ser feita da seguinte forma:

    [usuario@lab_c101_001 usuario]% cd /home/usuario/pvm3/bin/LINUX
    [usuario@lab_c101_001 LINUX]% ./hello
    

    Como veremos mais adiante, a execução desse programa dispara um novo processo, chamado hello_other o qual poderá ser executado em qualquer uma das máquinas que integram a máquina virtual PVM.