martes, 13 de mayo de 2008

Apuntes de clase 13/05/08

Empezamos la clase comentando los errores de la quinta practica:

- Hay que plantear objetivos reales, con cargas de trabajo reales.

Ejemplo: El tiempo que tarda en arrancar el SO no es una carga real.

- Los objetivos no pueden ser sobre la tasa de uso de un componente (memoria, CPU)

- Las pruebas se diseñan en funcion del objetivo.

- El objetivo tampoco es bajarse algun programa que optimize el sistema por nosotros.

Ahora vemos un ejemplo de una buena practica de un compañero.

El ha planteado como objetivo el servir el maximo nº posible de paginas por segundo con un servidor apache.

Practica de Fran Torres

Surgen varios comentarios a raiz de esta practica, ya que en realidad lo que ha hecho es comparar 2 sistemas y ver cual de ellos es mas apropiado para su tarea.

Vemos a continuacion las notas de clase de Sara (recordemos que en la clase anterior se explico la practica 6 y el trabajo final).

Ahora pasamos a ver un ejercicio de autoevaluacion de davis87

Una pagina curiosa: http://www.geek.com/the-x86-evolution-will-lead-the-revolution/

Seguimos con el temario...

4.2 Utilización de un benchmark

Empieza el profesor aclarando la diferencia entre monitor y benchmark: el monitor muestra la carga real del sistema y el benchmark aplica una carga a tal sistema y hace mediciones en relacion a el.

4.2.1 ¿Quién propone un benchmark?

Para difundir los benchmarks hay 2 alternativas:

- Que sean evaluados por una empresa externa, al a que se le paga por ella.

- Que los benchmarks sean propuestos por un conjunto de empresas o instituciones que acepten los resultados que arrojen.

4.2.2 Tipos de benchmarks

La clasificacion se hace en funcion de la representacion de la carga de trabajo:

- Programas reales: Realizan una carga de trabajo real.

- Núcleos o kernel: Representan las operaciones fundamentales de una carga de trabajo.

- Benchmarks de juguete: Miden parámeros básicos, como los megahercios o la latencia de la memoria.

- Sintéticos: Operación estadística que mide la carga de trabajo usada con una serie de programas y resume la carga.

4.2.4 Errores comunes

- Representar solo la carga media: No se representan los tipos de carga.

- Ignorar la distribución desigual de las peticiones de dispositivos

- No controlar el nivel de carga

- Ignorar los excesos de la cache: Es importante, dado el nº de caches que tienen los sistemas hoy en dia. El tamaño de la caché influira por tanto en los resultados.

- Ignorar el overhead del monitor

- No validar las medidas

- No asegurarse de las mismas condiciones iniciales: Si estamos probando 2 ordenadores, tienen que estar en las mismas condiciones y con la misma configuracion.

- No medir las prestaciones del transitorio

- Utilizar los porcentajes de uso de los dispositivos para comparar prestaciones: MUY IMPORTANTE PARA EL TRABAJO FINAL

- Recoger demasiados datos con muy poco análisis

4.2.5 Juegos de benchmarking

- Usar configuraciones diferentes para ejecutar la misma carga de trabajo

- Elegir las especificaciones de forma que favorezcan a una máquina determinada

- Usar una secuencia de trabajos sincronizada, de forma que el solapamiento entre el trabajo de la CPU y del subsistema de E/S produzcan mejores prestaciones

- Elegir una carga de trabajo arbitraria, que puede dar buenas prestaciones para una máquina determinada

- Usar benchmarks demasiado pequeños

- Proyectar o interpolar resultados de un benchmark, es decir, medir las prestaciones de un ordenador con un procesador determinado, y proyectar los resultados a otro ordenador con un número de procesadores diferente

- Elegir el sistema base de normalización de forma arbitraria

Video del dia: Temperatura y benchmarking