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:

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á)