Fast and accurate evaluation of embedded applications for many-core systems.
Visualizar/abrir
Data
2014Autor
Orientador
Co-orientador
Nível acadêmico
Graduação
Outro título
Avaliação rápida e precisa de aplicações embarcadas para sistemas de muitos núcleos
Assunto
Abstract
Many-core embedded systems are pointed to be the most viable solution to addressing emerging design constraints on cost, power and performance scalability [Borkar and Chien 2011]. Nevertheless, conceive and design many-core systems impose new challenges to software engineers, comprising among other: (i) inter- processor communication protocol stacks definition, (ii) operating system (OS) porting and analysis, (iii) exploration of better programming model facilities to address parallel programmi ...
Many-core embedded systems are pointed to be the most viable solution to addressing emerging design constraints on cost, power and performance scalability [Borkar and Chien 2011]. Nevertheless, conceive and design many-core systems impose new challenges to software engineers, comprising among other: (i) inter- processor communication protocol stacks definition, (ii) operating system (OS) porting and analysis, (iii) exploration of better programming model facilities to address parallel programming [Marongiu and Benini 2012], (iv) drivers development [Gray and Audsley 2012], (v) application software portability for heterogeneous multiprocessing hardware. This increasing software complexity makes the software functional verification more difficult, as result, software engineers are struggling to scale up the system performance. Simulation becomes critical to software development, principally in early stage during space design exploration where many design decisions must be taken. This work address the challenge of making JIT-Based simulator as OVP suitable for software performance estimation, providing to software engineers better means to explore the design space at early stage of system development. This Bachelor Thesis proposes two instruction-driven performance models, which can be used for early software performance evaluation, which were integrated into a JIT-based simulator. The proposed approach is a purely run-time based, i.e. the entire computation necessary to implement the model is concomitant with the simulation, avoiding huge amount of memory usage. The proposed models were validated by using several benchmarks suits MiBench [Guthaus et al. 2001], Mälardalen WCET [Jan Gustafsson 2010], SPLASH-2 [Woo et al. 1995]. Results show that the accuracy of our timing model varies from 0.6% to 11.5% with 4.35% in average. In turn, the energy model provides an accuracy of 0.01% to 8.6% depending on the benchmark profile with a mean error of 4.33%. Additionally, the model was submitted to 1000 CPU’s scenarios maintaining a stable performance of 1.8 MIPS. ...
Resumo
Sistemas embarcados multiprocessados (Many-cores) são apontados com a solução mais viável para abordar as emergentes restrições de design em custo, potência e performance [Borkar and Chien 2011]. Todavia, conceber estes sistema impõe novos desafios para engenheiros de software, compreendendo entre outros: (i) definição de protocolos de comunicação entre processos, (ii) analisar e portar sistemas operacionais, (iii) possiblidade de melhor explorar modelos de programação para tratar de questões p ...
Sistemas embarcados multiprocessados (Many-cores) são apontados com a solução mais viável para abordar as emergentes restrições de design em custo, potência e performance [Borkar and Chien 2011]. Todavia, conceber estes sistema impõe novos desafios para engenheiros de software, compreendendo entre outros: (i) definição de protocolos de comunicação entre processos, (ii) analisar e portar sistemas operacionais, (iii) possiblidade de melhor explorar modelos de programação para tratar de questões para processamento paralelo. [Marongiu and Benini 2012], (iv) desenvovilmento de drivers [Gray and Audsley 2012], (v) traduzir aplicações entre sistemas multiprocessados. Esta crescente complexidade de software faz com que a verificação funcional tornese mais difícil, como resultado, engenheiros de software estão dedicando-se para escalar a performance. Tornado a simulação critica durante o desenvolvimento de software, principalmente nas fases inicias, durante a exploração do espaço de design. Plataforma virtuais Event-driven e quasi-cycle accurate como GEM5 tem como objetivo o desenvolvimento micro arquitetural uma vez que modelos detalhados são fornecidos (e.g. protocolo de coerência de cache) [Binkert et al. 2011 p. 5]. Este tipo de simuladores não é escalável a um grande número de processadores, especialmente quando se trata de usabilidade, facilidade de criação de modelos e tempo de simulação. O contexto resultante leva a adoção de plataformas virtuais que são capazes de simular sistemas embarcadas executando código de aplicações reais a velocidade de centenas de milhões de instruções por segundo [Sanchez and Kozyrakis 2013]. Nestes cenários o Open Virtual Plataforms (OVP) [Imperas 2014] está emergindo com um poderoso framework de simulação provendo dezenas de arquiteturas (e.g. ARM, MIPS, MicroBraze, etc.) e vários periféricos (e.g. memória cache). No entanto, o simulador OVP semelhantemente a outros simuladores JIT-based não provem modelos precisos mas, em modelos com precisão em nível de instruções, o qual provem estimativas incorretas de software (e.g. estimativas de energia e tempo de execução). Este trabalho objetiva começar a tratar os desafios impostos na construção de simuladores JIT-Based adequados para estimativas de software, aprimorando a capacidade de engenheiros de software melhor explorar o espaço de design em estágio inicial de desenvolvimento de sistemas. Nesta tese, será apresentado um modelo chamado Watchdog visando fornecer estimativas de energia e tempo de execução em uma metodologia integrável em qualquer simulador baseado em JIT A metodologia proposta foca em um modelo baseado em eventos, baseada nas instruções individualmente executadas, simplificando a construção entorno do simulador. Adicionalmente, a abordagem proposta nesta tese é puramente run-time, isto significa que toda a computação necessária para implementar o modelo é realizada concomitante com a simulação, evitando enorme quantidade de uso de memória necessária para abordagens baseadas em trace-driven ao mesmo tempo que mantém a escalabilidade para sistemas many-core. A fim de demonstrar a validade do modelo proposto, várias conjuntos de aplicações populares foram selecionados, dentre elas MiBench [Guthaus et al. 2001], Mälardalen WCET [Jan Gustafsson 2010], SPLASH-2 [Woo et al. 1995]. Os resultados mostram que a precisão do nosso modelo de tempo de execução varia de 0,6% a 11,5%, com 4,35% em de erro média. O modelo de energia atinge 0,01% a 8,6% de precisão dependendo do perfil de referência com um erro médio de 4,33%. Além disso, o modelo foi submetido a cenários de 1000 processadores mantendo um desempenho estável de 1,8 MIPS. ...
Instituição
Universidade Federal do Rio Grande do Sul. Instituto de Informática. Curso de Engenharia de Computação.
Coleções
-
TCC Engenharias (5853)
Este item está licenciado na Creative Commons License