Integração SGE/Globus

De LCAD
Ir para: navegação, pesquisa


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
  1. 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.