sábado, 25 de agosto de 2012

Sumário e Crítica do Artigo “Roofline: An Insightful Visual Performance Model For Multicore Architectures"


O trabalho de Willians, Waterman e Patterson enfatiza que medir o tráfego entre a memória principal e memória cache é necessário em tempos de computação paralela e multicore. Este tráfego é considerado o principal gargalo na busca por desempenho e otimização quanto do uso de memória.

Com a maior dificuldade de otimizar o trabalho em HPC, os autores propõem um modelo que oferece orientações de desempenho e de fácil entendimento partindo da “análise pelo estrangulamento”, mostrando fatores relacionados ao gargalo de memória. Neste ponto, o trabalho também faz referência a Lei de Amdahl como exemplo de casos relacionados.

O modelo Roofline fornece um limite superior para o desempenho, de forma a auxiliar na identificação de quais sistemas podem ser viáveis para determinadas aplicações ou até mesmo como alterar o código de forma a extrair maior desempenho com relação ao uso da memória.

Entende-se que, os gargalos podem ser reduzidos com a reestruturação dos loops de acesso às unidades de memória, adequando o tamanho das unidades por loop para um tamanho que caiba na memória rápida e que se adeque a banda de acesso da memória lenta. Possivelmente isto aumentaria significativamente a largura de banda de memória.

No trabalho, os autores realizam alguns comparativos entre processadores e arquiteturas, demonstrando o topo em eficiência em cada uma, destacando as peculiaridades quanto ao esforço que pode ser desprendido para que esta eficiência seja otimizada.

Destaca-se que, em virtude da limitação de recursos computacionais, a proposta de adequar os programas à quantidade de memória rápida existente na máquina demostra ser indispensável na busca por melhor desempenho. A proposta deste artigo, somado à definição de limites de acesso a memória, assim como, a menor ociosidade do processador, contribui até hoje com a computação de alto desempenho e menor gasto energético.

Atividade realizada para a disciplina Processamento Paralelo.

Sumário e Crítica do Artigo “Stencil Computation Optimization and Auto-tuning on State-of-the-art Multicore Architectures”.


O artigo parte da necessidade de entender sobre as melhores estratégias para projetar de forma mais eficiente, o uso de sistemas multicore. Os autores focam seu trabalho no multicore stencil e destacam que esta é uma classe de algoritmos que fica no coração de muitos códigos de malha estruturados, inclusive o solver EDP. 

Neste trabalho, são exploradas as mais recentes arquiteturas HPC, apresentando suas principais diferenças e influências na aplicação de algoritmos auto-tuning. Os autores defendem que o design de cada arquitetura permite determinar uma melhor utilização do algoritmo, bem como uma melhor adaptação da arquitetura para problemas específicos. Um outro ponto importante é a obtenção de portabilidade de auto-tuning tanto para arquiteturas atuais, como para prever as tendências do desenvolvimento e garantir portabilidade com futuras arquiteturas. 

Outro ponto importante que é destacado neste trabalho e que entende-se como uma das principais tendências é a preocupação com a eficiência energética. A eficiência da arquitetura em Flop´s juntamente com a redução de watts, demostra uma preocupação com o custo energético envolvido no processamento.

Aqui foram realizados testes em aplicações científicas, resolvendo uma edp em domínio tridimensional, em que comparou-se os desempenhos e peculiaridades de cada arquitetura, aplicando o algoritmo auto-tunning. Os resultados mostraram que para algoritmos com paralelismo adequado, o emprego de um grande número de processadores mais simples, oferece maior potencial de desempenho do que o uso de processadores mais complexos em menor quantidade. Esta vantagem se aplica tanto em velocidade por Flop´s quanto por gasto de energia em Watt, que é menor nos chips mais simplificados.

A proposta de utilização do algoritmo auto-tuning parece retornar ganhos de desempenho consideráveis porém o maior benefício está no consumo energético, o que pode ser observado no uso da arquitetura CUDA. No entanto, a implementação do referido algoritmo é algo aparentemente complexo, visto a variedade de arquitetura de processadores e suas diferentes especificações.

Atividade desenvolvida para a disciplina Processamento Paralelo.

Curso Básico e Avançado de Java é na DevMedia!!!

Aprenda Java com a DevMedia!!! Para aqueles que desejam aprender sobre Java e ter sucesso nos estudos e na profissão, não perca o excelen...