Página de la asignatura
Tema anterior
Tema siguiente
Página principal del grupo GeNeura

2. Representación gráfica aplicada a la evaluación de prestaciones

Para presentar y analizar los resultados obtenidos de la ejecución de un monitor sobre un sistema o una comparativa entre varios sistemas normalmente se usa algún tipo de gráfico, como por ejemplo el indicado en las ilustraciones del capítulo anterior, gráficos de barras de evolución temporal (las llamadas strip chart). Más habitualmente, para resumir el rendimiento de todo el sistema se suele usar un gráfico de Gantt, o bien un gráfico de Kiviat. Veremos éste con más detenimiento.

En general, la visualización es esencial casi en cualquier tarea científica, pero en evaluación de prestaciones sirve para apreciar de un vistazo cuál es el estado del sistema, y si hay algún problema, de dónde puede prevenir. Ventajas adicionales son cantidades que se pueden calcular directamente sobre los gráficos, especialmente las llamadas figuras de mérito, que están relacionadas con algún aspecto de los gráficos.

En un gráfico de Gantt, se representa en abscisas el tiempo, y en ordenadas una línea que representa los instantes durante los cuales un recurso ha estado ocupado. Se suelen usar gráficos similares en ingeniería del software, y, en general, en planificación de proyectos. En este sitio se puede descargar el código fuente de un programa que traza un gráfico de Gantt; también se puede crear uno desde el mismo sitio.

[Gráfico de Gantt,
     Tomado de http://singer.kettering.edu/gantt.htm]

A partir de la gráfica de Gantt se puede hacer análisis de Pert, con el objetivo de calcular caminos críticos es decir, en qué puntos se debe concentrar más esfuerzo para que el proyecto llegue a término) y demás.

Este tipo de herramienta se usa en casos bastante específicos; en concreto, en programación en entornos paralelos o cliente-servidor, en programación de sistemas en tiempo real, y en diseño de circuitos, por ejemplo. No es el tipo de gráfica que uno debe hacer cada vez que se enfrenta a un análisis de prestaciones.

En un gráfico de Kiviat, se representan los porcentajes de uso y solapamiento de diferentes componentes del sistema como una figura geométrica que une diferentes puntos, situados sobre los radios de un círculo, que representan esos porcentajes. Teóricamente, es posible ver de un vistazo el problema que tiene un sistema. Habitualmente está dividido en 8 sectores; y en ellos se suele colocar alternativamente magnitudes del tipo “ más alto es mejor” con magnitudes del tipo “bajo es mejor”. Una de las distribuciones puede ser, en sentido e las agujas del reloj, CPU ocupada, sólo CPU, CPU y un canal, un canal sin CPU, un canal activo, CPU esperando, CPU usuario, CPU sistema, alternando índices de uso con índices de solapamiento, e índices del tipo HB (más alto es mejor) con otros del tipo LB (más bajo es mejor).

[Gráfico de Kiviat,
     Tomado de
      http://nakula.rvs.uni-bielefeld.de/made/folie/folie04.html, que
      a su vez lo ha tomado de la página 159 del Jain]

Como “canal” normalmente se suele usar el o los discos, aunque también se podría representar la red o el subsistema gráfico, por ejemplo. Diferentes formas características indican diferentes "tipos" de sistemas, el sistema perfecto sería el denominado estrella de Kiviat, una estrella de 4 puntas (o 3, dependiendo del número de "canales" representados). En cualquier caso, hay que mirar siempre que los indicadores a las 12, 3, 6 y 9 sean altos, y los demás bajos, y que estos indicadores tengan más o menos el mismo valor. Valores altos de los indicadores impares indican un sistema que no funciona como debiera, y si los valores pares tienen valores muy diferentes, eso suele indicar un sistema desequilibrado, con demasiado uso de CPU o de alguno de los canales. Al gráfico de Kiviat se le puede añadir una tercera dimensión temporal, formando un tubo de Kiviat, que indica la progresión del gráfico de Kiviat a través del tiempo.

En principio, sería posible extraer una figura de mérito (FOM, figure of merit) del diagrama de Kiviat directamente, pero adolece de una serie de fallos: por ejemplo, las variables están correlacionadas unas con otras; no todos los ejes tienen la misma escala; se consideran buenos valores extremos, lo que no necesariamente es cierto; las variables de tipo nominal es mejor se dejan de lado, por ejemplo.

En cuanto a representar la información sobre un sistema o un benchmark en un gráfico, el tipo del gráfico dependerá, sobre todo, del tipo de variable que se va a presentar: cualitativa o categórica, ordenada o no, que están definidas por una serie de clases mutuamente exclusivas, y cuantitativa discreta o continua, que es aquella variable cuyos niveles se expresan mejor numéricamente.

  1. Buscar un programa que dibuje un gráfico de Kiviat interactivamente, o bien hacerlo uno mismo.

A la hora de representar gráficamente el resultado de un benchmark, o de cualquier tipo de medición de prestaciones o de carga de trabajo, es conveniente seguir las siguientes reglas:

  1. Partiendo del gráfico por defecto de algún programa de gráficos, irlo convirtiendo en uno que cumpla las reglas anteriores.

Algunos errores que se suelen cometer son los siguientes:

Por supuesto, a veces estas equivocaciones se suelen hacer a propósito, sobre todo si uno quiere demostrar algo con los gráficos. El saber este tipo de cosas ayuda también a identificarlas cuando uno se las encuentra:

  • Usar tamaños de célula no adecuados en histogramas, y usar escalas partidas en gráficos de columnas. En el primer caso, hay que aplicar tests estadísticos para comprobar que se haya hecho adecuadamente; siempre tendrá que haber al menos 5 puntos experimentales en cada cubo.

    (Tomados del Jain)
    1. ¿Qué tipo de gráfico (líneas o barras) se usaría para trazar:
      • Uso de CPU para 12 meses del año.
      • Uso de CPU en función del tiempo en meses.
      • Número de E/S a 3 discos duros: A, B, y C.
      • Número de E/S como una función del número de discos duros en el sistema.
    2. Para un sistema cualquiera, lista un número de magnitudes tipo "más alto es mejor" y "más bajo es mejor" y dibuja un gráfico de Kiviat típico usando valores cualesquiera.
    Evaluación y explotación de sistemas informáticos. R. Puigjaner, J. J. Serrano, A. Rubio.
    Portada del libroThe art of computer systems performance analysis: Techniques for experimental design, measurement, simulation and modelling, Raj Jain, Wiley, 1992. Por la fecha de publicación, se ve que tiene el mismo problema que el primero; sin embargo, tiene un enfoque ameno y completo al problema del análisis de prestaciones.
    Representación visual de prestaciones de ordenadores paralelos, donde describe diferentes técnicas para visualizar carga de los sistemas, así como "caminos críticos" y patrones de acceso a los datos.
    Un capítulo del libro "How to lie with Statistics" también habla del tema; aunque es antiguo, es bastante interesante.

    Licencia de Creative Commons
    Esta obra está bajo una licencia de Creative Commons.

    Realizado por
    Juan Julián Merelo Guervós jmerelo at geneura.ugr.es
    Depto de Arquitectura y Tecnología de Computadores
    Universidad de Granada
    URL:http://geneura.ugr.es/~jmerelo/DyEC/Tema2/DyEC-Tema2.html