Las TIC
Abstrac
Rendimiento de la aplicación multiprocesador puede estar limitado por el sistema operativo cuando la aplicación utiliza el sistema operativo con frecuencia y los servicios del sistema operativo utilizar estructuras de datos compartidos y modificado por múltiples núcleos de procesamiento. Si la aplicación no necesita el intercambio, el sistema operativo se convertirá en un obstáculoinnecesario al rendimiento de la aplicación.
Este trabajo sostiene que las aplicaciones deben controlar los gastos: el núcleo debe organizar cada estructura de datos de modo que un solo procesador necesita la actualización, a menos que se lo indique la aplicación. Guiados por este principio de diseño, este documento propone tres abstracciones del sistema operativo (rangos de direcciones, núcleosdel núcleo, y acciones) que permiten a las aplicaciones para el control de intercambio inter-core y para aprovechar la abundancia de núcleos probablemente por los núcleos dedican a funciones específicas del sistema operativo.
Las mediciones de microbenchmarks en el sistema operativo prototipo Corey, que encarna las nuevas abstracciones, muestran cómo el control de intercambio puede mejorar elrendimiento. Puntos de referencia de aplicación, utilizando MapReduce y un servidor Web, muestran que las mejoras pueden ser importantes para el rendimiento general: MapReduce de Corey realiza 25% más rápido que en Linux cuando se utiliza 16 cores. Contadores de eventos de hardware confirman que estas mejoras se deben a evitar operaciones que son caros en equipos multinúcleo.
IntroducciónCache-coherente memoria-compartida hardware se ha convertido en la opción predeterminada en los ordenadores modernos ya que los fabricantes de chips han adoptado arquitecturas multinúcleo. Chips de cuatro núcleos son comunes, y las tendencias indican que los chips con decenas a cientos de núcleos van a aparecer en cinco años [2]. Este trabajo explora nuevas abstracciones del sistema operativo que permiten alas aplicaciones evitar cuellos de botella en el sistema operativo como el número de núcleos aumenta.
pobremente con el número de núcleos puede dominar rendimiento de las aplicaciones. Gough et al. demostrar que la pelea por las colas de programación de Linux pueden contribuir significativamente a tiempo total ejecución de la aplicación en dos núcleos [12]. Ternera y espectáculo Foong que como unservidor Web Linux utiliza más núcleos directorio búsquedas pasan cada vez más tiempo que compiten por bloqueos de giro [29]. Sección 8.5.1 muestra que la pelea por la dirección de estructuras de datos espaciales Linux hace que el porcentaje del tiempo total empleado en el reducir la fase de una aplicación MapReduce para aumentar del 5% a los siete núcleos a casi el 30% a los 16 núcleos.
Unafuente de mal servicios del sistema operativo de escala es el uso de estructuras de datos modificados de múltiples núcleos. La Figura 1 ilustra un problema tal escalabilidad con un simple microbenchmark. El punto de referencia crea una serie de temas dentro de un proceso, cada hilo crea un descriptor de archivo, y luego cada hilo varias veces duplicados (con dup) su descriptor de archivo y cierra elresultado. El gráfico muestra los resultados en una máquina con cuatro chips AMD Opteron de cuatro núcleos corriendo Linux 2.6.25. La Figura 1 muestra que, como el número de núcleos aumenta, el número total de operaciones de DUP y CIERRE por unidad de tiempo disminuye. La causa es la controversia sobre los datos compartidos: la tabla que describe los archivos abiertos del proceso. Con un núcleoque no hay fallos de caché, y el punto de referencia es rápido, con dos núcleos, el protocolo de coherencia de caché obliga a algunos fallos de caché por iteración para intercambiar los datos de bloqueo y una mesa. Más en general, sólo un hilo a la vez puede actualizar la tabla compartida archivo descriptor (que impide cualquier aumento en el rendimiento), y el creciente número de hilos de hilado...
Regístrate para leer el documento completo.