 | Уровень сложности: простой Анита Бейтман, старший ИТ-архитектор, IBM
12.02.2009 Гибкость программирования для Cell Broadband Engine
™ является актуальной темой в сообществе разработчиков программ для многоядерных процессоров. В этой статье обсуждаются возможности применения имеющихся навыков программирования для Cell/B.E.™, предлагаются три подхода к программированию на платформе Cell/B.E. и представлен различный инструментарий, программное и аппаратное обеспечение для этой платформы.
В статье рассматриваются вопросы гибкости программировании для Cell Broadband Engine, совместно разработанной компаниями IBM, Sony и Toshiba. Это горячо обсуждаемая тема в сообществе программистов-многоядерщиков. Предполагается, что читатель уже располагает базовыми знаниями об архитектуре Cell/B.E. и о возможностях её производительности. Если же это ваша первая встреча с Cell/B.E., то, прежде чем продолжить чтение, рекомендуется обратиться к следующим статьям:
- "Introduction to the Cell Broadband Engine"
(IBM, октябрь 2005 г.)
- "Programming
high-performance applications on the Cell/B.E. processor, Part 1: Intro to Linux® on
PlayStation 3"
(developerWorks, январь 2007 г.).
- "Programming
high-performance applications on the Cell/B.E. processor, Part 2: Program PlayStation 3 SPEs"
(developerWorks, февраль 2007 г.).
- "Programming high-performance applications on the Cell/B.E. processor, Part 3: Meet the SPU"
(developerWorks, февраль 2007 г.).
- "Programming high-performance applications on the Cell/B.E. processor, Part 4: Program the SPU for performance"
(developerWorks, март 2007 г.).
- "A Programming Example: Large FFT on the CBE"
(IBM, октябрь 2005 г.).
В нашей статье:
Использование существующих навыков
При разработке для Cell/B.E. можно использовать существующие навыки разработки, включая навыки программирования, навыки ИТ-администрирования и существующие навыки параллельного программирования. Кроме того, аппаратные средства на базе Cell/B.E. могут быть включены в существующую инфраструктуру, что облегчает администрирование решений на базе Cell/B.E. На рис. 1 показаны различные кросс-отраслевые системы на Cell/B.E., в которых работает одно и то же программное обеспечение для SPE.
Рис. 1. Кросс-отраслевые системы на 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.
(Самую свежую версию этой схемы можно найти в формате 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.
- Посетите центр ресурсов для Cell Broadband Engine на сайте IBM developerWorks и загрузите новейшую версию инструментария IBM SDK for Multicore Acceleration.
- Установите IBM SDK for Multicore Acceleration
- Начните программировать для Cell/B.E. с помощью
учебника по Cell/B.E. IDE
и
IBM Full System Simulator.
- Ознакомьтесь с
форумом по Cell/B.E.
на сайте developerWorks и задавайте там вопросы. Этот форум активно работает, это самый быстрый способ получить квалифицированные ответы.
- Приобретите подходящие аппаратные средства, содержащие Cell/B.E.
Можно обратиться в IBM по поводу Cell Broadband Engine.
Можно даже начать разработку на Sony Playstation 3.
Благодарности
Выражаем благодарность команде IBM/Cell/B.E., которая помогала в составлении этой статьи и ее проверке.
Загрузка | Описание | Имя | Размер | Метод загрузки |
|---|
| PDF version of the tools chart, easier to read | sdktools091809.pdf | 94KB | HTTP |
|---|
Ресурсы Научиться
Получить продукты и технологии
Обсудить
Об авторе  | |  | Анита Бейтман (Anita Bateman) — старший ИТ-архитектор в корпорации IBM. Она занимается разработкой и архитектурой программного обеспечения с 1998 года и является сертифицированным архитектором IBM и в The Open Group. Анита зарегистрировала и опубликовала несколько патентов. У нее степень магистра компьютерных наук от Техасского университета в Остине и степень бакалавра компьютерных наук от Hope College в Холланде, штат Мичиган. В настоящее время Анита — архитектор решений для Cell Broadband Engine и работает с партнерами и клиентами над внедрением многоядерной технологии IBM и улучшением программируемости Cell/B.E. |
Выскажите мнение об этой странице
|  |