slide 1 rede nacional de ensino e pesquisa treinamento em gradep - junho 2005 serviço...
TRANSCRIPT
![Page 1: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/1.jpg)
Slide 1
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Treinamento no Treinamento no GRADEpGRADEp
Framework Master-Worker
![Page 2: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/2.jpg)
Slide 2
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Autoria
• Autor Gustavo Cestari Frainer
• Versão (número, data, autor) V1, junho de 2005 V2, 03 de agosto de 2005, Geyer
![Page 3: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/3.jpg)
Slide 3
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Sumário da apresentação
1 Paradigma Master-Worker
2 Implementando uma nova Aplicação
![Page 4: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/4.jpg)
Slide 4
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Paradigma Master-Worker
• Visão geral paradigma utilizado em aplicações distribuídas um dado problema é dividido em várias partes menores que podem ser
resolvidas independentemente• o Gradep chama estas partes menores de Jobs
os Jobs são distribuídos entre vários computadores distribuídos (Workers) que os resolvem em paralelo
um único processo (Master) controla a distribuição dos Jobs e coleta os resultados dos Workers
o Master faz as operações necessárias para juntar os resultados parciais dos Workers em um resultado final
![Page 5: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/5.jpg)
Slide 5
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Paradigma Master-Worker
• Visão geral o paradigma Master-Worker é adequado
• para resolver problemas cujo trabalho computacional total possa ser quebrado em vários pedaços
• onde o resultado da computação de um pedaço não depende da computação de nenhum outro pedaço
• e a ordem de computação dos pedaços não afeta o resultado
exemplos de classes de aplicações: • procuras em grandes bancos de dados genéticos
• algoritmos de renderização de imagens
• computacional fluid dynamics (CFD)
• simulações de Monte Carlo
• outros
![Page 6: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/6.jpg)
Slide 6
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Paradigma Master-Worker
• Visão geral o paradigma Master-Worker também é adequado
• a uma distribuição em um ambiente de Grade
• já que os altos custos de comunicação presentes neste tipo de ambiente não afetam tanto as aplicações Master-Worker
• pois não precisam realizar comunicação durante a execução de cada pedaço.
GRADEp• reconhecendo a popularidade das aplicações que seguem o paradigma
Master-Worker
• e sua adequação ao ambiente de Grade
• no Gradep disponibilizou-se um framework para facilitar a criação deste tipo de aplicação.
![Page 7: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/7.jpg)
Slide 7
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
O Framework MW do Gradep
• O Framework MW do Gradep
o framework MW é formado por um conjunto de classes e interfaces Java
• podem ser utilizadas e estendidas para criar uma nova aplicação Master-Worker
as classes do framework contêm toda lógica de distribuição e de comunicação com o Middleware
o desenvolvedor fica livre para se concentrar no lógica da aplicação em si
![Page 8: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/8.jpg)
Slide 8
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
O Framework MW do Gradep
• O Framework MW do Gradep
para construir uma nova aplicação o desenvolvedor deve executar os seguintes passos:
• estender a classe abstrata Job• objetos Job são passados aos Workers a pedido• e retornados a pedido• isto é, Workers chamam o Master
• implementar a interface WorkSplitter
• implementar a interface WorkJoiner
• criar uma classe Main que instancie e chame um JobMasterImpl• JobMasterImpl cria os Workers
opcionalmente o desenvolvedor também pode implementar a interface JobCriteria• empregada no cálculo do tamanho do Job
![Page 9: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/9.jpg)
Slide 9
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passo 1: Classe Job
• Passo 1: Classe Job
a classe Job é abstrata e deve ser estendida, criando uma classe Job da aplicação
um Job vai ser um pedaço do problema que está sendo resolvido
• o qual pode ser computado independentemente de outros Jobs
métodos que devem ser implementados:
• abstract public int getExitCode();• abstract public boolean hasNext();• abstract public void next();• abstract public Object getParams();• abstract public void init();• abstract public void run();
![Page 10: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/10.jpg)
Slide 10
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passo 1: Classe Job
• Exemplo do PiJob
public class PiJob extends Job{ private long hits; private long numIterations; public PiJob(long n){ numIterations = n; this.hits = 0; } public int getExitCode() { return 0; } public boolean hasNext() { return(false); } public void init() { } public void next() { }
![Page 11: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/11.jpg)
Slide 11
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passo 1: Classe Job
• Exemplo do PiJob
public Object getParams() { return new Long(numIterations); } public void run(){ Random rnums = new Random (); double x,y, value; for (long count=0; count< numIterations; count++) { x= Math.abs(rnums.nextDouble()); y= Math.abs(rnums.nextDouble()); if ( (x*x) + (y*y) < 1) hits++; } } public long getHits(){ return hits; }
![Page 12: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/12.jpg)
Slide 12
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passo 2: Interface WorkSplitter
• Passo 2: Interface WorkSplitter
a classe que implementa WorkSplitter deve criar os Jobs que vão ser processados distribuidamente.
métodos que devem ser implementados:
• public Job getJob(Object params);
quando o trabalho tiver sido completo e nao houverem mais Jobs a serem processados, getJob deve retornar null.
![Page 13: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/13.jpg)
Slide 13
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passo 3: Interface WorkJoiner
• Passo 3: Interface WorkJoiner
a classe que implementa WorkJoiner deve
• receber os Jobs com processamento completado
• extrair e juntar os resultados desses Jobs
métodos que devem ser implementados:
• public void publishResult(Job job)
é comum que tanto WorkSplitter quanto WorkJoiner sejam implementados pela mesma classe
![Page 14: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/14.jpg)
Slide 14
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passos 2 e 3
• Exemplo: PiJobManager
// implementa WorkSplitter e WorkJoin public class PiJobManager implements PiJobMaster
{ long defaultJobSize; long done; long totalIterations; long remaining; long hits; public PiJobManager(Long totalIterations, Long
defaultJobSize){ this.totalIterations = this.remaining =
totalIterations.longValue(); done = 0; this.defaultJobSize = defaultJobSize.longValue(); hits = 0; }
![Page 15: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/15.jpg)
Slide 15
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passos 2 e 3
• Exemplo: PiJobManager
public synchronized Job getJob(Object params){if(params == null) {
js = (remaining < defaultJobSize)? remaining defaultJobSize;
remaining -= js; return new PiJob(js); } long jobSize = ((Long)params).longValue(); if (remaining <= 0 ) return null; long js = 0; if(jobSize == 0) {return null;} else{ js = (remaining < jobSize)? remaining : jobSize; remaining -= js; return new PiJob(js); } }
}
![Page 16: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/16.jpg)
Slide 16
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passos 2 e 3
• Exemplo: PiJobManager
public synchronized void publishResult( Job job) { hits += ((PiJob) job).getHits(); done += job.getNumIterations(); notifyAll(); }
public synchronized double getPi() { while(done != totalIterations) { try { wait(); } catch (InterruptedException ie){ System.out.println(ie); } } return 4.00*hits/((double)done); }
![Page 17: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/17.jpg)
Slide 17
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passos 4: Main
• Passos 4: Main
finalmente, é preciso construir uma classe com um método main para a aplicação
dentro desta classe um JobMasterImpl deve ser criado
construtor do JobMasterImpl:
• public JobMasterImpl(WorkSplitter ws, WorkJoiner wj, String jobCriteria, int numInitialWorkers, boolean keepCreatingWorkers)
parâmetros:
• ws : Uma instância de uma classe que implemente WorkSplitter
• wj : Uma instância de uma classe que implemente WorkJoiner
![Page 18: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/18.jpg)
Slide 18
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passos 4: Main
• Passos 4: Main jobCriteria:
• uma String com o nome da classe que vai definir os parâmetros para getJob
• use FixedJobCriteria se nenhuma classe especial tiver sido criada para a aplicação
numInitialWorkers:
• número de workers a serem criados inicialmente
![Page 19: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/19.jpg)
Slide 19
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passos 4: Main
• Passos 4: Main keepCreatingWorkers:
• se for verdadeiro o JobMaster vai continuar criando workers nos computadores disponíveis da célula mesmo depois de já tiver criado os iniciais
• e novos computadores se tornarem disponíveis no meio da execução eles também vão ser utilizados
uma vez criado o JobMasterImpl, o seu método starterWorkerCreation deve ser chamado para iniciar a criação dos Workers
![Page 20: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/20.jpg)
Slide 20
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passos 4: Main
• Exemplo: Pi
public static void Main (String[] args){
PiJobManager manager = new PiJobManager(1000000,10000)JobMaster master = new
JobMasterImpl(manager,manager,”FixedJobCriteria”,1,true);master.startWorkerCreation();System.out.println(“Pi is:”+manager.getPi());
}
![Page 21: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/21.jpg)
Slide 21
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passo Opcional: JobCriteria
• Passo Opcional: JobCriteria
o JobCriteria é utilizado para obter o objeto params que é passado para o getJob
comumente o objeto params define o tamanho do Job (número de iterações no caso do Pi)
FixedJobCriteria simplesmente mantêm sempre o mesmo parâmetro
o desenvolvedor pode implementar um novo JobCriteria para sua aplicação
• que, por exemplo, aumente o tamanho do Job se um processador estiver terminando seus Jobs muito rápido
![Page 22: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/22.jpg)
Slide 22
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Passo Opcional: JobCriteria
• Passo Opcional: JobCriteria método da interface JobCriteria:
• public Object guessNewJobSize(Job currJob, long elapsedtime, long timeGoal);
• currJob• o Job que acabou de ser processado
• elapsedTime• quanto tempo ele demorou para ser processado
• timeGoal• um valor definido pela aplicação de quanto tempo um Job deveria
demorar para ser processado• retorno
• vai ser o parâmetro utilizado para definir o próximo Job deste processador
![Page 23: Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker](https://reader034.vdocuments.pub/reader034/viewer/2022051615/552fc10e497959413d8c4cc9/html5/thumbnails/23.jpg)
Slide 23
Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005
Serviço ContextManager
Treinamento no Treinamento no GRADEpGRADEp
Framework Master-Worker