Projecto de Programação por Objectos 2007/08 Escalonamento em Multi-processador por Programação Evolutiva MEBiom/MEEC 1 Problema



Documentos relacionados
Engenharia Informática Engenharia Electrotécnica e Computadores Programação Orientada por Objectos Projecto PlayCards

Introdução à Programação B Licenciatura em Engenharia Informática. Enunciado do trabalho prático. Quem quer ser milionário? 20 de Dezembro de 2007

II. Elementos a Apresentar

Exercícios de Filas de Espera Enunciados

Trabalho de Implementação Jogo Reversi

Especificação Operacional.

NCRF 19 Contratos de construção

MODELAGEM E SIMULAÇÃO

Manual de candidatura por via electrónica

Problema de Otimização Combinatória

Manual de Utilizador Plataforma de Estágios TIC.

Jogos vs. Problemas de Procura

CAPÍTULO 2. Grafos e Redes

Projecto de Desenvolvimento de Sistemas de Software

Faculdade de Computação

Curso:... Prova de Sistemas de Informação para Bibliotecas (21105) Nome:... Nº de Estudante:... B. I. nº... Assinatura do Vigilante:...

Laboratórios de CONTROLO (LEE) 2 o Trabalho Motor DC Controlo de Velocidade

Análise de Tarefas. Análise Hierárquica de Tarefas

Business Impact Analysis

Cálculo em Computadores trajectórias 1. Trajectórias Planas. 1 Trajectórias. 4.3 exercícios Coordenadas polares 5

Gestão de projectos na Web

Módulo 10. Medição do Desempenho

CAPÍTULO 3. Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão

Sistema de equações lineares

PARLAMENTO EUROPEU. Comissão dos Assuntos Jurídicos PE v01-00

Manual do Gestor da Informação do Sistema

Manual da Qualidade. Rodrigo Barata Mediação de Seguros. Revisão n. 01 Data de Publicação: Elaborado por: RodrigoBarata Estado:

Prémio Santander Totta / Universidade NOVA de Lisboa, de Jornalismo Económico. Regulamento

Transcrição Automática de Música

Modelos, em escala reduzida, de pontes e barragens. Simuladores de voo (ou de condução), com os quais se treinam pilotos (ou condutores).

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Modelos de Filas de Espera

Instituto Superior Técnico Departamento de Matemática Última actualização: 11/Dez/2003 ÁLGEBRA LINEAR A

Cadeira de Tecnologias de Informação. Conceitos fundamentais de sistemas e tecnologias de informação e de gestão do conhecimento.

Este trabalho tem como objetivo praticar o uso de tipos abstratos de dados e estruturas do tipo Lista.

ANEXO. Manual do utilizador

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Aula anterior... Definição do algoritmo (continuação)

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

COMPUTAÇÃO e PROGRAMAÇÃO

O que esperar do SVE KIT INFORMATIVO PARTE 1 O QUE ESPERAR DO SVE. Programa Juventude em Acção

Avaliação de Desempenho de Sistemas

Departamento de Engenharia de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

Introdução aos Algoritmos e Estruturas de Dados 2011/2012

Escola Secundária de Jácome Ratton

MANUAL DO GERENCIAMENTO DE RISCO OPERACIONAL

13 a Aula AMIV LEAN, LEC Apontamentos

Manual de Instruções. Orçamentos, Autos de medição, Cadernos de Encargos e Controlo de Tempos. Controlo de Custos de Obra. Planos de Segurança e Saúde

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

Exercícios Teóricos Resolvidos

Notação. Quantidades Económicas de Encomenda. 1.1 Quantidade Económica de Wilson. 1.1 Quantidade Económica de Wilson

4.1. UML Diagramas de casos de uso

Pedro Ribeiro 2014/2015

CPV O Cursinho que Mais Aprova na GV

EXAME NACIONAL DO ENSINO SECUNDÁRIO

Nome:...N o...turma:... Data: / / ESTUDO DOS GASES E TERMODINÂMICA

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos

Algoritmo MiniMax. Minimax

INSPECÇÃO-GERAL DA EDUCAÇÃO PROGRAMA AFERIÇÃO

Engenharia do Conhecimento

Paula Teixeira Manuel Fernandes. 15 de Janeiro de

A 'BC' e, com uma régua, obteve estas medidas: = h = 3,6. Portanto a área do triângulo ABC vale = 7,56cm

Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas ICEB

Matemática Aplicada às Ciências Sociais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Gerenciamento de Projetos Modulo III Grupo de Processos

Departamento de Informática

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS

Departamento de Informática

MODELAGEM DE SISTEMA Apresentação

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Ajuste de Curvas. Ajuste de Curvas

MATEMÁTICA A - 12o Ano Probabilidades - Triângulo de Pascal Propostas de resolução

1. O que é? 2. O que se pretende? 3. Quem pode concorrer?

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Programação 2. Trabalho Prático P4B. Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em ambiente Linux.

Distribuição de probabilidades

Actualizaç ões e novas funcionalidades. Inoxnet. Versã o (c) EBASE Lda.

Ferramentas: jar e javadoc

Curso de Engenharia Informática (2º Ciclo) Segurança em Sistemas e Redes de Computadores SSRC-0910-EN-1.1.A

SOCIEDADE BRASILEIRA DE MATEMÁTICA MESTRADO PROFISSIONAL EM REDE NACIONAL PROFMAT

Memória Descritiva. 1 Memória Descritiva. 1.1 Introdução. ISPGAYA Seminário (7) Rodrigues Eng. Sílvio Macedo. B2B de divulgação de imóveis

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

Volta a Portugal. Relatório. Algoritmos e Estruturas de Dados 2º ano do Mestrado Integrado em Engenharia Informática e Computação

Decreto n.º 1/93 Protocolo de Alteração à Convenção Europeia Relativa à Protecção dos Animais nos Locais de Criação

ISO/IEC Avaliação da conformidade Declaração de conformidade do fornecedor Parte 1: Requisitos gerais

Variáveis aleatórias contínuas e distribuiçao Normal. Henrique Dantas Neder

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS

Transcrição:

Projecto de Programação por Objectos 2007/08 Escalonamento em Multi-processador por Programação Evolutiva MEBiom/MEEC 1 Problema Considere-se um sistema com um conjunto finito de processadores P = {p1,..., pn} que executam tarefas em paralelo. Considere-se um conjunto finito de tarefas A = {a1,..., am} tal que um processador pi demora cij N+ unidades de tempo a executar a tarefa aj. Pretende-se encontrar uma distribuição de tarefas pelos diversos processadores do sistema que minimize o tempo de execução em paralelo das mesmas. Por distribuição de tarefas entende-se uma partição de A = A1... An onde Ai corresponde ao conjunto de tarefas a executar pelo processador pi. O tempo ti que o processador pi demora a executar as tarefas Ai é calculado da seguinte forma: t i = c ij j: a j A i O objectivo é encontrar uma distribuição de tarefas A = A1... An que minimize o tempo de execução em paralelo t, calculado da seguinte forma: t = max t 1 i n Como exemplo, considere-se um sistema com 3 processadores P = {p1, p2, p3} e 6 tarefas A = {a1, a2, a3, a4, a5, a6} tais que o tempo que cada tarefa demora a ser executada por cada processador está apresentado na seguinte matriz 3 6: 1 2 1 1 2 1 2 2 2 2 2. 3 3 3 3 3 3 Pretende-se encontrar uma distribuição de tarefas A = A1... An que minimize o tempo de execução em paralelo t. Neste caso, uma possibilidade é A1 = {a1, a3, a4, a6}, A2 = {a2, a5} e A3 ={} ; para o qual t = max{1 + 1 + 1 + 1, 2 + 2, 0} = 4. Observe-se que existem outras distribuições de tarefas com o mesmo tempo de execução em paralelo. Apesar de para o exemplo anterior ser possível encontrar facilmente a solução para o problema, com generalidade não é conhecido nenhum algoritmo polinomial para o resolver. Na realidade, este problema pertence a uma classe de problemas ditos NPcompletos para os quais se conjectura não existir nenhum algoritmo de tempo polinomial. Há um prémio de um milhão de dólares americanos para quem encontrar um algoritmo polinomial para qualquer problema NP-completo, ou provar que não existe nenhum algoritmo de tempo polinomial para o mesmo. Assim, com generalidade não é possível encontrar em tempo útil uma solução para o problema descrito: um computador com 10GIPS, isto é, que executa 10 10 operações por segundo, para n m = 75 demoraria algo na ordem de 2 75 /10 10 segundos (aproximadamente 1200 séculos) a achar a solução óptima para certos inputs do problema. Assim, é comum recorre-se a soluções i

aproximadas, onde se destaca a programação evolutiva como uma técnica importante neste domínio. 2 Abordagem O objectivo deste projecto é programar em Java uma solução para o problema acima descrito utilizando programação evolutiva especificada e implementada por objectos. A ideia é gerar no instante zero uma população inicial de indivíduos, nu, e faze-la evoluir até ao instante final. Entende-se por indivíduo uma distribuição de tarefas pelos processadores. Para os indivíduos da população inicial as tarefas são distribuídas de forma aleatória e uniformemente pelos processadores. A cada indivíduo está associado um conforto phi(z) dado por: onde: phi(z) = tmin / tz tz é o tempo de execução em paralelo do indivíduo z; tmin é um minorante para o tempo óptimo de execução em paralelo dado por: t m minc i n j= = 1 1 min. Observe que o conforto é um valor real em (0,1] e que os indivíduos mais adaptados terão um valor de conforto próximo de 1, ou mesmo 1. O indivíduo com maior conforto é denominado como o indivíduo mais adaptado (na eventualidade de existir mais do que um indivíduo nestas circunstâncias considera-se um ao acaso). Cada indivíduo z evolui de acordo com o seu conforto, através dos seguintes mecanismos aleatórios. Morte, variável exponencial com tempo médio (1 log(1 phi(z)))µ entre eventos. Reprodução, variável exponencial com tempo médio (1 log(phi(z))) rho. Da reprodução surge um novo indivíduo cuja distribuição de tarefas pelos processadores é igual á do progenitor a menos de [b(1 phi(z))m] tarefas, isto é, a distribuição de tarefas pelos processadores do novo indivíduo é calculada da seguinte forma: (i) é-lhes atribuída uma distribuição inicial igual à do progenitor; (ii) a esta distribuição inicial é retirada aleatória e uniformemente [(1 phi(z))m] (iii) n tarefas dos diversos processadores; as tarefas anteriormente retiradas são redistribuídas aleatória e uniformemente pelos diversos processadores. Mutação, variável exponencial com tempo médio (1 log(phi(z)))delta entre eventos. A mutação de um indivíduo retira aleatória e uniformemente uma tarefa a um dos processadores pi e coloca-a aleatória e uniformemente num outro processador pj com i j. A população evolui em função da evolução individual dos seus elementos e ainda por ocorrência de epidemias. Quando o número de indivíduos excede um máximo nu_max, ocorre uma epidemia. À epidemia sobrevivem sempre os cinco indivíduos com maior conforto. Para cada um dos restantes, a probabilidade de sobrevivência é de 2/3 phi(z). A ij

evolução da população deverá ser regida por simulação estocástica discreta, isto é, baseada numa cadeia de acontecimentos pendentes. 3 Parâmetros e resultados O programa deve: Receber o conjunto seguinte de dados: número n de processadores; número m de tarefas; matriz C com os tempos de execução das tarefas pelos processadores; instante final tau (> 0) da evolução; população inicial nu; populaçao máxima nu_anx (> nu); parâmetros µ, rho, delta relativos aos eventos de morte, reprodução e mutação, respectivamente. A forma como a leitura do input vai ser feita será disponibilizada oportunamente num anexo ao enunciado do projecto. Apresentar a distribuição de tarefas pelos processadores, assim como o tempo de execução em paralelo, do indivíduo mais adaptado. A forma como a apresentação deste output vai ser feita será disponibilizada oportunamente num anexo ao enunciado do projecto. Imprimir para o monitor o resultado de observações da população, realizadas de tau/20 em tau/20 unidades de tempo. Cada observação deve incluir o instante actual (instante), o número de eventos realizados até ao instante actual (eventos), a dimensão da população no instante actual (dimensão), o número de epidemias existentes até ao instante actual (epidemias), o tempo de execução em paralelo do indivíduo mais adaptado no instante actual (tempo) e o respectivo conforto no instante actual (conforto), segundo o seguinte formato: Observação número: Instante actual: instante Número de eventos realizados: eventos Dimensão da população: dimensão Número de epidemias: epidemias Tempo de execução em paralelo: tempo Conforto: conforto Qualquer outra impressão para o monitor, ou uma impressão deste conteúdo fora deste formato, incorre em penalização na nota do projecto. Deve experimentar o programa desenvolvido com diversos conjuntos de dados à sua escolha. Em particular, pode considerar os seguintes conjuntos: Exemplo muito simples detalhado na secção de apresentação do problema: número de processadores: n = 3; número de tarefas: m = 6; matriz com tempos de execução:

1 2 1 1 2 1 2 2 2 2 2 3 3 3 3 3 3 instante final da evolução: tau = 10; população inicial: nu = 10; população máxima: nu_max = 100; parâmetros relativos aos eventos: µ = 10, rho = 1, delta = 1. Outro exemplo: número de processadores: n = 4; número de tarefas: m = 12; matriz com tempos de execução: 2 6 4 3 1 2 7 2 3 4 6 4 3 3 1 6 4 3 7 3 2 3 5 6 4 3 2 5 2 6 3 4 6 4 3 2 6 5 4 5 1 6 4 ; instante final da evolução: tau = 100; população inicial: nu = 10; população máxima: nu_max = 100; parâmetros relativos aos eventos: µ = 10, rho = 1, delta = 1. 4 2 2 2 4 Avaliação O projecto vale 8 valores da nota final que se distribuem da seguinte forma: 1. (2 val) Relatório intercalar: 16 Maio 2008 Nesta fase deverá ser entregue a especificação em UML do diagrama de classes e pacotes (tão detalhado quanto possível). O diagrama UML deve ser entregue electronicamente via e-mail, até 24h do dia do dia 16 de Maio de 2007, para Paulo.c.lopes@inesc-id.pt O assunto do e-mail dever a ser: POO 2007/08 Projecto UML Grupo x (onde em x dever a constar o n umero do respectivo grupo) Em anexo dever a existir um ficheiro com o(s) diagrama(s) UML. No email deverá constar a identificação do número do grupo, assim como o número e o nome dos alunos do grupo. O nome deste ficheiro deverá ser da forma grupo x UML.ext onde em x deverá constar o número do respectivo grupo, e ext deverá ser a extensão correspondente a um dos formatos possíveis para este ficheiro: PDF, PS ou JPG. 2. (6 val) Relatório final: 6 Junho 2007 Nesta fase deverá ser entregue as fontes do programa, o respectivo executável, e a documentação (gerada pela ferramenta javadoc) da aplicação.

As fontes, executável e documentação da aplicação devem ser entregues electronicamente via e-mail, até `as 24h do dia 6 de Junho de 2007, para paulo.c.lopes@inesc-id.pt O assunto do e-mail deverá ser: POO 2007/08 Projecto Java Grupo x (onde em x deverá constar o número do respectivo grupo) Em anexo deverá existir um ficheiro executável.jar (com os ficheiros.java,.class, e MANIFEST.MF organizados correctamente em directorias). O nome deste ficheiro deverá ser da forma grupo x Java.jar onde em x deverá constar o número do respectivo grupo. Deverá ainda existir um ficheiro.zip com a documentação da aplicação gerada pela ferramenta javadoc, e o seu nome deverá ser da forma grupo x Doc.zip, onde em x deverá constar o número do respectivo grupo. 3. Discussão final: 30 Junho a 7 Julho 2007 A distribuição dos grupos para a discussão final será disponibilizada oportunamente. Todos os membros do grupo devem estar presentes na discussão. A nota final do projecto dependerá desta discussão, e não será necessariamente a mesma para todos os membros do grupo. Tanto para o relatório intercalar como para o final, projectos entregues após a data estabelecida terão a seguinte penalização: por cada dia de atraso haverá uma penalização de 2 valores da nota.