Многоядерная ассоциация
Ассоциация Multicore была основана в 2005 году. Multicore Association — это финансируемый членами отраслевой некоммерческий консорциум , занимающийся созданием открытых стандартных 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) система времени выполнения (фаза жизненного цикла программы) не обеспечить единый доступный механизм для координации совместного использования ресурсов. Этот API применим как к встроенным многоядерным реализациям SMP, так и к AMP (при этом AMP относится к гетерогенным как с точки зрения программного, так и с точки зрения аппаратного обеспечения). MRAPI (в сочетании с другими API многоядерных ассоциаций) может служить ценным инструментом для реализации приложений, а также для реализации таких полнофункциональных менеджеров ресурсов и других типов многоуровневых сервисов. РГ MRAPI возглавил Джим Холт.
В 2013 году рабочая группа Multicore Task Management API (MTAPI) выпустила свою первую спецификацию. MTAPI — это стандартная спецификация интерфейса прикладных программ (API), который поддерживает координацию задач во встроенных параллельных системах с однородными и гетерогенными ядрами. Основными функциями MTAPI являются планирование времени выполнения и сопоставление задач ядрам процессора. Благодаря своему динамическому поведению MTAPI предназначен для оптимизации пропускной способности в многоядерных системах, позволяя разработчику программного обеспечения улучшить стратегию планирования задач для обеспечения задержки и справедливости. Эту рабочую группу возглавил Урс Гляйм из Siemens .
В 2013 году рабочая группа «Практика многоядерного программирования » (MPP) представила многоядерного для отрасли руководство по программированию программного обеспечения, которое помогает повысить согласованность и понимание проблем многоядерного программирования. В руководстве MPP представлены лучшие практики использования языка C / C++ для создания действительно ценного руководства для инженеров, приступающих к многоядерному программированию. Эту рабочую группу возглавляли Роб Ошана из NXP Semiconductors и Дэвид Стюарт из CriticalBlue .
В 2015 году рабочая группа Software/Hardware Interface for Multicore/Manycore (SHIM) представила спецификацию, определяющую стандарт описания архитектуры, полезный для проектирования программного обеспечения. Некоторые архитектурные особенности, которые описывает SHIM, — это аппаратная топология, включая ядра процессора , ускорители , кэши и межъядерные каналы связи с выбранными деталями каждого элемента, а также информацией о инструкциях, памяти и производительности связи. Эту рабочую группу возглавил Масаки Гондо из eSOL [1] .
Активные рабочие группы
[ редактировать ]- Рабочая группа Multicore Communications API ( MCAPI ) в настоящее время добавляет дополнительные возможности и функции для расширения возможностей MCAPI для версии 2.x. Рабочая группа работает над функциональной совместимостью и функцией «нулевого копирования», включая двунаправленное взаимодействие между «приложением и приложением» с использованием общей памяти и двунаправленное взаимодействие между «приложением и драйвером», которую возглавляет Свен Бремер из PolyCore Software.
- сосредоточится Рабочая группа по виртуализации на определении и оптимизации набора информации и функций паравиртуализации для взаимодействия с гипервизором . Рабочая группа также сосредоточится на системе классификации различных функций и функций виртуализации, в том числе в многоядерных процессорах. Эту рабочую группу возглавляют Раджан Гоял из Cavium Networks и Сурендер Кумар из Nokia Networks .
- Рабочая группа Open Asymmetric Multi Processing (OpenAMP) сосредоточится на стандартизации API, предоставлении подробной документации для спецификации и расширении функциональности OpenAMP. Эту рабочую группу возглавляет Томас Эвенсен из Xilinx .
OpenAMP
[ редактировать ]OpenAMP Multicore Framework — это платформа с открытым исходным кодом для разработки прикладное программное обеспечение систем асимметричной многопроцессорной обработки (AMP), [1] аналогично OpenMP для симметричных многопроцессорных систем. [2]
Существует несколько реализаций OpenAMP Multicore Framework, каждая из которых предназначена для взаимодействия со всеми другими реализациями через API OpenAMP.Одна реализация Multicore Framework, первоначально разработанная для Xilinx Zynq , была открыта с открытым исходным кодом.в рамках проекта с открытым исходным кодом OpenAMP. [3] [4] Mentor Embedded Multicore Framework (MEMF) — это собственная реализация стандарта OpenAMP. [4]
Стандарт OpenAMP API управляется под эгидой Multicore Association. [4]
Ссылки
[ редактировать ]- ^ "ОпенАМП"
- ^ Пэн Чжан. «Передовые технологии промышленного контроля» .п. 210.
- ^ "репозиторий open-amp"
- ^ Jump up to: а б с Феликс Баум, Арвинд Рагураман. «Полное использование новых гетерогенных многоядерных систем на базе ARM». 8-й Европейский конгресс по встраиваемому программному обеспечению и системам реального времени (ERTS 2016), январь 2016 г.,ТУЛУЗА, Франция. ffhal-01292325
Внешние ссылки
[ редактировать ]- Официальный сайт Многоядерной ассоциации
- Бенчмаркинг многоядерных платформ — EEMBC