El mejor tipo de proceso multi-core para cada aplicación

soluciones-dual-core-a-nivel-tarjeta1En teoría, un ordenador con dos o más núcleos será capaz de ofrecer mayor rendimiento que un procesador single-core con una disipación de potencia comparable. Sin embargo, el sistema operativo y la aplicación también tienen que ser igual de desafiantes para utilizar eficientemente todas opciones presentes en multi-core. Pero, qué tipo de proceso multi-núcleo es el más indicado para cada aplicación.

Ahora, tras concluir la carrera por la velocidad de reloj, se presenta la próxima fase de la evolución en el campo de tecnología de procesador. Gracias a su concepto paralelo (que anteriormente sólo estaba disponible en costosos ordenadores paralelos), los procesadores dual-core permiten la distribución de tareas a diversas unidades informáticas, duplicando así el rendimiento. La disipación de potencia de un procesador dual-core prácticamente no ha variado en comparación con el tradicional ordenador paralelo.

Respecto a la división single-core / dual-core, este último ofrece beneficios significativos en términos de rendimiento por vatio, junto con una mejor utilización de los recursos de hardware. No obstante, dado que la aproximación ideal depende de la aplicación, las diferentes opciones para proceso multi-core suponen un reto para los desarrolladores.

Multi-threading

En el área del proceso multi-core, se realiza una distinción entre dos tecnologías: multitarea y multi-threading. Multitarea (multi-tasking) es la capacidad para ejecutar varias aplicaciones simultáneamente, mientras que multi-threading es la capacidad de una aplicación para dividir tareas en varias sub-áreas y distribuirlas en diferentes CPU.

En teoría, la situación ideal sería multitarea con multi-threading con sistemas multi-procesador o multi-núcleo. Sin embargo, demasiados “múltiples” provocarían una gran confusión. Hay que recordar que se debe ir paso a paso: el software que es ideal para multi-threading es más rápido cuando tiene acceso a múltiples procesadores o núcleos, ya que el cálculo se puede realizar en paralelo.

Los desarrolladores de aplicaciones individuales que requieren elevadas capacidades informáticas deben adaptar su software a multi-threading para favorecer la utilización óptima de sistemas multi-core. Este suele ser el caso de sistemas con alto rendimiento de comunicaciones o prestaciones complejas de proceso de medios y gráficos. Los diseñadores de estas aplicaciones pueden optar por trabajar con soluciones conocidas como Intel Hyper-Threading o tecnología dual como los procesadores Intel Xeon.

Multitarea

En el otro lado, se deben tener en consideración las aplicaciones sin contacto que hasta ahora no se podrían ejecutar porque una tarea podía bloquear a otra. En particular, esta situación es inaceptable para las aplicaciones en tiempo real, ya que podrían verse afectadas por el lanzamiento de un navegador o por el firewall, por ejemplo.

Un sistema multitarea puede ejecutar las tareas de diferentes programas en paralelo y sin conflictos, y fomenta un ahorro de costes de hardware. En la actualidad, la solución ideal es una combinación de los dos: muli-threading y multitarea con multi-core.

Al diseñar el proceso multi-core apropiado, existen dos modelos básicos (de acuerdo a los requerimientos) para aplicaciones multi-threaded o multitarea: multiproceso simétrico y multiproceso asimétrico.

Multiproceso simétrico

En el caso de multiproceso simétrico (SMP), una sola instalación en un sistema operativo trabaja con todos los núcleos equitativamente, y todas las aplicaciones se pueden ejecutar en ambos núcleos. Este es el multiproceso “convencional”, que será familiar para aplicaciones de servidor, porque facilita multitarea y multi-threading genuinos.

multiproceso-simetrico

Como sólo hay un sistema operativo, se pueden asignar recursos a ciertas aplicaciones, garantizando así la mejor utilización de capacidad de hardware. Además, las herramientas de traza de sistema pueden compilar las estadísticas e interacciones de aplicación para todo el chip multi-core, facilitando la depuración y la optimización de las aplicaciones.

La sincronización de aplicaciones es sencilla, dado que se pueden emplear las funciones estándares del sistema operativo en lugar de complejos mecanismos comunicación inter-proceso (IPC). Como este es el modo más simple de multiproceso para desarrolladores de sistema, la forma simétrica será utilizada en muchas aplicaciones embebidas.

Sin embargo, cuando se necesita tiempo real ‘deterministic’ y visualización compleja, la idoneidad del multiproceso puro con dual-core queda limitada a causa del mismo problema asociado a sistemas de un solo núcleo: el acceso que tiene gran demanda de recursos puede paralizar todo el sistema en tiempo real. Para aplicaciones como estas, se creó el multiproceso asimétrico.

Proceso multi-core asimétrico

El multiproceso asimétrico (ASMP) es útil para aplicaciones que previamente no se podían ejecutar con un sistema embebido. En este caso, un sistema operativo separado o instalación separada del mismo sistema operativo trabaja con cada núcleo de procesador.

multiproceso-asimetrico

Con el proceso multi-núcleo asimétrico es posible determinar cómo están localizados los recursos compartidos de hardware para uso entre los núcleos individuales. El hardware específico se ofrece normalmente el arranque y queda asignado estáticamente para favorecer una reserva de almacenamiento a nivel físico, uso de periféricos e interrupción de gestión. Si el sistema también asignó dinámicamente fuentes IPC se podría lograr una coordinación entre los núcleos más complicados.

En un sistema multiproceso asimétrico, una tarea siempre se procesa desde el mismo núcleo, incluso cuando otros están libres. Aunque esto suponga que algunos núcleos puedan estar sobreutilizados o infrautilizados, las aplicaciones individuales operan de una forma segura e independiente. Este tipo de multiproceso garantizará ahorros en conexión con aplicaciones industriales, donde anteriormente era imposible ejecutar dos soluciones en un solo sistema.

Por ejemplo, una aplicación en tiempo real puede operar en un núcleo, con la visualización trabajando en el otro. A pesar de este tipo de soluciones no obtendrá el beneficio óptimo del rendimiento total disponible, este aspecto carece de importancia, ya que el factor crítico es que los procedimientos asimétricos hacen realidad un proceso dos en uno de una manera segura y razonablemente eficiente.

En el futuro, cuando el foco de desarrollo haya pasado de procesadores dual-core a multi-core, será posible llevar a cabo un proceso cuatro en uno u ocho en uno.

El debate de la utilización de los dos núcleos será redundante. Un procedimiento asimétrico también ofrece un camino para que una aplicación acceda a ambos núcleos: por ejemplo, por medio de la tecnología de virtualización disponible con dual-core, que se puede integrar como una capa abstracta. De esta forma, la aplicación en tiempo real se beneficia de los dos núcleos, algo esencial en sistemas de control complejo.

El procedimiento asimétrico es el único en el que dos sistemas operativos diferentes pueden operar en paralelo. Por esta razón, se utiliza en muchas aplicaciones industriales en tiempo real. Como los núcleos disponibles aumentan, será necesario integrar tecnología de virtualización, la única solución efectiva para distribuir una aplicación homogénea en múltiples núcleos. En el futuro, las combinaciones de procedimientos simétricos y asimétricos dotarán de una alternativa útil donde existan más de dos núcleos.

VT – Tecnología de Virtualización

La Tecnología de Virtualización (VT) es un elemento de la tecnología dual-core y un área clave de diferenciación con respecto a tecnologías previas, simplificando la gestión de software y liberando los desarrolladores de aplicación de la gestión IPC. Además, Intel, entre otras compañías, está ayudando a establecer a VT como el estándar para todas las nuevas plataformas.

VT permite que múltiples sistemas operativos y aplicaciones trabajen en una plataforma como ‘máquinas virtuales’ en particiones independientes. Dado que los procesos que podrían entrar en conflicto con sistemas single-core se pueden separar, es posible mejorar la estabilidad de los sistemas. Las particiones se pueden asignar en función de los requerimientos existentes durante la operación. El elevado nivel de abstracción también permite que las aplicaciones sean llevadas a cabo desde un servidor a otro, algo que era impensable hace muy poco tiempo y un beneficio para la gestión IT embebida.

Finalmente, la virtualización también ofrece la opción de integrar sistemas operados en una base stand-alone (como sistemas de control, firewalls o servidores de datos) en un solo sistema, pero quedando totalmente aislado de otras soluciones. Esto abre el camino hacia un ahorro considerable de coste.

Principios generales para aplicar todos los métodos

Independientemente del método elegido, el desarrollador de un sistema dual-core debe, por ejemplo, reducir considerablemente el tamaño de las tareas al llevar a cabo una programación paralela. Esto maximizará la ‘granularity’ de la estructura y, por consiguiente, garantizará la utilización óptima de los recursos disponibles.

Por otro lado, ante el creciente número de tareas que se pueden realizar independientemente, se requiere información de otras tareas para conseguir un resultado adecuado. Las reglas de comunicación se deben definir para responder a este tipo de interdependencia, algo esencial en tareas que “esperan” a otras, ya que pueden provocar un bloqueo.

La palabra clave es “integridad” de acciones distribuidas. Teniendo en mente que la programación paralela puede acelerar una aplicación o crear un cuello de botella, es esencial adquirir experiencia en este campo para alcanzar el éxito de un sistema dual-core y, en un futuro cercano, multi-core.

Por lo tanto, es fundamental que los OEM se centren en estas competencias, ya que aquí es donde se generan las ventajas competitivas, no sólo a través de la implementación del procesador idóneo para la aplicación. En estas áreas especialistas de hardware, como Kontron, pueden suministrar las soluciones más adecuadas a nivel tarjeta y sistema, así como hardware estándar y a medida para necesidades específicas.

soluciones-dual-core-a-nivel-sistemaYa se encuentran disponibles siete plataformas, con soluciones adicionales que se implementan paso a paso. A nivel tarjeta, hay cuatro plataformas informáticas embebidas: placa madre mini-ITX, tarjeta CompactPCI de 3HE y 6HE y módulo ETXexpress (COM Express con PICMG COM.). Todas están equipadas con el procesador Intel Core Duo T2500 de 2 GHz; tres de ellas tienen el Mobile Intel® 945GM Express Chipset y la tarjeta CompactPCI de 6HE con Intel E7520 y 6300ESB.

La oferta se completa con tres soluciones dual-core a nivel sistema: CompactPCI de 3 HE, el PC V-Box Express y la familia KISS (Kontron Industrial Silent Server) de servidores de bajo ruido. Además, Kontron seguirá introduciendo otros sistemas basados en dual core, tales como Panel PC (V-Panel Express), junto con soluciones a nivel tarjeta.soluciones-dual-core-a-nivel-tarjeta

El diseño específico a nivel de tarjeta y sistema representa otra característica diferenciadora de la compañía. Por lo tanto, sea cual sea el problema, Kontron tiene la capacidad para ofrecer la solución ideal.

Artículo escrito por Norbert Hauser, Vicepresidente de Marketing, Irene Hahner, Producto Manager, y Peter Ahne, Marketing Manager de Kontron

Tags: , ,

Semanario noticias

Loading...Loading...


Fuentes de alimentación de alta fiabilidadSAI de 10 a 20 kVA Nuevo Analizador de Espectro Portátil Software de análisis de datos Osciladores miniaturizados de cuarzo Filtros SAW