stringtranslate.com

Asociación multinúcleo

La Asociación Multicore se fundó en 2005. La Asociación Multicore es un consorcio industrial sin fines de lucro , financiado por sus miembros , enfocado en la creación de API , especificaciones y pautas de estándares abiertos que permitan a los desarrolladores y programadores de sistemas adoptar más fácilmente la tecnología multinúcleo en sus aplicaciones .

El consorcio ofrece un foro neutral para proveedores y desarrolladores que están interesados ​​en trabajar con productos relacionados con múltiples núcleos y/o que los están haciendo proliferar, incluidos procesadores , infraestructura, dispositivos, software y aplicaciones. Sus miembros representan a proveedores de procesadores , sistemas operativos , compiladores , herramientas de desarrollo , depuradores , herramientas ESL / EDA y simuladores, y a desarrolladores de aplicaciones y sistemas .

Proyectos completados

En 2008, el grupo de trabajo de la API de comunicaciones multinúcleo publicó la primera especificación del consorcio, denominada MCAPI . MCAPI es una API de paso de mensajes que captura los elementos básicos de comunicación y sincronización que se requieren para sistemas integrados estrechamente distribuidos (varios núcleos en un chip y/o chips en una placa de circuito ). Los sistemas de destino para MCAPI abarcan múltiples dimensiones de heterogeneidad (por ejemplo, heterogeneidad del núcleo, heterogeneidad de la estructura de interconexión , heterogeneidad de la memoria, heterogeneidad del sistema operativo , heterogeneidad de la cadena de herramientas de software y heterogeneidad del lenguaje de programación).

En 2011, el grupo de trabajo MCAPI publicó la versión 2.0 de MCAPI. Esta versión mejorada añade nuevas funciones, como dominios para fines de enrutamiento. La versión 2.0 de MCAPI añade un nivel de jerarquía a esa red de nodos mediante la introducción de "dominios". Los dominios se pueden utilizar de diversas formas específicas de la implementación, como para representar todos los núcleos de un chip determinado o para dividir una topología en áreas públicas y seguras. MCAPI 2.0 también añade tres nuevos tipos de parámetros de inicialización (atributos de nodo, configuraciones específicas de la implementación, información de implementación como la topología de red inicial o la versión de MCAPI que se está ejecutando). El grupo de trabajo MCAPI está presidido por Sven Brehmer.

En 2011, el grupo de trabajo de la API de gestión de recursos multinúcleo publicó su primera especificación, denominada MRAPI. MRAPI es una API estándar de la industria que especifica las capacidades esenciales de gestión de recursos a nivel de aplicación. Las aplicaciones multinúcleo requieren esta API para permitir el acceso simultáneo coordinado a los recursos del sistema en situaciones en las que: (1) no hay suficientes recursos para dedicar a tareas o procesadores individuales, y/o (2) el sistema de tiempo de ejecución (fase del ciclo de vida del programa) no proporciona un mecanismo de acceso uniforme para coordinar el uso compartido de recursos. Esta API es aplicable tanto a implementaciones multinúcleo integradas SMP como AMP (en las que AMP se refiere a heterogéneas tanto en términos de software como de hardware). MRAPI (junto con otras API de asociación multinúcleo) puede servir como una herramienta valiosa para implementar aplicaciones, así como para implementar dichos administradores de recursos con todas las funciones y otros tipos de servicios en capas. El grupo de trabajo de MRAPI fue presidido por Jim Holt.

En 2013, el grupo de trabajo Multicore Task Management API (MTAPI) publicó su primera especificación. MTAPI es una especificación estándar para una interfaz de programación de aplicaciones (API) que admite la coordinación de tareas en sistemas paralelos integrados con núcleos homogéneos y heterogéneos. Las características principales de MTAPI son la programación en tiempo de ejecución y la asignación de tareas a los núcleos del procesador. Debido a su comportamiento dinámico, MTAPI está destinado a optimizar el rendimiento en sistemas multinúcleo, lo que permite al desarrollador de software mejorar la estrategia de programación de tareas para la latencia y la equidad. Este grupo de trabajo fue presidido por Urs Gleim de Siemens .

En 2013, el grupo de trabajo de Prácticas de programación multinúcleo (MPP) elaboró ​​una guía de programación de software multinúcleo para la industria que ayuda a mejorar la coherencia y la comprensión de los problemas de programación multinúcleo . La guía MPP proporciona las mejores prácticas aprovechando el lenguaje C / C++ para generar una guía de valor genuino para los ingenieros que se acercan a la programación multinúcleo. Este grupo de trabajo estuvo presidido por Rob Oshana de NXP Semiconductors y David Stewart de CriticalBlue .

En 2015, el grupo de trabajo Interfaz de software/hardware para núcleos múltiples/muchos núcleos (SHIM) presentó una especificación para definir un estándar de descripción de arquitectura útil para el diseño de software. Algunas características arquitectónicas que describe SHIM son la topología del hardware, incluidos los núcleos del procesador , los aceleradores , las memorias caché y los canales de comunicación entre núcleos, con detalles seleccionados de cada elemento, e información sobre instrucciones, memoria y rendimiento de la comunicación. Este grupo de trabajo estuvo presidido por Masaki Gondo de eSOL [1].

Grupos de trabajo activos

OpenAMP

OpenAMP Multicore Framework es un marco de código abierto para desarrollar software de aplicación para sistemas de multiprocesamiento asimétrico (AMP), [1] similar a OpenMP para sistemas de multiprocesamiento simétrico. [2]

Existen varias implementaciones de OpenAMP Multicore Framework, cada una de ellas diseñada para interoperar con todas las demás implementaciones a través de la API de OpenAMP. Una implementación de Multicore Framework, desarrollada originalmente para Xilinx Zynq , se ha convertido en código abierto en el marco del proyecto de código abierto OpenAMP. [3] [4] Mentor Embedded Multicore Framework (MEMF) es una implementación propietaria del estándar OpenAMP. [4]

El estándar API OpenAMP se gestiona bajo el paraguas de Multicore Association. [4]

Referencias

  1. ^ "Apertura de AMP"
  2. ^ Peng Zhang. "Tecnología avanzada de control industrial". pág. 210.
  3. ^ "repositorio de open-amp"
  4. ^ abc Felix Baum, Arvind Raghuraman. "Aprovechamiento completo de los SoC multinúcleo heterogéneos basados ​​en ARM emergentes". 8.º Congreso europeo sobre software y sistemas integrados en tiempo real (ERTS 2016), enero de 2016, TOULOUSE, Francia. ffhal-01292325

Enlaces externos