IX ELAVIO FABIANA SIMÕES E SILVA ORIENTADORA: VITÓRIA PUREZA DEPTO. DE ENGENHARIA DE PRODUÇÃO UNIVERSIDADE FEDERAL DE SÃO CARLOS SÃO CARLOS - SP- BRASIL * APOIO PARCIAL: FAPESP DESIGNAÇÃO DE TAREFAS EM APLICAÇÕES DE MULTIPROCESSADORES DE PROCESSAMENTO DE SINAL DIGITAL UTILIZANDO ALGORITMOS GENÉTICOS 2 O PROBLEMA DE DESIGNAÇÃO DE TAREFAS EM AMBIENTES PARALELOS A melhor designação de tarefas depende da aplicação. Objetivo: Obter a designação com o menor atraso total. Atraso Total: Tempo transcorrido entre o surgimento do sinal na porta de entrada e a produção de um sinal processado na porta de saída. O cálculo do atraso total requer a escolha de uma arquitetura de multiprocessadores. 3 ARQUITETURA RDAD INPUT OUTPUT Processador 1 Processador Mestre (0) Processador 2 Processador N O envio de sinal é sincronizado. Tempos de comunicação interprocessadores: 0 ciclo: Proc(suc)=Proc(pred). 1 ciclo: Proc(suc)=Proc(pred) + 1 ou Proc(suc)=0 ou Proc(pred)=0. 2 ciclos: outros. 4 DIAGRAMA DE TAREFAS 4 70, 50, 50 2 70, 80, 40 8 50, 50, 40 5 40, 30, 50 INPUT 1 50, 50, 50 10 50, 50, 50 6 30, 10, 10 3 20, 30, 10 OUTPUT 9 10, 20, 20 7 20, 10, 10 5 CÁLCULO DO ATRASO 2 2 4 4 1 4 2 1 I 2 2 1 1 34 1 1 1 6 0 3 8 1 0 2 O 0 7 2 1 1 9 1 6 ciclos 10 2 0 5 0 5 0 3 2 0 Dada uma designação de tarefas, há um caminho crítico (atraso) obter a designação com o caminho crítico mais curto. 6 ALGORITMO DE CHINNECK et. al. (2003) Constrói uma lista dinâmica de programação de tarefas baseada em estimativas de caminhos críticos e revisada a cada designação. Utiliza o conhecimento das características de comunicação interprocessadores da arquitetura RDAD e as propriedades do processador mestre. Heurística construtiva. Investigar métodos iterativos como busca local e meta- heurísticas 7 ALGORITMOS GENÉTICOS (AG) Técnicas de busca heurística baseadas nas teorias da evolução. Uma solução particular de um problema é chamada de cromossoma ou indíviduo. As variáveis de decisão estão associadas aos genes do cromossoma. A busca heurística é realizada em uma população de soluções e não de solução em solução como em outras meta-heurísticas (Busca Tabu, Simulated Annealing) Busca Multi-direcional. 8 REPRESENTAÇÃO DO CROMOSSOMA Vetor v de números inteiros com n posições , onde n é o número de tarefas do diagrama. Em v(i) é armazenado o número do processador para o qual a tarefa i foi designada. tarefas processadores 1 2 3 4 5 6 7 8 9 10 0 2 3 1 3 3 4 4 2 0 Tarefa 3 designada ao processador 3. 9 FUNÇÃO DE APTIDÃO (FIT) fit (i ) atraso _ m áxim o atraso(i ) j n (atraso _ m áxim o atraso( j )) j 1 fit(i): aptidão do cromossoma i. atraso_máximo: atraso máximo de um cromossoma da população. atraso(i): atraso do cromossoma i. n: tamanho da população. 10 OPERADORES GENÉTICOS MUTAÇÃO: Introdução da diversidade genética da população. Cromossoma antes da mutação 1 2 3 4 5 6 7 8 0 1 1 0 1 1 0 1 Cromossoma depois da mutação 1 2 3 4 5 6 7 8 1 1 1 0 0 1 0 1 genes aos quais será aplicada mutação genes aos quais foi aplicada mutação Escolha aleatória de uma tarefa e sua designação para um novo processador Tarefa a ser aplicada a mutação Tarefa 4 designada ao processador 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 0 1 0 2 3 3 1 2 3 0 1 0 12 3 3 1 2 3 1 0 0 11 OPERADORES GENÉTICOS Cruzamento: 1 ponto. PAIS FILHOS Ponto de cruzamento 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 0 1 0 2 3 0 2 3 4 0 1 0 2 3 0 0 4 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 0 3 2 0 4 1 2 3 0 3 2 2 3 1 0 1 Se o cruzamento produzir filhos infactíveis 0 1 REPARAÇÃO 12 1 4 BUSCA COM ALGORITMO GENÉTICO Gere uma população inicial com m indivíduos. Enquanto (geração corrente maxger) ou (população não homogênea) repita: Calcule a aptidão de cada individuo; Selecione os indivíduos para nova população; Aplique cruzamento com probabilidade pc e “Reparação”; Aplique mutação com probabilidade pm e “Reparação”; Ao longo de todo o processo, armazene a melhor solução obtida. 13 Implementações: Algoritmos Puro, Inteligente 1, Inteligente 2 ALGORITMO PURO - Escolhas aleatórias na seleção da tarefa e processador na REPARAÇÃO 1 2 3 4 5 6 7 8 1 2 3 0 3 2 2 3 CRUZAMENTO PROCESSADOR 2: 9 10 capacidade violada 1 4 Tarefa escolhida:6 1 2 3 1 2 3 Tarefas: 2, 6 e 7 Pode ser designada ao processador 1 ou 4. 4 5 6 7 8 9 10 Processador 4 escolhido 0 3 4 2 3 1 4 MUTAÇÃO 1 2 3 4 2 1 0 4 5 3 6 3 7 0 8 9 10 2 3 4 Processador 1 escolhido Tarefa 4: Pode ser designada ao processador 0 ou 1. 1 2 3 4 2 1 0 1 5 3 6 3 7 0 8 9 10 2 3 4 14 INTELIGENTE 1- Escolhas determinísticas na seleção do processador na REPARAÇÃO CRUZAMENTO 1 2 3 4 5 6 7 8 9 10 1 2 3 0 3 2 2 3 1 Tarefa 6: Pode ser designada ao processador 1 ou 4. 4 •Processador 1 => atraso de 7 ciclos. 1 2 1 2 •Processador 4 => atraso de 8 ciclos. 3 4 5 6 7 8 9 10 Processador 1 escolhido 3 0 3 1 2 3 1 4 MUTAÇÃO 1 2 3 4 2 1 0 1 5 3 6 3 7 0 8 9 10 2 3 4 Processador 0 => atraso de 6 Processador 4 => atraso de 7 Tarefa 4: Pode ser designada ao processador 0 ou ao 4. 1 2 3 4 2 1 0 0 5 3 6 3 7 0 8 9 10 2 3 4 15 INTELIGENTE 2- Escolhas determinísticas na seleção da tarefa e processador na REPARAÇÃO 1 2 3 4 5 6 7 8 1 2 3 0 3 2 2 3 CRUZAMENTO PROCESSADOR 2: 9 10 capacidade violada 1 4 Tarefas: 2, 6 e 7 Analisa-se todas as tarefas: • tarefa 2: só cabe no processador 4 Processador 4 => Atraso 7 => Melhor processador: 4 • tarefa 6: cabe no processador 1 e no 4 => Melhor processador: 1 Processador 1 => Atraso 6 Processador 4 => Atraso 8 • tarefa 7: Não cabe em nenhum processador existente. => Melhor processador: 5 Processador 5 => Atraso 10 16 INTELIGENTE 2 Tarefa escolhida:6 1 2 3 4 5 6 7 8 9 10 1 2 3 0 3 1 2 3 1 4 Processador 1 escolhido MUTAÇÃO • Igual a Inteligente 1: escolhe-se o melhor processador para designar a tarefa que sofrerá a mutação. 17 PARÂMETROS UTILIZADOS Tamanho da População: 20 indivíduos. Probabilidade de Cruzamento (pc): análise. Probabilidade de Mutação (pm): análise. Critérios de Parada: Obtenção da solução ótima. Número limite de gerações (Maxger= 2000). Geração de população homogênea. 18 EXPERIMENTOS COMPUTACIONAIS Experimentos iniciais: 10 problemas-teste (5 a 96 tarefas), obtidos em Chinneck et. al (2003) e através de um gerador aleatório de grafos de tarefas (Lavoie,1999). Para todos os três algoritmos, pequeníssimas probabilidades de mutação resultam nas melhores performances. Quanto maior o número de tarefas menor deve ser o valor de pm. O algoritmo Genético Inteligente 2 tem vantagem em termos de qualidade de solução em relação aos dois primeiros algoritmos, mas utiliza um tempo de execução maior. Selecionado pm = 0,01 para os 3 algoritmos nos experimentos posteriores. Selecionados pc= 0,4 (algoritmo puro), 0,3 (inteligente 1) e 0,8 (inteligente 2) nos experimentos posteriores. 19 RESULTADOS COMPUTACIONAIS 24 diagramas ALGORITMOS GENÉTICOS (5 a 96 tarefas). QUALIDADE DA SOLUÇÃO Diagrama de tarefas # de tarefas Chinneck et. Al. D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 5 6 9 9 9 10 12 12 13 15 15 16 19 21 22 24 24 25 30 46 46 46 80 96 MÉDIA 4/3 6/5 4/3 4/3 7/6 5/5 5/4 5/4 8/5 4/5 6/5 4/5 6/6 8/7 5/8 8/8 12/11 6/8 11/11 25/31 7/11 17/20 36/36 41/47 10,17/10,71 PURO pc=0.4 pm=0.01 A/#proc INT 1 pc=0.3 pm=0.01 A/#proc INT 2 pc=0.8 pm=0.01 A/#proc INT 2 Outros pc e pm A/#proc 4/3 6/4 5/3 4/3 8/6 6/5 5/4 5/4 6/5 5/5 6/5 5/5 6/6 11/7 5/8 8/8 13/10 9/7 14/11 29/30 9/11 22/19 49/32 46/42 11,92/10,12 4/3 6/4 4/3 5/3 8/6 6/5 4/4 5/4 5/5 5/5 6/5 5/5 5/6 10/7 5/8 7/8 13/10 7/8 12/10 29/28 9/11 20/20 42/32 45/44 11,12/10,17 4/3 6/4 4/3 4/3 7/6 5/5 4/4 5/3 5/5 5/5 6/5 5/5 5/6 8/7 5/8 7/7 10/10 7/7 12/10 25/28 7/11 17/17 40/34 44/46 10,29/10,08 4/3 6/4 4/3 4/3 7/6 5/5 4/4 5/3 5/5 4/5 6/5 4/5 5/6 8/7 5/8 7/7 10/10 6/7 11/10 25/28 7/11 16/18 36/32 41/41 9,79/9,83 20 RESULTADOS COMPUTACIONAIS TEMPOS DE EXECUÇÃO Diagrama de tarefas # de tarefas D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 5 6 9 9 9 10 12 12 13 15 15 16 19 21 22 24 24 25 30 46 46 46 80 96 MÉDIA PURO pc= 0,4 pm= 0,01 Tempo Tempo total melhor (segundos) (segundos) 0 0,05 0 0 0 0 0,05 0,43 0 1,04 0 0,66 0 0,6 0 0,55 0,61 0,83 0,66 1,65 0,72 0,72 0,77 1,49 1,05 1,27 1,59 2,14 0 2,47 1,37 2,09 1,15 2,53 1,1 1,21 3,18 3,18 3,9 5,22 0,66 6,2 4,84 5,49 7,52 13,07 5,38 14,55 1,44 2,81 INTELIGENTE 1 pc= 0,3 pm= 0,01 Tempo Tempo total melhor (segundos) (segundos) 0 0 0 0,11 0,06 0,06 0,22 0,71 0 1,15 0 0,71 1,43 1,43 0 1,38 0,61 0,66 0,11 1,81 1,43 1,64 0,66 1,87 1,21 2,09 1,64 2,74 0 4,45 2,64 3,41 1,37 3,41 1,81 1,81 2,03 4,94 11,04 13,3 0,6 37,29 13,95 14,94 68,87 91,01 379,53 392,93 20,38 24,33 INTELIGENTE 2 pc= 0,8 pm= 0,01 Tempo Tempo total melhor (segundos) (segundos) 0 0 0 0 0 0,66 0,22 0,94 0 2,09 0,77 0,77 0,27 1,32 0,38 0,6 0,33 0,66 0,06 0,77 0,66 0,82 0,66 0,88 1,04 3,51 0,98 1,92 0 14,83 4,06 6,21 4,4 6,87 1,1 5,93 3,9 8,68 28,56 30,92 1,43 229,37 47,24 54,54 440,78 597,86 1989,4 2725,02 105,26 153,97 21 CONCLUSÕES E PERSPECTIVAS Elaboradas três implementações de algoritmos genéticos preliminares. A melhor implementação proposta (Inteligente 2) melhorou em 25% de casos, as soluções da heurística de Chinneck et. al. Quanto maior o número de tarefas, pior é desempenho dos algoritmos. Cruzamento de um ponto. Incorporação de maior informação sobre o problema: Utilização de operadores de cruzamento de 2 ou mais pontos Desenvolvimento de operadores de cruzamento mais específicos. Aplicação de buscas locais após um número de gerações especificado. 22