Trabajo Práctico 2 - Organización del Computador 2
Este breve documento describe la estructura el proyecto.
Integrantes
- Ignacio Losiggio
- Dylan Socolobsky
- Sebatian Giambastiani
Instrucciones básicas
Informe
Correr make
en doc/
importa nuestros resultados y genera el informe
Código
Correr make
en src/
genera nuestros binarios, éstos incluyen cambios cómo
la opción -s
para generar una salida simplificada y las implementaciones
alternativas avx
, simple
y mvec
. Los scripts de evaluación de la cátedra
fueron modificados par evaluar todas las implementaciones y simplificar la
salida de los mismos. Como agregado se puede correr make catedra
en la
carpeta src/
para correr todos los tests de la cátedra.
Un detalle a tener en cuenta es que dado que utilizamos libmvec
en la una de
las implementaciones alternativas valgrind
puede llegar a emitir una
advertencia por no reconocer parte de los headers de debugging.
Reproducibilidad de la experimentación
Se puede reproducir la experimentación realizada borrando todos los datos
crudos (archivos .txt
) de mediciones/data/
y corriendo make clean
seguido
de make retest=y iteraciones=2500
en la carpeta mediciones/
2500
iteraciones puede requerir demasiado tiempo, por lo que ese valor es ajustable.
Para poder reconstruir el informe con la nueva experimentación se puede correr
make noimport=y
en el directorio doc/
(en caso de no setear noimport
se
importará la experimentación de resultados/
).
Sofware requerido
El software requerido para reconstruir este trabajo es el siguiente:
- GCC: Para la generación de los binarios.
- NASM: Para generar los archivos objeto de las implementaciones en ensamblador de amd64.
- GNU Make: Para interpretar los ficheros
Makefile
con instrucciones de construcción. - Valgrind: Para chequear los algoritmos implementados de pérdidas de memoria y accesos inválidos a la misma.
- Bash: Para correr el script de comparación de la cátedra.
-
convert
(parte del proyecto ImageMagick): para la generación de imágenes de prueba. -
gnuplot
: Para la generación de información estadística a partir de la información experimental cruda. -
matplotlib
: Para la generación de los gráficos. -
LaTeX
(una instalación completa conlatexmk
): Para la construcción del informe. -
xz
yGNU Tar
: Para extraer los resultados experimentales. -
git
: Para navegar el historial del proyecto.