Proposta de tema para Doutorado em HPC
Introdução
O que se segue é uma lista de propostas de temas para meu doutorado em HPC. Após conversar com meu futuro orientador, focamos no tema de reprodutibilidade. O que me levou a participar do ACM REP 2025.
Originalmente esse texto foi disponibilizado como uma pagina própria nesse blog. Decidi transformá-lo em um post, como qualquer outro.
Metodologia para análise experimental de algoritmos em grafos
Para minha dissertação de mestrado implementei o algoritmo HDT para resolver o problema de conexidade em grafos dinâmicos.
Fizemos um experimento comparando com outros algoritmos seguindo esse framework de 2022. No entanto, devido a problemas de metodologia, não escrevemos um capítulo sobre isso na dissertação.
Lemos o artigo A Theoretician’s Guide to the Experimental Analysis of Algorithms de David S. Johnson. Boa introdução sobre o autor: slides
- Faça experimentos dignos de nota Isto é; investigue questões de real interesse da comunidade.
- Relacione seu artigo com a literatura
- Faça testes em um conjunto de instâncias que permita se chegar a conclusões gerais
- Projete os experimentos de forma eficiente e efetiva
- Use implementações suficientemente eficientes
- Garanta a reprodutibilidade
- Garanta a comparabilidade
- Reporte a história completa
- Chegue a conclusões bem-justificadas
- Apresente os dados de modo informativo
Em 2017, um novo algoritmo para o problema de conexidade dinâmica foi publicado. Ele adiciona mais estruturas de dados sobre HDT, obtendo menor consumo assintótico, mas com constantes maiores. Uma ideia de artigo é implementar esse algoritmo e fazer um experimento comparativo. Os autores desse artigo publicaram uma versão mais longa (56 paginas) explicando em detalhes como as estruturas de dados funcionam.
Em HPC, essa metodologia ainda se preocupa com mais fatores, Large scale graph processing systems: survey and an experimental evaluation.
Criar distro GNU/Linux focada em HPC
Livro Operating Systems for Supercomputers and High Performance Computing
Artigos:
- The Multikernel: A new OS architecture for scalable multicore systems
- A Multi-Kernel Survey for High-Performance Computing
User space
- Lembrei da apresentação: “Ambientes computacionais para a reprodutibilidade de softwares (de pesquisa) com GNU Guix e Software Heritage” de maio/2024 com o Prof. Alexandre Abdo
Guix System tem uma equipe focada em HPC e muitos princípios importantes para HPC:
- reprodutibilidade
- implantação de uma frota de maquinas
Tenho dois patches aceitos no Guix:
- Update httpd: 78570 as 9f33cb8825
- Update dropbear: 78600 as ac88ea15c7
E atualmente estou trabalhando para atualizar o pacote Docker: issue 74746.
Outros gerenciadores de pacotes podem ser encontrados no repositório awesome HPC.
Kernel
- Kitten
- Feito pela Sandia labs
- slides sobre o kernel
- McKernel
- mOS
- Um fork do Linux feito pela intel para HPC.
- Multi-kernel
- Alguns artigos sobre:
- Sua arquitetura
- Avaliação de desempenho
- Integrando containers ao mOS
- Poster
- Barrelfish:
- Feito pela ETH Zurich e Microsoft R&D
DevOps e engenharia de plataforma para HPC
A ideia é propor as práticas de DevOps e engenharia de plataforma para o ambiente acadêmico.
- Artigo: Continuous Integration and Delivery for HPC: Using Singularity and Jenkins
- Artigo: Continuous Integration for HPC with Github Actions and Tapis
- Artigo: Singularity: Scientific containers for mobility of compute
- Artigo: Containers in HPC: a survey
- Artigo: Containerization for High Performance Computing Systems: Survey and Prospects
- Artigo Shifter: Containers for HPC
- Artigo: A COMPARATIVE STUDY OF PLATFORM ENGINEERING TOOLS: IMPLICATIONS FOR SYSTEM DESIGN AND SCALABILITY