domingo, marzo 30, 2008

Mediciones en computo paralelo

Como en cualquier área, es necesario disponer de métricas que ayuden a evaluar objetivamente, el comportamiento óptimo en el desarrollo de alguna actividad.

Así, en computo paralelo existen mediciones que indican que tan bien está programada una aplicación que corre en varios procesadore (aplicaciones paralelas).

Las principales son dos, el speed-up y la eficiencia.

El speed-up es la relación en tiempo entre una aplicación corriendo secuencialmente (idealmente, el mejor algortimo secuencial para una tarea dada) y la misma aplicación corriendo en múltiples procesadores (el mejor algoritmo paralelo para la misma tarea); e indica la ganancia lograda al aumentar el número de procesadores. Es decir:

speed-up = (tiempo en un procesador) / (tiempo en varios procesadores)

Como se puede apreciar, el speed-up no es único para cualquier número de procesadores; por ello se debe calcular según el número de procesadores involucrados en el proceso; además se puede ver que el speed-up es una métrica adimensional.

Al graficar el speed-up contra el número de procesadores, lo ideal (deseable) es tener una línea recta, indicando que nuestro problema es super-escalable, es decir, que siempre se puede mejorar el rendimiento de nuestra aplicación, incrementando el número de procesadores.

Sin embargo, en la mayoría de los casos, con el incremento del número de procesadores se puede tener un comportamiento asintótico, y en algunos casos, incluso después de cierto número de procesadores, comenzar a decrecer el rendimiento (el speed-up cae).

La siguiente métrica, la eficiencia, se determina como el speed-up entre el número de procesadores para ese speed-up; e indica cuan eficientemente se están ocupando los recursos, una eficiencia pequeña nos dice que se está gastando muchos recursos para el resultado obtenido.

Estás métricas resultan útiles dado que dan una indicación de que tan bien se está paralelizando algún algoritmo, o cuan bien se realiza una tarea de manera paralela, por ello es conveniente tener estas mediciones presentes.

domingo, marzo 16, 2008

Mini Tip: Reproduciendo canciones en la consola

Si se cuenta con una tarjeta de sonido que está configurada y operativa, pero no se cuenta con ambiente gráfico, se puede reproducir canciones que se encuentren condificadas en formato mp3 o en formato ogg desde la consola.

Existen comandos que nos permiten hacerlo, uno para cada formato. Así para canciones en formato mp3 se cuenta con el comando mpg321.

>$ mpg321 cancion.mp3

Si se quiere reproducir varias canciones a la vez, solo hay que crear un archivo con la lista de las canciones (con la ruta si están en directorios distintos) y pasarlo como argumento.

>$ mpg321 --list lista_de_canciones.txt

Si las canciones se encuentran condificadas en formato ogg, se cuenta con el comando ogg123 que es el simil a mpg321, y funciona de igual manera.

>$ ogg123 cancion.ogg

O con una lista de canciones

>$ ogg123 --file lista_de_canciones.txt

Para saber más

>$ man mpg321
>$ man ogg123