]> git.llucax.com Git - z.facultad/75.00/presentacion.git/blobdiff - presentacion.rst
Eliminar notas de rst2beamer
[z.facultad/75.00/presentacion.git] / presentacion.rst
index 29fceb0ee061cdbdda54260381e1cfae58328922..243ac79892f174b88d0061f978320bcec669510f 100644 (file)
@@ -21,12 +21,6 @@ Motivación
 * Investigación + aplicación
 * Software Libre
 
-.. r2b-note::
-
-    1 min de presentación
-
-    1.5 min / 2.5 min
-
 Recolección de Basura
 ~~~~~~~~~~~~~~~~~~~~~
 ¿Qué?
@@ -45,12 +39,8 @@ Recolección de Basura
 * 50+ años de desarrollo
 * 3000+ *papers*
 
-.. r2b-note::
-
-    5 min / 7.5 min
-
-Recolector de Basura de D
-~~~~~~~~~~~~~~~~~~~~~~~~~
+Recolector Actual de D
+~~~~~~~~~~~~~~~~~~~~~~
 * Marcado y barrido
 
   * Marcado iterativo
@@ -67,12 +57,8 @@ Recolector de Basura de D
 
   * Muy propenso a extender el tiempo de *stop-the-world* en la práctica
 
-.. r2b-note::
-
-    3 min / 33 min
-
-Lo Bueno
-~~~~~~~~
+Recolector Actual - Lo Bueno
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Anda :)
 * Organización del *heap* (< fragmentación)
 * Marcado iterativo (!\ *overflow*)
@@ -80,12 +66,8 @@ Lo Bueno
 
 (bueno != perfecto)
 
-.. r2b-note::
-
-    5 min / 38 min
-
-Lo Malo y lo Feo
-~~~~~~~~~~~~~~~~
+Recolector Actual - Lo Malo y lo Feo
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Lo malo
 
 * ↓ Configurabilidad (*no silver bullet*)
@@ -101,10 +83,6 @@ Lo feo
 
   → Difícil de mantener, modificar y mejorar
 
-.. r2b-note::
-
-    3.5 min / 41.5 min
-
 
 
 Modificaciones Propuestas
@@ -118,19 +96,15 @@ Concurrencia
 * Algoritmo basado en el trabajo de Gustavo Rodriguez-Rivera y Vince Russo
   (*Non-intrusive Cloning Garbage Collector with Stock Operating System
   Support*)
-* Minimiza tiempo de pausa realizando fase de marcado **concurrente** vía
+* Minimiza tiempo de pausa realizando fase de **marcado concurrente** vía
   ``fork(2)``
 * Proceso padre sigue corriendo el programa
 * Proceso hijo realiza fase de marcado
 * Se comunican resultados vía memoria compartida
 * Sincronización mínima (``fork(2)`` + ``waitpid(2)``)
 
-.. r2b-note::
-
-    2.5 min / 44 min
-
-Problemas
-~~~~~~~~~
+Concurrencia - Problemas
+~~~~~~~~~~~~~~~~~~~~~~~~
 * Hilo que disparó la recolección bloqueado hasta fin de recolección completa
   (marcado concurrente inclusive)
 * Otros hilos potencialmente bloqueados durante toda la recolección también
@@ -138,14 +112,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
-* Devuelve memoria del nuevo *pool* al programa mientras termina el marcado
+Concurrencia - Eager Allocation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Pide más memoria al OS antes de lanzar el marcado concurrente
+* Devuelve memoria nueva al programa mientras termina el marcado
   concurrente
 * Permite al programa (**todos** sus hilos) seguir trabajando mientras se
   realiza el marcado concurrente
@@ -155,12 +125,8 @@ Eager Allocation
 
   ↓ Tiempo de pausa real
 
-.. r2b-note::
-
-    6.5 min / 53 min
-
-Early Collection
-~~~~~~~~~~~~~~~~
+Concurrencia - Early Collection
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Dispara una recolección *preventiva* antes de que se agote la memoria
 * Permite al programa (**todos** sus hilos) seguir trabajando mientras la
   recolección *preventiva* está en progreso
@@ -174,15 +140,6 @@ 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
 ~~~~~~~~~~~~~
 * Marcado semi-preciso del *heap*
@@ -194,10 +151,6 @@ Otras Mejoras
 * Registro de pedidos de memoria y recolecciones realizadas
 * Configurabilidad (en *tiempo de inicialización*)
 
-.. r2b-note::
-
-    2 min / 58.5 min
-
 
 
 Resultados
@@ -206,52 +159,41 @@ Resultados
 Resultados
 --------------------------------------------------
 
+Banco de Pruebas
+~~~~~~~~~~~~~~~~
+* Programas
+
+  * 7 *Micro-benchmarks*
+  * 5 *Olden Benchmark* (400-1000 *SLOC*)
+  * Dil (32K+ *SLOC*, 86 módulos, 300+ *clases*)
+
+* Métricas
+
+  * Tiempo total de ejecución
+  * Tiempo máximo de *stop-the-world*
+  * Tiempo máximo de pausa real
+  * Cantidad máxima de memoria utilizada
+
 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
@@ -277,7 +219,9 @@ Resumen
 
   Utilización de memoria de Dil:
 
-  **50% mayor** (mucho *overhead* por marcado preciso)
+  **50% mayor** (213MiB → 307MiB)
+
+  (mucho *overhead* por marcado preciso)
 
 * Yapa
 
@@ -285,10 +229,6 @@ 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*
@@ -296,10 +236,6 @@ 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*
@@ -317,10 +253,6 @@ 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
@@ -329,10 +261,6 @@ Trabajos Futuros
 * Concurrencia → *Lock* **global**
 * Movimiento
 
-.. r2b-note::
-
-    1.5 min / 92 min
-
 Preguntas
 ~~~~~~~~~
 ¿?