• Nenhum resultado encontrado

Problema de mapeamento e roteamento: propostas de otimização bioinspiradas híbridas

N/A
N/A
Protected

Academic year: 2021

Share "Problema de mapeamento e roteamento: propostas de otimização bioinspiradas híbridas"

Copied!
163
0
0

Texto

(1)

Departamento de Informática e Matemática Aplicada Programa de Pós-Graduação em Sistemas e Computação

Mestrado em Sistemas e Computação

Problema de Mapeamento e Roteamento:

Propostas de Otimização Bioinspiradas Híbridas

Hiago Mayk Gomes de Araújo Rocha

Natal-RN Julho de 2019

(2)

Problema de Mapeamento e Roteamento:

Propostas de Otimização Bioinspiradas

Híbridas

Dissertação de mestrado apresentada para o Programa de Pós-graduação em Sistemas e Computação do Departamento de Informá-tica e MatemáInformá-tica Aplicada da Universidade Federal do Rio Grande do Norte para a ob-tenção do grau de Mestre em Sistemas e Computação.

Orientadora:

Prof

a

. Dr

a

. Monica Magalhães Pereira

Co-orientadora:

Prof

a

. Dr

a

. Sílvia Maria Diniz Monteiro Maia

Universidade Federal do Rio Grande do Norte – UFRN Departamento de Informática e Matemática Aplicada – DIMAp

Natal-RN Julho de 2019

(3)

Rocha, Hiago Mayk Gomes de Araújo.

Problema de mapeamento e roteamento: propostas de otimização bioinspiradas híbridas / Hiago Mayk Gomes de Araújo Rocha. -2019.

161f.: il.

Dissertação (Mestrado) - Universidade Federal do Rio Grande do Norte, Centro de Ciências Exatas e da Terra, Programa de Pós-Graduação em Sistemas e Computação. Natal, 2019.

Orientadora: Monica Magalhães Pereira.

Coorientadora: Sílvia Maria Diniz Monteiro Maia.

1. Computação - Dissertação. 2. Problema do mapeamento e roteamento Dissertação. 3. Sistemas em chip multiprocessados -Dissertação. 4. Redes em chip - -Dissertação. 5. Mapeamento estático - Dissertação. 6. Mapeamento dinâmico - Dissertação. 7. Math-heurísticas - Dissertação. I. Pereira, Monica Magalhães. II. Maia, Sílvia Maria Diniz Monteiro. III. Título.

RN/UF/CCET CDU 004

Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Prof. Ronaldo Xavier de Arruda - CCET

(4)
(5)
(6)

Quero agradecer primeiramente a minha mãe Maria Marta por todo amor e carinho. Agradeço também aos meus familiares e a Luiziani Marinho.

Deixo um agradecimento especial para as minhas orientadoras Monica Pereira e Sílvia Maia. A personalidade e o profissionalismo delas me serve como valiosas fontes de inspi-ração. Aos professores Márcio Kreutz e Carlos Beck por terem aceitado o convite para compor a banca avaliadora deste trabalho e também pelas discussões e considerações feitas sobre o mesmo.

Aos meus amigos Thiago Soares e Sidemar Fidelis deixo um agradecimento especial. Aos meus colegas do Laboratório de Sistemas em Chip (LASIC) e agregados: Raul Silveira, Jefferson Igor, Adelino Fernandes, Samuel Oliveira, Thales Aguiar, Vitor Godeiro... (à todos sem exceção).

Agradeço também aos funcionários e professores do DIMAp, no geral. Dona Rita (obrigado pelos cafés), “Seu” Gaspar, Sarah, Elida, Daniel e Denis. Deixo também regis-trada a minha admiração pelos professores Umberto Costa, Elizabeth Goldbarg e Marco Goldbarg. À estes, muito obrigado pelos valiosos conhecimentos transmitidos.

Bom, faltam linhas para agradecer à todos que fizeram parte dessa jornada e contri-buíram, mesmo que minimamente, para a realização deste trabalho.

(7)

em saber; em crer que se sabe reside a ignorância. Hipócrates

(8)

Propostas de Otimização Bioinspiradas Híbridas

Autor: Hiago Mayk Gomes de Araújo Rocha Orientadora: Profa. Dra. Monica Magalhães Pereira

Co-orientadora: Profa. Dra. Sílvia Maria Diniz Monteiro Maia

Resumo

MPSoCs baseados em NoCs são sistemas capazes de prover a execução de aplicações paralelas com alto desempenho devido ao seu paralelismo inerente. Contudo, para se ob-ter alto desempenho nas execuções, é necessário um eficiente gerenciamento dos recursos disponíveis no sistema, como núcleos de processamento e canais de comunicação. Neste trabalho é abordado o Problema de Mapeamento de tarefas e Roteamento das comu-nicações (PMR), o qual une características de alocação de tarefas e roteamento para a construção de estratégias de otimização que reduzam a latência de comunicação. A formu-lação matemática do PMR é apresentada neste trabalho. Além disso, usando a parte de roteamento dessa formulação, são propostas três Math-Heurísticas bioinspiradas (Gené-tico, Memético e Transgenético) para o mapeamento estático de tarefas. Essas estratégias apresentam abordagens gerais para encontrar soluções de mapeamento e dentro delas a parte de roteamento da formulação do PMR é usada como uma avaliação de fitness exato. No contexto de mapeamento dinâmico, são propostas duas heurísticas (TransCand e Tran-sEndo) que usam a metáfora dos Algoritmos Transgenéticos (AT) para prover alocação de tarefas por demanda em tempo de execução. Todas as propostas de algoritmos deste trabalho foram implementados e seus resultados foram simulados em uma ferramenta de NoC. Além disso, também foram implementados quatro algoritmos da literatura para fins de comparação com as propostas apresentadas, sendo três para mapeamento estático e um para o dinâmico. Os resultados demonstram que as propostas que conseguem capturar mais profundamente as características da arquitetura são mais eficientes. Em específico para a alocação estática, o Transgenético apresenta melhores resultados de latência média

(9)

fatórios. Contudo, o TransEndo se mostrou mais eficiente tanto no tempo de otimização quanto na qualidade das soluções geradas.

Palavras-chave: Problema do Mapeamento e Roteamento, Sistemas em Chip Multiproces-sados, Redes em Chip, Mapeamento Estático, Mapeamento Dinâmico, Math-Heurísticas.

(10)

Proposals of Hybrid Bioinspired Optimization

Author: Hiago Mayk Gomes de Araújo Rocha Advisor: Profa. Dra. Monica Magalhães Pereira Co-advisor: Profa. Dra. Sílvia Maria Diniz Monteiro Maia

Abstract

NoC-based MPSoCs are systems able to provide high-performance execution of the pa-rallel application due to its inherent papa-rallelism. However, to obtains the high-performance execution it is necessary efficient available resource management in the system, such as processing cores and communication links. In this work, the task Mapping and commu-nication Routing Problem (PMR) is addressed, which merge features of task allocations and communication routing to design optimization strategies that aim to reduce commu-nication latency. The PMR mathematical formulation is presented in this work. Besides that, using the routing part of this formulation, three bioinspired Math-heuristics (Gene-tic, Memetic and Transgenetic) are proposed to the static task mapping. These strategies use a general approach to find mapping solutions and within them, the PMR formula-tion routing part is used as an exact fitness funcformula-tion evaluaformula-tion. In the dynamic mapping context, two heurístics are proposed (TransCand and TransEndo), which use the Transge-netic Algorithms (AT) metaphor to provide by demand allocation task in execution time. All proposes of this work was implemented and its results were simulated using a NoC tool. Besides that, in order to provide comparisons, it was implemented four algorithms of the literature, being three of the static mapping and one of the dynamic mapping. The results show that approaches able to capture more deeply the features of the architec-ture are more efficient. More specifically to static allocation, the Transgenetic algorithm presents individual best results for average and maximum latency. Even to dynamic allo-cations, both propose present satisfactory results. However, the TransEndo shows to be more efficient as in optimization time as in generated solution quality.

Keywords: Mapping and Routing Problem, Multiprocessor System on Chip, Networks on Chip, Static Mapping, Dynamic Mapping, Math-Heuristics

(11)

1 Representação simplificada de SoC e MPSoC . . . p. 30 2 Representação simplificada das interconexões por barramento e

ponto-a-ponto . . . p. 32 3 Representação dos componentes de uma NoC . . . p. 33 4 Representação simplificada da interconexão por NoC . . . p. 33 5 Representação do mapeamento de uma aplicação nos núcleos de um

MP-SoC baseado em NoC com topologia mesh 2D . . . p. 36 6 Representação de um MPSoC baseado em NoC com topologia mesh 2D

abstraído como coordenadas cartesianas . . . p. 39 7 Elementos de uma população e operadores do AG . . . p. 45 8 Sequência de passos aplicados na otimização realizada pelos AGs . . . . p. 47 9 Sequência de passos aplicados na otimização realizada pelos AMs . . . p. 49 10 Metáfora evolutiva da Transgenética . . . p. 52 11 Classificação das abordagens de hibridização entre meta-heurísticas e

es-tratégias exatas . . . p. 57 12 Exemplos de uma aplicação e uma NoC com topologia mesh 2D . . . . p. 76 13 Representação cromossômica . . . p. 77 14 Representação das informações contidas no BIG e quais delas são usadas

no operador de renovação e no plasmídeo . . . p. 82 15 Possíveis mapeamentos para cada tarefa quando o operador de Renovação

é aplicado . . . p. 84 16 Esquemático da otimização aplicada pela heurística TransCand . . . p. 86 17 Esquemático da otimização aplicada pela heurística TransEndo . . . p. 92

(12)

19 Percentuais de viabilidade das instâncias . . . p. 99 20 Representação gráfica do fluxo da otimização realizada para obtenção

dos resultados . . . p. 105 21 Percentual de informações desconsideradas . . . p. 107 22 Percentuais de ganho dos algoritmos . . . p. 108 23 Percentuais de ganho por roteamento . . . p. 110 24 Percentuais de ganho por aplicação . . . p. 111 25 Valores de ganhos ou perdas de GAD do AT com relação aos outros

algoritmos . . . p. 112 26 Valores de ganhos ou perdas de MD do AT com relação aos outros

algo-ritmos . . . p. 113 27 Comportamento das aplicações nos diferentes cenários avaliados . . . . p. 120 28 Valores de ganhos ou perdas de GAD do TransCand e TransEndo com

relação ao WeNA . . . p. 122 29 Valores de ganhos ou perdas de MD do TransCand e TransEndo com

relação ao WeNA . . . p. 123 30 Tempo de execução do solver para as instâncias do cenário 2 executando

em mesh 8x8 . . . p. 143 31 Tempo de execução do solver para as instâncias do cenário 3 maiores do

que 20 . . . p. 145 32 Médias dos custos das aplicações IR, MPEG4 e MWD . . . p. 148 33 Médias dos custos das aplicações PIPE, TREE e VOPD . . . p. 149 34 Tempos (em segundos) dos algoritmos híbridos . . . p. 151 35 Tempos (em segundos) dos algoritmos comparados . . . p. 152 36 Tempo de otimização para os cenários 1, 2 e 3. . . p. 154 37 Tempo de otimização para os cenários 4 e 5. . . p. 155

(13)

1 Propriedades dos vetores transgenéticos . . . p. 53 2 Relação entre os vetores transgenéticos e suas propriedades . . . p. 54 3 Lista de trabalhos relacionados no contexto de mapeamento estático . . p. 64 4 Lista de trabalhos relacionados no contexto de mapeamento dinâmico . p. 70 5 Parametrizações obtidas pelo ajuste de parâmetros . . . p. 102 6 Resumo da quantidade de simulações realizadas . . . p. 104 7 Parâmetros usados na Noxim . . . p. 105 8 Percentual de resultados significativos identificados com a aplicação do

teste estatístico de Mann-Whitney . . . p. 115 9 Resumo de quantas vezes o tempo do TransEndo foi melhor quando

com-parado com o tempo dos outros algoritmos na média e no valor máximo p. 121 10 Percentual de resultados significativos identificados com a aplicação do

teste estatístico de Mann-Whitney . . . p. 126 11 Resultados obtidos pelo solver para o Cenário 1 . . . p. 142 12 Resultados obtidos pelo solver para o Cenário 2, apenas para as

instân-cias executando em mesh 4x4 . . . p. 143 13 esultados obtidos pelo solver para o Cenário 3, apenas para as instâncias

que obteve-se pelo menos resultado de Bound . . . p. 145 14 Resultados de otimização para as instâncias aleatoriamente geradas . . p. 157 15 p-valores do teste estatístico de Mann-Whitney para as instâncias

alea-toriamente geradas . . . p. 157 16 Resultados de otimização para as instâncias baseadas em aplicações reais p. 158 17 p-valores do teste estatístico de Mann-Whitney para as instâncias

(14)

19 p-valores do teste estatístico de Mann-Whitney para as instâncias

(15)

2D – Duas dimensões

AE – Algoritmo Evolucionário AG – Algoritmo Genético

AGT – Descreve o Algoritmo Genético proposto por Tosun et al. (2015) AM – Algoritmo Memético

AMA – Adaptative Memetic Algorithm AR – Área

ASPRA – Application Specific Routing Algorithms AT – Algoritmo Transgenético

BIG – Banco de Informações Genéticas BLS – Breakout Local Search

BN – Best Neighbor CA – Congestion-Aware

CASqA – Contiguity Adjustable Square Allocation CE – Consumo de Energia

CGMAP – Chaos Genetic-based CM – Membrane Computing Com – Comunicação

DNA – Deoxyribonucleic Acid DP – Dissipação de Potência DSP – Digital Signal Processor FF – First Free

GAD – Average Global Delay GP – General Purpose

GRASP – Greedy Randomized Adaptive Search Procedure HQGA – Hybrid Quantum Genetic Algorithm

HTM – Hybrid Task Mapping IMD – Instituto Metrópole Digital

(16)

IR – Integral de Romberg

ISA – Instruction Set Architecture LC – Latência de Comunicação

LEC-DN – Low Energy Consumption-Dependences Neighborhood MACL – Minimum Average Channel Load

MD – Maximal Delay

MMAS – MAX-MIN Ant System Algorithm MMCL – Minimum Maximum Channel Load MPEG4 – Moving Picture Experts Group 4 MPSoC – Multiprocessor System on Chip MWD – Multi-Window Display

NF – Negative First NN – Nearest Neighbor NoC – Network on Chip

NPAD – Núcleo de Processamento de Alto Desempenho OE – Odd-Even

PIR – Packet Injection Rate PL – Path Load

PM – Problema de Mapeamento

PMR – Problema de Mapeamento e Roteamento PR – Problema de Roteamento

Proc – Processamento

PSO – Particle Swarm Optimization QAP – Quadratic Assignment Problem SA – Simulated Annealing

SoC – System on chip T – Throughput

TE – Tempo de Execução TF – Tolerância à Falhas TLP – Thread Level Parallelism TP – Two-Phase

TS – Tabu Search

VNS – Variable Neighborhood Search VOPD – Video Object Plane Decoder

(17)

WeNA – Weighted-based Neighborhood Allocation WF – West First

(18)

* – Indica que a solução não é ótima, pois o solver foi interrompido devido às limitações de tempo.

# – Indica que a solução não é ótima (quando houver solução) e que o solver foi interrompido devido às limitações de memória.

| < conj > | – Quantidade de elementos do conjunto < conj >.  – Contador de avaliações da função objetivo. ρ – Taxa de cruzamento.

σ – Taxa de mutação.

Σ – Quantidade máxima de avaliações da função objetivo. Critério de parada dos algoritmos.

θ – Taxa de busca local.

∅ – Conjunto vazio. É usado nos pseudocódigos para inicializar uma variável com valor vazio.

Cap – Capacidade (largura de banda) geral de todos os canais. D – Matriz de distâncias.

fsc – Matriz de fluxos: Indica a quantidade de informação (em flits)

transferida na comunicação (s, c).

F – Matriz de fluxo dada como entrada dos algoritmos.

Gap – Afastamento entre um valor objetivo de uma solução e valor obje-tivo de outra.

lij – Matriz de adjacências: Matriz binária que representa as ligações

entre os núcleos (ou roteadores) da Rede em Chip (NoC). Quando o valor é 1, implica que há um uma ligação direta (canal) e 0 caso contrário.

L – Matriz de de adjacências dada como entrada dos algoritmos. N – Conjunto de núcleos.

PA – Propriedade de ataque dos operadores transgenéticos.

PBD – Propriedade de bloqueio e desbloqueio dos operadores

transgenéti-cos.

(19)

P – População.

TP A – Conjunto de tarefas que deverão ser alocadas.

T – Conjunto de tarefas.

T am – Tamanho de uma instância.

V (i) – Conjunto de núcleos vizinhos a i ∈ N .

Xso – Binária, sendo 1 se a tarefa s foi alocada para o núcleo o e 0 caso

contrário.

Yijsc – Binária, sendo 1 quando o canal (i, j) pertence a rota definida para

a comunicação (s, c).

Zsocd – Variável de decisão acrescentada na linearização do modelo.

A – conjunto de arestas do grafo G. E – Indica que aquela solução é ótima.

G – Representação de uma aplicação por um grafo dirigido e ponderado. N P – Classe de complexidade dos problemas que podem ser resolvidos

em tempo polinomial por algum algoritmo não determinístico. P – Classe de complexidade dos problemas nos quais existem algoritmos

determinísticos que os resolve em tempo polinomial. pop_size – Tamanho da população.

(20)

1 Genético . . . p. 78 2 Memético . . . p. 80 3 Transgenético . . . p. 81 4 TransCand . . . p. 88 5 LoadGeneticInformation . . . p. 89 6 PlasmideoCand . . . p. 91 7 TransEndo . . . p. 92 8 PlasmideoEndo . . . p. 93

(21)

1 Introdução p. 24 1.1 Principais Contribuições . . . p. 27 1.2 Organização do Trabalho . . . p. 27

2 Fundamentação Teórica p. 29

2.1 Sistemas em Chip – SoCs e MPSoCs . . . p. 29 2.1.1 Arquitetura do Sistema . . . p. 30 2.1.2 Arquiteturas de Interconexão . . . p. 31 2.1.2.1 Rede em Chip – NoC . . . p. 32 2.2 Mapeamento de Tarefas . . . p. 35 2.2.1 Classificação . . . p. 37 2.3 Roteamento . . . p. 38 2.3.1 Desafios de Projeto . . . p. 40 2.4 Meta-heurísticas . . . p. 41 2.4.1 Meta-heurísticas Evolucionárias . . . p. 43 2.4.2 Algoritmos Genéticos (AG) . . . p. 44 2.4.3 Algoritmos Meméticos (AM) . . . p. 48 2.4.3.1 Buscas locais . . . p. 49 2.4.4 Algoritmos Transgenéticos (AT) . . . p. 51 2.5 Math-heurísticas no Contexto de Algoritmos Híbridos . . . p. 55 2.6 Considerações Sobre Este Trabalho . . . p. 57

(22)

3.1 Mapeamento Estático . . . p. 59 3.1.1 Considerações . . . p. 64 3.2 Mapeamento Dinâmico . . . p. 65 3.2.1 Considerações . . . p. 69 4 Propostas p. 72 4.1 Modelagem do Problema . . . p. 72 4.1.1 Descrição do Modelo . . . p. 73 4.1.2 Linearização do Modelo . . . p. 75 4.2 Math-heurísticas . . . p. 75 4.2.1 Elementos Básicos . . . p. 76 4.2.1.1 Representação Cromossômica . . . p. 76 4.2.1.2 Criação da População Inicial . . . p. 77 4.2.2 Algoritmo Genético (AG) . . . p. 78 4.2.3 Algoritmo Memético (AM) . . . p. 79 4.2.4 Algoritmo Transgenético (AT) . . . p. 79 4.2.4.1 Transposon . . . p. 83 4.2.4.2 Plasmídeo . . . p. 83 4.2.4.3 Operador de Renovação . . . p. 84 4.3 Propostas de Alocação Dinâmica . . . p. 85 4.3.1 TransCand: Transgenético com Candidatos . . . p. 85 4.3.1.1 Carregamento do BIG . . . p. 89 4.3.1.2 PlasmídeoCand . . . p. 90 4.3.2 TransEndo: Transgenético com um único Endossimbionte . . . . p. 91 4.3.2.1 PlasmídeoEndo . . . p. 93

(23)

5.1 Instâncias Consideradas . . . p. 95 5.1.1 Geração dos Cenários de Teste . . . p. 96 5.2 Verificação do Modelo . . . p. 98 5.3 Mapeamento Estático . . . p. 101 5.3.1 Algoritmos Comparados . . . p. 101 5.3.2 Parametrização . . . p. 101 5.3.3 Metodologia de Simulação . . . p. 104 5.3.4 Resultados . . . p. 105 5.3.4.1 Informações Desconsideradas . . . p. 106 5.3.4.2 Simulações . . . p. 108 5.3.5 Teste Estatístico . . . p. 113 5.3.6 Considerações . . . p. 116 5.4 Mapeamento Dinâmico . . . p. 117 5.4.1 Cenários de avaliação . . . p. 118 5.4.2 Resultados . . . p. 119 5.4.2.1 Tempo de Otimização . . . p. 119 5.4.2.2 Simulação . . . p. 121 5.4.2.3 Testes Estatísticos . . . p. 124 5.4.3 Considerações . . . p. 127

6 Conclusões e Considerações Finais p. 129

Referências p. 131

Apêndice A -- Verificação do Modelo p. 141 A.1 Cenário 1: Aleatoriamente Geradas . . . p. 141 A.2 Cenário 2: Aplicações Reais . . . p. 142

(24)

A.4 Considerações . . . p. 146

Apêndice B -- Resultados de Otimização p. 147 B.1 Mapeamento Estático . . . p. 147 B.1.1 Valores de Custo (fitness) . . . p. 147 B.1.2 Tempos de Otimização . . . p. 150 B.2 Mapeamento Dinâmico . . . p. 153 B.2.1 Tempo de Otimização . . . p. 153

Apêndice C -- Estudo Math -heurístico p. 156 C.1 Aleatoriamente Geradas . . . p. 156 C.2 Baseadas em Aplicações Reais . . . p. 157 C.3 Adaptadas do QAP . . . p. 159 C.4 Considerações . . . p. 160

(25)

1

Introdução

A contínua evolução tecnológica possibilitada tanto pela diminuição no tamanho dos transistores como pelo avanço na tecnologia de fabricação dos circuitos integrados, propor-cionou a fabricação de circuitos integrados complexos, chamados de Sistemas em Chip (do inglês, System on Chip - SoC). Nos SoCs são acoplados diversos e diferentes componentes num mesmo chip. Tais componentes podem ser, por exemplo, unidades de processamento, controladores, memórias e canais de comunicação (BENINI; MICHELI, 2002).

Para atender a demanda das aplicações atuais, as quais requerem grande poder de processamento, tornou-se necessária a criação de SoCs ainda mais complexos. Tais siste-mas, chamados de Sistemas em Chip Multiprocessados (do inglês, Multiprocessor System on Chip - MPSoC) (WOLF, 2004) (WOLF; JERRAYA; MARTIN, 2008), possuem os mesmos componentes que um SoC, porém apresentam múltiplas unidades de processamento. Desta forma, os MPSoCs são capazes de explorar o Paralelismo a Nível de Threads (ou tarefas) (do inglês, Thread Level Parallelism - TLP) disponível nas aplicações.

Para prover comunicação entre os diferentes componentes de um MPSoC, dentre as arquiteturas de comunicação mais usadas estão as Redes em Chip (do inglês, Networks on Chip - NoC) (BENINI; MICHELI, 2002) (ZEFERINO, 2003b). Essa arquitetura consiste

basicamente de canais ponto-a-ponto, que conectam roteadores e estes, por sua vez, estão conectados por outro canal ponto-a-ponto aos núcleos do MPSoC. O amplo uso das NoCs é graças aos seus benefícios, como largura de banda escalável, uso de curtas conexões ponto-a-ponto e paralelismo nas comunicações (ZEFERINO, 2003b). Logo, na execução de

uma aplicação em um MPSoC baseado em NoC, tem-se, além de TLP, paralelismo de comunicação provido pela estrutura arquitetural da NoC.

Apesar do potencial ganho de desempenho obtido pelos MPSoCs baseados em NoC, para que esse ganho realmente exista, é necessário um gerenciamento dos recursos do sistema. Esse gerenciamento vai de encontro a alguns desafios que são enfrentados no projeto desses sistemas. Dentre esses desafios está o de alocar as tarefas de uma aplicação

(26)

aos núcleos do MPSoC, o qual é chamado de Problema de Mapeamento (PM)1 (BOKHARI, 1981), e o de definir as rotas de comunicação entre cada par de tarefas que se comunicam, o qual é chamado de Problema de Roteamento (PR) (HU; MARCULESCU, 2003b) (ALI; WELZL; HELLEBRAND, 2005). Tais desafios possuem forte relação entre si e as suas soluções interferem diretamente em várias métricas de desempenho, como por exemplo, no consumo de energia, dissipação de potência, na latência de comunicação entre as tarefas alocadas aos núcleos e o tempo de execução total das aplicações. Além disso, dentre esses dois problemas, o PM é o mais desafiador, pois trata-se de um problema NP -Difícil (GAREY; JOHNSON, 2002) (PASCUAL; LOZANO; ALONSO, 2010). Já o PR, uma vez que se tem a solução de mapeamento, pode ser mais facilmente resolvido.

Devido a complexidade computacional em se fazer uma completa exploração no es-paço de projeto dos MPSoCs baseados em NoC, objetivando tratar os desafios citados de mapeamento e roteamento, torna-se necessária a utilização de estratégias eficientes de oti-mização para reduzir o espaço de exploração. Além disso, é necessário considerar também se a busca por soluções de mapeamento e roteamento está sendo feita estaticamente ou dinamicamente. Enquanto que no primeiro, as técnicas utilizadas podem ser mais sofis-ticadas, no segundo, as técnicas precisam considerar o tempo de execução das aplicações para evitar aumentar excessivamente o tempo total de execução.

Neste trabalho, o PM e o PR são abordados como o Problema de Mapeamento e Roteamento (PMR), o qual une características de ambos os problemas objetivando obter soluções mais eficientes em termos de latência de comunicação. Aqui, é proposto um mo-delo de programação matemática para o PMR, tomando como plataforma base MPSoCs baseados em NoCs cujos núcleos de processamento de propósito geral são homogêneos. No modelo do PMR, a largura de banda dos canais da NoC é usada como informação essencial para a construção das soluções. O principal objetivo do modelo é buscar soluções ótimas de mapeamento e a construção de roteamentos, visando baixa latência. Note que o termo “solução ótima” aqui usado descreve o objetivo do modelo proposto baseando-se em suas equações. As soluções geradas pelo modelo, quando simuladas, podem gerar resultados que não caracterizam as soluções como ótima, contudo elas são otimizadas o suficiente ao ponto de proverem execuções com desempenho satisfatório para as aplicações.

Uma vez que soluções ótimas de roteamento são possíveis de serem obtidas, para se obter soluções de mapeamento e roteamento otimizadas, a parte que trata do roteamento no modelo matemático proposto é utilizada combinada com meta-heurísticas, numa

(27)

lução denominada de math-heurística (do inglês, math-heuristics). Math-heurística, ou meta-heurística baseada em modelo, como definido por (BOSCHETTI et al., 2009) consiste em uma técnica de otimização que provê interoperabilidade entre um processo meta-heurístico, ou mesmo meta-heurístico, e o modelo matemático do problema. Existe uma grande variedade de trabalhos nesta área de pesquisa que usam estratégias heurísticas e meta-heurísticas para solucionar tanto o PM (estático ou dinâmico) (SAHU; CHATTOPADHYAY, 2013) quanto o PR (PALESI; DANESHTALAB, 2014). Contudo, não é de conhecimento do autor deste trabalho, soluções que usem a estratégia math-heurística para abordar ambos problemas.

Partindo dessa observação, neste trabalho também são propostas três math-heurísticas bioinspiradas (Algoritmo Genético, Algoritmo Memético e Algoritmo Transgenético) para lidar com o PM estático. As propostas usam estratégias gerais de otimização e dentro de-las é usada a parte de roteamento do modelo do PMR proposto como uma avaliação de função fitness exata. Além disso, foram propostas também duas heurísticas para mape-amento dinâmico de tarefas (TransCand e TransEndo) baseadas na metáfora dos Algo-ritmos Transgenéticos (AT), que possuem em comum um operador usado para infiltração de informações genéticas e a estratégia de usar as informações já contidas na estrutura de solução atual.

Todas as propostas deste trabalho foram implementadas e simuladas usando o si-mulador de NoC Noxim (CATANIA et al., 2015). O modelo do PMR foi implementado e executado em uma ferramenta de otimização (solver ) e os seus resultados foram analisados com relação à sua escalabilidade conforme o tamanho do MPSoC e da aplicação. Para os experimentos das math-heurísticas propostas, foram realizadas comparações tanto entre as math-heurísticas, como com resultado do modelo dado pelo solver e também de outras três propostas da literatura. A metodologia usada para as soluções considerou as dife-rentes otimizações geradas, a variação da Taxa de Injeção de Pacotes (do inglês, Packet Injection Rate - PIR), a variação do tamanho do MPSoC baseado em NoC e 5 diferentes estratégias de roteamento (XY, Odd-Even, West-First, Negative-First e Math), dentre elas o roteamento dado pelo modelo (Math).

Nos experimentos para as heurística de alocação dinâmica propostas, a metodologia de avaliação considerou 5 diferentes cenários, os quais tentam reproduzir o comportamento dinâmico de inserção e remoção de tarefas no sistema. Além do comportamento dinâmico das aplicações, também foram consideradas variadas taxas de injeção, diferentes tamanhos de MPSoC e o roteamento XY.

(28)

Os resultados para o estático mostraram que os algoritmos propostos conseguem pro-ver soluções mais otimizadas em latência quando comparados com os da literatura. Em particular, o Algoritmo Transgenético se apresenta melhor mostrando maiores percentuais de ganho em todas as métricas avaliadas, alcançando 50,71% de ganho de atraso médio e 41,79% no atraso máximo. Nos resultados do mapeamento dinâmico, ambas as propostas (TransCand e TransEndo) apresentaram performances satisfatórias, gerando soluções cu-jos ganhos chegam a 100 e 500 ciclos no atraso médio e máximo, respectivamente. Contudo, o TransEndo foi melhor, uma vez que quando não ganha, apresenta resultados bastante competitivos com os dos algoritmos comparados, em um tempo bem menor. Os tempos do TransEndo chegam a ser 6,63 vezes menores do que os dos algoritmos comparados.

1.1

Principais Contribuições

Abaixo são listadas as principais contribuições deste trabalho:

• Proposta de um modelo matemático que unifica características de alocação e rotea-mento, podendo ser usado para encontrar soluções ótimas ou otimizadas de mape-amento e rotemape-amento;

• Proposta de três algoritmos math-heurísticos para a solução do problema abordado, os Algoritmos Genético, Memético e Transgenético. Tanto o uso de math-heurísticas para o PMR quanto o uso de Algoritmo Transgenético para o PM não foram encon-trados na literatura pelo autor deste trabalho até o momento, podendo este trabalho ser o primeiro neste segmento;

• Proposta de duas heurísticas de alocação dinâmica de tarefas que usam a metáfora dos Algoritmos Transgenéticos para gerar as soluções. Até o momento, também não foram encontrados na literatura algoritmos de alocação dinâmica que usam a metáfora dos Transgenéticos.

1.2

Organização do Trabalho

O presente documento está organizado da seguinte forma: o Capítulo 2 descreve a fundamentação teórica deste trabalho, apresentando os conceitos básicos para o bom entendimento do mesmo. No Capítulo 3, são apresentados os trabalhos relacionados. No Capítulo 4 é apresentado o modelo do PMR, as implementações das math-heurísticas

(29)

propostas e também das heurísticas para alocação dinâmica de tarefas. No Capítulo 5 é apresentada a metodologia usada nos experimentos assim como os resultados dos mesmos. Por fim, o Capítulo 6 apresenta as considerações finais, as conclusões sobre o trabalho e as perspectivas de trabalhos futuros.

(30)

2

Fundamentação Teórica

Para um melhor entendimento da proposta do trabalho, neste capítulo é apresentada a fundamentação teórica. Aqui serão detalhados os conceitos de SoC, MPSoC, NoC, bem como sobre o problema em estudo. O conteúdo apresentado no decorrer deste texto está organizado da seguinte forma: a seção 2.1 descreve sistema alvo da otimização realizada neste trabalho. Na seção 2.2 é apresentado o problema de mapeamento de tarefas, assim como sua complexidade de importância. A seção 2.3 apresenta conceitos sobre roteamento. Na seção 2.4 é introduzido o conceito de meta-heurística e também a teoria de inspiração de cada meta-heurísticas usadas neste trabalho. A seção 2.5 apresenta as math-heurísticas no contextos dos algoritmos meta-heurísticos híbridos. Por fim, a seção 2.6 apresenta algumas considerações sobre o trabalho proposto, considerando os conceitos apresentados neste Capítulo.

2.1

Sistemas em Chip – SoCs e MPSoCs

A integração de vários componentes de hardware em uma única pastilha de silício, tornou-se viável graças à miniaturização no tamanho dos transistores. Essa integração de componentes como memórias, unidades de processamento, interfaces de entrada e saída, dentre outros, é chamada de Sistema em Chip (SoC) (BENINI; MICHELI, 2002) (PASRICHA; DUTT, 2010). O uso de tais sistemas pode ser amplamente visto nos dias atuais em dispo-sitivos como smartphones, tablets, entre muitos outros. Os componentes que são agregados no projeto de um SoC dependem do tipo de aplicação para a qual ele foi projetado para executar.

Emergindo do desenvolvimento dos SoCs, os Sistemas em Chip Multiprocessados (do inglês, Multiprocessor System on Chip - MPSoC) são sistemas em chip compostos por múltiplas unidades de processamento e são capazes de suportar a grande demanda de aplicações paralelas atuais (WOLF, 2004) (WOLF; JERRAYA; MARTIN, 2008) (PASRICHA; DUTT, 2010). Cálculos científicos, processamento de áudio e vídeo, análise de séries

(31)

tem-porais para previsão do tempo ou qualquer outra computação que possa ser devidamente paralelizada, são exemplos de algumas aplicações que se beneficiam quando executadas em MPSoCs. Na Figura 1, são apresentadas duas representações simplificadas de (a) SoC e (b) MPSoC.

(a) SoC (b) MPSoC

Figura 1: Representação simplificada de (a) SoC e de (b) MPSoC.

Na Figura 1, os componentes contidos em ambos sistemas integrados são processador de Propósito Geral (do inglês, General Purpose - GP), Sensores, Memória, dispositivos de Entrada e Saída e outros. Descrevendo brevemente tais componentes, tem-se que: GP é um processador projetado para trabalhar com qualquer tipo de aplicação, razão pela qual é denominado de Propósito Geral; Sensores são componentes do sistemas que irão reagir a estímulos; Memória é onde são armazenados os dados que serão processados; Entrada/Saída são as interfaces de comunicação do sistema com o meio externo. Por fim, Outros representa uma abstração para outro componente que possa ser integrado no sistema, uma vez que o exemplo é meramente ilustrativo e SoCs e MPSoCs não são necessariamente compostos apenas pelos componentes aqui descritos. O componente que está sendo representado apenas no MPSoC é o Processador Digital de Sinais (do inglês, Digital Signal Processor - DSP), o qual é um processador projetado para o processamento de sinais digitais.

2.1.1

Arquitetura do Sistema

MPSoCs podem ser classificados de acordo com a arquitetura do sistema, podendo ser homogêneos ou heterogêneos (CARVALHO, 2009) (MANDELLI, 2011). MPSoCs homo-gêneos são os que possuem processadores idênticos (em arquitetura e organização). Se considerarmos outros componentes como memória, por exemplo, o mesmo raciocínio se aplica. Inversamente ao conceito de homogeneidade aqui descrito, a heterogeneidade dos MPSoCs ocorre quando há pelo menos um elemento diferente. No caso das unidades de processamento, quando há pelo menos um processador distinto em termos de organização,

(32)

independente de possuírem a mesma Arquitetura de Conjunto de Instruções (do inglês, Instruction Set Architecture - ISA) ou não. Por exemplo, na Figura 1b, observa-se um MP-SoC heterogêneo. Para este MPMP-SoC ser classificado como homogêneo, é suficiente excluir o DSP, único componente de processamento distinto entre os que compõem o sistema.

Vale salientar que a natureza dos MPSoCs é heterogênea, assim como apresentado na Figura 1b, possuindo núcleos de propósito geral e núcleos para processamento especí-fico. Neste trabalho consideramos MPSoCs homogêneos no sentido que a otimização ser aplicadas apenas nos núcleos de propósito geral, os quais são considerados idênticos (ho-mogêneos) em termos de capacidade de processamento. Outros núcleos de processamento, como por exemplo o DSP na Figura 1b, são desconsiderados na otimização.

A vantagem de usar MPSoCs com unidades de processamento homogêneas está na simplicidade do projeto, no custo de fabricação reduzido em comparação ao heterogêneo e numa menor complexidade de programação. A menor complexidade de programação é obtida, pois todos os processadores possuem uma mesma ISA. Com isso, as aplicações enxergam as unidades de processamento indistintamente, podendo executar em qualquer uma delas. Já o custo de fabricação é minimizado, pois fabricar vários componentes de um mesmo tipo é menos custoso do que fabricar vários componentes de tipos diferentes. Por outro lado, MPSoCs heterogêneos se tornam mais eficientes, uma vez que podem ter processadores para aplicações específicas e com isso, quando requisitado para executar tais aplicações, suas métricas de desempenho acabam sendo melhores do que os homogêneos (MITRA, 2015).

2.1.2

Arquiteturas de Interconexão

Para prover comunicação entre os diferentes componentes de um MPSoC, faz-se uso de arquiteturas de comunicação, ou infraestruturas de comunicação. As arquiteturas de comunicação mais comumente usadas são os canais multiponto compartilhados (ou barra-mento), canais ponto-a-ponto dedicados (ou simplesmente, ponto-a-ponto) e as redes de interconexão chaveadas (ou NoC).

Os barramentos, como ilustrado na Figura 2a, correspondem a uma arquitetura de comunicação que conecta todos os componentes do sistemas de uma só vez. A vantagem no uso do barramento está na possibilidade de reutilização da mesma estrutura em vários projetos diferentes, reduzindo os custos de projeto. Apesar disso, o barramento é uma ar-quitetura bastante limitada, não sendo a melhor opção para compor o projeto de MPSoC, uma vez que não é capaz de prover paralelismo de comunicação e, além disso, não possui

(33)

largura de banda escalável (ZEFERINO, 2003a).

Diferente do barramento, a arquitetura ponto-a-ponto (representada na Figura 2b) consiste em canais ligando cada componente do sistema a todos os outros componentes. Essa arquitetura apresenta melhor desempenho, pois as comunicações são feitas por canais exclusivos, onde todas comunicações podem ser realizadas paralelamente. No entanto, essa arquitetura possui reusabilidade limitada, requerendo um projeto específico para ser usada em MPSoCs (ZEFERINO, 2003a). A arquitetura ponto-a-ponto tem como vantagem a capacidade de paralelismo de comunicação, porém tem a desvantagem de não ser escalável, devido a quantidade de ligações a ser criadas a cada componente que é inserido no sistema (ZEFERINO, 2003a).

Outra opção para interconexão são as NoCs, que devido a ser a arquitetura alvo deste trabalho, será explicada em uma seção separada.

(a) Barramento (b) Ponto-a-ponto

Figura 2: Representação simplificada das interconexões por (a) barramento e (b) ponto-a-ponto.

2.1.2.1 Rede em Chip – NoC

Redes em Chip, ou NoC, é uma arquitetura de comunicação amplamente usada e estudada no projeto de MPSoC. Sua grande difusão se deu graças as suas vantagens, dentre as quais se destacam a escalabilidade, simplicidade e a capacidade inerente de pro-ver paralelismo de comunicação entre as diferentes tarefas de uma aplicação (ZEFERINO, 2003a). NoCs consistem em um conjunto de canais bidirecionais que conectam roteado-res, os quais, por sua vez, estão conectados através de uma interface de comunicação, aos componentes do MPSoC. A Figura 3, detalha os componentes acima citados.

As NoCs podem prover comunicação entre os componentes de um MPSoC tanto ho-mogêneo quanto heterogêneo, assim como vemos na Figura 4. NoCs também podem ser de diferentes topologias. Uma das mais usadas na literatura, devido a sua simplicidade,

(34)

Figura 3: Representação dos componentes de uma NoC.

simetria e escalabilidade, é a mesh 2D. Além disso, essa topologia possibilita a aplicação de diversas técnicas de controle de fluxo e protocolos de roteamento. Adicionalmente, a sua estrutura é mais facilmente projetável no layout do circuito do sistema em chip (LIU et al., 2017).

(a) Heterogêneo (b) Homogêneo

Figura 4: Representação simplificada da interconexão por NoC, onde em (a) é apresentado um MPSoC heterogêneo e em (b) um MPSoC homogêneo.

Além das vantagens já citadas, as NoCs possuem várias outras, como baixo consumo de energia e reusabilidade. Apesar disso, elas possuem como desvantagem maior custo de projeto e latência de comunicação. Contudo, devido a grande disponibilidade de transisto-res e estratégias de otimização arquitetural que minimizam o impacto dessas desvantagens, os projetos de MPSoCs baseados em NoCs conseguem ter custo dentro dos limites aceitá-veis para o projeto e permitem alcançar alto desempenho para as aplicações (ZEFERINO, 2003a).

(35)

por envio e recebimento de mensagens de requisição e resposta. Os canais dos MPSoCs são unidirecionais e conectam, de forma assíncrona, um roteador de origem a um roteador de destino. Cada canal, além das vias que trafegam os dados da mensagem, é composto por um conjunto de fios de banda lateral, que são usados para transferir informações sobre o início e o fim das mensagens, sinalização de erros, paridade da palavra de dados, dentre outras. Além disso, existem outros fios para a regulação do tráfego. Logo, canais unidirecionais contendo as vias de dados, banda lateral e fios de controle de tráfego, são definidos como enlaces, ou links (ZEFERINO, 2003a). Na representação da Figura 3 simplificamos esse conceito e apresentamos dois enlaces unidirecionais como sendo apenas um canal bidirecional. Apesar disso, como veremos na seção 4.1 quando apresentamos a modelagem do problema, nós tratamos cada canal de forma individual.

As unidades de medida das informação transferidas são pacote, flit e phit. Uma men-sagem, ou pacote, é composta por um conjunto de flits e estes por sua vez podem ser subdivididos em phits, o qual é a menor unidade de medida física na rede. Os campos que compõem uma mensagem são: cabeçalho, que indica o início da mensagem e pode conter informações necessárias a sua transferência na rede; carga útil, que é o conteúdo da mensagem e o terminador, que indica o fim da mensagem e pode ser representado pelo último flit da carga útil.

A forma como as mensagens são transferidas na NoC são definidas através da escolha dos mecanismos de comunicação (ZEFERINO, 2003a). Dentre eles tem-se:

• Controle de fluxo: É responsável pela regulação do tráfego nos canais. Isso é feito pela alocação dos recursos necessários para as mensagens que trafegam na rede. Os tipos mais comuns são: handshake, baseado em créditos e baseado em canais virtuais;

• Roteamento: Define o caminho, ou rota, a ser trafegada por uma mensagem da origem ao destino. Podem ser classificados quanto a previsibilidade, sendo determi-nísticos quando já se sabe à priori o roteamento a ser seguido, e não determidetermi-nísticos quando o roteamento é construído em tempo de execução, baseando-se em alguma métrica de desempenho do sistema;

• Arbitragem: É responsável por gerenciar os conflitos internos do sistema, ou seja, quando duas ou mais mensagens tentam acessar o mesmo recurso. Pode ser distri-buído ou centralizado;

(36)

• Chaveamento: Define como uma mensagem é enviada da entrada de um roteador à uma de suas portas de saída. Pode ser por circuito ou por pacotes;

• Memorização: Define o esquema de filas aplicado as mensagens que ficam contidas nos roteadores quando o canal de saída não está disponível. Pode ser feito em cada porta de entrada do roteador ou de forma centralizada para todas as portas.

2.2

Mapeamento de Tarefas

Um conceito que permeia todo o trabalho é o de aplicação. Uma aplicação é um programa que irá executar no MPSoC. Neste contexto, representa-se uma aplicação por um grafo dirigido e ponderado G = (V, A), composto por |V | vértices e |A| arestas. Os vértices de G representam as tarefas da aplicação e as arestas correspondem às comunicações realizadas entre cada par de tarefas. Cada aresta ai, 1 ≤ i ≤ |A|, está associada a um

valor vi, que se refere à quantidade de informação transferida entre as tarefas conectadas

por ai.

O mapeamento de tarefas aqui estudado consiste em encontrar a melhor configuração de alocação das tarefas de uma determinada aplicação com o objetivo de prover melhora de desempenho. O termo desempenho pode ser entendido como qualquer métrica de avaliação de performance (latência, consumo de energia, dissipação de potência, etc) que se esteja otimizando, sendo ela para o processamento das tarefas ou para as comunicações. Contudo, como já mencionado, neste trabalho, objetivamos otimizar latência de comunicação. A Figura 5 apresenta a representação gráfica de uma aplicação, onde cada uma de suas tarefas está sendo mapeada a um núcleo diferente do MPSoC.

O problema de alocação de tarefas já é bastante estudado na literatura de otimiza-ção de MPSoCs baseados em NoC e é conhecido como Problema de Mapeamento (PM) (BOKHARI, 1981). A sua ampla exploração se dá pela sua grande importância do projeto dos MPSoCs assim também como a sua complexidade. Por se caracterizar como um pro-blema NP -Difícil, conforme o número de tarefas das aplicações e a quantidade de núcleos do sistema cresce, a exploração do espaço de busca se torna exponencial, sendo impossível encontrar soluções exatas para aplicações e MPSoCs baseados em NoC com mais do que 25 tarefas e núcleos, respectivamente (TOSUN et al., 2015).

Na literatura de otimização combinatória, existe outro problema NP -Difícil bastante explorado que é o Problema Quadrático de Alocação (do inglês, Quadratic Assignment Problem - QAP), formulado em 1957 por (KOOPMANS; BECKMANN, 1957). Esse problema

(37)

Figura 5: Representação do mapeamento de uma aplicação nos núcleos de um MPSoC baseado em NoC com topologia mesh 2D.

trata da alocação de facilidades em localidades objetivando a minimização do fluxo entre facilidades vezes a distância entre as respectivas localidades (FINKE; BURKARD; RENDL, 1987). O QAP é um problema clássico de otimização que possui diversas aplicações na vida real, como por exemplo modelagem do custo de transporte de materiais entre várias indústrias situadas em locais diferentes; layout de salas de hospitais baseando-se no fluxo de pessoas (pacientes, médicos e enfermeiros); comunicações de aeronaves; definição de layout de circuitos integrados; entre muitos outros. O grande interesse dos pesquisadores da área de otimização por esse problema vem da sua complexidade, pois como demons-trado no trabalho de (SAHNI; GONZALEZ, 1976), esse problema é tão difícil, que encontrar uma solução aproximada sob algum fator constante da solução ótima não pode ser feito em tempo polinomial a menos que P = N P .

Para o PM, um dos fatores determinantes para a minimização da latência é a mi-nimização do fluxo de comunicações na rede. Isso pode ser entendido como a soma da quantidade de informação trocada entre cada um dos pares de tarefas multiplicado pela quantidade de canais efetivamente usados nas respectivas comunicações (que interconec-tam os núcleos nos quais as tarefas foram alocadas). Neste sentido, se considerarmos que todas as comunicações ocorrem simultaneamente, o PM, com critério de minimização da latência, se reduz a uma instância do QAP. O trabalho de (PASCUAL; LOZANO; ALONSO, 2010) apresenta a formulação do PM como sendo uma instância do QAP, considerando a latência como critério de avaliação de desempenho da rede.

(38)

2.2.1

Classificação

O mapeamento de tarefas pode ser classificado de acordo com vários critérios, dentre eles temos com relação ao tempo em que é realizado e pela quantidade de tarefas mape-adas por núcleo (CARVALHO, 2009) (MANDELLI, 2011). Considerando o tempo em que o mapeamento é realizado, podemos classificá-lo em:

• Estático (ou offline): Usa-se essa técnica quando se tem conhecimento do compor-tamento de execução da aplicação. Na alocação estática, a otimização é aplicada em tempo de compilação, ou seja, antes da aplicação começar a executar, logo pode-se fazer uso de estratégias de otimização que fazem uma melhor exploração no espaço de busca de soluções, obtendo soluções muito próximas da solução ótima (ou mesmo a ótima).

• Dinâmico (online): Usa-se essa técnica quando não se tem conhecimento do com-portamento de execução da aplicação. Na alocação dinâmica a otimização é feita em tempo de execução, logo o tempo da otimização é um fator que influencia bastante na execução das aplicações. Nesta técnica é feito o uso de estratégias simples e rápi-das que consigam entregar ao sistema soluções de alocações de qualidade conforme a demanda de requisição de alocação de tarefas no sistema varia.

Com relação à classificação considerando a quantidade de tarefas mapeadas por núcleo, temos as seguintes:

• Monotarefa: Quando cada núcleo executa apenas uma única tarefa por vez. Essa otimização é mais simples e menos custosa, pois leva em consideração apenas a alocação de uma tarefa individualmente, não sendo necessário qualquer outra com-putação à priori.

• Multitarefa: Quando cada núcleo pode executar mais de uma tarefa. Para a apli-cação desta técnica torna-se necessária a divisão das tarefas a serem alocadas em vários grupos. As tarefas de cada grupo possuem alguma afinidade entre si, podendo essa afinidade ser definida em termos de troca de comunicação entre elas, o tempo de alocação e execução de cada uma delas, dentre outros. Note que, em termos de otimização, após a definição dos grupos o problema é tratado como uma alocação monotarefa, onde considera-se um grupo como sendo uma tarefa.

(39)

Além das classificações anteriormente descritas, quando se trabalha no contexto de alocação dinâmica de tarefas, pode-se classificar o mapeamento de acordo com a entidade responsável por realizar a alocação das tarefas em tempo de execução. São elas:

• Centralizado: Neste caso um único núcleo é responsável por receber as requisições de alocação de novas tarefas e aplicações no sistema, buscar o código da tarefa requisitada na memória, executar a estratégia de alocação dinâmica e aplicar a alocação nos locais (núcleos) especificados pela solução da otimização.

• Distribuído: Nesta abordagem o sistema é dividido em cluster. Cada cluster tem um único núcleo que é responsável por receber as requisições de alocação de novas tarefas e aplicações no sistema, buscar o código da tarefa requisitada na memória, executar a estratégia de alocação dinâmica e aplicar a alocação nos locais (núcleos) especificados pela solução da otimização.

2.3

Roteamento

O roteamento é a definição do caminho percorrido entre cada comunicação dos pares de tarefas que se comunicam em uma aplicação (ZEFERINO, 2003a). Existem vários tipos de roteamentos diferentes. Uma classificação mais abrangente considera a previsibilidade dos caminhos percorridos. Neste caso, classificamos por determinísticas as estratégias nas quais sabe-se, deterministicamente, quais caminhos uma determinada comunicação irá percorrer, e classificamos por não determinístico, quando não se sabe esses caminhos, podendo eles variarem de acordo com o desempenho do sistema. Roteamentos não de-terminísticos podem ser subdivididos em totalmente não dede-terminísticos ou adaptativos, que são aqueles onde qualquer caminho pode ser tomado, incluindo os que se afastam do destino, e semi-determinísticos ou semi-adaptativos, que são aqueles onde apenas os caminhos que se aproximam do destino podem ser tomados (MANDELLI, 2011).

De acordo com (HU; MARCULESCU, 2003b), roteamentos determinísticos são mais indi-cados para compor o projeto de NoCs regulares. Isso pelo fato de o roteamento adaptativo necessitar de mais recursos, pois como os pacotes podem ser enviados fora de ordem, para poder ordená-los é requerido mais espaço de bufferização nos roteadores da NoC. Além disso, tem-se maior atraso na entrega dos pacotes devido ao custo vinculado aos protoco-los de comunicação. Contudo, os não determinísticos têm a vantagem de conseguir evitar grandes congestionamentos na rede, pois as rotas podem ser definidas baseando-se em métricas de desempenho.

(40)

Existem alguns algoritmos de roteamento determinísticos para NoCs com topologia mesh 2D bastante usados na literatura, dentre eles podemos citar o XY e Odd-Even, os quais usam a abstração de coordenadas cartesianas. A Figura 6 ilustra como é a abstração por coordenadas cartesianas de um MPSoC baseado em mesh 2D.

Figura 6: Representação de um MPSoC baseado em NoC com topologia mesh 2D abstraído como coordenadas cartesianas.

O algoritmo XY, partindo da origem, toma o caminho da coordenada X até a coluna onde está o destino e então toma a coordenada Y até chegar ao destino. Já o Odd-Even, similar ao XY, também considera a representação por coordenadas cartesianas, porém restringe os caminhos que podem ser tomados. Esse algoritmo considera as direções Norte, Sul, Leste e Oeste e se baseia nas seguintes regras: nenhum pacote pode percorrer o caminho Leste → Norte, se ele parte de um roteador de coordenada X par; nenhum pacote pode percorrer o caminho Norte → Oeste, se ele parte de um roteador de coordenada X ímpar; nenhum pacote pode percorrer o caminho Leste → Sul, se ele parte de um roteador de coordenada X par e, por fim, nenhum pacote pode percorrer o caminho Sul → Oeste, se ele parte de um roteador de coordenada X ímpar (SHRIMAWALE; GAIKWAD, 2013).

Contrário aos algoritmos determinísticos anteriormente citados, quando se considera os roteamentos não determinísticos pode-se fazer uso de heurísticas que avaliam todos os pares de tarefas comunicantes tentando encontrar a melhor configuração de roteamento para cada uma delas. Os algoritmos que podem ser usados são os amplamente estudados em teoria dos grafos, como o de Dijkstra, Floyd-Warshall, dentre outros (CORMEN et al., 2009).

(41)

2.3.1

Desafios de Projeto

Alguns cuidados devem ser tomados quando se trabalha com roteamento de tarefas, para que as mensagens sejam entregues ao destino. Esses cuidados se resumem em evi-tar problemas como sevi-tarvation, livelock e deadlock. Detalhes sobre esses problemas são descritos a seguir:

• Starvation: Ocorre devido às políticas de prioridade aplicadas pelos árbitros dos roteadores. Em situações de tráfego intenso, várias requisições são enviadas ao ár-bitro e este, por sua vez, aplica o critério de prioridade para a escolha de quais requisições atender. Caso essa política não seja justa, alguns pacotes podem ficar presos nos buffers dos roteadores por um tempo indefinido, não sendo entregue ao seu destinatário, causando a situação de starvation.

• Livelock : Pode ocorrer no uso de estratégias de roteamento não determinísticas, onde um pacote pode trafegar indefinidamente na rede, e não ser entregue ao seu destinatário.

• Deadlock : É o problema mais grave, pois ele pode ocasionar a paralisação das co-municações na rede. Esse problema ocorre em casos de dependências cíclicas, quando mensagens que já estão sendo transferidas por canais (já alocaram recursos), requi-sitam a transferência por outros canais que também já estão trafegando mensagens (recursos já alocados).

Em geral, o problema de starvation é resolvido através dos mecanismos de arbitragem, já o livelock e o deadlock são resolvidos exclusivamente pelos algoritmos de roteamento adotados (ZEFERINO, 2003a).

De acordo com (HU; MARCULESCU, 2003b), o roteamento mais apropriado para uma NoC deve ser determinístico, deadlock-free, mínimo e que use chaveamento por pacote do tipo wormhole (MOHAPATRA, 1998). O roteamento que é proposto neste trabalho, no modelo do Problema de Mapeamento e Roteamento (PMR) apresentado na seção 4.1, se baseia nesta argumentação. O algoritmo é determinístico, pois depois de traçado caminho ele não é modificado, é mínimo, o que é garantido pela função objetivo, e se baseia no chaveamento por pacote do tipo wormhole. A parte de roteamento do modelo do PMR não garante o roteamento gerado seja deadlock-free. Contudo, como será visto nos resultados experimentais usando o roteamento do modelo (roteamento Math apresentado na seção 5.3) não houveram problemas com deadlock para as propostas deste trabalho. Além disso,

(42)

as soluções geradas pelas math-heurísticas propostas, as quais usam a parte de roteamento do modelo do PMR em sua otimização, demonstraram um melhor escoamento do fluxo de informações na rede (ver seção 5.3.4.1).

2.4

Meta-heurísticas

Como mencionado na seção 2.2, o PM, pela relação com o QAP, pode ser classifi-cado como um problema NP -difícil (GAREY; JOHNSON, 2002). Da mesma forma, o PMR conforme modelado neste trabalho (ver seção 4.1) também pertence a essa classe de pro-blemas, uma vez que une dois propro-blemas, sendo um deles de natureza NP -difícil, que é o PM. Em particular, encontrar soluções para o PMR pode ainda ser mais difícil, uma vez que o espaço de soluções de roteamentos é limitado devido a restrição de largura de banda dos canais da rede, o que aumenta a dificuldade no uso de estratégias que encontrem configurações de soluções com mapeamento e roteamento viáveis.

Para problemas pertencentes à classe de complexidade NP -difícil, ainda não se conhe-cem algoritmos eficientes para resolvê-los de forma ótima. As abordagens exatas existentes até o momento executam em tempo exponencial, que pode se tornar inviável mesmo para problemas de pequeno porte (GAREY; JOHNSON, 2002). No caso do PM no geral (o que inclui o PMR), como mencionado na seção 2.2, para instâncias a partir de 25 tarefas e núcleos, o tempo de computação na exploração do espaço de busca para encontrar a solução ótima já se torna impraticável (TOSUN et al., 2015).

Na tentativa de encontrar soluções de qualidade para problemas dessa natureza, emer-gem as heurísticas. Heurísticas são algoritmos que usam, de forma inteligente, caracte-rísticas e informações específicas sobre o problema para tentar encontrar a sua solução. Uma desvantagem das heurísticas é não ser generalizável para outros problemas. Neste contexto, surgem as meta-heurísticas, estratégias gerais de resolução de problemas as quais, normalmente, se inspiram em algum fenômeno da natureza (ou algo relacionado ao sucesso) para guiar um procedimento de busca estocástica no espaço de soluções do problema. A lógica que fundamenta tal inspiração é que, por exemplo, se as espécies são capazes de evoluir sempre em direção à melhoria, imitar esse processo de evolução no contexto computacional pode levar a encontrar melhores soluções.

As meta-heurísticas, por serem estratégias gerais de desenvolvimento de algoritmos, podem ser adaptadas para a solução de qualquer problema que possa ser modelado com-putacionalmente, principalmente quando outras estratégias de resolução para o problema

(43)

abordado não são muito eficazes, como é o caso dos problemas pertencentes a classe NP -difícil. Esses algoritmos realizam uma busca estocástica pela solução ótima no espaço de soluções a qual é guiada por regras extraídas de uma fonte de inspiração e adaptadas ao contexto computacional. A intenção é que essas regras ajudem a discernir, inteligen-temente, regiões mais promissoras do espaço de busca. Gendreau, Potvin et al. (2010) apresentam várias meta-heurísticas bastante usadas na resolução de diversos problemas.

Por não se tratar de uma abordagem exata nem de enumeração, as meta-heurísticas não exploram o espaço de soluções em sua completude. É neste contexto que emerge a dualidade entre intensificação e diversificação. A intensificação é uma fase que objetiva encontrar a melhor solução em uma determinada região do espaço de busca. Por outro lado, a fase de diversificação possibilita que o algoritmo explore diferentes regiões do espaço de busca. O balanceamento entre essas duas fases é um fator fundamental para que o algoritmo convirja para soluções mais otimizadas. Contudo, a forma como esse balanceamento é feito varia de meta-heurística para meta-heurística, de acordo com suas estruturas e operações realizadas.

Existem diversas classificações para os algoritmos meta-heurísticos e dentre elas, esses algoritmos podem ser agrupados de acordo com a quantidade de soluções consideradas do processo de otimização. Os que consideram apenas uma solução podem ser classificados como meta-heurísticas não populacionais. Já os que consideram mais de uma solução po-dem ser classificados como meta-heurísticas baseadas em população (ou populacionais). Dentre as não populacionais, podemos citar Simulated Annealing (SA) (KIRKPATRICK; GE-LATT; VECCHI, 1983), Tabu Search (GLOVER, 1989) (GLOVER, 1990), Greedy Randomized Adaptive Search Procedure (GRASP) (FEO; RESENDE, 1995), Variable Neighborhood

Se-arch (VNS) (HANSEN; MLADENOVIĆ, 1999), Generalized Hill-Climbing (JACOBSON; SUL-LIVAN; JOHNSON, 1998), dentre outros. Já no contexto dos algoritmos populacionais po-demos citar Algoritmos Genéticos (AG) (HOLLAND et al., 1992), Algoritmos Meméticos (AM) (MOSCATO et al., 1989), Algoritmos Transgenéticos (AT) (GOLDBARG; GOLDBARG,

2009), Particle Swarm Optimization (PSO) (KENNEDY, 2010), dentre muitas outras meta-heurísticas bioinspiradas.

Uma grande parte das meta-heurísticas da literatura são algoritmos que imitam os comportamentos físicos ou biológicos da natureza (JR et al., 2013). Dentre essas abor-dagens, os Algoritmos Evolucionários (ou Meta-heurísticas Evolucionárias) se destacam. Esses algoritmos são inspirados pela evolução biológica e são amplamente aplicados a problemas NP -Difíceis (YU; GEN, 2010). Neste trabalho focaremos neste tipo de

(44)

meta-heurística, uma vez que as propostas aqui descritas pertencem a essa classe de algoritmos.

2.4.1

Meta-heurísticas Evolucionárias

Algoritmos Evolucionários (AEs) são um tipo de meta-heurística cujo processo de otimização é baseado na evolução dos seres vivos, seja essa evolução extra ou intracelular. Para um algoritmo ser classificado como evolucionário ele deve possuir principalmente as três seguintes características (YU; GEN, 2010):

• Ser populacional: Ter uma população é o princípio básico de um algoritmo evo-lucionário. A população torna o algoritmo capaz de realizar a otimização simulta-neamente em vários pontos diferentes do espaço de busca.

• Usar uma função de adequação (ou fitness): Os elementos (ou indivíduos) da população possuem uma representação, a qual é chamada de representação ge-nética. Cada um desses indivíduos é composto por seu próprio código genético que representa uma solução do problema abordado. Adicionalmente, associado a cada in-divíduo existe um valor de adequação (ou fitness) que indica a sua qualidade. Como o objetivo dos algoritmos evolucionários é a convergência para soluções otimizadas, deseja-se que os melhores indivíduos (melhores valores de fitness) permaneçam na população e que os piores indivíduos (piores valores de fitness) sejam descartados. • Ser orientado por variação: O algoritmo deve possuir procedimentos ou

ope-rações que manipulem o código genético dos indivíduos da população. Essa mani-pulação tem fundamental importância na convergência do algoritmo, pois pode ser aplicada tanto para intensificação como para diversificação.

Alguns dos AEs mais clássicos são os Algoritmos Genéticos (AGs), Algoritmos Me-méticos (AMs), Algoritmos Culturais, Estratégia Evolucionária, Programação Genética, Programação Evolucionária, dentre muitos outros (GENDREAU; POTVIN et al., 2010). Todos esses algoritmos se baseiam na troca de informações entre seres extra-celulares. Contudo, existem algoritmos, como o Transgenético, que se baseiam na evolução intracelular. Este trabalho propõe três Algoritmos Evolucionários (Genético, Memético e Transgenético) para otimização do PMR. Sendo assim, essas abordagens são descritas em mais deta-lhes nas seções seguintes. A adaptação da metáfora ao contexto computacional fica mais evidente na seção 4.2, onde são descritos os algoritmos propostos.

(45)

2.4.2

Algoritmos Genéticos (AG)

Inspirados pela Teoria de Evolução e Seleção Natural, os Algoritmos Genéticos (AG) (HOLLAND et al., 1992) são um dos Algoritmos Evolucionários mais usados na resolução de problemas reais de natureza NP -Difícil. Segundo a teoria da Evolução, os indivíduos mais bem adaptados ao ambiente em que vivem tendem a sobreviver mais tempo e a deixar mais descendentes, enquanto os menos adaptados tendem a morrer. Essa teoria possui algumas características básicas que podem ser resumidas nos seguintes tópicos:

• A quantidade de indivíduos de uma mesma espécie (ou população) tende a ser constante ao longo das gerações;

• Cada indivíduo da espécie (ou população) possui seu próprio código genético, não sendo idêntico a qualquer outro indivíduo;

• Todos os indivíduos são férteis e com grande capacidade de reprodução. Contudo, os indivíduos com maior capacidade de adaptação ao ambiente tendem a gerar mais descendentes;

• Apesar da grande capacidade de reprodução implicar na geração de muitos descen-dentes, nem todos chegam à idade adulta. Apenas os mais adaptados (fortes) ao ambiente sobrevivem.

As características descritas guiam o processo evolutivo das espécies. A seleção natural é responsável então por manter sempre os melhores indivíduos nas gerações subsequentes, o que torna a população como um todo mais adaptável ao ambiente a cada próxima geração.

Os AGs mantêm uma população de indivíduos os quais representam soluções do pro-blema abordado. A Figura 7a apresenta os elementos básicos que caracterizam um con-junto de soluções (ou população) dos AGs, assim também como suas composições. Note que uma população é composta por indivíduos, os quais são representados por um cro-mossomo. Um cromossomo por sua vez é representado por uma sequência de genes, onde um gene é a menor representação na estrutura de solução.

Os AGs, de acordo com a Teoria da Evolução Neodarwiniana, aplicam a estratégia de troca de informações genéticas no contexto extracelular. Logo, os indivíduos da população se relacionam através dos mecanismos básicos chamados de operadores genéticos, os quais

(46)

(a) População, Cromossomo e Gene. (b) Mutação.

(c) Cruzamento.

Figura 7: Representação de (a) elementos que compõem uma população e um cromossomo, (b) operador de mutação e (c) operador de cruzamento.

são os agentes responsáveis pelo processo evolutivo. Alguns desses operadores são repre-sentados nas Figuras 7b e 7c (mutação e cruzamento, respectivamente). Eles também são descritos a seguir:

• Seleção: O operador genético de Seleção consiste em uma estratégia de escolha de indivíduos. Ele pode atuar em dois contextos distintos: na seleção de indivíduos mais propícios para o cruzamento e mutação, e na seleção de indivíduos que irão sobreviver de uma geração para outra do algoritmo. A estratégia de seleção para esses contextos diferentes pode ser diferente.

• Cruzamento: O cruzamento é um operador que cria um ou mais novos indivíduos (filhos) a partir de outros dois indivíduos previamente selecionados (os pais). Ou seja, ele age combinando o código genético de ambos os pais para gerar novos des-cendentes. Esses descendentes poderão ou não compor a população das próximas gerações a depender de sua aptidão para ser aceito ou não. Um exemplo de

(47)

cruza-mento pode ser visto na Figura 7c, onde partes de dois indivíduos são combinadas gerando novos dois indivíduos. Note que esse procedimento pode gerar soluções in-viáveis para o problema abordado. Os genes representados em vermelho foram os que tiveram que ser reestruturados, pois invalidaram a solução. Mais detalhes sobre esse tipo de inviabilidade serão descritos na seção 4.2, onde são apresentadas as implementações dos algoritmos propostos.

• Mutação: A mutação é um mecanismo de prover modificação no código genético de um indivíduo. Um exemplo é a troca de posições de genes na estrutura do cro-mossomo, como apresentado na Figura 7b.

Na Figura 8 é apresentada a sequência de passos aplicados no processo evolutivo dos AGs. A implementação da metáfora da evolução das espécies aplicada pelos AGs assume uma população de indivíduos de uma mesma espécie, a qual deve ser inicializada no início da otimização. A evolução é dada por um processo iterativo que a cada iteração (ou gera-ção) faz a atualização dos indivíduos da população considerando os operadores de Seleção, Cruzamento e Mutação, anteriormente descritos. A transição de uma geração para outra é feita através da seleção de um subconjunto de indivíduos que serão cruzadas e mutados, gerando novos descendentes que poderão compor a população da próxima geração. Além disso, associado a cada indivíduo da população existe uma função de aptidão, ou fitness, que define a qualidade do mesmo em relação aos outros indivíduos da população. Logo, a aplicação dos operadores de cruzamento e mutação depende unicamente da representação cromossômica dos indivíduos da população e não da aptidão. Já o operador de seleção depende da qualidade da indivíduo. Com isso, indivíduos com melhor aptidão tendem a sobreviver e a gerar descendentes. O processo evolutivo termina quando um determinado critério de parada for satisfeito, podendo esse ser a quantidade de gerações, um valor de fitness específico a ser alcançado, dentre outros.

Apesar do operador de seleção considerar a qualidade das soluções, os AGs podem considerar também procedimentos mais robustos de seleção, uma vez que selecionar n indivíduos com os n melhores valores de aptidão nem sempre é a melhor estratégia depen-dendo do problema abordado. Esse tipo de seleção determinística pode forçar a conver-gência mais rápida do algoritmo para as mesmas regiões do espaço de busca. Logo, esse tipo de estratégia peca no balanceamento entre intensificação e diversificação, uma vez que implica em maior intensidade de convergência. Dito isso, estratégias que aplicam uma certa aleatoriedade no processo de seleção se mostram mais eficazes. Como será mostrado no Capítulo de implementação dos algoritmos evolucionários propostos (Capítulo 4), para

(48)

Figura 8: Sequência de passos aplicados na otimização realizada pelos AGs.

a seleção é assumido uma probabilidade com distribuição uniforme entre os indivíduos da população.

Note que os operadores de Cruzamento e Mutação são os principais responsáveis pelo balanceamento da intensificação e diversificação. O Cruzamento, por fazer combinação genética de indivíduos da população, é um operador de intensificação. Já a mutação age como um operador de diversificação, uma vez que objetiva reorganizar aleatoriamente o código genético de alguns indivíduos.

No trabalho de Reeves (2010) são apresentados os avanços nas implementações dos AGs e algumas de suas aplicações. Uma análise bibliográfica pode ser encontrada no trabalho de (DAO; ABHARY; MARIAN, 2017). Além disso, a aplicação de AGs em diversos problemas pode ser encontrada nos trabalhos de Palesi et al. (2012), Çelik e Bazlamaçcı (2013), Strum, Chau et al. (2015), Tosun et al. (2015), Heras et al. (2016), Oztekin et al. (2018) e Lee (2018).

Referências

Documentos relacionados

Então, em Belém, há principalmente duas situações que podem provocar eventos extremos: Na estação chuvosa, quando a grande escala (ZCIT) está atuando sobre a região, e

Especificamente: trazer um resgate acerca de como surgiram e os existentes na atualidade; fazer uma breve análise histórica dos consórcios no Estado e um levantamento das

v) por conseguinte, desenvolveu-se uma aproximação semi-paramétrica decompondo o problema de estimação em três partes: (1) a transformação das vazões anuais em cada lo-

Silva e Márquez Romero, no prelo), seleccionei apenas os contextos com datas provenientes de amostras recolhidas no interior de fossos (dado que frequentemente não há garantia

For additional support to design options the structural analysis of the Vila Fria bridge was carried out using a 3D structural numerical model using the finite element method by

A anotação que se faz sobre tais normas é que, da forma como estão sendo elaboradas, privilegiam muito mais a manutenção de um sistema de visitação turística que é elitista e

Ficou com a impressão de estar na presença de um compositor ( Clique aqui para introduzir texto. ), de um guitarrista ( Clique aqui para introduzir texto. ), de um director

%, percentagem; AUC, area under the curve; DAU, fluxometria doppler da artéria uterina; Dos., Doseamento de biomarcadores; Esp, especificidade; HM, história