• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
5
0
0

Texto

(1)

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:

=

i j A a j ij i

c

t

:

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:

i n i

t

t

≤ ≤

=

1

max

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:

          = 3 3 3 3 3 3 2 2 2 2 2 2 1 2 1 1 2 1 C .

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 NP-completos 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 1010operações por segundo, para n × m = 75 demoraria algo na ordem de 275/1010 segundos (aproximadamente 1200 séculos) a achar a solução óptima para certos inputs do problema. Assim, é comum recorre-se a soluções

(2)

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:

phi(z) = tmin / tz

onde:

• 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:

n

c

t

m j ij n i

= ≤≤

=

1 1 min

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] tarefas dos diversos processadores;

(iii) 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

(3)

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;

(4)

          = 3 3 3 3 3 3 2 2 2 2 2 2 1 2 1 1 2 1 C

– 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

4

6

1

5

4

5

6

2

3

4

6

2

4

3

6

2

5

2

3

4

6

5

2

2

3

2

3

7

3

4

6

1

3

3

4

4

6

4

3

2

7

2

1

3

4

6

2

C

;

– 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 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.

(5)

• 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 2valores da nota.

Referências

Documentos relacionados

O Teste dos Cinco Dígitos (Five Digits Test – FDT) 2 é um instrumento utilizado para avaliar o efeito de interferência atencional (efeito Stroop), utilizando informações

9.2 O candidato (a) que receber menção inapto nos Exames de Avaliação Psicológica, Questionário de Investigação Social (QIS), Exame de Saúde serão eliminados do processo

3.2.3.1. cópia de comprovante de endereço em nome do candidato. cópia de comprovante de rendimentos ou declaração firmada do pelo candidato da sua condição de carente. O candidato

O conceito de instante em Platão [Parmênides, 156D], entendido como a inserção súbita da eternidade no tempo, coloca a dimensão original do instante numa

Se devemos reivindicar uma se- paração radical entre a doença do médico, objetivada pelo médico e a do doente, compreendida como uma clínica da singularidade, para que possamos

No caso da criança com Síndrome Congênita Associada à Infecção pelo Vírus Zika, por apresentar atraso no desenvolvimento neuropsicomotor, o ato de brincar pode ser mais

Não há como negar que a chegada de computadores cada vez mais poderosos fez com que, de certa forma, a Estatística se tornasse mais acessível aos seus usuários, pois

Clarice, enfim, é aquela que busca dizer o “indizível”, que tenta “captar a quarta dimensão do instante já que de tão fugidio não é mais porque agora tornou-se um novo