CoreTool: Identificação e Análise de Threads em Sistemas Multicore
Resumo
A disponibilidade de recursos de processamento nos processadores atuais aliada à complexidade do software faz com que ferramentas automatizadas sejam cada vez mais importantes no processo de validação e avaliação de aplicações multithreaded. Este artigo apresenta o desenvolvimento de uma ferramenta para análise do comportamento de threads em sistemas multicore. Especificamente, a ferramenta proposta, denominada CoreTool, acompanha o escalonamento e execução das threads de uma aplicação e retorna informações precisas sobre a utilização dos núcleos de processamento assim como a execução de instruções por thread. CoreTool foi desenvolvida a partir da infraestrutura PIN para instrumentação binária dinâmica de aplicações multithreaded. Experimentos de validação e avaliação foram realizados com a ferramenta e aplicações Linux e do benchmark Splash-2. Os experimentos foram executados sobre duas configurações de processadores multicore com quatro e oito núcleos. 1.Referências
Bach, M., Charney, M., Cohn, R., Demikhovsky, E., Devor, T., Hazelwood, K., Jaleel, A., Luk, C. -K., Lyons, G., Patil, H. Tal, A. (2010) “Analyzing Parallel Programs with Pin”, IEEE Computer Society.
Biena, C., Kumar, S., Singh, J. P., Li, K. (2008). “The PARSEC Benchmark Suite: Characterization ad Architectural Implications”. In Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques, pp. 72-81, ACM.
Jaleel, A., Cohn, R. S., Luk, C. K., Jacob, B. (2008). “CMP$im: A Pin-Based On-theFly Multi-Core Cache Simulator”. In Proceedings of the Fourth Annual Workshop on Modeling, Benchmarking and Simulation (MoBS), co-located with ISCA, pp. 28-36.
Kim, M., Kim, H., & Luk, C. K. (2010). “Prospector: A Dynamic Data-Dependence Profiler to Help Parallel Programming”. In Proceedings of the USENIX Workshop on Hot Topics in Parallelism.
Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi,V. J., Azelwood, K. (2005). “Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation”. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 190–200, ACM.
Patil, H., Pereira, C., Stallcup, M., Lueck, G., Cownie, J. (2010). “Pinplay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs”. In Proceedings of the 8th annual IEEE/ACM International Symposium on Code Generation and Optimization, pp. 2-11, ACM.
Pin. (2012). Pin 2.13 User Guide. Disponível em: https://software.intel.com/enus/articles/pintool. Acesso em: 23/05/2014
Reddi, V., Settle, A. M., Connors, D. A., Cohn, R. S. (2004) “Pin: A Binary Instrumentation Tool for Computer Architecture Research and Education.” In Proceedings of the Workshop on Computer Architecture Education, June.
SPLASH-2 (2007). The Modified SPLASH-2. Disponível em: http://www.capsl.udel.edu/splash/. Acesso em 16/07/2014.
Treibig, J., Hager, G., Wellein, G. (2010). “ LIKWID: A Lightweight PerformanceOriented Tool Suite for x86 Multicore Environments”. In Proceedings of the 39th International Conference on Parallel Processing Workshops, pp. 207-216.
Wallace, S. and Hazelwood, K. (2007). “Superpin: Parallelizing Dynamic Instrumentation for Real-Time Performance”. In Proceedings of the International Symposium on Code Generation and Optimization, pp. 209–220, IEEE Computer Society.
Biena, C., Kumar, S., Singh, J. P., Li, K. (2008). “The PARSEC Benchmark Suite: Characterization ad Architectural Implications”. In Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques, pp. 72-81, ACM.
Jaleel, A., Cohn, R. S., Luk, C. K., Jacob, B. (2008). “CMP$im: A Pin-Based On-theFly Multi-Core Cache Simulator”. In Proceedings of the Fourth Annual Workshop on Modeling, Benchmarking and Simulation (MoBS), co-located with ISCA, pp. 28-36.
Kim, M., Kim, H., & Luk, C. K. (2010). “Prospector: A Dynamic Data-Dependence Profiler to Help Parallel Programming”. In Proceedings of the USENIX Workshop on Hot Topics in Parallelism.
Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi,V. J., Azelwood, K. (2005). “Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation”. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 190–200, ACM.
Patil, H., Pereira, C., Stallcup, M., Lueck, G., Cownie, J. (2010). “Pinplay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs”. In Proceedings of the 8th annual IEEE/ACM International Symposium on Code Generation and Optimization, pp. 2-11, ACM.
Pin. (2012). Pin 2.13 User Guide. Disponível em: https://software.intel.com/enus/articles/pintool. Acesso em: 23/05/2014
Reddi, V., Settle, A. M., Connors, D. A., Cohn, R. S. (2004) “Pin: A Binary Instrumentation Tool for Computer Architecture Research and Education.” In Proceedings of the Workshop on Computer Architecture Education, June.
SPLASH-2 (2007). The Modified SPLASH-2. Disponível em: http://www.capsl.udel.edu/splash/. Acesso em 16/07/2014.
Treibig, J., Hager, G., Wellein, G. (2010). “ LIKWID: A Lightweight PerformanceOriented Tool Suite for x86 Multicore Environments”. In Proceedings of the 39th International Conference on Parallel Processing Workshops, pp. 207-216.
Wallace, S. and Hazelwood, K. (2007). “Superpin: Parallelizing Dynamic Instrumentation for Real-Time Performance”. In Proceedings of the International Symposium on Code Generation and Optimization, pp. 209–220, IEEE Computer Society.
Publicado
08/10/2014
Como Citar
KOIKE, Camila; MAX, Eduardo; GHELERI, Rodolpho; SANTOS, Ricardo.
CoreTool: Identificação e Análise de Threads em Sistemas Multicore. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 15. , 2014, São José dos Campos.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2014
.
p. 192-203.
DOI: https://doi.org/10.5753/wscad.2014.15011.