Estudo da plataforma OurGrid para construção de Grids Marcelo Veiga Neves [email protected].
Transcript of Estudo da plataforma OurGrid para construção de Grids Marcelo Veiga Neves [email protected].
Roteiro
• Introdução
• Arquitetura
• Instalação
• Porte da aplicação NQueens
• Testes realizados
• Plataforma relacionada: P3
• Conclusão
Introdução
• OurGrid é um free-to-join peer-to-peer grid• Desenvolvido no LSD/UFCG e é apoiado pela HP
(Hewlett-Packard)• Em produção desde 2004• Os recursos computacionais são providos por recursos
ociosos dos participantes (como no SETI@home)• Somente aplicações Bag-of-Tasks (BoT)
• Diferença:– Todos participantes podem executar no grid– Rede de Favores = quem contribui mais tem mais direito a
recursos
Estado do OurGrid Hoje
Wed Dec 13 07:58:46 BRT 2006
Arquitetura
Instalação
• Pré-requisitos:– Java (J2SE) 1.5.x– Não necessita executar como super-usuário
(e nem aconselha-se)– Escolher portas que ainda não estejam em
uso ;-)– Peer machine deve ter IP público e poder
receber conexões pela Internet (Firewall deve liberar porta do OurGrid)
Instalação
• No servidor do site (Peer machine):– Download peer-3.3.tar.gz– tar xzf peer-3.3.tar.gz– cd peer/
– Editar o arquivo peer.properties (peer.name, peer.port, peer.joincommunity, etc.)
– Iniciar serviço:• ./bin/peer start
– Adicionar descrição do site (grid machines):• ./bin/peer setgums my_site.sdf
Instalação
• Exemplo de arquivo de descrição:gumdefaults: site : integridade type : ualinux os : linux processorfamily : IA32 mem : 512 remExec : ssh -x $machine $command copyFrom : scp $machine:$remotefile $localfile copyTo : scp $localfile $machine:$remotefile port : 3080
gum: name: compute-1-0gum: name: compute-1-1gum: name: c1-0 port: 3082gum: name: c1-1 port: 3082
Instalação
• Nos nós trabalhadores (Grid machines):– Instalação automática via peer (não funcionou nos meus testes!)
– Download useragent-3.3.tar.gz– tar xzf useragent-3.3.tar.gz– cd useragent/
– Editar arquivo ua.properties (ua.name, ua.port, ua.idlenessdetector, etc.)
– Iniciar o serviço:• ./useragent start
Instalação
• No cliente (MyGrid):– Download mygrid-3.3.tar.gz– tar xzf mygrid-3.3.tar.gz– cd mygrid/
– Iniciar o serviço:• bin/mygrid start
– Adicionar a descrição dos peers:• bin/mygrid setgrid my_peer.gdf
# exemplo de descricao de peerpeer: name: integridade.inf.ufrgs.br label: GPPD's peer port: 3081
Instalação
• Problema:– Peer demora para encontrar as grid machines– Motivo: OurGrid utiliza JXTA para descoberta
de recursos
Porte da aplicação NQueens
• Mesma aplicação utilizada nos testes do XtremWeb e BOINC– ./nqueens N task
• Geração de um arquivo de Job para processar todas as tarefas
• Submissão:– ./bin/mygrid addjob nqueens-18.sdf
Exemplo de arquivo de Jobjob :label : nqueens18
task :init : put ./nqueens nqueensremote : ./nqueens 18 0 > output-$JOB.$TASKfinal : get output-$JOB.$TASK output-$JOB.$TASK
task :init : put ./nqueens nqueensremote : ./nqueens 18 1 > output-$JOB.$TASKfinal : get output-$JOB.$TASK output-$JOB.$TASK
task :init : put ./nqueens nqueensremote : ./nqueens 18 2 > output-$JOB.$TASKfinal : get output-$JOB.$TASK output-$JOB.$TASK
...
Geração dos Jobs#!/bin/sh
N=18num_tasks=1186
echo "job :"echo "label : nqueens$N"
let num_tasks--for i in `seq 0 $num_tasks`do echo echo "task :" echo "init : put ./nqueens nqueens" echo "remote : ./nqueens $N $i > output-\$JOB.\$TASK" echo "final : get output-\$JOB.\$TASK output-\$JOB.\$TASK"done
Monitoração da execução$ ./bin/mygrid status | moreStarting to print grid status.MyGrid 3.3.1 is up and running.
Peers:GPPD's peer => rmi://integridade:3081/LOCAL_ACCESS [ UP ]
Received Grid Machines: compute-1-1:3080@integridade:3081 compute-1-0:3080@integridade:3081 c1-1:3082@integridade:3081 c1-0:3082@integridade:3081
Jobs: Job 23: nqueens19 [RUNNING] Task 1: [FINISHED] Replica 1: [FINISHED] - assigned to compute-1-1:3080@integridade:3081 Task 2: [RUNNING] Replica 1: [RUNNING] - assigned to c1-1:3082@integridade:3081 Task 3: [RUNNING] Replica 1: [RUNNING] - assigned to c1-0:3082@integridade:3081 Task 4: [RUNNING] Replica 1: [RUNNING] - assigned to compute-1-0:3080@integridade:3081 Task 5: [RUNNING] Replica 1: [RUNNING] - assigned to compute-1-1:3080@integridade:3081 Task 6: [UNSTARTED] Task 7: [UNSTARTED] . . .
Ambiente de Execução
• Cluster Corisco– 4 nós Dual Pentium 3 1GHz com 512 MB– 1 servidor e 3 GuMs (1 por nó do cluster)– Rede Fast Ethernet
• Cluster Integridade– 3 nós Dual Pentium 4 3.2 GHz com 512 MB – 1 servidor e 4 GuMs (2 por nó do cluster)– Rede Gigabit Ethernet
Resultados Corisco
N Seqüencial (min) Tempo paral. (min)
18 15,34 8,17
19 131,89 42,04
20 948.97 (15,81 horas) 319,76 (5,33 horas)
Resultados Integridade
Tempo de médio de processamento
N Seq. XtremWeb BOINC OurGrid
18 (1 a 1) 4min35s 3h12min 35min 2min30s
18 (10 a 10) 15min12s 3min30s 1min42s
18 (30 a 30) 8min10s ? 1min39s
19 (1 a 1) 35min4s 4h50min 37min 13min13s
19 (10 a 10) 31min22s 16min 12min34s
19 (30 a 30) 26min22s ?
P3
• P3 = Personal Power Plant• Desenvolvido em conjunto pelo Grid Technology
Research Center (GTRC) e National Institute of Advanced Industrial Science and Technology (AIST), Japão
• Permite a execução de programas que comunicam entre os peers (não apenas BoT)
• Esforço para implementar um middleware puramente sobre JXTA
• Problemas:– Necessidade de interface gráfica (servidor X)– Necessidade de implementação do escalonador– API pouco (ou nada) documentada
Conclusão
• OurGrid apresentou melhor desempenho– Realiza comunicação com eficiência– Simples e funcional! Esta em produção desde 2004– Problemas:
• descoberta de recursos deveria ser configurável• Não permite a descrição de nós biprocessado
• Comparação com BOINC e XtremWeb– BOINC não foi projetado para comunicação em rede local
• Pequena quantidade de dados, grande tempo de processamento (Ex: SETI@home)
– XtremWeb (?)• Apresentou pior desempenho
Referências
• OurGrid: http://www.ourgrid.org/• P3: http://p-three.sourceforge.net/• OurGrid Administrator Guide:
http://www.ourgrid.org/twiki-public/bin/view/OG/ManualAdministrator3_3
• OurGrid User Guide: http://www.ourgrid.org/twiki-public/bin/view/OG/ManualUser3_3
• Labs of the World, Unite!!! http://www.ourgrid.org/twiki-public/pub/OG/OurPublications/LabsoftheWorldUnitev19.pdf
• OurGrid Web Status 3.3: http://status.ourgrid.org/