Projeto 2 - Mineração de Hashes GPU em ambiente de HPC¶
Individual, data de entrega 14/Novembro¶
Acesse o repositório do projeto aqui
Neste projeto, você deverá diagnosticar e otimizar um algoritmo de mineração de criptomoedas implementado em C++.
Espera-se que você seja capaz de identificar os gargalos do código, aplicar técnicas de otimização e mensurar o impacto das mudanças no desempenho da aplicação. Ao final, você deverá elaborar um relatório, documentando todo o processo de análise e otimização.
A dificuldade da mineração é ajustada pela quantidade de zeros exigida no início do hash. À medida que vocês aumentam essa dificuldade, o desafio computacional cresce, o que demanda boas decisões de otimização e uso eficiente de CPU, GPU e memória. Analise adequadamente os recursos disponíveis no sistema de HPC utilizado para realizar os seus testes e suas otimizações.
Entrega¶
A entrega deve incluir um relatório técnico descrevendo de forma clara:
- as estratégias de otimização aplicadas no código, justificando as escolhas de cada abordagem;
- as métricas de desempenho utilizadas (tempo de execução, throughput, etc.);
- os ganhos de desempenho obtidos, com evidências experimentais (gráficos, tabelas).
O relatório deve refletir o raciocínio crítico sobre o impacto das otimizações no uso da GPU e a eficiência paralela alcançada.
Conceito | Critérios |
---|---|
C | Executa o minerador com paralelismo em GPU, demonstrando domínio de boas práticas como minimização de cópias entre CPU e GPU, uso eficiente de buffers, redução de acessos à memória global e implementação de uma heurística eficiente. O código deve atingir dificuldade 6 zeros e realizar a mineração em até 20 minutos no Cluster Franky. |
B | Executa o minerador com dificuldade 7 zeros aplicando todas as otimizações da rúbrica C. O experimento deve ser executado no supercomputador Santos Dumont, completando a mineração de todos os blocos em no máximo 20 minutos. |
A | Executa o minerador com dificuldade 7 zeros, aplicando todas as otimizações da rúbrica C. O experimento deve ser executado no supercomputador Santos Dumont, completando a mineração de todos os blocos em no máximo 10 minutos. |
A+ | Executa o minerador com dificuldade 8 zeros, aplicando todas as otimizações da rúbrica C. O experimento deve ser executado no supercomputador Santos Dumont, completando a mineração de todos os blocos em no máximo 1 hora e 35 minutos. |