This repository contains a template for the project assignment in the Computer Architecture course at Universidad Carlos III de Madrid.
Este proyecto utiliza un sistema automatizado basado en Make para gestionar la sincronización, compilación y ejecución de tareas entre el entorno de desarrollo local (Docker/VSCode) y el clúster remoto (Avignon).
Antes de usar los comandos, necesitas definir tus credenciales y rutas.
- Edita el archivo llamado
env.shen la raíz del proyecto. - Copia el siguiente contenido y edita los valores con tu usuario:
# env.sh
# Tu usuario de la universidad (ej: a052XXXX)
REMOTE_USER=a0522253
REMOTE_HOST=avignon.lab.inf.uc3m.es
# Directorio en el servidor donde se guardará el proyecto
# (deja que el script la cree)
REMOTE_DIR=rtxNota: El archivo
env.shsuele añadirse al.gitignorepara no subir credenciales al repositorio.
Para evitar escribir la contraseña constantemente, el sistema usa sshpass, instálalo.
- Crea un archivo llamado
.passworden la raíz. - Escribe tu contraseña de la Avignon dentro (solo la contraseña, sin espacios extra).
- Importante: Asegúrate de que
.passwordestá en tu archivo.gitignore.
# Mejor hazlo en el IDE porque con la terminal se queda en su historial
echo "tu_contraseña_aqui" > .password
# Ya está incluido pero compruebalo por si acaso.
echo ".password" >> .gitignore| Comando | Descripción |
|---|---|
make auto-jd |
Flujo completo "Zero-Touch": 1. Sube y Compila el código (espera a terminar). 2. Limpia logs y Ejecuta los tests (espera a terminar). 3. Descarga resultados. 4. Valida y genera el CSV. |
| Comando | Descripción |
|---|---|
make deploy |
Empaqueta y sube el código al servidor. |
make remote-build |
Sube cambios y manda compilar en el clúster (Slurm). |
| Comando | Descripción |
|---|---|
make run-jd |
Lanza el test a la cola de Slurm y devuelve el control inmediatamente (no espera). |
make tail-jd |
Muestra en tiempo real el log de salida del test (tail -f). |
make run-jd-wait |
Lanza el test y bloquea la terminal hasta que Slurm termine la ejecución. |
| Comando | Descripción |
|---|---|
make fetch-all |
Descarga todo (ppm + txt) y ejecuta el pipeline de validación. |
make pipeline |
Ejecuta la comparación de imágenes y extracción de tiempos localmente. |
Si la validación de imágenes es correcta ("VÁLIDO"), el script generará automáticamente un CSV con los tiempos:
- Archivo:
memoria/graphs/[NOMBRE-RAMA-GIT].csv - Logs:
logs/txt/run-test-jd.out - Imágenes:
logs/images/
Para mantener el orden, no modifiques el Makefile directamente si no es necesario. Edita los scripts correspondientes:
scripts/deploy/sync.sh: Controla qué archivos se suben (y cuáles se ignoran como.git,.passwordenv.shobuild).scripts/remote/build.sh: Comandos que ejecuta Slurm para compilar (CMake settings).scripts/remote/run-test-jd.sh: Script que ejecuta los casos de prueba.scripts/generation/genTests.py: Script que crea los tests. Si quieres cambiar parámetros (más rayos, resolución, etc.), edita esto y corremake gen-tests.scripts/analysis/: Scripts para comparar imágenes o generar gráficas en local.