T. Camacho, Anderson Faustino, V. M. Rosario, Edson Borin
Sistemas que utilizam compilação dinâmica geram código alvo em tempo de execução, fazendo com que o tempo de compilação seja incluı́do no tempo total do sistema. Portanto, é crucial que o sistema de compilação dinâmico tenham ao mesmo tempo um baixo custo e seja capaz de gerar código de boa qualidade. Neste artigo apresentamos um sistema de aprendizado de máquina para seleção inteligente de otimizações que aprende quais as melhores sequências de otimizações para cada região de código compilado por um compilador dinâmico. O sistema foi implementado e testado em um tradutor dinâmico de binários, o OI-DBT, trazendo um ganho médio de desempenho de 26,32%.
{"title":"Compilação Dinâmica com Seleção Inteligente de Otimizações","authors":"T. Camacho, Anderson Faustino, V. M. Rosario, Edson Borin","doi":"10.5753/wscad.2019.8661","DOIUrl":"https://doi.org/10.5753/wscad.2019.8661","url":null,"abstract":"Sistemas que utilizam compilação dinâmica geram código alvo em tempo de execução, fazendo com que o tempo de compilação seja incluı́do no tempo total do sistema. Portanto, é crucial que o sistema de compilação dinâmico tenham ao mesmo tempo um baixo custo e seja capaz de gerar código de boa qualidade. Neste artigo apresentamos um sistema de aprendizado de máquina para seleção inteligente de otimizações que aprende quais as melhores sequências de otimizações para cada região de código compilado por um compilador dinâmico. O sistema foi implementado e testado em um tradutor dinâmico de binários, o OI-DBT, trazendo um ganho médio de desempenho de 26,32%.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125415090","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A memory allocation anomaly occurs when the allocation of a set of heap blocks imposes an unnecessary overhead on the execution of an application. In this paper, we propose a method for identifying, locating, characterizing and fixing allocation anomalies, and a tool for developers to apply the method. We experiment our method and tool with a numerical simulator aimed at approximating the solutions to partial differential equations using a finite element method. We show that taming allocation anomalies in this simulator reduces the memory footprint of its processes by 37.27% and the execution time by 16.52%. We conclude that the developer of high-performance computing applications can benefit from the method and tool during the software development cycle.
{"title":"Identification and Characterization of Memory Allocation Anomalies in High-Performance Computing Applications","authors":"A. A. Gomes, Enzo Molion, R. Souto, J. Méhaut","doi":"10.5753/wscad.2019.8652","DOIUrl":"https://doi.org/10.5753/wscad.2019.8652","url":null,"abstract":"A memory allocation anomaly occurs when the allocation of a set of heap blocks imposes an unnecessary overhead on the execution of an application. In this paper, we propose a method for identifying, locating, characterizing and fixing allocation anomalies, and a tool for developers to apply the method. We experiment our method and tool with a numerical simulator aimed at approximating the solutions to partial differential equations using a finite element method. We show that taming allocation anomalies in this simulator reduces the memory footprint of its processes by 37.27% and the execution time by 16.52%. We conclude that the developer of high-performance computing applications can benefit from the method and tool during the software development cycle.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"1119 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116070493","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Alexandre C. Sena, Aline De Sousa Nascimento, Leandro A. J. Marzulo
O algoritmo de leilão tem sido amplamente utilizado para resolver problemas de várias áreas. Com seus vários núcleos de processamento e instruções vetorizadas de 512 bits, arquiteturas Xeon Phi tem potencial para aumentar consideravelmente o desempenho desse algoritmo. O objetivo deste trabalho é executar eficientemente o algoritmo de leilão nessas arquiteturas. As principais contribuições são: implementação de uma versão vetorizada; Análise de desempenho da versões vetorizada e paralela; comparação do desempenho entre Xeon e Xeon Phi. Resultados mostram que a versão vetorizada paralela é capaz de aproveitar todo o potencial das arquiteturas Xeon Phi, atingindo um desempenho até 750 vezes melhor do que a versão sequencial.
{"title":"Implementação e Avaliação do Algoritmo de Leilão nas Arquiteturas Xeon Phi","authors":"Alexandre C. Sena, Aline De Sousa Nascimento, Leandro A. J. Marzulo","doi":"10.5753/wscad.2019.8663","DOIUrl":"https://doi.org/10.5753/wscad.2019.8663","url":null,"abstract":"O algoritmo de leilão tem sido amplamente utilizado para resolver problemas de várias áreas. Com seus vários núcleos de processamento e instruções vetorizadas de 512 bits, arquiteturas Xeon Phi tem potencial para aumentar consideravelmente o desempenho desse algoritmo. O objetivo deste trabalho é executar eficientemente o algoritmo de leilão nessas arquiteturas. As principais contribuições são: implementação de uma versão vetorizada; Análise de desempenho da versões vetorizada e paralela; comparação do desempenho entre Xeon e Xeon Phi. Resultados mostram que a versão vetorizada paralela é capaz de aproveitar todo o potencial das arquiteturas Xeon Phi, atingindo um desempenho até 750 vezes melhor do que a versão sequencial.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129347374","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Lucas Maciel, João Paulo Guedes Novais, M. Souza, Mark A. J. Song, H.C.F. Freitas
Algoritmos para análise formal de conceitos são amplamente estudados para extrair padrões de inteligência computacional e descoberta de conhecimento. No entanto, eles exigem processamento de alto desempenho devido às suas caracterı́sticas combinatórias. Neste trabalho, foi projetada e avaliada uma arquitetura heterogênea de CPU+FPGA para acelerar a extração de conceitos em grandes conjuntos de dados. Os resultados encontrados mostram um speedup de até 3,95x com até 120,63x mais operações por Watt em relação a uma versão executada em CPU. Em comparação com o software In-Close2-BDD, essa arquitetura é mais rápida (e.g. 4,06x) para vários conjuntos de dados, processando até 1 milhão de objetos.
{"title":"Arquitetura Heterogênea CPU+FPGA para Análise Formal de Conceitos","authors":"Lucas Maciel, João Paulo Guedes Novais, M. Souza, Mark A. J. Song, H.C.F. Freitas","doi":"10.5753/wscad.2019.8659","DOIUrl":"https://doi.org/10.5753/wscad.2019.8659","url":null,"abstract":"Algoritmos para análise formal de conceitos são amplamente estudados para extrair padrões de inteligência computacional e descoberta de conhecimento. No entanto, eles exigem processamento de alto desempenho devido às suas caracterı́sticas combinatórias. Neste trabalho, foi projetada e avaliada uma arquitetura heterogênea de CPU+FPGA para acelerar a extração de conceitos em grandes conjuntos de dados. Os resultados encontrados mostram um speedup de até 3,95x com até 120,63x mais operações por Watt em relação a uma versão executada em CPU. Em comparação com o software In-Close2-BDD, essa arquitetura é mais rápida (e.g. 4,06x) para vários conjuntos de dados, processando até 1 milhão de objetos.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126793445","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Arthur M. Krause, F. B. Moreira, Valéria Girelli, P. Navaux
Conforme os processadores evoluem, o desempenho dos sistemas computacionais se torna cada vez mais limitado pelo tempo de acesso à memória. Caches são empregadas a fim de contornar este problema, mas é necessária uma gerência inteligente dos dados que são armazenados nelas para impedir que problemas como poluição e thrashing degradem seu desempenho. Neste trabalho é apresentada uma análise da poluição de cache e thrashing em aplicações paralelas de alto desempenho. Os resultados mostram que caches com maior associatividade sofrem mais com estes problemas. Até 28% dos cache misses na L1 poderiam ser evitados com uma política de substituição de cache mais inteligente, chegando a até 62% na cache L2 e 98% na LLC. As processors evolve, the performance of computer systems becomes increasingly limited by the memory access time. Caches are employed in order to get around this problem, but an intelligent management of the data that is stored in them is necessary to prevent problems such as pollution and thrashing from degrading their performance. In this work, an analysis of cache and thrashing pollution in high performance parallel applications is presented. The results show that caches with greater associativity suffer more from these problems. Up to 28% of cache misses in the L1 cache could be avoided with a smarter replacement policy, up to 62% in the L2 cache and 98% in the LLC.
{"title":"Poluição de Cache e Thrashing em Aplicações Paralelas de Alto Desempenho","authors":"Arthur M. Krause, F. B. Moreira, Valéria Girelli, P. Navaux","doi":"10.5753/wscad.2019.8683","DOIUrl":"https://doi.org/10.5753/wscad.2019.8683","url":null,"abstract":"Conforme os processadores evoluem, o desempenho dos sistemas computacionais se torna cada vez mais limitado pelo tempo de acesso à memória. Caches são empregadas a fim de contornar este problema, mas é necessária uma gerência inteligente dos dados que são armazenados nelas para impedir que problemas como poluição e thrashing degradem seu desempenho. Neste trabalho é apresentada uma análise da poluição de cache e thrashing em aplicações paralelas de alto desempenho. Os resultados mostram que caches com maior associatividade sofrem mais com estes problemas. Até 28% dos cache misses na L1 poderiam ser evitados com uma política de substituição de cache mais inteligente, chegando a até 62% na cache L2 e 98% na LLC. As processors evolve, the performance of computer systems becomes increasingly limited by the memory access time. Caches are employed in order to get around this problem, but an intelligent management of the data that is stored in them is necessary to prevent problems such as pollution and thrashing from degrading their performance. In this work, an analysis of cache and thrashing pollution in high performance parallel applications is presented. The results show that caches with greater associativity suffer more from these problems. Up to 28% of cache misses in the L1 cache could be avoided with a smarter replacement policy, up to 62% in the L2 cache and 98% in the LLC.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115924688","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Os algoritmos de aprendizado usando conjuntos de árvores de decisão têm se destacado na classificação de documentos, mas não sem pagar um alto custo computacional. A exploração de paralelismo tem sido uma alternativa para viabilizar o uso destes algoritmos mais sofisticados. Neste trabalho propomos um algoritmo paralelo para acelerar a construção destas árvores de decisão utilizadas num método recente que demonstrou superar os classificadores de última geração para dados textuais. Resultados experimentais, utilizando bases de dados textuais padronizadas, mostram que o algoritmo implementado em uma arquitetura manycore (GPU) é capaz de reduzir o tempo de execução em até 26 vezes em comparação a um algoritmo sequencial equivalente.
{"title":"Impulsionando Árvores Extremamente Aleatórias em Paralelo para a Classificação de Dados Textuais","authors":"J. Pires, W. S. Martins","doi":"10.5753/wscad.2019.8678","DOIUrl":"https://doi.org/10.5753/wscad.2019.8678","url":null,"abstract":"Os algoritmos de aprendizado usando conjuntos de árvores de decisão têm se destacado na classificação de documentos, mas não sem pagar um alto custo computacional. A exploração de paralelismo tem sido uma alternativa para viabilizar o uso destes algoritmos mais sofisticados. Neste trabalho propomos um algoritmo paralelo para acelerar a construção destas árvores de decisão utilizadas num método recente que demonstrou superar os classificadores de última geração para dados textuais. Resultados experimentais, utilizando bases de dados textuais padronizadas, mostram que o algoritmo implementado em uma arquitetura manycore (GPU) é capaz de reduzir o tempo de execução em até 26 vezes em comparação a um algoritmo sequencial equivalente.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132735220","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
William Tavares, Lucas Manuel Mazuquieri Reis, J. Brunetta, Edson Borin
O crescimento da tendência da computação em nuvem traz novos desafios para a comunidade de computação de alto desempenho. Por possuir um amplo número de recursos, predizer a melhor configuração para uma aplicação especı́fica é uma tarefa custosa e de alto consumo de tempo e principalmente financeiro. A técnica paramount iteration consiste em executar uma parcela da aplicação a fim de determinar o comportamento esperado neste ambiente computacional quando executado por completo. Este artigo valida e utiliza a técnica paramount iteration para as aplicações BLAST e DNN-ROM, sendo possı́vel determinar o melhor ambiente de computação em nuvem para estas.
{"title":"Aplicação da técnica Paramount Iteration nas aplicações BLAST e DNN-ROM na nuvem computacional","authors":"William Tavares, Lucas Manuel Mazuquieri Reis, J. Brunetta, Edson Borin","doi":"10.5753/wscad.2019.8671","DOIUrl":"https://doi.org/10.5753/wscad.2019.8671","url":null,"abstract":"O crescimento da tendência da computação em nuvem traz novos desafios para a comunidade de computação de alto desempenho. Por possuir um amplo número de recursos, predizer a melhor configuração para uma aplicação especı́fica é uma tarefa custosa e de alto consumo de tempo e principalmente financeiro. A técnica paramount iteration consiste em executar uma parcela da aplicação a fim de determinar o comportamento esperado neste ambiente computacional quando executado por completo. Este artigo valida e utiliza a técnica paramount iteration para as aplicações BLAST e DNN-ROM, sendo possı́vel determinar o melhor ambiente de computação em nuvem para estas.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"2004 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127314101","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. Serpa, P. J. Pavan, Jairo Panetta, A. Azambuja, A. Carissimi, P. Navaux
A simulação da propagação de ondas acústicas é a base das ferramentas de imagem sı́smica utilizadas pela indústria de petróleo e gás. Para realizar tais simulações, arquiteturas de CAD são empregadas, fornecendo resultados mais rápidos e com maior precisão a cada geração de processadores. Entretanto, para atingir alto desempenho nessas arquiteturas, vários desafios devem ser levados em consideração no momento do desenvolvimento da aplicação. Neste artigo, a Modelagem Fletcher foi otimizada para multicore e GPU e o desempenho, o consumo de energia e a eficiência energética de oito versões do código foram avaliados. Os resultados mostram que a versão CUDA tem o melhor desempenho e eficiência energética; no entanto, a versão OpenACC que tem a vantagem da portabilidade, tem um desempenho e degradação de eficiência energética de apenas 10 e 8% comparado com CUDA. ∗
{"title":"Portabilidade e Eficiência do Método Fletcher de Aplicações Sísmicas em Arquiteturas Multicore e GPU","authors":"M. Serpa, P. J. Pavan, Jairo Panetta, A. Azambuja, A. Carissimi, P. Navaux","doi":"10.5753/wscad.2019.8666","DOIUrl":"https://doi.org/10.5753/wscad.2019.8666","url":null,"abstract":"A simulação da propagação de ondas acústicas é a base das ferramentas de imagem sı́smica utilizadas pela indústria de petróleo e gás. Para realizar tais simulações, arquiteturas de CAD são empregadas, fornecendo resultados mais rápidos e com maior precisão a cada geração de processadores. Entretanto, para atingir alto desempenho nessas arquiteturas, vários desafios devem ser levados em consideração no momento do desenvolvimento da aplicação. Neste artigo, a Modelagem Fletcher foi otimizada para multicore e GPU e o desempenho, o consumo de energia e a eficiência energética de oito versões do código foram avaliados. Os resultados mostram que a versão CUDA tem o melhor desempenho e eficiência energética; no entanto, a versão OpenACC que tem a vantagem da portabilidade, tem um desempenho e degradação de eficiência energética de apenas 10 e 8% comparado com CUDA. ∗","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123526325","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Há uma alta demanda por programas paralelos corretos, principalmente devido às arquiteturas paralelas atuais, como clusters e processadores multi/many cores. O teste estrutural permite identificar defeitos pela cobertura de estruturas internas de programas paralelos. O não determinismo em programas paralelos traz novos desafios ao teste estrutural. Ele requer ferramentas e modelos de teste especı́ficos, capazes de cobrir primitivas de comunicação e sincronização com comportamentos dinâmicos, tais como os presentes em loops. Este artigo propõe uma nova ferramenta de software para o teste estrutural, com o objetivo de auxiliar testadores na revelação de defeitos desconhecidos associados a comunicação e presentes em estruturas de repetição de programas paralelos em C/MPI. Baseando-se na cobertura obtida, testadores podem escolher casos de teste especı́ficos e avaliar o progresso da atividade de teste. A ferramenta de teste proposta é validada com a ingestão de defeitos no código de um programa, e com a análise do suporte dado pela ferramenta para a geração de elementos requeridos e seleção de casos de teste. A ferramenta proposta automatiza parte da atividade de teste, especificamente a geração de elementos requeridos e guia a execução dos testes, reduzindo o tempo para a aplicação da atividade de teste. Nossos resultados mostram que a ferramenta de teste é capaz de revelar defeitos desconhecidos em primitivas de comunicação presentes em iterações de loops. There is a growing demand for correct parallel programs, mainly due to nowadays parallel architectures, such as clusters and multi/many-core processors. Structural testing allows the identification of defects by covering internal structures of parallel programs. Nondeterminism in parallel programs brings new challenges to the structural testing. It requires specific test model and tools, capable to cover communication and synchronization primitives with dynamic behaviors, such as those present inside of loops. This paper proposes a novel software tool for the structural testing, aiming to help testers in revealing defects associated to communication present in repetition structures of C/MPI parallel programs. Based on the obtained coverage, testers can choose specific test cases and evaluate the progress of the testing activity. We validate the proposed testing software tool by injecting a defect in a program code, and analyzing the support for generation of required elements and selection of test cases. ValiMPI tool automates part of the test activity, specifically the generation of required elements to guide test case selection, reducing the application cost of the testing activity. Our results demonstrate that the testing tool is capable to reveal unknown defects from communication in different loop iterations.
{"title":"A structural testing tool for MPI programs with loops","authors":"Sílvia M. D. Diaz, P. L. D. Souza, S. Souza","doi":"10.5753/wscad.2019.8686","DOIUrl":"https://doi.org/10.5753/wscad.2019.8686","url":null,"abstract":"Há uma alta demanda por programas paralelos corretos, principalmente devido às arquiteturas paralelas atuais, como clusters e processadores multi/many cores. O teste estrutural permite identificar defeitos pela cobertura de estruturas internas de programas paralelos. O não determinismo em programas paralelos traz novos desafios ao teste estrutural. Ele requer ferramentas e modelos de teste especı́ficos, capazes de cobrir primitivas de comunicação e sincronização com comportamentos dinâmicos, tais como os presentes em loops. Este artigo propõe uma nova ferramenta de software para o teste estrutural, com o objetivo de auxiliar testadores na revelação de defeitos desconhecidos associados a comunicação e presentes em estruturas de repetição de programas paralelos em C/MPI. Baseando-se na cobertura obtida, testadores podem escolher casos de teste especı́ficos e avaliar o progresso da atividade de teste. A ferramenta de teste proposta é validada com a ingestão de defeitos no código de um programa, e com a análise do suporte dado pela ferramenta para a geração de elementos requeridos e seleção de casos de teste. A ferramenta proposta automatiza parte da atividade de teste, especificamente a geração de elementos requeridos e guia a execução dos testes, reduzindo o tempo para a aplicação da atividade de teste. Nossos resultados mostram que a ferramenta de teste é capaz de revelar defeitos desconhecidos em primitivas de comunicação presentes em iterações de loops. There is a growing demand for correct parallel programs, mainly due to nowadays parallel architectures, such as clusters and multi/many-core processors. Structural testing allows the identification of defects by covering internal structures of parallel programs. Nondeterminism in parallel programs brings new challenges to the structural testing. It requires specific test model and tools, capable to cover communication and synchronization primitives with dynamic behaviors, such as those present inside of loops. This paper proposes a novel software tool for the structural testing, aiming to help testers in revealing defects associated to communication present in repetition structures of C/MPI parallel programs. Based on the obtained coverage, testers can choose specific test cases and evaluate the progress of the testing activity. We validate the proposed testing software tool by injecting a defect in a program code, and analyzing the support for generation of required elements and selection of test cases. ValiMPI tool automates part of the test activity, specifically the generation of required elements to guide test case selection, reducing the application cost of the testing activity. Our results demonstrate that the testing tool is capable to reveal unknown defects from communication in different loop iterations.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"27 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126053194","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The Brazilian Earth System Model (BESM) is a Global Climate Model (GCM) developed by the Brazilian National Institute for Space Research (INPE). The main purpose of a GCM is to simulate Earth’s climate in a decadal or centennial scale. The simulations usually include representations of the main elements of the Earth, such as atmosphere, ocean, ice and land. Since its first release, BESM has provided support materials for contributions to the Intergovernmental Panel on Climate Change (IPCC). This paper evaluates BESM’s performance and explores optimization possibilities, aiming to speed up the model execution. Our study started with a detailed analysis that characterized the performance of BESM executions on hundreds of processors, which served to reveal the major performance bottlenecks. Next, we worked on schemes to mitigate some of those bottlenecks. The changes made so far resulted on performance gains up to a factor of 4 in some cases, when compared to the way it was previously being executed in production. We also describe ongoing work towards additional performance improvements. Despite presenting results only for BESM, our optimization techniques are applicable to other scientific, multi-physics models as well.
{"title":"Exploring Opportunities for Performance Improvement in a Global Climate Model","authors":"Rhuan E. C. Costa, C. Mendes","doi":"10.5753/wscad.2019.8660","DOIUrl":"https://doi.org/10.5753/wscad.2019.8660","url":null,"abstract":"The Brazilian Earth System Model (BESM) is a Global Climate Model (GCM) developed by the Brazilian National Institute for Space Research (INPE). The main purpose of a GCM is to simulate Earth’s climate in a decadal or centennial scale. The simulations usually include representations of the main elements of the Earth, such as atmosphere, ocean, ice and land. Since its first release, BESM has provided support materials for contributions to the Intergovernmental Panel on Climate Change (IPCC). This paper evaluates BESM’s performance and explores optimization possibilities, aiming to speed up the model execution. Our study started with a detailed analysis that characterized the performance of BESM executions on hundreds of processors, which served to reveal the major performance bottlenecks. Next, we worked on schemes to mitigate some of those bottlenecks. The changes made so far resulted on performance gains up to a factor of 4 in some cases, when compared to the way it was previously being executed in production. We also describe ongoing work towards additional performance improvements. Despite presenting results only for BESM, our optimization techniques are applicable to other scientific, multi-physics models as well.","PeriodicalId":117711,"journal":{"name":"Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116634751","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}