WikiDer > MCAPI
В API многоядерных коммуникаций (MCAPI) - первая спецификация, разработанная Многоядерная ассоциация. MCAPI предоставляет стандартизированный API для связи и синхронизация между близко распределенными (несколько ядер на микросхеме и / или микросхемах на плате) встроенные системы.
Обзор
MCAPI не зависит от языка, процессора и операционной системы. протокол связи используется для программирования многоядерный устройств. MCAPI предоставляет три режима связи: сообщения, пакеты и скаляры. MCAPI - это передача сообщений интерфейс прикладного программиста вместе с протоколом и семантическими спецификациями, указывающими, как его функции должны вести себя в любой реализации. Основными целями любой реализации MCAPI являются чрезвычайно высокая производительность и небольшой объем памяти.
MCAPI ведет свое начало от коммуникационных API, таких как MPI и Розетки Berkeley. И MPI, и сокеты были разработаны в первую очередь для связи между компьютерами, в то время как MCAPI нацелен в первую очередь на межъядерный обмен в многоядерном чипе. Соответственно, основная цель разработки MCAPI заключалась в том, чтобы служить интерфейсом с малой задержкой, используя эффективное внутрикристальное соединение в многоядерной микросхеме. Однако из-за более ограниченного объема многоядерных коммуникаций и низкой задержки MCAPI менее гибок, чем MPI или сокеты.
Режимы связи MCAPI
MCAPI предоставляет три режима связи:
- сообщения - без подключения дейтаграммы. Сообщения должны быть гибкими в отношении полезной нагрузки, динамически изменяющихся получателей и приоритетов, а также усилий по настройке, хотя и с небольшим ухудшением производительности.
- пакеты - ориентированные на соединение, произвольного размера, однонаправленные и потоки FIFO. Пакеты должны быть гибкими в отношении полезной нагрузки, обеспечивая более высокую производительность, чем сообщения, за счет усилий по настройке.
- скаляры - потоки фиксированного размера, ориентированные на соединение, однонаправленные и потоки FIFO. Скаляры предназначены для обеспечения максимальной производительности режима связи, хотя и за счет гибкости полезной нагрузки и усилий по настройке.
MCAPI по сравнению с MPI
MCAPI ориентирован исключительно на встроенные коммуникации и добавляет идеи сообщений, пакетов и скаляров + подключенных каналов. Это позволяет MCAPI поддерживать различное качество обслуживания, когда подключенные каналы могут использовать базовое встроенное оборудование. Кроме того, MCAPI поддерживает различные виды приоритетов, сообщения могут иметь приоритет для каждого сообщения, а каналы также могут рассматриваться как имеющие разные приоритеты, что позволяет реализациям отображать некоторые или все каналы на выделенное оборудование. MCAPI также может поддерживать нулевое копирование путем назначения атрибутов подключенным каналам.
Другие большие отличия включают:
- MCAPI не имеет языковой привязки для FORTRAN, поскольку она обычно не встречается во встроенных системах.
- MCAPI не поддерживает коллективную связь, как в MPI. Это позволяет MCAPIv иметь меньшую реализацию.
- MCAPI не имеет концепций групп.
- В MCAPI нет методов синхронизации, как в MPI, нет барьеров, ограждений и блокировок.
- MCAPI не имеет файловых объектов или каких-либо связанных с ними функций.
- MCAPI не имеет модели для создания или управления процессами.
Рекомендации
- Холт, Джим; Агарвал, Анант; Бремер, Свен; Домейка, Макс; Гриффин, Патрик; Ширрмайстер, Франк (июнь 2009 г.), «Стандарты программного обеспечения для эпохи многоядерных процессоров», IEEE Micro, 29 (3): 40–51, Дои:10.1109 / MM.2009.48, HDL:1721.1/52432