Skip to main content

Стандарты многоядерного кодирования Цель простого программирования

Ассоциация Multicore устанавливает спецификации для модели программирования, которая уменьшит сложность при написании программного обеспечения для многоядерных чипов, используемых в смартфонах, планшетах и ​​других встроенных системах.

Ассоциация объединяет единый набор базовых API (интерфейсы прикладного программирования) для стандартизации связи, совместного использования ресурсов и виртуализации, охватывающих ядра на одном и том же или разных чипах, сказал президент группы Маркус Леви.

Производители чипов добавляют процессоры, датчики и ускорители к чипам как энергосберегающий способ для повышения производительности приложений на устройствах. Но многоядерные чипы также создали задачу для программистов, которым приходится писать приложения, масштабируемые на нескольких ядрах, и синхронизировать их правильно, чтобы гарантировать, что вычисления выполняются в определенном порядке для получения правильного вывода.

Низкоуровневые API предоставляют согласованные сказал Леви, - модель многоядерного программирования, из которой приложения могут быть адаптированы для работы по архитектуре чипов, операционным системам и специализированным аппаратным средствам. Ассоциация Multicore завершила MCAPI (API многоядерной связи) и MRAPI (API управления многоядерными ресурсами) для управления связью и ресурсами, соответственно, и имеет рабочие группы для создания новых инструментов и API-интерфейсов, связанных с виртуализацией.

«Существует много бенефициаров создания этих API, но главная цель для всех сторон - установить переносимость », - сказал Леви. Согласованная модель программирования упрощает повторное использование приложения на разных многоядерных платформах. До этого в большинстве проектов использовались проприетарные механизмы, которым не хватало переносимости, сказал Леви.

Смартфон может быть спроектирован с использованием нескольких процессорных ядер, работающих под управлением разных операционных систем, причем каждое ядро ​​обеспечивает различные функциональные возможности, сказал Колин Стэндс, Mentor Graphics, которая делает операционную систему Nucleus в режиме реального времени около 400 миллионов телефонов каждый год. В некоторых устройствах одно ядро ​​может запускать ОС, например Android или Linux, для управления большей частью пользовательского интерфейса, выполнения пользовательских приложений, управление файлами и данными и связь. Другое ядро ​​может быть несколько невидимым для пользователя и управлять низкоуровневыми действиями телефона, такими как установление и поддержание сотовой сети и обработка вызовов.

«Используя MCAPI, код встроенных приложений не должен знать о межсетевой коммуникационный метод, который переносится между операционными системами и архитектурой чипов », - сказал Стэнс.

MCAPI позволяет программистам разрешать приложения для многоядерных приложений один раз и повторно использовать тот же код для нескольких продуктов в линейке продуктов и для следующего поколения , - сказал Свен Бремер (Sven Brehmer), генеральный директор PolyCore Software, который предоставляет средства разработки и программное обеспечение для многоядерных и многоцелевых коммуникаций.

MCAPI больше всего используется в инфраструктурах телекоммуникаций и данных, а также в мультимедийных устройствах, сказал Бремер. , Другие области, представляющие интерес, включают медицинские устройства, высокопроизводительные вычислительные и военные и аэронавигационные приборы, такие как радар.

API позволяет создавать домены для конкретных реализаций, таких как связь между ядрами на данном чипе или в определенных областях в топология чипа. [

] «Один из аспектов инфраструктуры MCAPI включает в себя спецификацию сети узлов связи, где узел может быть процессом, потоком, экземпляром операционной системы, аппаратного ускорителя или ядра процессора », - сказал Леви.

MCAPI предназначен для работы с MRAPI, API для возможностей управления ресурсами на уровне приложений, которые координируют управление питанием и виртуализацию на многоядерных чипах. Чипсы содержат функции и функции, которые меняются динамически, а на некоторых многоядерных чипах для одной ОС сложно отслеживать и контролировать все ресурсы, сказал Леви. MRAPI обеспечивает низкоуровневую поддержку уведомлений о событиях на системном уровне, таких как состояния экономии энергии, сбои устройств и перераспределение гипервизора.

Например, устройства на базе Linux с симметричной многопроцессорной обработкой не поддерживают средство уведомления приложений, когда операционная среда или ресурсы изменились, сказал Леви. Чтобы удовлетворить дефицит, MRAPI предоставляет программистам механизмы реализации для управления совместным использованием ресурсов и реагирования на изменения в доступности ресурсов.

«Используя MRAPI, разработчики системы могут писать переносные прикладные программы, которые будут масштабироваться в течение нынешних и будущих поколений многоядерных процессоров и архитектуры, приложений для приложений, промежуточного программного обеспечения, процессоров и системных разработчиков », - сказал Леви.

Эта стандартизация позволит поставщикам чипов и сторонним поставщикам инструментов взять на себя управление ресурсами, поэтому программисты могут сосредоточиться на высокоуровневых приложениях, сказал Леви .

Организация также разрабатывает API для пользователей встроенных продуктов виртуализации, которые могут обеспечить возможность взаимодействия приложений и промежуточного программного обеспечения в разных средах виртуализации. Но больше внимания уделяется разработке стандартизованных инструментов, которые используют API. По словам Леви, некоторые сторонники новых API, таких как Mentor, Intel, Freescale и Texas Instruments, разработали собственные инструменты для отладки и трассировки.

«Конечным результатом для поставщиков инструментов является то, что они как единый поставщик, ни один поставщик не может предлагать все, что требуется своим клиентам, и тем не менее клиенты должны иметь возможность разрабатывать и понимать эту разнообразную систему », - сказал Леви.

Существуют и другие многоядерные таких как OpenMP и OpenCL, но все они разработаны как «синергетические», а не конкурентные, сказал Бремер Поликор. OpenMP API предназначен для написания параллельных приложений на уровне машины, а OpenCL - это среда программирования для параллельного выполнения задач многоядерных процессоров, включая процессоры и графические процессоры.

Члены ассоциации Multicore также включают IBM, Samsung и Advanced Micro Devices.