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

Slides:



Advertisements
Apresentações semelhantes
TADs Vector, Lista e Sequência
Advertisements

ADT – Arvore Binária de Pesquisa
Projeto de Sistemas de Software Luana Lachtermacher
Classificação. 2 Métodos de Classificação Os métodos de classificação podem ser dos tipos: Classificação interna – quando toda a coleção de itens a classificar.
Listas Encadeadas Circulares Listas Duplamente Encadeadas
Ronaldo Celso Messias Correia
Biblioteca Digital da Memória Técnico-Científica do INPE
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
Computação: Cursos, Atuação e Interação Profissional Marcos José Santana Departamento de Ciências de Computação e Estatística ICMC-USP - São Carlos.
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Container Managed Persistent Bean Kellyton Brito Projeto Compose
Prof. Dr. Helder Anibal Hermini. SUMÁRIO Algumas Aplicações O Treinamento da RNA Redes Neurais em Identificação e Controle de Processos Redes Neurais.
Prof. Dr. Helder Anibal Hermini
Criptografia Quântica : Um Estudo
Teste Funcional de Software
Gustavo Vieira Pereira
Treinamento no GRADEp Serviço Executor ExecutorDemo.
Slide 1 Rede Nacional de Ensino e Pesquisa Serviços do Middleware Treinamento em GRADEp – junho de 2005 GT GRADEp Middleware GRADEp Serviços.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Aplicação GeneAl Treinamento no GRADEp Aplicação GeneAl.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Treinamento no GRADEp Serviço OXManager OXManagerDemo.
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 Serviço Worb Treinamento no GRADEp Serviço Worb WorbDemo.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Treinamento no GRADEp GRADEp Desktop DesktopSwing.
Índice de Desenvolvimento da Educação Básica – Ideb
Seminário de Treinamento de Presidentes Eleitos NOVAS GERAÇÕES.
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
O Fluxo de Testes © Alexandre Vasconcelos
Disciplina: Paradigmas e Ferramentas de Desenvolvimento de Software
Templates e Questões de Design Programas são geralmente construídos segundo um design que é relativamente bem mapeado nos mecanismos oferecidos pela linguagem.
Técnicas de Amostragem
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
Segurança de Dados no MAER.
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
TA 733 A – Operações Unitárias II
Computação Gráfica: Possibilidades e Desafios
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
BlastPhen Aluno: Ricardo Nishikido Pereira
Mac-499 Trabalho de Formatura Supervisionado
A Importância da Computação Científica Profa. Dra. Marli de Freitas Gomes Hernandez UNIVERSIDADE ESTADUAL DE CAMPINAS CENTRO.
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Redes Embutidas - Prof a Luiza Mourelle 1 1 Topologias As topologias de redes intrachip podem ser agrupadas em duas classes principais: as redes diretas.
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Curso em CD-ROM Como Atender Bem SLIDES MODELO ALEATÓRIOS.
The Data Warehouse Toolkit
LINGUAGENS DE PROGRAMAÇÃO
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Programação Concorrente com Thread Java
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
8. Uma Função de duas Variáveis Aleatórias
Professor: Hyggo Almeida
Sincronização com Locks. Locks É um mecanismo de sincronização de processos/threads em que estas devem ser programadas de modo que seus efeitos sobre.
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Análise Sintática – Parte 1
Scala Bruno Barros e Rebeka Gomes
Mapeamento de CSP para JCSP Patrícia Muniz (pmf) Rafael Duarte (rmd)
Os métodos equals() e hashCode()
Java Generics Adeline de Sousa Silva.
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
Java: Interfaces Alcides Calsavara.
Rosemary Silveira Filgueiras Melo
Programação Orientada a Objetos
Transcrição da apresentação:

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 Pesquisa Treinamento 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

Slide 3 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Sumário da apresentação 1 Paradigma Master-Worker 2 Implementando uma nova Aplicação

Slide 4 Rede Nacional de Ensino e Pesquisa Treinamento 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

Slide 5 Rede Nacional de Ensino e Pesquisa Treinamento 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

Slide 6 Rede Nacional de Ensino e Pesquisa Treinamento 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.

Slide 7 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

Slide 8 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

Slide 9 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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();

Slide 10 Rede Nacional de Ensino e Pesquisa Treinamento 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() { }

Slide 11 Rede Nacional de Ensino e Pesquisa Treinamento 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; }

Slide 12 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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.

Slide 13 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

Slide 14 Rede Nacional de Ensino e Pesquisa Treinamento 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; }

Slide 15 Rede Nacional de Ensino e Pesquisa Treinamento 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); }

Slide 16 Rede Nacional de Ensino e Pesquisa Treinamento 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); }

Slide 17 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

Slide 18 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

Slide 19 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

Slide 20 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Passos 4: Main Exemplo: Pi public static void Main (String[] args){ PiJobManager manager = new PiJobManager( ,10000) JobMaster master = new JobMasterImpl(manager,manager,FixedJobCriteria,1,true); master.startWorkerCreation(); System.out.println(Pi is:+manager.getPi()); }

Slide 21 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

Slide 22 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager 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

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