Распараллелься или...
Экспоненциальный рост тактовой частоты процессоров закончился в 2003 году. Однако закон Мура продолжает действовать, и количество транзисторов на кристалле растет так же быстро, как и раньше — лишь теперь этот рост значит увеличение количества ядер на процессоре. В этих новых условиях чтобы воспользоваться ростом аппаратных возможностей и мощностью многоядерных процессоров нужно изменить подход к разработке программных приложений. Как видит эти изменения ведущий производитель процессоров? (По материалам конференции Intel Software «Go Parallel»,
Симбиоз развития аппаратной и программной отраслей ИТ подошел к критической границе — счастливая эпоха когда это развитие двигалось по спирали, а производительность приложений персональных компьютеров росла сама собой, вместе с ростом тактовой частоты процессора, закончилась. Сегодня уже четко понятно, что для того чтобы обеспечить рост производительности поставщики процессоров будут развивать мультиядерность и многопоточность.
По прогнозу IDC к 2010 году все сервера, рабочие станции и ноутбуки, что будут изготовлены в мире, будут иметь процессоры с двумя и больше ядрами.
Мультиядерность стала нормой сегодня, этот тренд сохранится надолго. Очевидно, что на многоядерные технологии в ближайшее время перейдет также и рынок мобильных устройств.
Что значит эта новая реальность для разработчиков программного обеспечения?
Раньше в погоне за ростом производительности поставщики микропроцессоров не особенно задумывались над интересами разработчиков ПО — ожидания рынка относительно роста производительности микропроцессоров заставляли поставщиков не думать ни о чем другом. Фактически, они могли себе это позволить — «бесплатный обед» («The Free Lunch is Over», Herb Sutter) которым производители микропроцессоров кормили отрасль ПО был достаточным, чтобы обеспечить рост производительности приложений.
Разрыв в развитии микропроцессорной индустрии и индустрии програмного обеспечения
Но сегодня развитие производительности программных приложений становится «ограничением» на пути последующего развития микропроцессорной индустрии. В конечном итоге, конечный потребитель платит деньги не за показатели производительности на тестах — ему нужные качества и эффективность работы приложений, и если он ее не получит то и не будет вкладывать деньги в модернизацию аппаратной инфраструктуры. Таким образом, чтобы движение по спирали продолжалось, усилия должны приложить и разработчики программного обеспечения, и производители микропроцессоров.
Хотя тема «параллельного программирования» не новая, до этого времени она была сферой интересов узкого сегмента разработчиков приложений для высокопроизводительных вычислений, преимущественно в сфере научно-исследовательских проектов.
Сотрудник Microsoft Герб Саттер (Herb Sutter) сравнивает сегодняшнее состояние в отрасли программирования с революцией в разработке программного обеспечения, что состоялась с переходом от структурированного программирования к объектно-ориентированному и которая была наибольшим изменением в этой отрасли за последние 20 лет.
Переход к объектно-ориентированной технологии программирования позволил выйти на высший уровень абстракции, что дало возможность строить сложные компонентные программы. То же сегодня ожидает развитие средств для программирования многопоточных приложений — нужно перейти на новый уровень абстракции, чтобы уменьшить объем «ручной» работы.
Эксперты предусматривают, что изменения, которые состоятся в средствах программирования для того чтобы отвечать новым вызовам, будут значительнее чем даже переход к объектно-ориентированной технологии. Ведь речь идет не просто о повышении производительности работы программистов — речь идет о росте системной производительности в целом. Все указывает на то, что параллелизм станет главным инструментом и основным путем повышения производительности, и он не оставит места тем инструментам программирования что не будут его поддерживать.
5 проблем, что больше всего волнуют разработчиков
Согласно данных исследования, что провела компания Ziff Devis Entrtprise, программисты выделяют 5 проблем что мешают их компаниям активно включиться в разработку многопоточных приложений:
- Нужные новые навыки;
- Нужные инвестиции;
- Руководство не видит потребности;
- Нужен новый процесс разработки;
- Рост ошибок при программировании.
При этом более половины опрошенных понимает преимущества технологии многоядерности и новые возможности что она дает разработчикам. Вместе с тем лишь 10% опрошенных имеют опыт программирования многопоточных приложений.
Что же предлагает Intel разработчикам для их адаптации к изменениям в микропроцессорных технологиях и решения их проблем?
При новых обстоятельствах корпорация уделяет много внимания работе своего департамента программного обеспечения.
Главные направления на которых сосредоточенна работа департамента это:
- Разработка средств отладки;
- Создание компиляторов для создания многопоточных приложений;
- Поставка библиотек распараллеленого многопоточного оттестированного кода;
- Разработка инструментов для анализа и совершенствования приложений;
- Предоставление программистам навыков разработки и отладки параллельных приложений;
- Консультирование относительно вопросов разработки многопоточных параллельных приложений.
Для организации процесса работы над проектами из разработки параллельных приложений 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
На этом сайте разработчики имеют возможность принять участие в форумах посвященных новым технологиям, получить доступ к подкастам, электронному обучению, технической литературе и открытым исходным кодам.
What If
Здесь Intel предоставляет в пользование бета-версии программных продуктов, что лишь находятся в процессе разработки. Вы можете загрузить такие инструменты как встроенный отладчик для Java/JNI, опытную версию компилятора Intel C++ STМ, вы можете поэкспериментировать с ними и выразить свое мнение инженерам Intel.
Go Parallel
Миссия проекта — превращение мощности мультиядерных технологий в производительность программных приложений. Статьи, интервью, обзоры индустрии, описание инструментов для разработчиков.
Итоги: департамент программного обеспечения Intel в условиях изменения парадигмы в отрасли разработки клиентского программного обеспечения становится опорой для сообщества разработчиков. Благодаря долгосрочной работе по поддержке эффективности приложений в сегменте научных высокопроизводительных вычислений Intel владеет уникальными инструментами для создания и оптимизации многопоточных приложений для многоядерной среды. Корпорация Intel понимает и проникается проблемами разработчиков и готовая инвестировать для того чтобы снизить риски разработчиков при переходе к созданию многопоточного ПО проводя бесплатную учебу и консультации, предоставляя доступ к исходному коду собственных програмных разработок.
Андрей Галич
компания «Юстар»
www.ustar.ua
Компания Юстар — ведущий украинский системный интегратор в отрасли высокопроизводительных вычислений, проектирования и построения центров обработки данных, поставки серверной техники, систем сохранения данных и программного обеспечения, в том числе и продуктов Intel Software.
С 2006 года Юстар ежегодно проводит в Киеве бесплатный семинар Intel Software Tools посвященный эффективному использованию программных инструментов Intel, на который приглашаются все разработчики ПЗ для кого является актуальной задача достичь максимальной производительности работы их приложений.
13 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.