Programmation multicœur : l’API Task Management de la Multicore Association accessible en open source

Organisme créé en 2005 pour promouvoir l’usage des processeurs multicœurs, la Multicore Association annonce la mise au point par Siemens d’une implémentation open source de la spécification MTAPI (Multicore Task ...Management Application Program Interface). Publiée en 2013, cette spécification définit une API dont le but est de simplifier le développement de logiciels parallèles embarqués grâce à l'utilisation de méthodologies de programmation familières.

MTAPI se charge en particulier de l’ordonnancement des tâches en cours d’exécution, et de leur affectation sur les différents cœurs de processeurs. L’implémentation de l’API peut optionnellement fournir un accès à des fonctions ou à des files d’attente câblées dans le silicium afin de tirer parti de certaines caractéristiques spécifiques du processeur et, partant, d’augmenter les performances.

Accessible sous licence BSD, l’implémentation open source de l’API Task Management est disponible au sein d’un paquetage logiciel que Siemens a baptisé EMB2 (Embedded Multicore Building Blocks). EMB2 est une bibliothèque C/C++ dédiée au développement d’applications parallèles qui intègre divers composants logiciels (algorithmes de parallélisation, structures de données concurrentes, etc.) au-dessus d’une couche de base d’abstraction vis-à-vis du système d’exploitation et de la plate-forme matérielle multicœur sous-jacents. EMB2 est également fourni avec des wrappers C++ pour MTAPI afin de simplifier le développement dans des environnements orientés objet.

Pour l’heure, l’implémentation MTAPI open source ne supporte que les circuits multicœurs homogènes, mais Siemens prévoit pour 2015 le support de cœurs hétérogènes avec mémoire distribuée. « Les interfaces standardisées comme MTAPI, tout comme les bibliothèques et outils associés, sont essentiels pour le développement de logiciels pour systèmes embarqués, indique Tobias Schüle, membre du centre d’expertise multicœur de Siemens et principal développeur de la bibliothèque EMB2. Il existe une variété de frameworks pour la programmation parallèle sur PC ou serveurs mais l’offre est beaucoup moins riche dans le domaine de l’embarqué. Avec EMB2, notre objectif est de contribuer à combler ce vide. » L’implémentation MTAPI open source est téléchargeable sur le site GitHub en tant qu’élément de la plate-forme EMB2.

L'édification de la spécification MTAPI avait bénéficié de l’apport de nombreuses sociétés et laboratoires dont Enea, Freescale, l’Insa de Rennes, Qualcomm, Plurality, PolyCore, Siemens, Texas Instruments, l’université de Houston et Wind River.