domingo, 19 de agosto de 2012

El rover Curiosity en Marte ¿Cómo es la computadora que lo controla?

 El pasado 6 de agosto del presente año 2012 el rover Curiosity aterrizaba en planeta Marte para una larga misión de exploración que durará todo un año marciano (687 días). Después de un viaje espacial de cerca de 9 meses, los famosos siete minutos de terror del descenso y ante una misión tan larga ¿que tipo de computadora se ocupa de mantener un entorno tan complejo? Pues bien, según la documentación de la NASA, el rover tiene dos computadoras gemelas basadas en la placa BAE RAD750, especialmente preparadas para resistir la radiación espacial (radiation-hardened). De las dos máquinas sólo una está activa en cada momento y la otra está en standby para actuar en caso de que la primera falle (cold-standby).

 Esta computadora no es que tenga unas especificaciones que llamen la atención respecto a los estándares de los ordenadores personales de hoy en día, por ejemplo el reloj de la CPU sólo alcanza los 200Mhz. Sin embargo, esta velocidad de reloj es 10 veces superior a la que tienen equipos rover de misiones a Marte anteriores, que usaban la placa BAE RAD6000 a 20MHz. Esto nos da una idea del esfuerzo que se ha hecho por aumentar la capacidad de proceso en este sistema dentro de las limitaciones existentes por la protección frente a la radiación cósmica, el espacio en rover y la potencia eléctrica disponible.
 Algo similar ocurre con las capacidades de memoria DRAM y flash, que también han aumentado su capacidad hasta 256 Mb y 2 Gb respectivamente, desde 128 Mb y 256 Mb de misiones anteriores.
 En cuanto al software, el sistema operativo que maneja el sistema es el VxWorks de Windriver. Este es un sistema operativo de tiempo real (RTOS) muy probado, mas de 25 años de evolución, y con garantía absoluta de fiabilidad a la vez que bajas demandas de hardware. Vamos, lo necesario para esta misión.
 Finalmente, como nota curiosa, resaltar que el sistema está preparado para actualizaciones remotas del software. De hecho una nueva versión se envió durante el pasado mes de mayo y se instaló entre mayo y junio, y otra versión se envió en junio y será instalada ahora que el vehículo ya se ha posado sobre la superficie de Marte. Esperemos que todo vaya sobre ruedas, nunca mejor dicho.

miércoles, 8 de agosto de 2012

CPUmaxer en acción

Aquí tenemos unas imágenes de mi herramienta CPUmaxer en acción en una máquina de 4 CPUs. En esta primera imagen podemos ver la máquina con un bajo uso de CPU y CPUmaxer mostrando 0 hilos de ejecución.
Por cierto, aunque el Task Manager de Windows nos dice que tenemos 4 CPUs, CPUmaxer nos dice que en realidad hay una CPU física (1 socket), con dos núcleos (2 cores) y que cada core debe de tener dos CPUs lógicas (hyperthreading habilitado), porque al final el número de CPU lógicas es de 4 para el sistema operativo.

Si ahora arracamos la aplicación con dos hilos, vemos como rápidamente el uso de CPU subre desde un 29% a un 73%

Y si ya nos atrevemos con 4 hilos, tantos como CPUs lógicas hay en el sistema, veremos como éste se satura completamente al 100% de utilización:


Para volver al estado normal basta bajar el número de hilos de ejecución a cero o símplemente cerrar la aplicación.
Una recomendación para terminar: aunque se pueden aplicar hasta 39 hilos de ejecución, es mejor no pasar del número de CPUs que tenga nuestro sistema. Por encima de este límite el sistema no se colgará, pero se volverá muy lento y os costará un poco bajar en número de hilos de vuelta a cero.

Postdata: lo máximo que he podido probar la herramienta es en un sistema de 8 CPUs, pero me encantaría que alguien me enviara un screenshot de un sistema de 39 CPUs totalmente saturado :)


domingo, 5 de agosto de 2012

Pon a tope tu CPU con CPUmaxer

Os quiero presentar una aplicación que desarrollé hace un tiempo pero que creo que sigue siendo útil: CPUmaxer. Sirve sencíllamente para poner a tope la CPU de las máquinas Windows, tanto físicas como virtuales. Basta seleccionar el número de CPUs de la máquina y lanzarla a correr ¡Puede poner a tope hasta 39 CPUs!!
Pero ¿Por qué hacer esto? El interés principal de esta herramienta es para hacer pruebas de monitorización en los servidores empresariales y verificar los sistemas de alerta. También la herramienta muestra información que puede ser de utilidad sobre la CPU del sistema: marca y modelo, número de sockets, número de cores, etc. Y finalmente, por que no, la herramienta también sirve para ver como se ponen a tope todas las CPUs de nuestro flamante nuevo portátil.


Por último decir que la herramienta es open source y está disponible bajo licencia de MIT en Codeplex: http://cpumaxer.codeplex.com/
En un próximo post mostraré algún detalle más sobre el uso de CPUmaxer en la práctica.