Tesis
Gerência distribuída de recursos em MPSoCs: mapeamento e migração de tarefas
Fecha
2013Autor
Moraes, Fernando Gehm
Resumen
The design of MPSoCs is a clear trend in the semiconductor industry. Such MPSoCs are able to execute several applications in parallel, with support to dynamic workload, i. e., applications may start at any moment. Another important feature is QoS (quality of service), because multimedia and telecom applications have tight performance requirements that must be respected by the system. The constantly growth in the number of cores in MPSoCs implies in an important issue: scalability. Despite the scalability offered by NoCs and distributed processing, the MPSoC resources must be managed to deliver the expected performance. Management tasks include access to input/output devices, task mapping, task migration, monitoring, DVFS. One processing element (PE) responsible for resource management may become a bottleneck, since this PE will serve all other PEs of the system, increasing its computation load and creating a communication hot-spot region. An alternative to ensure scalability is to decentralize or distribute the management functions of the system. Two main approaches are discussed in the literature: one manager per application, and one manager per MPSoC region. The second approach is preferable, since the number of management resources remains constant, regardless the number of applications executing in the MPSoC. The regions are defined as clusters. All application tasks are executed in the cluster, if possible. Regarding the size of the cluster, it may have its size modifiable at runtime to allow the mapping of applications with a greater number of tasks than their available resources. This work proposes a distributed resource management in NoC-based MPSoCs, using a clustering method, enabling the modification of the cluster size at runtime. At system start-up each cluster has a fixed size, and at runtime clusters may borrow resources from neighbor clusters to map applications. Results are evaluated using the HeMPS MPSoC, comparing the performance of the centralized versus distributed management approaches. Results show an important reduction in the total execution time of applications, and a reduced number of hops between tasks (smaller communication energy). Results also evaluate the reclustering method, through monitoring and task migration. O projeto de MPSoCs é uma clara tendência na indústria de semicondutores. Os MPSoCs são capazes de executar várias aplicações em paralelo, suportando carga dinâmica de trabalho, ou seja, aplicações podem iniciar a qualquer momento. Outra característica importante em MPSoCs é QoS (qualidade de serviço), pois aplicações multimídia e de telecomunicações possuem requisitos estritos de desempenho, os quais devem ser respeitados pelo sistema. O crescimento constante do número de núcleos em MPSoCs implica em uma questão importante: escalabilidade. Apesar da escalabilidade oferecida por NoCs, e o processamento distribuído permitindo a execução de carga dinâmica de trabalho, os recursos dos MPSoCs devem ser gerenciados para proporcionar o desempenho esperado. Tarefas de gerenciamento incluem acesso de entrada/saída a dispositivos externos ao MPSoC, mapeamento de tarefas, migração de tarefas, monitoramento, DVFS, dentre outras. Um único elemento de processamento (PE), responsável pela gerência dos recursos pode se tornar um gargalo no desempenho do sistema, já que este PE vai servir a todos os PEs do sistema, aumentando sua carga de trabalho e criando regiões com congestionamento de tráfego (hot-spots). Uma alternativa para garantir escalabilidade é descentralizar ou distribuir as funções de gerenciamento do sistema. Duas abordagens principais de gerência são discutidas na literatura: um gerente por aplicação, ou um gerente por região do MPSoC. A segunda abordagem é preferível, já que o número de recursos utilizados no gerenciamento permanece constante, independentemente do número de aplicações em execução na MPSoC. As regiões são definidas como clusters. Todas as tarefas das aplicações são executadas em um cluster, se possível. Em relação ao tamanho do cluster, ele pode ter seu tamanho modificável em tempo de execução para permitir o mapeamento de aplicações com um número de tarefas maior do que seus recursos disponíveis. Este trabalho propõe uma gerência distribuída de recursos em MPSoCs, utilizando um método de clusterização, permitindo que o tamanho do cluster seja modificado dinamicamente. Esse sistema inicializa cada cluster com um tamanho fixo, e durante a execução das aplicações, os clusters podem requerer recursos a seus clusters vizinhos para mapear tarefas. Os testes foram executados utilizando a plataforma HeMPS, e foram comparados o desempenho do método de gerência centralizado contra o método de gerência distribuído. Os resultados mostram uma importante redução no tempo total de execução das aplicações e no número de hops entre as tarefas (menor energia de comunicação) utilizando o método de gerência distribuída. Os resultados também avaliam o método de reclusterização, utilizando monitoração de desempenho e migração de tarefas.