Ассоциация Multicore была основана в 2005 году. Ассоциация Multicore — это финансируемый ее членами некоммерческий отраслевой консорциум , занимающийся созданием открытых стандартных API , спецификаций и руководств, которые позволяют разработчикам систем и программистам более легко внедрять многоядерную технологию в свои приложения .
Консорциум предоставляет нейтральный форум для поставщиков и разработчиков, которые заинтересованы, работают с и/или распространяют многоядерные продукты, включая процессоры , инфраструктуру, устройства, программное обеспечение и приложения. Его члены представляют поставщиков процессоров , операционных систем , компиляторов , инструментов разработки , отладчиков , инструментов ESL / EDA и симуляторов; а также разработчиков приложений и систем .
В 2008 году рабочая группа Multicore Communications API выпустила первую спецификацию консорциума, названную MCAPI . MCAPI — это API передачи сообщений , который охватывает основные элементы связи и синхронизации, необходимые для тесно распределенных (несколько ядер на чипе и/или чипы на плате ) встроенных систем. Целевые системы для MCAPI охватывают несколько измерений неоднородности (например, неоднородность ядра, неоднородность соединительной структуры , неоднородность памяти, неоднородность операционной системы , неоднородность цепочки программных инструментов и неоднородность языка программирования).
В 2011 году рабочая группа MCAPI выпустила MCAPI 2.0. Расширенная версия добавляет новые функции, такие как домены для маршрутизации. MCAPI версии 2.0 добавляет уровень иерархии в эту сеть узлов посредством введения «доменов». Домены могут использоваться различными способами, зависящими от реализации, например, для представления всех ядер на данном чипе или для разделения топологии на общедоступные и защищенные области. MCAPI 2.0 также добавляет три новых типа параметров инициализации (атрибуты узла, конфигурации, зависящие от реализации, информация о реализации, такая как начальная топология сети или исполняемая версия MCAPI). Рабочую группу MCAPI возглавляет Свен Бремер.
В 2011 году рабочая группа Multicore Resource Management API выпустила свою первую спецификацию, называемую MRAPI. MRAPI — это API отраслевого стандарта, который определяет основные возможности управления ресурсами на уровне приложений. Многоядерным приложениям требуется этот API для обеспечения скоординированного одновременного доступа к системным ресурсам в ситуациях, когда: (1) недостаточно ресурсов для выделения отдельным задачам или процессорам и/или (2) система Run time (фаза жизненного цикла программы) не предоставляет единообразно доступный механизм для координации совместного использования ресурсов. Этот API применим как к SMP, так и к AMP-встроенным многоядерным реализациям (где AMP относится к гетерогенным как с точки зрения программного обеспечения, так и оборудования). MRAPI (в сочетании с другими API Multicore Association) может служить ценным инструментом для внедрения приложений, а также для внедрения таких полнофункциональных менеджеров ресурсов и других типов многоуровневых служб. Рабочую группу MRAPI возглавил Джим Холт.
В 2013 году рабочая группа Multicore Task Management API (MTAPI) выпустила свою первую спецификацию. MTAPI — это стандартная спецификация для интерфейса прикладных программ (API), который поддерживает координацию задач на встроенных параллельных системах с однородными и неоднородными ядрами. Основными функциями MTAPI являются планирование времени выполнения и сопоставление задач с ядрами процессора. Благодаря своему динамическому поведению MTAPI предназначен для оптимизации пропускной способности на многоядерных системах, позволяя разработчику программного обеспечения улучшить стратегию планирования задач для задержки и справедливости. Эту рабочую группу возглавил Урс Глейм из Siemens .
В 2013 году рабочая группа Multicore Programming Practices (MPP) выпустила руководство по программированию многоядерного программного обеспечения для отрасли, которое помогает улучшить согласованность и понимание проблем многоядерного программирования. Руководство MPP содержит лучшие практики использования языка C / C++ для создания руководства, представляющего реальную ценность для инженеров, которые подходят к многоядерному программированию. Эту рабочую группу возглавляли Роб Ошана из NXP Semiconductors и Дэвид Стюарт из CriticalBlue .
В 2015 году рабочая группа Software/Hardware Interface for Multicore/Manycore (SHIM) представила спецификацию для определения стандарта описания архитектуры, полезного для проектирования программного обеспечения. Некоторые архитектурные особенности, которые описывает SHIM, включают топологию оборудования, включая ядра процессора , ускорители , кэши и каналы связи между ядрами, с выбранными подробностями каждого элемента, а также информацию об инструкциях, памяти и производительности связи. Эту рабочую группу возглавил Масаки Гондо из eSOL [1].
OpenAMP Multicore Framework — это фреймворк с открытым исходным кодом для разработки прикладного программного обеспечения для систем асимметричной многопроцессорной обработки (AMP) [1], аналогичный OpenMP для систем симметричной многопроцессорной обработки. [2]
Существует несколько реализаций OpenAMP Multicore Framework, каждая из которых предназначена для взаимодействия со всеми другими реализациями через OpenAMP API. Одна реализация Multicore Framework, изначально разработанная для Xilinx Zynq , была открыта в рамках проекта OpenAMP с открытым исходным кодом. [3] [4] Mentor Embedded Multicore Framework (MEMF) — это фирменная реализация стандарта OpenAMP. [4]
Стандарт API OpenAMP управляется под эгидой Multicore Association. [4]