slide 1 rede nacional de ensino e pesquisa treinamento em gradep - junho 2005 serviço...

23
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no Treinamento no GRADEp GRADEp Framework Master-Worker

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


2 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Slide 23

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço ContextManager

Treinamento no Treinamento no GRADEpGRADEp

Framework Master-Worker