Распараллелься или...

Экспоненциальный рост тактовой частоты процессоров закончился в 2003 году. Однако закон Мура продолжает действовать, и количество транзисторов на кристалле растет так же быстро, как и раньше — лишь теперь этот рост значит увеличение количества ядер на процессоре. В этих новых условиях чтобы воспользоваться ростом аппаратных возможностей и мощностью многоядерных процессоров нужно изменить подход к разработке программных приложений. Как видит эти изменения ведущий производитель процессоров? (По материалам конференции Intel Software «Go Parallel», 14-16 апреля 2008 г., Прага)

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

Percent of Worldwide Multi-core Processor 2006-2010
По прогнозу IDC к 2010 году все сервера, рабочие станции и ноутбуки, что будут изготовлены в мире, будут иметь процессоры с двумя и больше ядрами.

Мультиядерность стала нормой сегодня, этот тренд сохранится надолго. Очевидно, что на многоядерные технологии в ближайшее время перейдет также и рынок мобильных устройств.

Что значит эта новая реальность для разработчиков программного обеспечения?

Раньше в погоне за ростом производительности поставщики микропроцессоров не особенно задумывались над интересами разработчиков ПО — ожидания рынка относительно роста производительности микропроцессоров заставляли поставщиков не думать ни о чем другом. Фактически, они могли себе это позволить — «бесплатный обед» («The Free Lunch is Over», Herb Sutter) которым производители микропроцессоров кормили отрасль ПО был достаточным, чтобы обеспечить рост производительности приложений.

Грофик
Разрыв в развитии микропроцессорной индустрии и индустрии програмного обеспечения

Но сегодня развитие производительности программных приложений становится «ограничением» на пути последующего развития микропроцессорной индустрии. В конечном итоге, конечный потребитель платит деньги не за показатели производительности на тестах — ему нужные качества и эффективность работы приложений, и если он ее не получит то и не будет вкладывать деньги в модернизацию аппаратной инфраструктуры. Таким образом, чтобы движение по спирали продолжалось, усилия должны приложить и разработчики программного обеспечения, и производители микропроцессоров.

Хотя тема «параллельного программирования» не новая, до этого времени она была сферой интересов узкого сегмента разработчиков приложений для высокопроизводительных вычислений, преимущественно в сфере научно-исследовательских проектов.

Сотрудник Microsoft Герб Саттер (Herb Sutter) сравнивает сегодняшнее состояние в отрасли программирования с революцией в разработке программного обеспечения, что состоялась с переходом от структурированного программирования к объектно-ориентированному и которая была наибольшим изменением в этой отрасли за последние 20 лет.

Переход к объектно-ориентированной технологии программирования позволил выйти на высший уровень абстракции, что дало возможность строить сложные компонентные программы. То же сегодня ожидает развитие средств для программирования многопоточных приложений — нужно перейти на новый уровень абстракции, чтобы уменьшить объем «ручной» работы.

Эксперты предусматривают, что изменения, которые состоятся в средствах программирования для того чтобы отвечать новым вызовам, будут значительнее чем даже переход к объектно-ориентированной технологии. Ведь речь идет не просто о повышении производительности работы программистов — речь идет о росте системной производительности в целом. Все указывает на то, что параллелизм станет главным инструментом и основным путем повышения производительности, и он не оставит места тем инструментам программирования что не будут его поддерживать.

5 проблем, что больше всего волнуют разработчиков

Согласно данных исследования, что провела компания Ziff Devis Entrtprise, программисты выделяют 5 проблем что мешают их компаниям активно включиться в разработку многопоточных приложений:

  1. Нужные новые навыки;
  2. Нужные инвестиции;
  3. Руководство не видит потребности;
  4. Нужен новый процесс разработки;
  5. Рост ошибок при программировании.

При этом более половины опрошенных понимает преимущества технологии многоядерности и новые возможности что она дает разработчикам. Вместе с тем лишь 10% опрошенных имеют опыт программирования многопоточных приложений.

Что же предлагает Intel разработчикам для их адаптации к изменениям в микропроцессорных технологиях и решения их проблем?

При новых обстоятельствах корпорация уделяет много внимания работе своего департамента программного обеспечения.

Главные направления на которых сосредоточенна работа департамента это:

  1. Разработка средств отладки;
  2. Создание компиляторов для создания многопоточных приложений;
  3. Поставка библиотек распараллеленого многопоточного оттестированного кода;
  4. Разработка инструментов для анализа и совершенствования приложений;
  5. Предоставление программистам навыков разработки и отладки параллельных приложений;
  6. Консультирование относительно вопросов разработки многопоточных параллельных приложений.

Для организации процесса работы над проектами из разработки параллельных приложений Intel предлагает свои инструменты для каждого этапа проекта разработки:

Процесс разработки

Ключевое послание Intel разработчикам: Программные продукты Intel (Intel Software Development Products) являются эффективным целостным набором инструментов для разработки, отладки и оптимизации многопоточных программных приложений.

Для удобного и быстрого процесса разработки многопоточных приложений Intel предлагает инструменты Thread Checker, Thread Profiler и Threading Building Blocks(Intel TBB). Назначение инструментов Thread Checker и Thread Profiler — анализ работы приложения и выявления узких мест, что влияют на производительность.

Threading Building Blocks являет собой библиотеку выполняемых компонентов, что базируется на шаблонах C++ и значительно упрощает оптимизацию многопоточных приложений под многоядерные среды. Благодаря Intel TBB можно упростить написание кода, не тратить время на перепроверку и перенастройку основных параллельных алгоритмов и структур данных программирования низкого уровня. Intel уделяет особенное внимание развития TBB для Open Source, и вы можете ознакомиться больше с этим проектом по адресу: www.threadingbuildingblocks.org

Для реализации и отладки многопоточных приложений Intel предлагает компиляторы С/С++ и Fortran версии Professional Edition. Лишь версия Professional Edition обеспечивает возможности оптимизации, многопоточность и процессорную поддержку, которая включает автоматическое планирование процессоров, векторизацию, автоматическую параллелизацию, OpenMP, а также высокооптимизированные библиотеки.

Библиотека Intel Integrated Performance Primitives (Intel IPP) содержит функции обработки аудио-, видео- и графических файлов, шифровки данных и обработки сигналов, а также функции компонентов кодеков для работы с приложениями обработки цифровых медиафайлов и файлов данных.

Для инженерных, научных и финансовых приложений, которые нуждаются в высокой производительности, предназначена библиотека Intel Math Kernel Library (Intel MKL), что содержит высокооптимизированные, с разной степенью потоковости математические функции.

И наконец, для тюнинга многопоточного приложения Intel предлагает уникальный инструмент — анализатор производительности Intel VTune. VTune обычно используется совместно с Thread Profiler, он владеет удобным графическим интерфейсом пользователя и не нуждается в перекомпиляции. Важно: инструмент не зависит от языка программирования и поддерживает C, C++, Fortran C#, Java .NET и др.

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

Сегодня Intel видит будущее не в односторонней подаче информации разработчикам, а в активной коммуникации и совместной работе над новыми технологиями в программировании. Для этого созданы такие Интернет-проекты:

Intel Software Network

softwarecommunity.intel.com

На этом сайте разработчики имеют возможность принять участие в форумах посвященных новым технологиям, получить доступ к подкастам, электронному обучению, технической литературе и открытым исходным кодам.

What If

whatif.intel.com

Здесь Intel предоставляет в пользование бета-версии программных продуктов, что лишь находятся в процессе разработки. Вы можете загрузить такие инструменты как встроенный отладчик для Java/JNI, опытную версию компилятора Intel C++ STМ, вы можете поэкспериментировать с ними и выразить свое мнение инженерам Intel.

Go Parallel

www.go-parallel.com

Миссия проекта — превращение мощности мультиядерных технологий в производительность программных приложений. Статьи, интервью, обзоры индустрии, описание инструментов для разработчиков.

Итоги: департамент программного обеспечения Intel в условиях изменения парадигмы в отрасли разработки клиентского программного обеспечения становится опорой для сообщества разработчиков. Благодаря долгосрочной работе по поддержке эффективности приложений в сегменте научных высокопроизводительных вычислений Intel владеет уникальными инструментами для создания и оптимизации многопоточных приложений для многоядерной среды. Корпорация Intel понимает и проникается проблемами разработчиков и готовая инвестировать для того чтобы снизить риски разработчиков при переходе к созданию многопоточного ПО проводя бесплатную учебу и консультации, предоставляя доступ к исходному коду собственных програмных разработок.

Андрей Галич

компания «Юстар»

www.ustar.ua

Компания Юстар — ведущий украинский системный интегратор в отрасли высокопроизводительных вычислений, проектирования и построения центров обработки данных, поставки серверной техники, систем сохранения данных и программного обеспечения, в том числе и продуктов Intel Software.

С 2006 года Юстар ежегодно проводит в Киеве бесплатный семинар Intel Software Tools посвященный эффективному использованию программных инструментов Intel, на который приглашаются все разработчики ПЗ для кого является актуальной задача достичь максимальной производительности работы их приложений.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Схожі статті




13 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Андрей, научитесь различать вынос личных проблем на публику и публичное предупреждение об известных и систематических проблемах. Личную проблему с литературной неграмотностью отдельных пишущих здесь сотрудников Юстар я уж как-то попробую оставить при себе.:] PS: «надёжность бренда» — это как «вкус облака»: я не доверяю брэндам.PPS: массовое HPC и WCCS — спасибо, впаривайте кому-нибудь другому, подоверчивей. Для массового рынка как раз Windows и есть сильно дорогое «удовольствие». Не верите мне — спросите томичей.

Отличный материал. Жду статьи про полезность новых возможностей Windows Vista для программистов.

2 Michael Shigorin: Относительно многопроцесорности и линукс: в значительной мере это правда. Дело в том что до недавнего времени разработка паралельных приложений интересовала только программистов работающих в сегменте High Performance Computing (HPC). Сейчас же ситуация меняется и потребность параллельности становиться актуальной и для массового рынка, поэтому вся эта «исключительность» уже в прошлом. Даже в НРС сегодня уже нельзя не замечать Майкрософт. Вот между прочим интересная акция: http://www.ustar.ua/news/3565...Не понял что означает комментарий о Ваших проблемах с материнкой на чипсете Intel 5000. Или Вы таким образом решили поставить под сомнение надежность бренда Интел вцелом? Что же касается Ваших отношений с господином Савьяком то конечно же я не могу их комментировать. От себя лиш скажу что по моему мнению «вменяемость» человека определяется в том числе и его способностью решать личные проблемы не винося их на суд широкой публики.

PS: «неплохо»; «интересует». Про запятые молчу уже.

Насчёт многопроцессности: не знаю, чем думают волнующиеся разработчики, но тот факт, что в массивно-параллельной обработке котируется исключительно линукс и софт, который на нём работает — уже давно является фактом.Насчёт Intel: http://lists.altlinux.org/pipe...Насчёт Юстар: не могу рекомендовать никому, пока у дел остаётся Савьяк-старший. Он невменяемый человек без принципов и чести — за прошлый год это пришлось признать даже мне при более чем десятилетнем хорошем отношении к компании.Такие вот пирожки.

Спасибо за комментарий, Yury.Это и было одной из целей статьи — узнать насколько проблема паралеллизма интересна разработчикам ПО чтобы спланировать действия на будущее.Мы с коллегами из Интел с удовольствием возьмемся за организацию семинаров. Но предварительно было бы не плохо оценить потребность в них.Есть ли план развития персонала в Вашей компании, и можно ли спланировать тренинг вместе? Прошу Вас и всех кого интерисует тема обучения по Intel Software Tools писать на [email protected]

2Андрей Галич: Ну если Вы высказали истинно своё мнение, то это второй «звоночек», который попадает мне на глаза и следует задуматься над тем, что бы уделить больше внимания привнесения подобного опыта написания ПО в массы. Организовать компетентные семинары, пригласить специалистов, провести обучение (привлечь внимание и повысить мотивацию персонала).

Такая же статья проскакивала пару месяцев назад на сайте IBM.Дежавю какое то просто.

2Andrey Tkach: Насчет миссионерства, мне кажеся Андрей, Вы меня переоценили:) А относительно маркетинговой стратегии Интел — точно так, статья о ней. Точнее о том как эта стратегия может быть полезной для разработчиков.

По стилю похоже на миссионерскую проповедь. Cтатья не о реальном инжениринге и параллельности, а всего лишь о интеловской маркетинговой стратегии на этот счет.

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

Підписатись на коментарі