Merge branch 'no-testear-implementaciones-alternativas' of...
Dylan Socolobsky authored
Merge branch 'no-testear-implementaciones-alternativas' of https://git.exactas.uba.ar/orga2-puma-concolor/tp2 into no-testear-implementaciones-alternativas
fafbf2c1

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 con latexmk): Para la construcción del informe.
  • xz y GNU Tar: Para extraer los resultados experimentales.
  • git: Para navegar el historial del proyecto.