3 Trabalhos Relacionados
3.2 Mapeamento Dinâmico
Existe uma grande quantidade de trabalhos na literatura de MPSoCs que abordam o tema de mapeamento dinâmico de tarefas considerando diferentes objetivos de otimização. Em Davis e Burns (2011) e Singh et al. (2017), é possível encontrar trabalhos voltados a aplicações de tempo real hard e soft. Já em Hussain et al. (2013) e Hameed et al. (2016), são apresentados trabalhos com foco em algum domínio específico de aplicação. Henkel et al. (2013) descreve os trabalhos conforme o critério de otimização. Pop e Kumar (2004), Lombardi e Milano (2012), Zhuravlev et al. (2012), Sahu e Chattopadhyay (2013) e Singh et al. (2013) mostram vários aspectos diferentes das estratégias de alocação.
Apesar da grande quantidade de propostas neste segmento, diferentemente das abor- dagens estáticas, ainda existem poucos trabalhos com propostas bioinspiradas. Como ob- servado por Singh et al. (2017), a grande maioria dessas propostas são para otimização de redes de computadores ou sistemas distribuídos, como Heiss e Schmitz (1995) e Mudry e Tempesti (2009). A seguir, apresentamos alguns trabalhos encontrados no contexto dos algoritmos bioinspirados para alocação de tarefas em MPSoCs. Na sequência também são apresentados outros trabalhos de alocação dinâmica de tarefas da literatura que usam diferentes estratégias. Vale salientar que todas as propostas consideram uma arquitetura de comunicação com topologia mesh 2D, apenas os trabalhos de Betting e Brinkschulte (2014) e Mendis, Indrusiak e Audsley (2015) (os dois primeiros) consideram um gerencia- mento de alocação distribuído e apenas os trabalhos de Ost et al. (2013) e Maqsood, Bilal e Madani (2018) fazem alocação multitarefa.
• Betting e Brinkschulte (2014) apresentam uma proposta baseada no sistema hormo- nal dos animais para prover alocação e migração de tarefas. O objetivo de otimização é a minimização do tempo de execução das aplicações. Nesta proposta, a alocação inicial de uma tarefa é encontrada pela troca de diferentes sinais hormonais. Já a otimização das alocações é feita de forma periódica através da relocação das tare- fas. Experimentos mostraram que a proposta apresenta melhor eficiência quando comparada com outras abordagens baseadas em migração de tarefas.
• Focando em aplicações de decodificação de stream de vídeo, o trabalho de Men- dis, Indrusiak e Audsley (2015) apresenta uma proposta de adaptação do algoritmo pheromone signalling proposto por Caliskanelli et al. (2013), objetivando o rema- peamento de tarefas. A proposta objetiva otimizar o tempo total de execução das aplicações assim como o consumo de energia do sistema. Além disso, é assumido um sistema com gerenciamento de alocação distribuído, onde periodicamente cada um dos núcleos responsáveis pelo gerenciamento de seu cluster executa um conjunto de regras às quais dá a capacidade para eles terem conhecimento das decisões de re- mapeamento. Os experimentos comparando a proposta com outras que consideram um gerenciamento centralizado ou hierárquico mostraram uma melhoria no atraso das comunicações de 2% à 4% e de 10% à 30% no overhead de comunicação. • O trabalho de Carvalho, Calazans e Moraes (2010) apresenta cinco algoritmos para
o mapeamento dinâmico de tarefas propostos por Carvalho (2009): Minimum Maxi- mum Channel Load (MMCL), Minimum Average Channel Load (MACL), Path Load (PL) e o Best Neighbor (BN). O objetivo de otimização de todas as propostas é a
minimização de congestionamento da NoC através da otimização dos canais usados nas comunicações. Para isso, cada uma delas usa uma proposta diferente: o MMCL objetiva reduzir regiões altamente congestionadas, avaliando todos os possíveis ma- peamentos para cada tarefa inserida no sistema. O MACL é similar ao MMCL, contudo, em vez de evitar altos congestionamentos, ele tenta distribuir mais unifor- memente a carga na NoC; o PL considera o custo do tráfego de informações nos canais da rede de acordo com as rotas de comunicação; e o BN é uma combinação entre a estratégia Nearest Neighbor (NN) e o PL. Na comparação feita pelos autores, são analisadas métricas como tempo de execução das aplicações, carga nos canais, latência dos pacotes e também o consumo de energia da rede. Os resultados expe- rimentais mostraram que as propostas conseguem alcançar 30% e 22% de redução de carga nos canais e latência dos pacotes, respectivamente, com relação aos outros algoritmos comparados.
• Objetivando otimizar o consumo de energia, o trabalho de Ost et al. (2013) propõe a Premap-DN, uma heurística de alocação multitarefa. A proposta consiste em duas fases: agrupamento das tarefas que se comunicam, o qual é feito por um procedi- mento chamado de premap. E alocação de cada grupo para os núcleos do MPSoC, o qual é feito pela heurística Low Energy Consumption-Dependences Neighborhood (LEC-DN), que usa as estratégias de alocação de novas tarefas o mais próximo pos- sível da tarefa que requisitou a alocação, considerando a distância em hops, e o consumo de energia gasto pela comunicação. Resultados experimentais comparando a proposta com outro algoritmo da literatura mostraram que ela consegue redu- zir o consumo de energia em até 30,36%, enquanto que o tempo de execução das aplicações são reduzidos em até 18,37%.
• Fattah et al. (2014) propõe a Contiguity Adjustable Square Allocation (CASqA), uma heurística de alocação dinâmica com nível de contiguidade (ou proximidade) α de alocação ajustável. Os autores argumentam que a variação de α permite en- contrar soluções diversificadas em termos de latência de comunicação e consumo de energia. Por exemplo, considerar na alocação um alto grau de proximidade (α = 0) permite encontrar soluções com baixa latência de comunicação e baixa dissipação de potência, contudo o throughput fica limitado, reduzindo o tempo de resposta das aplicações. O objetivo de otimização é a minimização no tempo de execução das aplicações assim como do consumo de energia. Os resultados experimentais mostra- ram que a proposta alcança maior desempenho usando valores intermediários de α, chegando a 35% de ganho em desempenho quando comparado com alocação não
contígua (α = 1). Na comparação com outras propostas da literatura, foi observada uma redução do consumo de energia de até 32%.
• Uma proposta de algoritmo híbrido de alocação, cujos autores chamam de Hybrid Task Mapping (HTM), é apresentada em Quan e Pimentel (2015). A estratégia de alocação consiste em duas fases: otimização estática e dinâmica. Na otimização es- tática, objetiva-se encontrar duas soluções ótimas para a aplicação que está sendo otimizada, considerando como objetivo de otimização a maximização do throughput sobre um limite estabelecido de consumo de energia. Essas soluções são então usadas na execução das aplicações e, conforme a variação do desempenho e as demandas de novas tarefas forem surgindo, é aplicada a segunda fase da proposta. Os autores não especificam a arquitetura de comunicação alvo, contudo um modelo matemático apresentado no trabalho específica que ela deve ser estruturada como uma mesh 2D. Resultados experimentais em comparação com vários outros algoritmos da literatura mostraram que as soluções geradas pela proposta conseguem obter ganhos de de- sempenho que variam de 45.9% à 105.9%, e redução média no consumo de energia que varia de 14.6% à 23.5%.
• Em Huang et al. (2015) é proposta a Weighted-based Neighborhood Allocation (WeNA), a qual objetiva encontrar soluções de alocação para minimizar o overhead de comu- nicação, melhorando o desempenho das aplicações. A proposta é apresentada como uma solução melhorada do algoritmo Contiguous Neighborhood Allocation (CoNA) proposto por Fattah et al. (2012). Na heurística WeNA, a quantidade de informação transferida entre cada par de tarefas é usada para encontrar a ordem de alocação de cada tarefa em cada aplicação. Na ordenação, são atribuídos parâmetros às tarefas, como por exemplo a quantidade de comunicações que ela faz com tarefas já aloca- das. Esses parâmetros guiam o processo de alocação a selecionar núcleos disponíveis com quantidades de links que melhor se ajustem aos valores destes parâmetros. Os resultados experimentais mostram que o WeNA é capaz de reduzir a latência da rede em até 9.8% e reduzir o consumo de energia em até 8,3% quando comparado com outros algoritmos da literatura.
• A proposta de Singh et al. (2015) objetiva encontrar soluções de mapeamento oti- mizadas para aplicações específicas. A proposta consiste nos seguintes passos: é extraído o trace de execução de cada aplicação ativa no sistema; o trace é arma- zenado de forma otimizada para evitar overhead de armazenamento; em tempo de execução é feita uma análise dos traces para identificar qual solução de mapeamento
é mais eficiente em termos de consumo de energia, throughput e uso dos recursos do sistema. Os experimentos mostraram que, além de prover ganhos de desempenho e consumo de energia, as propostas apresentam redução de cerca de 14 vezes no tempo de exploração do espaço de busca e de até 92% no overhead de armazenamento. Isso devido ao uso e armazenamento otimizado dos traces de execução.
• Maqsood, Bilal e Madani (2018) propõem o algoritmo Congestion-Aware (CA) para alocação dinâmica multitarefas. O algoritmo se baseia em uma métrica de centra- lidade (betweenness centrality) para identificar regiões da NoC que são mais propí- cias a terem altos congestionamentos. A proposta então objetiva encontrar soluções de alocação que reduzam o congestionamento na NoC e a latência de comunica- ção. Resultados experimentais em comparação com outras abordagens da literatura mostraram que a proposta consegue alcançar redução entre 46% e 12% na cargas nos canais da NoC. Além disso, ela também apresenta redução de cerca de 32% no consumo de energia.
• Uma proposta de alocação de tarefas que considera a maximização da vida útil do sistema é apresentada por Wang et al. (2019). A proposta, denominada de LBC- LBL, é uma junção de duas outras propostas: LBC, a qual objetiva aumentar a vida útil dos núcleos de processamento e a LBL que objetiva aumentar a vida útil dos links da NoC. No trabalho, a vida útil dos núcleos e canais do sistema é modelada como recursos que podem ser consumidos com o passar do tempo. Além disso, é definido também um limite de vida útil para cada núcleo. Logo, a otimização feita pela proposta leva em consideração o envelhecimento dos núcleos, tentando alocar as tarefas nos núcleos com maiores limites de vida útil. Resultados experimentais mostraram que a proposta LBC-LBL consegue melhorar o tempo médio de falha do sistema em cerca de 15.1%, quando comparada com estratégias que consideram apenas o envelhecimento dos núcleos.
3.2.1
Considerações
Na Tabela 4 são listados todos os trabalhos descritos anteriormente. Nesta Tabelas são aprese mais duas: Throughput (T) e Vida Útil (VU). Nesta tabela apresentamos os seguintes campos: Referência, o qual apresenta a referência do trabalho descrito; Proc / Com, onde é especificado se na otimização são considerados aspectos de Processamento (Proc) ou Comunicação (Com); MPSoC, o qual descreve se o sistema é homogêneo ou heterogêneo, em termos de organização; as próximas colunas representam as diferentes
métricas que cada uma das propostas tenta otimizar, sendo elas a Latência de Comunica- ção (LC), Consumo de Energia (CE), Tempo de Execução (TE), Dissipação de Potência (DP), Throughput (T) e Vida Útil (VU).
Tabela 4: Lista de trabalhos relacionados no contexto de mapeamento dinâmico.
Referência Proc / Com MPSoC LC CE TE T VU
(BETTING; BRINKSCHULTE, 2014) Proc e Com Hetero X
(MENDIS; INDRUSIAK; AUDSLEY, 2015) Proc e Com Homo X X
(CARVALHO; CALAZANS; MORAES, 2010) Com Hetero X X X
(OST et al., 2013) Com Homo X
(FATTAH et al., 2014) Com Homo X X
(QUAN; PIMENTEL, 2015) Proc e Com Hetero X
(HUANG et al., 2015) Com Homo X X
(SINGH et al., 2015) Com Homo X X
(MAQSOOD; BILAL; MADANI, 2018) Com Hetero X
(WANG et al., 2019) Proc Hetero X
TransCand Com Homo X
TransEndo Com Homo X
Como mencionado anteriormente, os dois primeiros trabalhos listados são propostas de algoritmos bioinspirados. Todas as duas propostas consideram aspectos de processa- mento de computação no processo de otimização e um ambiente de gerenciamento de alocações distribuído. Os autores argumentam que essa abordagem é usada como alterna- tiva para evitar as limitações dos ambientes centralizados, onde as estratégias de alocação podem sofrer com falta de escalabilidade e a grande quantidade de tráfego gerado apenas para o monitoramento da rede. Contudo, estudos feitos considerando vários tamanhos de mesh mostraram que as propostas com gerenciamento centralizado podem alcançar melhor desempenho na execução de aplicações quando comparados com as distribuídas, uma vez que elas possuem melhor visão do estado de todo o sistema (KOBBE et al., 2011)
(BETTING; BRINKSCHULTE; PACHER, 2013).
Os 8 trabalhos seguintes apresentam abordagens que não são bioinspiradas para tra- tar do problema de alocação dinâmica de tarefas. Note que todos eles consideram um gerenciamento centralizado. Destes trabalhos, apenas as propostas de Quan e Pimentel (2015) e Wang et al. (2019) consideram MPSoCs com núcleos heterogêneos. A proposta de Quan e Pimentel (2015) é de uma estratégia de alocação híbrida que considera tanto uma otimização estática quanto dinâmica. As nossas propostas (TransCand e TransEndo) também podem ser aplicadas neste contexto, necessitando apenas de alguma estratégia estática para otimizar a alocação inicial, provendo soluções de alocação mesmo para as tarefas que não irão executar no início da execução da aplicação que está otimizada. Con- tudo, nossas propostas não são dependentes de algoritmo estático para gerar uma solução
otimizada, uma vez que a melhora nas alocações é feita no decorrer das execuções das aplicações pelos operadores projetados para cada uma delas.
Similar às nossas propostas, o trabalho de Huang et al. (2015) considera uma orde- nação das tarefas das aplicações. Contudo, como os autores descrevem, essa ordenação é feita por aplicação. Em nossas abordagens, nós consideramos a ordenação das tarefas requisitadas para serem alocadas independente de aplicação. Isso pelo fato de não priori- zarmos ganho de desempenho de aplicações específicas, mas sim o desempenho global do sistema para todas as aplicações.
Após as análises feita nos trabalhos da literatura, acredita-se que as soluções propos- tas neste trabalho contribuem no estado da arte no sentido de aplicar uma abordagem bioinspirada no contexto de alocação dinâmica de tarefas que, como visto, ainda não foi tão explorado. A vantagem de trabalhar neste tema é que se consegue abstrair aspectos de sucesso da natureza, trazendo-os para encontrar soluções de problemas reais que possam ser computacionalmente modelados. Além disso, acreditamos que esse é o primeiro tra- balho que usa a metáfora da transgenética para construções de estratégias de otimização neste tema.
Como já mencionado, neste trabalho são propostas três math-heurísticas para alocação no contexto estático e duas heurísticas para o contexto de alocação dinâmica de tarefas. As propostas de ambos os contextos são bioinspiradas. O próximo Capítulo apresenta todas elas, assim como o modelo do Problema de Mapeamento e Roteamento (PMR) também proposto.
4
Propostas
As propostas principais desta dissertação estão descritas neste Capítulo. Elas estão or- ganizadas da seguinte forma: a seção 4.1 apresenta o modelo proposto para o Problema de Mapeamento e Roteamento (PMR); na seção 4.2 descreve as math-heurísticas propostas; e a seção 4.3 apresenta as heurísticas propostas para alocação dinâmica de tarefas.