IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux | Open source  >

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

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

developerWorks
Опции документа
PDF format - Fits A4 and Letter

PDF - Fits A4 and Letter
243KB

Загрузить Adobe® Reader®

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: простой

Анита Бейтман, старший ИТ-архитектор, 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., то, прежде чем продолжить чтение, рекомендуется обратиться к следующим статьям:

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

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

При разработке для 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.pdf94KBHTTP
Информация о методах загрузкиЗагрузить Adobe® Reader®


Ресурсы

Научиться

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

Обсудить


Об авторе

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




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



 


 


 


Поделиться этой статьей:

забобрить забобрить memori сохранить в memori




В начало


IBM и developerWorks являются торговыми марками IBM Corporation в США и/или других странах. Java и все основанные на Java торговые марки и логотипы являются торговыми марками Sun Microsystems, Inc. в США и/или других странах. Microsoft, Windows, Windows NT и логотип Windows являются торговыми марками Microsoft Corporation в США и/или других странах. Linux является зарегистрированной торговой маркой Линуса Торвальдса в США и/или других странах. Cell Broadband Engine является зарегистрированной торговой маркой Sony Computer Entertainment Inc. Другая компания, продукт или название услуги могут быть торговыми марками или знаками обслуживания, принадлежащими иным физическим или юридическим лицам. Другая компания, продукт или название услуги могут быть торговыми марками или знаками обслуживания, принадлежащими иным физическим или юридическим лицам.

IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.
    IBM в России Конфиденциальность Контакты