Новые инструменты Intel для программирования в эпоху параллелизма
🕛 29.11.2006, 14:17
Двухъядерные и четырехъядерные процессоры - это не способ повышать мощность компьютера без ухода в нанотехнологии. Мощь, заложенная в многоядерные процессоры, станет залогом нового этапа в развитии настольных компьютеров, откроет возможности для обработки таких объемов данных, которые раньше нельзя было себе представить. Вчера мы говорили «мощный ПК» и представляли себе станцию, способную отобразить в высоком разрешении и без задержек процесс уничтожения множества трехмерных монстров. Сегодня пика мощности требуют уже не игры, а мультимедийные приложения - как насчет обработки HD-видео в реальном времени с наложением ряда графических фильтров? Ваш компьютер может с этим справиться? Думаете, что видео - маргинальная задача, важная не для каждого? Как насчет обработки карт в реальном времени? Интеллектуальных систем безопасности, которые должны быть умнее вирусов, и при этом не тормозить работу? Как насчет телевизионного сигнала? Управления домашней электроникой?
Новые возможности позволяют решать новые задачи. Персональный компьютер на базе технологии Intel® Core™ становится ядром домашней мультимедийной системы: он будет показывать кино, работать с интернетом, позволять играть и т.д. Другая бытовая электроника станет лишней.
Два ядра появляются не потому, что сделать одно ядро еще мощнее уже нельзя. Нет, дело не в этом. Цель - убедить новое поколение разработчиков «думать параллельно». Сегодня разработчики должны учиться использовать многопоточные вычисления в своих продуктах, чтобы использовать возможности современных компьютеров в полной мере и не отставать от конкурентов. Но это не временная и вынужденная ситуация. Подходы к программированию систем вообще будут меняться с приходом этих новых технологий.
Разрабатывая новые версии программ, стоит думать не о двух ядрах процессора и не о четырех, стоит думать о многопоточных вычислениях в более широком понимании. Компания Intel, в свою очередь, предлагает разработчикам инструменты, позволяющие эффективно использовать новые возможности.
В осеннем выпуске журнала Intel® Software Insight (его можно взять на сайте http://www.intel.com/software/ru/insight/) перечисляются доступные инструменты Intel для разработки ПО, поддерживающие параллелизм: библиотеки, программы для анализа поведения многопоточных приложений, компиляторы с расширениями OpenMP, отладчики и анализаторы производительности. В дополнение к этому обширному набору продуктов Intel выпустила на рынок кросс-платформенную стандартную библиотеку шаблонов на С++ Intel Threading Building Blocks для преодоления разрыва между сложными низкоуровневыми инструментами разработки многопоточного ПО и высокоуровневыми, готовыми к использованию алгоритмами. Используя эти шаблоны, разработчики могут немедленно встроить в существующий код протестированные масштабируемые параллельные структурные элементы. Библиотеку Intel Threading Building Blocks отличает простота программирования, внимание к корректности многопоточных алгоритмов и масштабируемость. Эти характеристики и возможности несомненно привлекут разработчиков C++, которые в меньшей степени знакомы с концепциями многопоточности, и позволят быстрее перейти к созданию поточно-ориентированных приложений с высокой степенью параллелизма.