OK,
você seguiu todos os passos do Hands-on-Lab sobre a instalação do WCCS e agora tem um Cluster Windows rodando.

Mas e aí? E agora?
Como ver ele funcionando?

Submit Jobs

Quando instalamos o Compute Cluster Server aqui no laboratório pela primeira vez passamos pelo mesmo problema e foi difícil achar algo conciso sobre o assunto na internet. Isso acabou nos motivando a escrever essa wiki para tratar de como submeter um job no WCCS e como usar as ferramentas disponíveis.

Para começar, vamos rodar um clusrun /all dir no prompt para ver como os nodes estão respondendo. Este comando (o 'clusrun') roda um comando específico (o 'dir', no exemplo) nos nodes selecionados (no caso '/all' são todos).
Certifique-se de estar logado como administrador do domínio para ter permissão de rodar o comando.

Feito isso, faz sentido rodar uma aplicação em batch. Classicamente usa-se o batchpi.exe. Você pode encontrá-lo em http://archives.windowshpc.net/files/18/test_apps/entry13.aspx.
Para rodar um programa em um cluster, todos os nodes devem ter acesso ao programa que vai ser executado. O jeito mais fácil de fazer isso é criando um diretório compartilhado com permissão de leitura e escrita para o usuário e copiando o programa para ele (o batchpi.exe, no caso).
Agora, para executar (pode confiar, é bem mais simples rodar um job pelo prompt) o comando deve ser algo asism:
job submit /jobname:BatchPI /numprocessors:8 /workdir:\\HeadNode\share\ /stdout:pi.out batchpi.exe 1000

O comando 'job' serve para submeter, ver e administrar jobs. No caso com 'job submit' estamos submetendo.
'/jobname:' identifica o job com o um nome (o nome que aparece no Job Manager).
'/numprocessors:' quantidade de processadores que serão alocados para o job.
'/workdir:' identifica o caminho para o diretório de trabalho do cluster. É lá que deve estar o executável e é lá que o arquivo com o resultado vai ser criado.
'/stdout:' o nome do arquivo que vai conter a saída da execução.
O resto ('batchpi.exe 1000', no caso) é o comando e os seus argumentos, onde o '1000' é o argumento que usamos para o 'batchpi.exe'.
Mais informações sobre o comando job (e outros do WCCS) no Technet.

Agora que rodamos um batch, vamos rodar um MPI.
Acho bem didático (e legal, já que ele gera um monte de output) usar o mpipingpong.exe que vem junto com o Microsoft Compute Cluster Pack Tool Pack da equipe do Windows Compute Cluster Server, que pode ser achado aqui: http://archives.windowshpc.net/files/18/tool_pack/default.aspx (para poder utilizar o PowerShell snap-in certifique-se de que o PowerShell está instalado).
Após ser instalado, o arquivo 'mpipingpong.exe' deve ser copiado de C:\Program Files\Microsoft Compute Cluster Pack\Bin para a sua pasta compartilhada para ser executado.

A sua linha de comando, dessa vez, deve se parecer com isso:
job submit /jobname:PingPong /numprocessors:8 /workdir:\\HeadNode\share\ /stdout:pingpong.out mpiexec mpipingpong.exe
Repare no comando: 'mpiexec mpipingpong.exe'. Todo aplicativo que usa MPI, ao ser submetido como job ao cluster, deve ser executado usando o 'mpiexec'.

PowerShell snap-in

Agora que você já instalou o Tool Pack mesmo, vai ser apresentado à coisa mais legal do pacote: o PoweShell snap-in.
Para que ele tenha sido instalado com o Tool Pack, o PowerShell tinha de ter sido instalado anteriormente. Se você não o fez, instale o PowerShell e reinstale o Tool Pack.
Você consegue o PoweShell em http://www.microsoft.com/powershell.

Por padrão será criado um link na sua área de trabalho chamado CCP PowerShell.
Para fazer ele funcionar corretamente você precisa setar o Scheduler que ele vai usar, algo assim:
set-content Env:CCP_SCHEDULER HeadNode
onde 'Env:CCP_SCHEDULER' é a variável que você está setando com 'HeadNode'. O Scheduler tem sempre o nome do Head Node do seu cluster. Com esse comando é possível, inclusive, se conectar a outros clusters.

Para montar o PSDrive seu comando deverá ser parecido com isso:
new-psdrive -name CCP -psprovider ccpprovider -root $Env:CCP_SCHEDULER
Com isso você monta um drive chamado 'CCP', no qual pode acessar os recursos do Cluster.

Para acessar seu PSDrive basta digitar cd ccp: .
Digite dir nodes e você verá uma listagem dos nodes como se fossem pastas do seu drive. Legal né?

Para ver uma lista de comandos digite Get-Command,
para descobrir como usá-los digite get-help <nome.do.comando>.

Nota: toda vez que você reiniciar o PowerShell, vai ter de setar tudo denovo. Um modo de automatizar isso é criar um Profile.
O comando é assim:
new-item -type file -path $profile -force
Com ele você inicializa a uma variável de ambiente chamada '$profile' que guarda o caminho para o arquivo com os comandos que serão executados toda vez que você abrir o PowerShell.
Agora basta executar notepad $profile e colocar os comandos que você quer que sejam executados lá dentro.

Mais detalhes em PowerShell CCP Cmdlets.




Last edited Feb 20, 2008 at 8:04 AM by azazyel, version 24

Comments

No comments yet.