]> git.llucax.com Git - z.facultad/75.00/presentacion.git/commitdiff
Agregar notas a algunos slides
authorLeandro Lucarella <llucax@gmail.com>
Mon, 29 Nov 2010 02:22:27 +0000 (23:22 -0300)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 29 Nov 2010 02:22:27 +0000 (23:22 -0300)
Notas con algunos ayudamemorias y con tiempos estimados por slide. Faltan
algunos slides pero el tiempo total es correcto. El Makefile genera
también el documento de notas.

.gitignore
Makefile
presentacion.rst

index f7eae0045299f329d1405036c21e94feff497ff7..21935a400c87a4bb78bdeb241540739ff3c17ff1 100644 (file)
@@ -1,2 +1,3 @@
 .tmp/*
 presentacion.pdf
+notas.pdf
index 82f26c5856fc71892fe0ffbea96b7fb9e7ede0aa..72d365306794db0394a58026d08bbcb6e4f40b10 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -44,16 +44,29 @@ override V := $(if $V,,@)
 # honour make -s flag
 override V := $(if $(findstring s,$(MAKEFLAGS)),,$V)
 
+.PHONY: all
+all: presentacion.pdf notas.pdf
+
 presentacion.pdf: $O/presentacion.tex $(imgs)
        $(if $V,@echo "$(PDFLATEX) $< > $@")
        $V cd $O && $(PDFLATEX) $(PDFLATEXFLAGS) $(<F) > $@.log
        $V cd $O && $(PDFLATEX) $(PDFLATEXFLAGS) $(<F) >> $@.log
        $V mv $O/$@ $@
 
+notas.pdf: $O/notas.tex
+       $(if $V,@echo "$(PDFLATEX) $< > $@")
+       $V cd $O && $(PDFLATEX) $(PDFLATEXFLAGS) $(<F) > $@.log
+       $V cd $O && $(PDFLATEX) $(PDFLATEXFLAGS) $(<F) >> $@.log
+       $V mv $O/$@ $@
+
 $O/presentacion.tex: presentacion.rst $(R2B)
        $(if $V,@echo "$(R2B) $< > $@")
        $V $(R2B) $(R2BFLAGS) $< | $(R2BFILTER) > $@
 
+$O/notas.tex: presentacion.rst $(R2B)
+       $(if $V,@echo "$(R2B) $< > $@")
+       $V $(R2B) $(R2BFLAGS) --shownotes=only $< | $(R2BFILTER) > $@
+
 $O/img/%.pdf: img/%.dot
        $(DOT) $(DOTFLAGS) -Tpdf -o $@ $<
 
index 7ef452b503133538de9e7decdf6cc28bf2ed87bf..e9a218a4fd3a8c2cf034d9684bd4df4c0c6619d6 100644 (file)
@@ -20,6 +20,12 @@ Motivación
 * Lenguaje de programación D
 * Utilidad → Software Libre → Contribución
 
+.. r2b-note::
+
+    1 min de presentación
+
+    1.5 min / 2.5 min
+
 
 Recolección de Basura
 --------------------------------------------------
@@ -42,6 +48,10 @@ Introducción
 
 ¿Cómo?
 
+.. r2b-note::
+
+    5 min / 7.5 min
+
 Algoritmos Clásicos
 ~~~~~~~~~~~~~~~~~~~
 * Conteo de referencias
@@ -54,6 +64,10 @@ Algoritmos Clásicos
 
 .. dummy: para que ande bien el raw de arriba
 
+.. r2b-note::
+
+    5 min / 12.5 min
+
 Estado del Arte
 ~~~~~~~~~~~~~~~
 * Medio siglo de investigación y desarrollo (3000+ publicaciones)
@@ -72,6 +86,12 @@ Estado del Arte
   * **Precisión**
   * Análisis estático
 
+.. r2b-note::
+
+    6 min / 18.5 min
+
+    Empieza con John McCarthy en 1959
+
 
 El Lenguaje de Programación D
 --------------------------------------------------
@@ -83,6 +103,10 @@ Características Generales
 * Sistema de tipos estático
 * Multi-paradigma
 
+.. r2b-note::
+
+    1 min / 19.5 min
+
 Paradigmas
 ~~~~~~~~~~
 * Programación de bajo nivel (*system-programming*) ← C/C++
@@ -107,6 +131,10 @@ Paradigmas
 
   → Finalización
 
+.. r2b-note::
+
+    4.5 min / 24 min
+
 
 
 Recolector de Basura de D
@@ -122,6 +150,10 @@ Organización del Heap
 .. image:: img/heap.pdf
     :height: 6.7cm
 
+.. r2b-note::
+
+    2.5 min / 26.5 min
+
 Bloques
 ~~~~~~~
 * Tamaño fijo (por página)
@@ -147,6 +179,10 @@ Bloques
     * *free*
     * *finals*
 
+.. r2b-note::
+
+    3.5 min / 30 min
+
 Algoritmo
 ~~~~~~~~~
 * Marcado y barrido
@@ -165,6 +201,10 @@ Algoritmo
 
   * Muy propenso a extender el tiempo de *stop-the-world* en la práctica
 
+.. r2b-note::
+
+    3 min / 33 min
+
 
 Lo Bueno, lo Malo y lo Feo
 --------------------------------------------------
@@ -178,6 +218,10 @@ Lo Bueno
 
 (bueno != perfecto)
 
+.. r2b-note::
+
+    5 min / 38 min
+
 Lo Malo y lo Feo
 ~~~~~~~~~~~~~~~~
 Lo malo
@@ -192,6 +236,10 @@ Lo feo
 * El código (complejo, intrincado, duplicado, poco documentado) → Difícil de
   mantener, modificar y mejorar
 
+.. r2b-note::
+
+    3.5 min / 41.5 min
+
 
 
 Modificaciones Propuestas
@@ -208,6 +256,10 @@ fork(2)
 * Comienza con un solo hilo (el que llamó a ``fork(2)``)
 * Muy eficiente
 
+.. r2b-note::
+
+    3.5 min / 44 min
+
 Algoritmo Principal
 ~~~~~~~~~~~~~~~~~~~
 * Basado en el trabajo de Gustavo Rodriguez-Rivera y Vince Russo (*Non-intrusive
@@ -219,6 +271,10 @@ Algoritmo Principal
 * Se comunican resultados vía memoria compartida
 * Sincronización mínima (``fork(2)`` + ``waitpid(2)``)
 
+.. r2b-note::
+
+    2.5 min / 44 min
+
 Problemas
 ~~~~~~~~~
 * Hilo que disparó la recolección bloqueado hasta fin de recolección completa
@@ -228,6 +284,10 @@ Problemas
 
 → Tiempo de pausa en la práctica ~= tiempo total de recolección
 
+.. r2b-note::
+
+    2.5 min / 46.5 min
+
 Eager Allocation
 ~~~~~~~~~~~~~~~~
 * Crea un nuevo *pool* de memoria antes de lanzar el marcado concurrente
@@ -241,6 +301,10 @@ Eager Allocation
 
   ↓ Tiempo de pausa real
 
+.. r2b-note::
+
+    6.5 min / 53 min
+
 Early Collection
 ~~~~~~~~~~~~~~~~
 * Dispara una recolección *preventiva* antes de que se agote la memoria
@@ -256,6 +320,15 @@ Early Collection
 
   ↓ Tiempo de pausa real (no garantizado)
 
+.. r2b-note::
+
+    3.5 min / 56.5 min
+
+    Si hago una recolección cuando queda 20% de memoria libre y nadie pide más
+    memoria mientras se recolecta, es como si tuviera 20% menos de memoria
+    disponible para el programa => más recolecciones => más consumo de CPU (y
+    potencialmente run-time)
+
 
 Otras Mejoras
 --------------------------------------------------
@@ -277,6 +350,10 @@ Adaptación del trabajo de Vincent Lang y David Simcha:
   * Utiliza la información para escanear solo palabras que son punteros (con
     seguridad o potencialmente)
 
+.. r2b-note::
+
+    2 min / 58.5 min
+
 Optimizaciones y Otras Mejoras Menores
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Mejora del factor de ocupación del *heap*
@@ -286,6 +363,10 @@ Optimizaciones y Otras Mejoras Menores
 * Optimizaciones algorítmicas sobre búsquedas frecuentes
 * Registro de pedidos de memoria y recolecciones realizadas
 
+.. r2b-note::
+
+    2 min / 60.5 min
+
 Configurabilidad
 ~~~~~~~~~~~~~~~~
 * Configurable en *tiempo de arranque*
@@ -306,6 +387,10 @@ Configurabilidad
   * ``eager_alloc``
   * ``early_collect``
 
+.. r2b-note::
+
+    1.5 min / 62 min
+
 
 
 Resultados
@@ -372,21 +457,47 @@ Tiempo Máximo de Stop-The-World
 .. image:: img/norm-hist-stw.pdf
     :width: 12.5cm
 
+.. r2b-note::
+
+    5.5 min / 67.5 min
+
+    Explicar brevemente división de pruebas (cual es trivial, pequeña, real)
+
 Tiempo Máximo de Pausa Real
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 .. image:: img/norm-hist-pause.pdf
     :width: 12.5cm
 
+.. r2b-note::
+
+    2 min / 69.5 min
+
+    Explicar que donde hay grandes diferencias, es por tiempo de barrido
+
 Cantidad Máxima de Memoria Utilizada
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 .. image:: img/norm-hist-mem.pdf
     :width: 12.5cm
 
+.. r2b-note::
+
+    3.5 min / 73 min
+
+    Enganchar lo anterior con la relación con el consumo de memoria
+
 Tiempo Total de Ejecución
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 .. image:: img/norm-hist-time.pdf
     :width: 12.5cm
 
+.. r2b-note::
+
+    7 min / 80 min
+
+    * mcore y split bajan mucho por caché de tamaño
+    * rnddata baja mucho por marcado preciso
+    * bigarr y sbtree suben porque no hacen más que alocar
+
 
 
 Conclusión
@@ -420,6 +531,10 @@ Resumen
 
   Casi **3 veces menor** (55s → 20s)
 
+.. r2b-note::
+
+    4 min / 84 min
+
 Problemas, Limitaciones y Puntos Pendientes
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Explosión de uso de memoria con *eager allocation*
@@ -427,6 +542,10 @@ Problemas, Limitaciones y Puntos Pendientes
 * Mejorar predicción de *early collection*
 * Experimentar con ``clone(2)``
 
+.. r2b-note::
+
+    3 min / 87 min
+
 Trabajos Relacionados
 ~~~~~~~~~~~~~~~~~~~~~
 * *Memory Management in the D Programming Language*
@@ -444,6 +563,10 @@ Trabajos Relacionados
   Gustavo Rodriguez-Rivera y Vince Russo. Software Practiceand Experience
   Volumen 27, Número 8.  Agosto 1997.
 
+.. r2b-note::
+
+    1.5 min / 88.5 min
+
 Trabajos Futuros
 ~~~~~~~~~~~~~~~~
 * Organización de memoria
@@ -452,6 +575,10 @@ Trabajos Futuros
 * Concurrencia → *Lock* **global**
 * Movimiento
 
+.. r2b-note::
+
+    1.5 min / 92 min
+
 Preguntas
 ~~~~~~~~~
 ¿?