Mudanças entre as edições de "Integração SGE/Globus"
Linha 1: | Linha 1: | ||
− | + | ||
[[category:Configuração]] | [[category:Configuração]] | ||
Edição das 17h02min de 14 de setembro de 2012
Índice
Introdução
Para que os jobs submetidos através do Globus respeitem a fila do SGE, é necessário adicionar o jobmanager do SGE para o Globus.
Certifique-se de ter o MPICH 1.2.x instalado com o dispositivo ch_p4, pois o jobmanager-sge não suporta nem outros dispositivos do MPICH nem outras implementaçãoes do MPI, como o LAM MPI.
Visite a página http://www.apgrid.org/globus-sge/top.html e baixe a última versão do globus_gram_job_manager_setup_sge-0.11.tar.gz.
Configuração do SGE
Configuração do Ambiente Paralelo
Crie um novo PE (Parallel Environment - Ambiente Paralelo) chamado "mpich". Se ele já existir, utilize um nome diferente.
- Exiba os PEs disponíveis com:
$ qconf -spl make treadmarks lam-mpi
Este comando existe todos os PEs disponíveis. Neste exemplo, os ambientes 'make', 'treadmarks' e 'lam-mpi' existem.
- Para adicionar o novo PE, execute:
# qconf -ap mpich
Este comando adicionará o novo PE e invocará um editor de texto para que o PE seja configurado. Edite a configuração como abaixo:
pe_name mpich queue_list all slots 64000 user_lists NONE xuser_lists NONE start_proc_args $SGE_ROOT/mpi/startmpi.sh -catch_rsh $pe_hostfile stop_proc_args $SGE_ROOT/mpi/stopmpi.sh allocation_rule $round_robin control_slaves TRUE job_is_first_task FALSE
Substitua $SGE_ROOT pelo caminho de instalação do SGE.
- Modifique os arquivos {start,stop}mpi.sh de acordo com o patch abaixo:
--- startmpi.sh 2005/04/06 09:51:36 1.1 +++ startmpi.sh 2005/04/06 09:51:47 @@ -72,7 +72,7 @@ # # useful to control parameters passed to us -echo $* +#echo $* # parse options catch_rsh=0 @@ -125,7 +125,7 @@ fi # trace machines file -cat $machines +#cat $machines # # Make script wrapper for 'rsh' available in jobs tmp dir --- stopmpi.sh 2005/04/02 01:56:23 1.1 +++ stopmpi.sh 2005/04/02 02:10:24 @@ -46,6 +46,6 @@ hp|hp10|hp11|hp11-64) rshcmd=remsh ;; *) ;; esac -rm $TMPDIR/$rshcmd +rm $TMPDIR/$rshcmd >/dev/null 2>&1 exit 0
Se o SGE_ROOT não for compartilhado, então esta modificação deve ser feita em todas as máquinas do cluster.
Configuração do qrsh
(No caso do cluster da UFES, este passo é opcional, pois o cluster já está configurado da maneira correta)
- Exiba uma lista com todos os hosts de execução
- qconf -sel
tpol0.cluster tpol1.cluster tpol2.cluster tpol3.cluster tpol4.cluster tpol5.cluster tpol6.cluster tpol7.cluster tpol8.cluster tpol9.cluster tpol10.cluster tpol11.cluster tpol12.cluster tpol13.cluster tpol14.cluster tpol15.cluster tpol16.cluster tpol17.cluster tpol18.cluster tpol19.cluster tpol20.cluster tpol21.cluster tpol22.cluster tpol23.cluster tpol24.cluster tpol25.cluster tpol26.cluster tpol27.cluster tpol28.cluster tpol29.cluster tpol30.cluster tpol31.cluster tpol32.cluster tpol33.cluster tpol34.cluster tpol35.cluster tpol36.cluster tpol37.cluster tpol38.cluster tpol39.cluster tpol40.cluster tpol41.cluster tpol42.cluster tpol43.cluster tpol44.cluster tpol45.cluster tpol46.cluster tpol47.cluster tpol48.cluster tpol49.cluster tpol50.cluster tpol51.cluster tpol52.cluster tpol53.cluster tpol54.cluster tpol55.cluster tpol56.cluster tpol57.cluster tpol58.cluster tpol59.cluster tpol60.cluster tpol61.cluster tpol62.cluster tpol63.cluster
- Exiba lista de todos os hosts de submissão:
# qconf -ss tpol0.cluster tpol1.cluster tpol2.cluster lcad10.lcad.inf.ufes.br tpol3.cluster tpol4.cluster tpol5.cluster tpol6.cluster tpol7.cluster tpol8.cluster tpol9.cluster tpol10.cluster tpol11.cluster tpol12.cluster tpol13.cluster tpol14.cluster tpol15.cluster tpol16.cluster tpol17.cluster tpol18.cluster tpol19.cluster tpol20.cluster tpol21.cluster tpol22.cluster tpol23.cluster tpol24.cluster tpol25.cluster tpol26.cluster tpol27.cluster tpol28.cluster tpol29.cluster tpol30.cluster tpol31.cluster tpol32.cluster tpol33.cluster tpol34.cluster tpol35.cluster tpol36.cluster tpol37.cluster tpol38.cluster tpol39.cluster tpol40.cluster tpol41.cluster tpol42.cluster tpol43.cluster tpol44.cluster tpol45.cluster tpol46.cluster tpol47.cluster tpol48.cluster tpol49.cluster tpol50.cluster tpol51.cluster tpol52.cluster tpol53.cluster tpol54.cluster tpol55.cluster tpol56.cluster tpol57.cluster tpol58.cluster tpol59.cluster tpol60.cluster tpol61.cluster tpol62.cluster tpol63.cluster
- Adicione hosts de submissão
Se algum host de execução não estiver registrado como host de submissão, adicione-o à lista de hosts de submissão.
# qconf -as <host>
- Configure os caminhos para o ssh de acordo com a configuração do sge.
# qconf -mconf tpo0 . . . rlogin_command /usr/bin/ssh rlogin_daemon /usr/bin/sshd -i rsh_command /usr/bin/ssh rsh_daemon /usr/sbin/sshd -i
- Confirme o funcionamento do qrsh. Por exemplo:
tpol0$ qrsh /bin/hostname tpol59.cluster
Instalação do jobmanager-sge
Certifique-se de ter as variáveis de ambiente do Globus Toolkit definidas de maneira apropriada. Normalmente,
GLOBUS_LOCATION=/usr/local/globus GPT_LOCATION=$GLOBUS_LOCATION export GLOBUS_LOCATION GPT_LOCATION
as define de maneira correta.
Compilação do jobmanager-sge
Se a mesma versão do jobmanager-sge já estiver instalada, ela deve ser removida antes da instalação. Caso contrário, utilize o argumento -force para o comando gpt-build. Lembre-se de realizar estes comandos logado como o usuário dono da instalação do Globus.
gpt-build -force globus_gram_job_manager_setup_sge-0.11.tar.gz
Configuração do jobmanager-sge
Antes de continuar, certifique-se de que o /caminho/para/mpich/bin está definido na variável PATH e que a variável SGE_ROOT está definida. No LCAD, para adicionar o mpich ao caminho, execute:
export PATH=$PATH:/usr/local/mpich/bin /usr/local/sge-5_3/default/common/settings.sh
Execute
cd $GLOBUS_LOCATION/setup/globus ./setup-globus-job-manager-sge --mpi-pe=mpich
O valor do argumento --mpi-pe deve ser o mesmo usado para a criação do novo PE.
Verifique o jobmanager-sge
Verifique que um script para o jobmanager-sge foi instalado como
$GLOBUS_LOCATION/lib/perl/Globus/GRAM/JobManager/sge.pm
Recomenda-se a verificação do valor das variáveis em BEGIN{} ($qsub ... $SGE_RELEASE) estão definidas corretamente.
Teste o jobmanager-sge
Teste o jobmanager-sge para todos os tipos de jobs, incluindo single, multiple e mpi.