Este repositório trata do trabalho 1 de PSPD de 2021-1.
O objetivo deste trabalho é implementar o exercício Eleição U.R.S.A.L utilizando OpenMP.
O enunciado do problema pode ser lido AQUI.
Este repositório faz uso de git-lfs, verifique se o pacote está
instalado (debian é git-lfs
) antes de fazer o git clone.
Os arquivos de entrada estão compactados no arquivo input.tar.gz
, para
descompactar basta rodar:
make input/.create
Dentro do repositório, no diretório prof
existe uma solução de
referência (distribuída em formato de binários) para ser utilizada
como referência.
Para gerar o gabarito (a saída esperada) dos arquivos de entrada disponibilizados, basta executar:
make gerargabarito
Você pode invocar o make
com o parâmetro benchmark
, desta forma
ele irá executar o benchmark padrão, para todos arquivos dentro do
diretório input/
.
Você também poderá executar o benchmark
usando a sua solução
passando a variável BENCHMARKBINARY
, por exemplo:
make benchmark BENCHMARKBINARY=relatorios/minhaequipe/minhasolucao
- naturalmente trocando a string
relatorios/minhaequipe/minhasolucaor
para o path do seu programa verificador.
Existe uma solução de referência mais esperta que trata a entrada de maneira mais eficiente, ainda sim é uma solução de thread única, para verificar os tempos desta solução execute:
make benchmark BENCHMARKBINARY=prof/ribas-ac-ioajustado
A diretiva make clean
remove os arquivos de saída gerados pelo
benchmark
Já a diretiva make dist-clean
remove tudo que a clean
remove e
ainda remove o conteúdo dos diretório input/
e output/
.
Para comparar resultados você deve invocar a diretiva verificar, por exemplo:
make verificar BENCHMARKBINARY=./meuverificador
- Se não passar a variável
BENCHMARKBINARY
o sistema utilizará a solução de referência padrão.
Esta diretiva de verificação vai rodar todos os benchmarks (caso não
tenham sido executados) e depois irá comparar os arquivos gerados pelo
verificador com o gabarito armazenado no diretorio output/
- Prof. Bruno Ribas