Программируемость: Часть 1. Исследование различных подходов к программированию для платформ Cell/B.E.

Гибкость программирования для Cell Broadband Engine

Гибкость программирования для Cell Broadband Engine ™ является актуальной темой в сообществе разработчиков программ для многоядерных процессоров. В этой статье обсуждаются возможности применения имеющихся навыков программирования для Cell/B.E.™, предлагаются три подхода к программированию на платформе Cell/B.E. и представлен различный инструментарий, программное и аппаратное обеспечение для этой платформы.

Анита Бейтман, старший ИТ-архитектор, IBM

Анита Бейтман (Anita Bateman) — старший ИТ-архитектор в корпорации IBM. Она занимается разработкой и архитектурой программного обеспечения с 1998 года и является сертифицированным архитектором IBM и в The Open Group. Анита зарегистрировала и опубликовала несколько патентов. У нее степень магистра компьютерных наук от Техасского университета в Остине и степень бакалавра компьютерных наук от Hope College в Холланде, штат Мичиган. В настоящее время Анита — архитектор решений для Cell Broadband Engine и работает с партнерами и клиентами над внедрением многоядерной технологии IBM и улучшением программируемости Cell/B.E.



12.02.2009

В статье рассматриваются вопросы гибкости программировании для Cell Broadband Engine, совместно разработанной компаниями IBM, Sony и Toshiba. Это горячо обсуждаемая тема в сообществе программистов-многоядерщиков. Предполагается, что читатель уже располагает базовыми знаниями об архитектуре Cell/B.E. и о возможностях её производительности. Если же это ваша первая встреча с Cell/B.E., то, прежде чем продолжить чтение, рекомендуется обратиться к следующим статьям:

В нашей статье:

Использование существующих навыков

При разработке для Cell/B.E. можно использовать существующие навыки разработки, включая навыки программирования, навыки ИТ-администрирования и существующие навыки параллельного программирования. Кроме того, аппаратные средства на базе Cell/B.E. могут быть включены в существующую инфраструктуру, что облегчает администрирование решений на базе Cell/B.E. На рис. 1 показаны различные кросс-отраслевые системы на Cell/B.E., в которых работает одно и то же программное обеспечение для SPE.

Рис. 1. Кросс-отраслевые системы на Cell/B.E. с одинаковым программным обеспечением для SPE
Кросс-отраслевые системы на Cell/B.E. с одинаковым программным обеспечением для SPE

Как можно видеть на Рис. 1, существует целый спектр платформ с Cell/B.E., полностью поддерживающих программы для Cell/B.E. Одна и та же SPE-программа работает в самом широком диапазоне от потребительских продуктов до коммерческих, корпоративных и высокопроизводительных вычислительных систем. Кроме того, такие системы поставляются многими производителями отрасли, что также демонстрирует кросс-отраслевую поддержу технологии Cell/B.E.

Для Cell/B.E. можно писать на таких стандартных языках программирования, как C, C++, FORTRAN и Java ™ , и использовать такие стандартные компиляторы и отладчики, как набор утилит GNU (GNU toolchain) и компиляторы IBM XL C/C++/FORTRAN. Поддерживаются и популярные средства разработки и IDE, включая популярные редакторы (vi, emacs), Eclipse IDE, а также средства разработки от партнеров: Gedae и RapidMind.

Cell/B.E. стандартно поддерживается такими операционными системами Linux, как Red Hat, Fedora и Yellow Dog Linux от Terra Soft Solutions, а также операционными системами реального времени от таких партнеров, как Wind River и Mentor Graphics.

И, наконец, можно использовать распространённые библиотеки и среды, в том числе IBM DaCS, ALF, DAV, FFT, BLAS, LAPACK, MASS, библиотеки для обработки изображений и генератор псевдослучайных чисел методом Монте-Карло. В конце статьи можно найти полный перечень инструментария, программного и аппаратного обеспечения, совместимого с Cell/B.E.


О методах программирования и о том, как они используются

Теперь второй пункт: какие есть методы программирования на Cell/B.E. и как их лучше использовать?

Как показано на рис. 2, подходы к программированию для Cell/B.E. отличаются гибкостью; их можно разделить на следующие три категории:

  • Программирование во внутренних кодах
  • Программирование со вспомогательными средствами
  • Программирование с использованием средств разработки
Рис. 2. Поиск баланса между трудозатратами и управляемостью
Поиск баланса между трудозатратами и управляемостью

Относительно этих методов нужно заметить следующее: по мере движения от программирования на внутренних кодах через программирование со вспомогательными средствами к методу с использованием средств разработки мы охватываем новые спектры возможностей. На одном полюсе, при использовании внутренних кодов, мы более детально управляем ресурсами Cell/B.E., но выполняем гораздо больший объём работы. На другом полюсе ресурсы контролируются хуже, но и трудозатраты гораздо меньше.

Эти три разных подхода не являются взаимоисключающими. По мере их использования становится ясно, что их функциональность перекрывается. В следующих разделах описываются преимущества каждого подхода, их ограничения и ситуации, в которых каждый из подходов более удобен. Производительность, которая может быть достигнута в каждом из подходов, зависит от уровня индивидуального мастерства программиста. В последнем разделе статьи перечисляется список инструментов от IBM, сторонних поставщиков и разработчиков открытого ПО, доступных для каждого метода.

Программирование во внутренних кодах

Подход с программированием во внутренних кодах подразумевает непосредственную работу с аппаратными ресурсами, встроенными средствами и перемещением данных и позволяет точно управлять работой приложения. Такая гибкость недоступна в других средствах разработки программ и многоядерных системах. Гибкость архитектуры Cell/B.E. дает разработчикам возможность решать, как распределять и использовать в своем приложении такие ресурсы, как, например, память.

Преимущества

У подхода с программированием во внутренних кодах имеются следующие преимущества:

  • Обычно удается получить наивысшую, максимально оптимизированную производительность.
  • Внутренние ресурсы используются наиболее оптимальным образом.

Ограничения

Для подхода с программированием во внутренних кодах есть и ограничивающие факторы, например:

  • При использовании этого подхода большую часть работы по программированию вам придётся выполнять самостоятельно.
  • Может потребоваться какое-то время для обучения, поскольку нужно изучить внутренние ресурсы, которые предстоит использовать.

Условия применения

Когда и где используется метод программирования во внутренних кодах?

  • Встраиваемые приложения
  • Системы в операциях реального времени
  • Когда производительность является наиболее важным критерием и нет возможности достичь целей с помощью других подходов
  • Любая ситуация, в которой на первом месте стоят ресурсы, производительность, пространство или стоимость

Программирование с использованием вспомогательных средств

Не все программисты хотят работать с аппаратными ресурсами напрямую, поэтому существует подход программирования, в котором используются библиотеки и среды программирования на Cell/B.E.

Преимущества

Использование вспомогательных средств дает следующие преимущества:

  • Сокращение времени разработки по сравнению с работой во внутренних кодах
  • Сохраняющаяся возможность использовать некоторые внутренние ресурсы

Ограничения

Метод с использованием вспомогательных средств имеет и некоторые ограничения, в том числе:

  • Выигрыш в производительности обычно меньше, чем в подходе с использованием внутренних ресурсов
  • Свои ограничения накладывают выбранные средства и библиотеки

Условия применения

Когда обычно используется подход с применением вспомогательных средств?

  • Для подавляющего большинства приложений практически в любых ситуациях
  • Это типичный подход к программированию, привычный для многих

Программирование с использованием средств разработки

Как подход самого верхнего уровня, подход с использованием средств разработки дает наибольшее абстрагирование от аппаратных ресурсов. Этот подход предусматривает работу с инструментами и средами разработки.

Преимущества

Подход с использованием средств разработки дает следующие преимущества:

  • Значительно уменьшаются затраты времени на разработку
  • Легче достигается независимость от платформы, поскольку многие инструменты уже содержат эту возможность

Ограничения

Подход с использованием средств разработки имеет и некоторые ограничения, в том числе:

  • Выигрыш в производительности может быть еще меньше, чем в случае других подходов
  • Средства CASE предопределяют возможности отладки и выбор поддерживаемых платформ

Условия применения

Когда обычно используется подход с применением средств разработки?

  • Для приложений, которые должны быть одновременно развернуты на нескольких платформах и аппаратных архитектурах
  • Если разработчик больше привык работать с инструментами верхнего уровня, чем непосредственно с аппаратными ресурсами

Выбор программного обеспечения и инструментов для поддержки подходов

На рис. 3 изображены различные программные и аппаратные средства, а также инструменты, имеющиеся для Cell/B.E. для всех трех методов программирования.

Рис. 3. Программное обеспечение и инструменты для Cell/B.E.
Программное обеспечение и инструменты для Cell/B.E.

(Самую свежую версию этой схемы можно найти в формате PDF в разделе Загрузки этой статьи.)

Предложения от IBM отмечены жирным шрифтом. Предложения от сторонних поставщиков обозначены полужирным курсивом. Предложения от сообщества свободного ПО обозначены обычным текстом. В самых нижних разделах схемы показаны аппаратные средства и операционные системы. Аппаратные средства Cell/B.E.—это зрелые, хорошо разработанные средства в разнообразных конструктивных исполнениях. Многие операционные системы, на которых отлично работает Cell/B.E., являются зрелыми, стабильными, хорошо освоенными платформами.

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

Еще одно важное замечание по этой схеме: не только IBM поддерживает экосистему Cell/B.E., существует также мощное и разнообразное (и растущее!) сообщество поддержки Cell Broadband Engine Architecture™; это сообщество состоит из сторонних и open source-разработчиков, как на коммерческой, так и на общественной основе.


Заключение

В этой статье мы рассмотрели, как применить существующие навыки программирования для разработки для Cell/B.E., обсудили три подхода к программированию, и представили различные инструменты, имеющиеся для Cell/B.E. Итак, как теперь начать программировать для Cell/B.E.? Вот краткий список шагов:

Как начать программировать для Cell/B.E.

  1. Посетите центр ресурсов для Cell Broadband Engine на сайте IBM developerWorks и загрузите новейшую версию инструментария IBM SDK for Multicore Acceleration.
  2. Установите IBM SDK for Multicore Acceleration
  3. Начните программировать для Cell/B.E. с помощью учебника по Cell/B.E. IDE и IBM Full System Simulator.
  4. Ознакомьтесь с форумом по Cell/B.E. на сайте developerWorks и задавайте там вопросы. Этот форум активно работает, это самый быстрый способ получить квалифицированные ответы.
  5. Приобретите подходящие аппаратные средства, содержащие Cell/B.E. Можно обратиться в IBM по поводу Cell Broadband Engine. Можно даже начать разработку на Sony Playstation 3.

Благодарности

Выражаем благодарность команде IBM/Cell/B.E., которая помогала в составлении этой статьи и ее проверке.


Загрузка

ОписаниеИмяРазмер
PDF version of the tools chart, easier to readsdktools091809.pdf94KB

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=369337
ArticleTitle=Программируемость: Часть 1. Исследование различных подходов к программированию для платформ Cell/B.E.
publish-date=02122009