Абстрагировать программистов от особенностей аппаратного обеспечения при создании приложений, оптимизированных для работы на многоядерных процессорах, — такую важную цель полтора года назад поставили перед собой участники рабочей группы Multicore Association. Эта некоммерческая организация разрабатывает стандарты, которые направлены на ускорение выхода на рынок продуктов, опирающихся на использование многоядерных процессоров.
Усилия рабочей группы воплотились в интерфейсе прикладных программ Multicore Task Management Application Program Interface (MTAPI), о доступности которого в конце этой недели объявила ассоциация.
Чтобы полностью воспользоваться потенциалом гомогенных или гетерогенных многоядерных процессоров или однокристальных систем, программисту приходится разделять программу на задачи, которые могут выполняться одновременно разными ядрами. Сегодняшние ОС и библиотеки времени исполнения для встраиваемых систем предоставляют потоки или подобные им механизмы, которые не подходят для тонкого распараллеливания, востребованного многоядерными архитектурами. Обычно это вызвано тем, что координация сотен или тысяч параллельных задач влечет за собой слишком большие накладные расходы по сравнению с полезным временем вычислений. Программные модели, предшествовавшие MTAPI, требовали сложной, низкоуровневой синхронизации и программирования потоков, были ограничены одной операционной системой, работающей на одном гомогенном многоядерном процессоре.
MTAPI устраняет эти препятствия, предоставляя возможность разработки параллельного ПО с использованием привычных процессов, выполняя планировку и распределение задач по процессорным ядрам. Опционально возможен прямой доступ к аппаратным средствам для повышения производительности.
В отличие от других API, обеспечивающих управление задачами (например, OpenMP, TBB, Cilk, OpenCL), MTAPI подходит для встраиваемых систем с ограниченными ресурсами. Кроме того, MTAPI будет поддерживать разные процессорные архитектуры и может быть реализован на языке C поверх разных ОС или без них, непосредственно на аппаратных средствах. Коротко говоря, MTAPI поддерживает асимметричную многопроцессорную обработку на аппаратном и программном уровне.
Спецификации MTAPI доступны для загрузки бесплатно на сайте Multicore Association, как и обзор MTAPI (MTAPI Nutshell) и подробный справочник.
Среди членов Multicore Association можно выделить компании Broadcom, Freescale Semiconductor, LSI, MIPS Technologies, National Instruments, Qualcomm и Texas Instruments.
Источник: Multicore Association