Linux "corre más"
Siempre me ha llamado la atención la tecnología de la Fórmula I, sobre todo el aspecto informático, telemetría, etc. Cada vez que hay una carrera en televisión cruzo los dedos para que la cámara enfoque algún pantallazo de los ordenadores del box. En fin, que por eso me ha llamado la atención la noticia de IBM que ahora os envío. Y ahora una pregunta maliciosa: ¿Os imagináis un equipo de Fórmula I basando su desempeño en Windows? A lo mejor hasta existe y yo no me he enterado... ;-)
[Fuente: IBM] El equipo Renault Formula 1 ha seleccionado tecnología eServer y de almacenamiento de IBM, funcionando sobre Linux, para conseguir reducir el tiempo de análisis de los motores y la carrocería de sus coches en más de un 90%...
Renault Formula 1 trabajará con una serie de servidores IBM funcionando en paralelo (cluster) optimizados para las aplicaciones de negocio más comunes, lo que les permitirá reducir sensiblemente el tiempo de análisis y los costes de desarrollo. Además, han seleccionado una serie de soluciones de almacenamiento para capturar y almacenar todos los datos que se generen durante las pruebas.
“Esta tecnología de IBM ha demostrado rápidamente ser la herramienta de análisis y simulación ideal para el desarrollo de los mejores motores y carrocerías para Renault Formula 1. Gracias a los servidores xSeries y Linux, tenemos un cluster de alto rendimiento y bajo coste que nos ayudará a realizar simulaciones cada vez más precisas. Con 12 servidores de IBM trabajando en paralelo, una operación de simulación que podía llevarnos tres semanas ahora se completa en 18 horas”, ha señalado Christophe Verdier, director de TI de Renault F1 Team. “El rendimiento de este sistema ha permitido a Renault F1 optimizar completamente las capacidades de su motor V10. Esto le ha otorgado al equipo Renault F1 una ventaja considerable, ya que una carrera se gana tanto en el proceso de fabricación como en el circuito”.
“Ayudar a Renault Formula 1 es un desafío tanto humano como técnico”, ha afirmado Nieves Delgado, directora de la división de Sistemas y Tecnología (STG) de IBM para España y Portugal. “Sin duda, podemos decir que este proyecto ha sido una gran prueba para IBM y su business partner ServiWare, pero la aventura no termina aquí, ya que seguiremos trabajando con Renault Formula 1 para ayudarles a cumplir su objetivo de ser los primeros en el campeonato”.
Especificaciones técnicas
La solución, un cluster IBM e1350 con Linux, se basa en los servidores eServer e325 y e326 de IBM con procesadores Opteron de AMD. Además, Renault Formula 1 ha desplegado dos servidores eServer pSeries 630 de IBM con AIX y un servidor de almacenamiento TotalStorage DS 4300 para almacenar los datos generados por el cluster e1350. IBM ha trabajado conjuntamente en el proyecto con el business partner ServiWare.

- 11965 lecturas
Twitter

Marketing al fin y al cabo
La Formula 1 puede seguir diciendo que se trata de la prueba de fuego para las nuevas tecnologias a implementar en los turismos, pero a nadie se le escapa que en realidad es una plataforma de marketing y espectaculo como el resto de los deportes de masas. Si IBM esta con algun equipo, evidentemente es para que en algun momento se diga que "el equipo X trabaja con servidores IBM porque son los que mas capacidad nos dan...".
En este caso en concreto, en realidad es indiferente que hagan el desarrollo y analisis con estos servidores, o con macOS o con windows 98. Todo el trabajo que se realiza en ellos es a posteriori y en la central de Renault, porque el trabajo de adquisicion de datos en carrera no lo puede realizar un Linux porque no es un sistema operativo en tiempo real (ni Linus quiere que lo sea), y para la cantidad de datos y la velocidad a la que se te presentan en el aparato de telemetría es necesario que lo sea para que haya la minima fiabilidad.
Lo dicho, el marketing es lo que vende ;)
Tiempo real
A mí me parece que Linux sí puede funcionar en tiempo real (de hecho forma parte de muchos sistemas empotrados), pero a lo mejor me equivoco.
No del todo
Un SO en tiempo real es aquel que te garantiza un tiempo maximo entre la ejecucion de una instruccion y la siguiente (o entre que se emite una instruccion desde memoria y sale del procesador, hay versiones para todos los gustos). Ciertamente linux puede funcionar en sistemas en tiempo real, pero esto no significa que te "garantice" que vaya a hacerlo.
Los sistemas operativos en TR son dificiles de hacer y ademas poco flexibles precisamente porque tienen que cumplir esa garantia. Eso significa por ejemplo, que las interrupciones de los dispositivos no tienen porqué ejecutarse siempre, que el SO tenga menos tiempo para organizarse, etc. Normalmente se hacen para ejecutar un solo proceso importante.
Hace tiempo que hubo una discusion en la lista del kernel sobre esto mismo, y Linus la zanjó diciendo que el cambio no iba a realizarse (quieras que no, da prestigio) porque eso significaria que habria que saber exactamente que instruccion se esta ejecutando en cada momento en el procesador; y para hacerlo en los procesadores actuales (superescalares como minimo) habria que hacer muchos cambios en el nucleo. De todas formas creo que sí se pueden encontrar versiones y parches para hacerlo TR.
Bueno, sí pero no...
Este es uno de los tópicos más comunes cuando se habla de Linux... si Linux puede o no puede algo... pues yo digo que Linux lo puede todo. Linux, como todo el software libre, es como una arcilla flexible que se puede adaptar a la forma que deseemos tener. Es Software Libre y como tal, se mueve con otros parámetros y circunstancias.
Efectívamente el Kernel de Linux no tiene soporte para tiempo real. Afortunadamente, una de las ventajas clave del software libre es la posibilidad de ser modificado por el que dese tener otras prestaciones distintas de las que les proporcionan por defecto. Con ello, hay versiones de Linux para tiempo real o "RT-Linux". Lo más sorprendente es que el Kernel de Linux es tan flexible, que toda la implementación de tiempo real se puede activar y desactivar cuando se desee, ya que está compilada e implementada como un simple módulo del núcleo.
Información sobre una implementación en tiempo real.
He de decir que la Mandrake desde que te estoy escribiendo esta contestación tiene soporte para Tiempo Real en este momento ya que me bajé el soporte y lo he compilado con la intención de hacer unas pruebas para un sistema de fusión de información de sensores en tiempo real en procesos industriales críticos. En este caso uso tiempo real y un cluster de alta disponibilidad, para garantizar que el proceso industrial crítico se lleve a cabo sin problemas ya que es un proceso que cuesta muchos millones si falla.
Una de las ventajas más importante de RT-Linux, sobre otros sistemas en tiempo real, es ser de las pocas implementaciones de tiempo real que soporta arquitecturas multiprocesador. Pero he de decir que RT-Linux es simplemente una de las múltiples soluciones para tiempo real que corren bajo Linux, unas libres y otras propietarias.
Por lo tanto, el sistema de captura de datos, que es el más crítico y que debe funcionar en Tiempo Real. Es cierto que también se pueden obtener ciertas ventajas de Linux en el proceso posterior, como la posibilidad de manejar grandes cantidades de datos mediante un cluster, o las excelentes liberías de análisis matemático que hay disponibles para Linux que facilitan mucho las tareas de simulación. Pero eso es otra historia.
He de decir, que las capacidades para tiempo real de Linux se llevan utilizando con éxito en muchos ámbitos desde hace tiempo, como es el caso de los procesos bancarios.
"Free Software is diferent" y a ello nos debemos acostumbrar... que la línea principal de desarrollo no disponga de una funcionalidad, no significa que alguien no monte un "Fork" para que lo soporte. El que quiera que intente hacer que un sistema propietario que originalmente no lo es, funcione como sistema operativo en Tiempo Real...
No miremos el Software Libre solamente desde el lado del usuario, debemos mirarlo desde el lado del desarrollador y las posibilidades que tiene para los desarrolladores. ¿Publicidad?... yo hablo de capacidad de innovación y libertad de innovación. Por ello. digo sin temor a equivocarme ¡¡¡¡No a las patentes de software en Europa!!!!
"Copyleft 2005 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".
Tal vez no sea necesario en tiempo real
Las prestaciones del software en entornos industriales o procesos de produccion no siempre tiene que ser en tiempo real. Existen muchos casos donde los requerimientos no lo justifican y por lo tanto se puede desarrollar soft de adquisicion y manejo de datos con microprocesadores y software estandar.
He hecho desarrollos con microncontroladores de la famial 8051 (si ya se que no es la gran cosa, existen micros muy superiores y tambien arquitecturas AVR que combinan la potencia de los sistemas RISC con la facilidad de programacion de los CISC) donde nunca me vi afectado con los tiempos de ejecucion, y cuando si lo estube sali del paso recurriendo a algunos trucos y modificando el codigo del programa o bien jugando con las prioridades de las llamadas de interrupcion.
Desde luego que nunca hice nada de gran envergadura (menos que menos desarrollos para la F1), pero pienso que existen soluciones sin pasar por el software en tiempo real cuando la compliejidad de los sistemas no lo requieren (es mas, la gente que conozco y hace desarrollos para la industria evita meterse en este terreno).