Lembrar-me

 

O documento abaixo foi inicialmente escrito por Sergio Henrique Guerra de Sousa e posteriormente revisado e expandido por Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo..

O PVM é um conjunto de ferramentas que possibilita simular a existência de um grande computador multiprocessado usando estações Linux/UNIX distintas ligadas por uma rede de comunicação. O PVM oferece primitivas de manipulação de processos e alocação de máquinas que são implementadas em bibliotecas de ligação nas linguagens ”C" e ”Fortran".

Faremos agora uma breve descrição das configuraçõs necessárias para a execução do PVM. Se você já conhece a interface PVM ou simplesmente quer ir direto para os finalmentes, clique aqui.

Ao usar o PVM, é necessário definir duas variáveis de ambiente:
  • PVM_ROOT
  • PVM_ARCH

Para não ter que atribuir valores a essas variáveis toda vez que se logar no sistema, basta incluir essas definições no arquivo de configuração. O arquivo de configuração depende do shell que se usa. A tabela abaixo apresenta os nomes dos arquivos de configuração de acordo com o shell utilizado:

Shell Arquivo
Bash (Bourne Shell) .bashrc ou .profile
Csh (C Shell) .cshrc
Ksh (Korn Shell) .profile
Sh .profile


O shell padrão das máquinas das máquinas do DEP é o C Shell. O shell padrão do cluster (máquina bud) é o Born Shell. Para se certificar sobre qual o shell que se está usando, basta executar o seguinte comando no prompt do sistema:
echo $SHELL
Caso a saída deste comando seja /bin/bash, isto indica que o shell é o Bash. O /bin que antecede o nome do shell significa que ele se encontra no diretório /bin. Experimente usar o comando “ls $SHELL” para ver o que acontece. Agora que já se sabe qual é o shell, verifique sempre quais linhas se aplicam ao seu caso.

A variável PVM_ROOT indica em qual diretório o PVM está instalado. Deste modo, o valor dela é o caminho completo deste diretório. Abaixo seguem as linhas a serem incluídas ao fim do arquivo de inicialização para definir PVM_ROOT:

Alterações no .profile (usuário bash, sh ou ksh) ou .bashrc (usuário bash):
#settings for PVM 3.4.5
PVM_ROOT=/export/tools/pvm3
export PVM_ROOT
Alterações no .cshrc (usuário csh):
#settings for PVM 3.4.5
setenv PVM_ROOT /export/tools/pvm3
O valor da variável PVM_ARCH depende da plataforma sobre a qual se está utilizando o PVM. No DEP há algumas possibilidades. Cada plataforma possui um nome próprio conhecido pelo PVM e este nome segue a convenção abaixo:

Sistema Plataforma
Linux 32 LINUX
Linux 64 bits LINUX64
Solaris SUN4SOL2
Solaris multi-processada SUNMP
Windows WIN32



Como é muito trabalhoso ficar definindo uma arquitetura para cada máquina que se está utilizando, o PVM possui um script que detecta automaticamente a arquitetura em uso e retorna uma string correspondente ao valor que o PVM_ARCH deve assumir. Este script se chama pvmgetarch e se encontra no diretório lib do PVM. Assim, para automatizar mais esta atribuição, o seguinte trecho de código deve aparecer logo após a definição da variável PVM_ROOT:

Alterações no .profile e .bashrc:

if ( -e $PVM_ROOT ) then
     PVM_ARCH=`$PVM_ROOT/lib/pvmgetarch`
else
     echo “PVM_ROOT nao esta definido!”
fi

Alterações no .cshrc:

if ( $?PVM_ROOT ) then
     setenv PVM_ARCH `$PVM_ROOT/lib/pvmgetarch`
endif

Resumindo as alterações descritas acima, temos as seguintes linhas para acrescentar no arquivo de configuração:

Resumo das linhas para incluir nos arquivos .bashrc e .profile (usuários bash, sh ou ksh)

#settings for PVM 3.4.5
PVM_ROOT=/export/tools/pvm3
export PVM_ROOT
if ( -e $PVM_ROOT ) then
     PVM_ARCH=`$PVM_ROOT/lib/pvmgetarch`
else
     echo PVM_ROOT nao esta definido!
fi

Resumo das linhas para incluir no .cshrc (usuários do csh)

#settings for PVM 3.4.5
setenv PVM_ROOT /export/tools/pvm3
if ( $?PVM_ROOT ) then
     setenv PVM_ARCH `$PVM_ROOT/lib/pvmgetarch`
endif


Compilando programas em PVM

O PVM suporta programas compilados tanto na linguagem Fortran quanto em C. Para simplificar a compilação, é recomendável acrescentar o diretório das bibliotecas do PVM na variável LD_LIBRARY_PATH. Para fazer isso, inclua as seguintes linhas logo após a definição das variáveis do PVM no seu arquivo de configuração:

Linhas a serem incluídas nos arquivos .bashrc e .profile (usuários bash, sh ou ksh):

# inclui o diretorio $PVM_ROOT/lib/$PVM_ARCH no caminho de busca do ld (Linker)
LD_LIBRARY_PATH=$LD_LIBRARY_PATH\:$PVM_ROOT/lib/$PVM_ARCH
export LD_LIBRARY_PATH

Linhas a serem incluídas no arquivo .cshrc (usuários csh):

# inclui o diretorio $PVM_ROOT/lib/$PVM_ARCH no caminho de busca do ld (Linker)
setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH\:$PVM_ROOT/lib/$PVM_ARCH

Uma vez definida mais esta variável de ambiente, o PVM está pronto para ser usado em outros programas.


Observações finais

O PVM é um software em constante desenvolvimento e muitos problemas ainda estão sendo resolvidos.
Finalmente, críticas e sugestões são mais do que bem vindas.

Introdução ao PVM para Usuários do UNISIM