Desafio de Programação Paralela
Informações Gerais
O principal propósito desse desafio é fomentar o conhecimento em programação paralela e distribuída. O principal objetivo da competição é que os participantes alcancem o maior desempenho possível dos problemas apresentados, sem sacrificar a qualidade das respostas. Alunos de graduação e pós-graduação de Ciência da Computação, Engenharia da Computação, Sistemas de Informação e cursos correlatos são convidados a participar desta Maratona.
A competição deste ano acontecerá de forma presencial. Para participar, é necessário definir uma equipe que pode ser composta por até 3 (três) estudantes e um treinador (opcional). Sua duração será de 30h conforme está definida na grade de programação da ERAD-NO2, durante a qual a equipe deverá resolver até 2 problemas. As equipes devem trazer seu próprio equipamento para a competição (notebooks, tablets, etc). A ERAD-NO2 poderá fornecer um espaço adicional para os competidores se reunirem para resolver o problema, bem como a organização estará a disposição dos competidores durante todo o evento.
No início da competição, a descrição dos problemas e a sua solução sequencial (serial) serão publicados no site do evento. As resoluções não só devem ter as respostas iguais, mas também apresentar desempenho (speedup) em suas versões paralelas e/ou distribuídas, medidas de acordo com critérios definidos pelo comitê da competição atual.
Programação
- Início da competição às 16:00 do dia 30 de outubro de 2023
- Final da competição às 23:59 de 31 de outubro de 2023
- A divulgação dos Resultados será durante a cerimônia de encerramento, veja a programação.
Registro da equipe
O registro das equipes pode ser feito ao longo de toda competição, diretamente no seguinte formulário https://forms.gle/xEMWKA46yF1tFks19. Seja rápido e garanta sua participação. Haverão Prêmios!
Ambiente Computacional
O ambiente utilizado no Desafio foi fornecido pela MackCloud, Centro Multidisciplinar de Computação Científica e Nuvem da Universidade Presbiteriana Mackenzie.
Os problemas serão julgados em :
- 1 nó computacional Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz com 128 Gb de RAM
- 1 nó computacional Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz com 64 Gb de RAM e 1 NVidia Tesla K80
- 80T de Storage com acesso via Infiniband
Todos utilizam gcc-8.3.0 e cuda-11.0.0
Como se preparar
Nossa sugestão é que você participe ativamente dos Minicursos oferecidos pela ERAD-SP . Nestes, vocês estarão estudando e aplicando os conhecimentos básicos que serão fundamentais para o Desafio de Programação.
Outras fontes de estudo, caso tenha mais interesse, é o site da Maratona de Programação Paralela que acontece junto ao SBAC-PAD. Procure sobre as edições passadas e links para materiais online.
Segue também uma lista parcial de fontes de estudo:
- OpenMP: https://hpc-tutorials.llnl.gov/openmp/
- OpenMP Tutorials: http://www.openmp.org/resources/tutorials-articles/
- MPI: http://www.mcs.anl.gov/research/projects/mpi/tutorial/gropp/talk.html
- Advanced MPI: http://www.mcs.anl.gov/~thakur/sc16-mpi-tutorial/
- Parallel Programming: https://webpages.charlotte.edu/abw/parallel/par_prog/index.htm
- CUDA C/C++ Basics: http://www.nvidia.com/docs/IO/116711/sc11-cuda-c-basics.pdf
- An Even Easier Introduction to CUDA: https://devblogs.nvidia.com/even-easier-introduction-cuda/
Observações
Linguagem e Ferramentas
Ferramentas clássicas de HPC (OpenMP, MPI, POSIX Threads, CUDA) estarão disponíveis aos competidores na máquina alvo. Outras ferramentas estarão disponíveis de acordo com a disponibilidade de plataforma.
Importante: o alvo principal da competição é o Speedup, e qualquer técnica será permitida a fim de melhorar o desempenho. É obrigatório usar paralelismo nas soluções.
Pontuação
A submissão será considerada se a saída for correta, ou seja, igual a saída do programa sequencial.
O speedup de cada submissão será medido da seguinte forma: o tempo de execução de uma solução será dividido pelo tempo de execução sequencial medido pela organização. A solução será medida três vezes e o tempo médio será empregado no cálculo do speedup. Qualquer otimização da parte sequencial será um bônus. O speedup de todos os problemas solucionados por um time será somado ao placar. Somente a última submissão válida será considerada.
O acesso aos sistemas de julgamento, pontuação e placar podem ser acessadas em: http://lspd.mackenzie.br/boca/
Comitê
- Calebe de Paula Bianchini (Mackenzie)
- klenilmar Lopes Dias (IFPA-Macapá)