Параллельные пересекаются
АрхивВ фокусеВ Intel считают, что через десять лет, глядя в прошлое, разработчики будут поражены тем, насколько изменился подход к написанию программного кода. Параллелизм станет всеобщим явлением.
Сегодня уже мало кто сомневается в том, что многоядерные процессоры станут обычным делом в мире настольных компьютеров. Новые мощности открывают возможности для обработки таких объёмов данных, которые раньше нельзя было себе представить. Если вчера мы говорили "мощный ПК" и представляли себе компьютер, способный отобразить в высоком разрешении и без задержек процесс уничтожения множества трехмерных монстров, то сегодня повышенной производительности требуют уже не игры, а мультимедийные приложения - как насчёт обработки HD-видео в реальном времени с наложением ряда графических фильтров? Как насчет обработки сложных карт в реальном времени? Интеллектуальных систем безопасности, которые должны быть умнее вирусов, и при этом не тормозить работу? Как насчет телевизионного сигнала высокой чёткости или управления бытовой техникой?
В корпорации Intel убеждены, что персональный компьютер именно на базе технологии Intel Core сможет стать ядром домашней мультимедийной системы: он будет показывать кино и телепрограммы, работать с интернетом, позволять играть в компьютерные игры и т. д. Другая бытовая электроника, кроме, пожалуй, холодильников и стиральных машин, попросту станет лишней.
В прошлом повышение производительности процессоров означало потребление дополнительной электроэнергии и нагрев до более высоких температур. Теперь это не так. Микроархитектура Intel Core значительно повышает производительность на ватт электроэнергии и создает среду для компьютерных решений нового поколения: компактных высокопроизводительных устройств с пониженным тепловыделением, помещений для установки серверов с меньшим потреблением электроэнергии и менее высокими требованиями к кондиционированию воздуха; мобильных решений, требующих менее частой подзарядки батарей, а также решений для клиентов и бизнеса, которые были физически невозможны для процессоров прошлого поколения. От рационального потребления энергии, сопровождающего переход к многоядерным технологиям, выигрывают буквально все платформы.
Однако многоядерные процессоры возникли вовсе не потому, точнее, не столько потому, что сделать одно ядро еще мощнее уже нельзя, а требования к производительности компьютеров постоянно возрастают - прогресс в области нанотехнологий уже даёт о себе знать, и уже сегодня на площади с одну почтовую марку умещаются суперкомпьютеры недавнего прошлого. Нет, дело не только в этом. Цель - убедить новое поколение разработчиков "думать параллельно", учиться использовать многопоточные вычисления в своих программных продуктах, ведь с приходом нового "железа" подходы к программированию компьютерных систем неизбежно будут меняться. Руководитель отдела маркетинга и развития в подразделении Intel Software Development Products Джеймс Рейндерс уверен в том, что в будущем разработчики ПО столкнутся с огромными изменениями и "через десять лет, глядя в прошлое мы будем поражены тем, как изменился подход к написанию программного кода. Параллелизм станет всеобщим явлением".
Иными словами, разработчикам программного обеспечения сегодня нужно думать не о двух или четырёх процессорных ядрах, а о о многопоточных вычислениях в более широком понимании. В компании Intel убеждены, что эти усилия не будут потрачены зря, и в этом она готова помочь, предлагая программистам специализированные инструменты, позволяющие эффективно использовать новые возможности. В частности, в осеннем выпуске журнала Intel Software Insight перечислены доступные инструменты Intel для разработки ПО, поддерживающие параллелизм: библиотеки, программы для анализа поведения многопоточных приложений, компиляторы с расширениями OpenMP, отладчики и анализаторы производительности. В дополнение к этому обширному набору продуктов корпорация Intel выпустила на рынок кросс-платформенную стандартную библиотеку шаблонов на С++ Intel Threading Building Blocks. Она предназначена для преодоления разрыва между сложными низкоуровневыми инструментами разработки многопоточного ПО и высокоуровневыми, готовыми к использованию алгоритмами. Используя эти шаблоны, разработчики смогут немедленно встроить в существующий код уже протестированные масштабируемые параллельные структурные элементы. Как отмечают в Intel, библиотеку Intel Threading Building Blocks отличает простота программирования, внимание к корректности многопоточных алгоритмов и масштабируемость. Эти характеристики и возможности, несомненно, привлекут разработчиков C++, которые в меньшей степени знакомы с концепциями многопоточности, и позволят быстрее перейти к созданию поточно-ориентированных приложений с высокой степенью параллелизма.
Благодаря поддержке ОС Microsoft Windows, Linux и Mac OS X на 32- и 64-разрядных платформах эти структурные элементы могут стать популярным инструментом разработчиков, ориентирующихся на многоядерные процессоры и задумывающихся о простоте развёртывания ПО. Совместимость с компиляторами Intel, Microsoft и GNU также повышает популярность этого продукта. Инструменты разработки многопоточных приложений Intel помогают инженерам-программистам быстро справиться со всеми затруднениями, возникающими при разделении приложений на потоки. Это поможет сэкономить время и деньги компаний, а также выдержать сроки завершения проекта.
Многие преимущества многопроцессорных архитектур уже доступны немедленно и не требуют изменения структуры приложения. Использование всех преимуществ многопоточности создает дополнительные возможности и позволяет оптимально потреблять все доступные вычислительные ресурсы. По мере того как разработчики приспосабливаются к нынешней смене парадигмы, природа многоядерной обработки данных заставляет формулировать новые планы на будущее. К счастью, огромный объём уже существующих образовательных ресурсов, возможностей практического обучения и технических знаний сможет уменьшить отрицательные последствия происходящих изменений.