From d732d0c85d29ac3d96ed1493ea0f2a98c1169e64 Mon Sep 17 00:00:00 2001 From: dynngz Date: Thu, 1 Oct 2026 01:56:40 -0500 Subject: [PATCH 1/3] docs: agregar conclusiones del reporte --- .../tp/secciones/conclusiones/dayana.tex | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tp/informe/tp/secciones/conclusiones/dayana.tex b/tp/informe/tp/secciones/conclusiones/dayana.tex index 79e308d..f8ea9de 100644 --- a/tp/informe/tp/secciones/conclusiones/dayana.tex +++ b/tp/informe/tp/secciones/conclusiones/dayana.tex @@ -7,4 +7,24 @@ % - En lo que hiciste tú (tu PR), ¿qué harías distinto? % Para compilar y ver el PDF: cd tp/informe/tp && ./compilar.sh (sale en build/main.pdf). \subsubsection*{\nombreDayana} -\pendiente{conclusiones y recomendaciones de \nombreDayana} + +Este trabajo me ayudó a entender que implementar concurrencia se trata más allá de crear +goroutines, es importante decidir qué información comparte cada una y cuándo deben sincronizarse. Evaluando la +correspondencia entre la implementación en Go y el modelo Promela, comprendí mejor +el papel del \emph{worker pool}, los acumuladores privados y la barrera: los workers pueden procesar +los bloques en cualquier orden, pero el coordinador no debe actualizar los centroides hasta que +todos hayan terminado. También aprendí que un modelo debe conservar las decisiones esenciales del +programa sin copiar todos sus detalles. En este caso, fue posible estudiar la sincronización sin +representar los cálculos numéricos de K-means y comprobar que los puntos no se pierdan y que los +centroides no se escriban mientras están siendo leídos. + +Me sorprendió que aumentar los workers no produzca una mejora proporcional: con cuatro se obtuvo +un speedup de \cifra{speedup-p4}$\times$ y con ocho de \cifra{speedup-p8}$\times$, pero con una menor +eficiencia. Esto demuestra que la coordinación y los núcleos físicos también limitan el rendimiento. +Como el modelo de Spin usa un dominio pequeño y no representa el cierre del pool, considero que sus +resultados respaldan el diseño, pero deben complementarse con las pruebas de la implementación en +Go. Para mejorar el trabajo, recomendaría modelar el cierre de las goroutines y realizar mediciones +con más datos y en equipos con más núcleos físicos. Si volviera a realizar mi aporte, incluiría +desde el inicio una tabla que relacione cada elemento de Go con su abstracción en Promela y con la +propiedad que permite verificar, dado que esa trazabilidad facilitaría comprender por qué el modelo sí +representa el comportamiento concurrente que se busca validar. From b3f5e0bad79e5bf8e59274c9ea92a386002996aa Mon Sep 17 00:00:00 2001 From: dynngz Date: Thu, 1 Oct 2026 01:58:05 -0500 Subject: [PATCH 2/3] actualizar .gitignore para incluir artefactos generados por LaTeX --- tp/informe/pc2/.gitignore | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tp/informe/pc2/.gitignore b/tp/informe/pc2/.gitignore index 6192778..ec1aeee 100644 --- a/tp/informe/pc2/.gitignore +++ b/tp/informe/pc2/.gitignore @@ -1,2 +1,15 @@ # Artefactos de LaTeX: el PDF se regenera con `latexmk`. build/ + +# Artefactos generados cuando LaTeX compila directamente en esta carpeta. +/*.aux +/*.bbl +/*.bcf +/*.blg +/*.fdb_latexmk +/*.fls +/*.log +/*.pdf +/*.run.xml +/*.synctex.gz +/*.toc From 34ba02ae26f3e6eeb8d2d94b5b6140a4ffeb34b3 Mon Sep 17 00:00:00 2001 From: dynngz Date: Thu, 1 Oct 2026 02:07:28 -0500 Subject: [PATCH 3/3] =?UTF-8?q?actualizar=20script=20de=20compilaci=C3=B3n?= =?UTF-8?q?=20para=20incluir=20opci=C3=B3n=20de=20abrir=20PDF=20y=20mejora?= =?UTF-8?q?r=20manejo=20de=20dependencias=20en=20Fedora=20en=20macOs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tp/informe/pc2/compilar.sh | 75 ++++++++++++++++++++++------ tp/informe/tp/compilar.sh | 75 ++++++++++++++++++++++------ tp/informe/tp/generado/historial.tex | 16 ++++-- 3 files changed, 130 insertions(+), 36 deletions(-) diff --git a/tp/informe/pc2/compilar.sh b/tp/informe/pc2/compilar.sh index ca24f45..c96f568 100755 --- a/tp/informe/pc2/compilar.sh +++ b/tp/informe/pc2/compilar.sh @@ -2,6 +2,7 @@ # Compila el informe de la PC2: regenera lo generado y corre latexmk. # # ./compilar.sh # build/main.pdf +# ./compilar.sh --open # compila y abre el PDF # ./compilar.sh -c # limpia (latexmk -c) # # En Fedora, latexmk y biber de TeX Live necesitan perl-sigtrap y libxcrypt-compat. @@ -10,28 +11,70 @@ set -euo pipefail cd "$(dirname "$0")" -deps=build/deps -export LD_LIBRARY_PATH="$PWD/$deps/usr/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" -export PERL5LIB="$PWD/$deps/usr/share/perl5${PERL5LIB:+:$PERL5LIB}" +abrir=false +case "${1:-}" in + "") ;; + -c|--clean) + latexmk -c + exit 0 + ;; + -o|--open) abrir=true ;; + *) + echo "uso: $0 [-c|--clean|-o|--open]" >&2 + exit 2 + ;; +esac -falta_sigtrap() { ! perl -e 'use sigtrap' 2>/dev/null; } -falta_libcrypt() { ! ldconfig -p | grep -q 'libcrypt\.so\.1 ' && [ ! -e "$deps/usr/lib64/libcrypt.so.1" ]; } +# Estas dependencias adicionales solo son necesarias en Fedora. En macOS se usa +# directamente la instalación local de MacTeX/TeX Live. +if [ "$(uname -s)" = "Linux" ]; then + deps=build/deps + export LD_LIBRARY_PATH="$PWD/$deps/usr/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + export PERL5LIB="$PWD/$deps/usr/share/perl5${PERL5LIB:+:$PERL5LIB}" -if falta_sigtrap || falta_libcrypt; then - if [ ! -d "$deps/usr" ]; then - echo "→ faltan perl-sigtrap o libxcrypt-compat; se extraen en $deps (sin root)" >&2 - mkdir -p "$deps" - ( cd "$deps" && dnf download -q perl-sigtrap libxcrypt-compat \ - && rm -f *.i686.rpm && for r in *.rpm; do rpm2cpio "$r" | cpio -idm --quiet; done && rm -f *.rpm ) + falta_sigtrap() { ! perl -e 'use sigtrap' 2>/dev/null; } + falta_libcrypt() { + ! command -v ldconfig >/dev/null 2>&1 || + { ! ldconfig -p | grep -q 'libcrypt\.so\.1 ' && [ ! -e "$deps/usr/lib64/libcrypt.so.1" ]; } + } + + if falta_sigtrap || falta_libcrypt; then + if [ ! -d "$deps/usr" ]; then + if ! command -v dnf >/dev/null 2>&1; then + echo "error: faltan dependencias de TeX Live y no está disponible dnf" >&2 + exit 1 + fi + echo "→ faltan perl-sigtrap o libxcrypt-compat; se extraen en $deps (sin root)" >&2 + mkdir -p "$deps" + ( cd "$deps" && dnf download -q perl-sigtrap libxcrypt-compat \ + && rm -f -- *.i686.rpm && for r in *.rpm; do rpm2cpio "$r" | cpio -idm --quiet; done && rm -f -- *.rpm ) + fi fi fi -if [ "${1:-}" = "-c" ]; then - latexmk -c - exit 0 -fi +command -v latexmk >/dev/null 2>&1 || { + echo "error: no se encontró latexmk; instala MacTeX o BasicTeX" >&2 + exit 1 +} -./generar-historial.sh +if ! ./generar-historial.sh; then + if [ -s generado/historial.tex ]; then + echo "aviso: no se pudo actualizar el historial; se conserva generado/historial.tex" >&2 + else + echo "error: no existe un historial anterior para continuar" >&2 + exit 1 + fi +fi python3 ../../scripts/tablas_informe.py --salida generado latexmk echo "→ build/main.pdf" + +if $abrir; then + if [ "$(uname -s)" = "Darwin" ]; then + open build/main.pdf + elif command -v xdg-open >/dev/null 2>&1; then + xdg-open build/main.pdf + else + echo "aviso: abre manualmente $PWD/build/main.pdf" >&2 + fi +fi diff --git a/tp/informe/tp/compilar.sh b/tp/informe/tp/compilar.sh index 89d54cf..a44e540 100755 --- a/tp/informe/tp/compilar.sh +++ b/tp/informe/tp/compilar.sh @@ -2,6 +2,7 @@ # Compila el informe del TP: regenera lo generado y corre latexmk. # # ./compilar.sh # build/main.pdf +# ./compilar.sh --open # compila y abre el PDF # ./compilar.sh -c # limpia (latexmk -c) # # En Fedora, latexmk y biber de TeX Live necesitan perl-sigtrap y libxcrypt-compat. @@ -10,28 +11,70 @@ set -euo pipefail cd "$(dirname "$0")" -deps=build/deps -export LD_LIBRARY_PATH="$PWD/$deps/usr/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" -export PERL5LIB="$PWD/$deps/usr/share/perl5${PERL5LIB:+:$PERL5LIB}" +abrir=false +case "${1:-}" in + "") ;; + -c|--clean) + latexmk -c + exit 0 + ;; + -o|--open) abrir=true ;; + *) + echo "uso: $0 [-c|--clean|-o|--open]" >&2 + exit 2 + ;; +esac -falta_sigtrap() { ! perl -e 'use sigtrap' 2>/dev/null; } -falta_libcrypt() { ! ldconfig -p | grep -q 'libcrypt\.so\.1 ' && [ ! -e "$deps/usr/lib64/libcrypt.so.1" ]; } +# Estas dependencias adicionales solo son necesarias en Fedora. En macOS se usa +# directamente la instalación local de MacTeX/TeX Live. +if [ "$(uname -s)" = "Linux" ]; then + deps=build/deps + export LD_LIBRARY_PATH="$PWD/$deps/usr/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + export PERL5LIB="$PWD/$deps/usr/share/perl5${PERL5LIB:+:$PERL5LIB}" -if falta_sigtrap || falta_libcrypt; then - if [ ! -d "$deps/usr" ]; then - echo "→ faltan perl-sigtrap o libxcrypt-compat; se extraen en $deps (sin root)" >&2 - mkdir -p "$deps" - ( cd "$deps" && dnf download -q perl-sigtrap libxcrypt-compat \ - && rm -f *.i686.rpm && for r in *.rpm; do rpm2cpio "$r" | cpio -idm --quiet; done && rm -f *.rpm ) + falta_sigtrap() { ! perl -e 'use sigtrap' 2>/dev/null; } + falta_libcrypt() { + ! command -v ldconfig >/dev/null 2>&1 || + { ! ldconfig -p | grep -q 'libcrypt\.so\.1 ' && [ ! -e "$deps/usr/lib64/libcrypt.so.1" ]; } + } + + if falta_sigtrap || falta_libcrypt; then + if [ ! -d "$deps/usr" ]; then + if ! command -v dnf >/dev/null 2>&1; then + echo "error: faltan dependencias de TeX Live y no está disponible dnf" >&2 + exit 1 + fi + echo "→ faltan perl-sigtrap o libxcrypt-compat; se extraen en $deps (sin root)" >&2 + mkdir -p "$deps" + ( cd "$deps" && dnf download -q perl-sigtrap libxcrypt-compat \ + && rm -f -- *.i686.rpm && for r in *.rpm; do rpm2cpio "$r" | cpio -idm --quiet; done && rm -f -- *.rpm ) + fi fi fi -if [ "${1:-}" = "-c" ]; then - latexmk -c - exit 0 -fi +command -v latexmk >/dev/null 2>&1 || { + echo "error: no se encontró latexmk; instala MacTeX o BasicTeX" >&2 + exit 1 +} -./generar-historial.sh +if ! ./generar-historial.sh; then + if [ -s generado/historial.tex ]; then + echo "aviso: no se pudo actualizar el historial; se conserva generado/historial.tex" >&2 + else + echo "error: no existe un historial anterior para continuar" >&2 + exit 1 + fi +fi python3 ../../scripts/tablas_informe.py --salida generado latexmk echo "→ build/main.pdf" + +if $abrir; then + if [ "$(uname -s)" = "Darwin" ]; then + open build/main.pdf + elif command -v xdg-open >/dev/null 2>&1; then + xdg-open build/main.pdf + else + echo "aviso: abre manualmente $PWD/build/main.pdf" >&2 + fi +fi diff --git a/tp/informe/tp/generado/historial.tex b/tp/informe/tp/generado/historial.tex index d13706f..f8220c6 100644 --- a/tp/informe/tp/generado/historial.tex +++ b/tp/informe/tp/generado/historial.tex @@ -1,4 +1,4 @@ -% Generado por generar-historial.sh el 2026-09-30. No editar a mano. +% Generado por generar-historial.sh el 2026-10-01. No editar a mano. \begin{table}[H] \caption{Commits del Trabajo Parcial por integrante y entregable}\label{tab:commits-autor} \footnotesize @@ -6,9 +6,9 @@ \toprule \textbf{Integrante} & \textbf{PC1} & \textbf{PC2} & \textbf{TP (nuevos)} & \textbf{Merges de PR (TP)} \\ \midrule -Dayana Kety Gómez Rodriguez & 5 & 3 & 0 & 0 \\ -Julio Cesar Meza Alfaro & 0 & 4 & 0 & 0 \\ -Rody Sebastian Vilchez Marin & 21 & 30 & 10 & 5 \\ +Dayana Kety Gómez Rodriguez & 5 & 3 & 3 & 0 \\ +Julio Cesar Meza Alfaro & 0 & 4 & 1 & 0 \\ +Rody Sebastian Vilchez Marin & 21 & 30 & 14 & 5 \\ \bottomrule \end{tabular} @@ -28,6 +28,13 @@ \endhead \bottomrule \endfoot +2026-10-01 & Dayana Kety Gómez Rodriguez & \texttt{b3f5e0b} & actualizar .gitignore para incluir artefactos generados por LaTeX & no \\ +2026-10-01 & Dayana Kety Gómez Rodriguez & \texttt{d732d0c} & docs: agregar conclusiones del reporte & no \\ +2026-10-01 & Julio Cesar Meza Alfaro & \texttt{681cd25} & update julio.tex & no \\ +2026-09-30 & Rody Sebastian Vilchez Marin & \texttt{77d2dd2} & Incorporar inercia física en slider y pausas de lectura en demo de Elena & no \\ +2026-09-30 & Rody Sebastian Vilchez Marin & \texttt{1db05a2} & Actualizar demo animada con simulación de usuaria sintética (Elena) & no \\ +2026-09-30 & Rody Sebastian Vilchez Marin & \texttt{51c2636} & Incorporar demo animada interactiva del visor web en el README & no \\ +2026-09-30 & Rody Sebastian Vilchez Marin & \texttt{8973847} & Interpretar los clusters en el informe del TP, app móvil HCD y guion de sustentación & no \\ 2026-09-29 & Rody Sebastian Vilchez Marin & \texttt{a057ffa} & Unificar por nombre el alias R0SEWT-CGIAR en el historial del informe del TP & no \\ 2026-09-29 & Rody Sebastian Vilchez Marin & \texttt{9a2ed8f} & Registrar la PR \#45 en la tabla y en la participación del informe del TP & no \\ 2026-09-29 & Rody Sebastian Vilchez Marin & \texttt{ab45461} & Analizar el código con IA: prompt estructurado, 18 GAPs y su contraste & no \\ @@ -38,6 +45,7 @@ 2026-09-29 & Rody Sebastian Vilchez Marin & \texttt{2aad18c} & Registrar la PR \#44 en la tabla de pull requests del informe del TP & no \\ 2026-09-29 & Rody Sebastian Vilchez Marin & \texttt{8180c08} & Armar el informe del TP a partir del de la PC2, con la verificación formal en Spin & no \\ 2026-09-28 & Rody Sebastian Vilchez Marin & \texttt{a86af92} & Verificar con LTL la exclusión mutua y el progreso, con un mutante por propiedad & no \\ +2026-09-10 & Dayana Kety Gómez Rodriguez & \texttt{3c55c07} & docs: agregar propuesta de caso de uso SENAMHI ODS 13 & no \\ \end{xltabular} }