IDF Russia 2002. Разработка программного обеспечения
Не секрет, что Россия для Intel (и не только) — это, прежде всего разработки программных продуктов. Это было основной темой прошедшего в России впервые Форума разработчиков решений для Intel. А что наши компьютеры без грамотного софта? — Груда железа…
Тенденцию легко можно было отследить уже во время вступительной речи главного исполнительно директора Intel Крейга Баретта. Первым подробно упомянутым продуктом в его выступлении стал вовсе не новый процессор, сервер или сетевая карта, а программная разработка ниженовогородских разработчиков, позволяющая при исходных данных, полученных самым обыкновенный цифровым фотоаппаратом, делать вполне конкурентноспособную трехмерную анимацию.
Изначально, используя «снимки местности» и вышеупомянутое программное обеспечение воссоздается трехмерное окружение, потом на действующую сцену добавляются движущиеся объекты (в демонстрируемом примере главной фигурой в трехмерном действе стал сам Барретт, трехмерную модель головы которого не без помощи «спец. п/о» прикрепили к туловищу весьма удалого велосипедиста) и ролик уже готов!
Ниженовгородцы демонстрировали на московском IDF немало программных разработок, большая часть из которых была тем или иным образом связана с трехмерной графикой: так, нельзя не упомянуть про систему распознавания мимики человека, сидящего перед камерой с последующим воспроизведением этой же мимики, но уже анимированной трехмерной моделью головы.
Сами разработчики прочат будущее этой разработки в телеонференциях, так как объем передаваемых данных в случае «живого» видео или передачи лишь данных о мимике говорящего — несравнимы.
После общей вводной части мероприятие было разбито на несколько параллельных потоков. Я хотел бы остановиться на потоке, посвященном разработке программного обеспечения и, собственно, программному обеспечению, для разработки предназначенного.
Для хорошо владеющих тематикой форума или просто не желающих вникать в сухую теорию дела были предложены лабораторные работы по применению средств разработки от Intel.
Было проведено три лабораторные работы:
1. Перенос приложений с 32-битной на 64-битную платформу Intel.
2. Использование Intel Vtune для оптимизации реальных приложений.
3. Оптимизация приложений с применением широкого спектра продектов от Intel.
Вторая и третья лабораторные работы более или менее пересекаются по содержанию с семинарами по программным продуктам Intel, именно поэтому стоит отдельно упомянуть о первой лабораторой работе, посвященной переносу приложений на 64-битную платформу Intel. Для лабораторной работы был выбран пример переноса такого приложения, как Web-сервер Apache на платформу Intel Itnium. Для компилирования этого проекта был предоставлен 4-процессорный сервер на Intel Itanium, к которому был предоставлен удаленный доступ, 64-битная версия Windows и средства разработки в виде среды Microsoft Visual Studio с компиляторами от Intel. Были затронуты проблемы использования ассемблерных вставок,
проблемы сосуществования 32- и 64-битного кода, использования 64-битного адресного пространства, изменение приложения для использования 64-битных типов даных, проблемы связанные с изменением Windows API. Впечатлило то, что, несмотря на довольно малое время, предоставленное для проведения работы, большинство лаборатнов успешно преодолело возникшие проблемы, добравшись до исполняемого 64-битного кода.
На потоке семинаров было подробно рассказано о программных продуктах Intel для разработчика, а именно о библиотеках Intel Perfomance Libraries (Math Kernel Libraries и Integrated Perfomance Primitives), компиляторах (Intel C/C++ Compiler, Intel Fortran Compiler), отладчике Assure, профилировщике GuideView, средстве разработки и отладки многопотоковых приложений Threading Tools и среде анализа производительности Intel Vtune Perfomance Analyzer.
Math Kernel Libraries представляют собой библиотеки функций для применения в построении математических, научных и финансовых приложений, включающих в себя подпрограммы для базисной линейной алгебры (BLAS 1,2,3), разрешающие программы и решатели по собственным векторам и значениям (LAPACK), векторную математическую библиотеку (VML), библиотеку быстрого преобразования Фурье. Этот набор библиотек существует в двух вариантах — для компиляторов под операционные системы Windows и Linux. Есть возможность построения оптимизированного под конкретный процессор кода, оптимизации кода для SMP-систем.
Intel Perfomance Primitives — это своего рода строительные кирпичики для построения высокопроизводительных приложений и компонент, предназначенных для цировой обработки сигналов, изображений, видео, звука, математических вычислений. Радует, что Intel Perfomance Primitives существуют как под ОС Windows и Linux, так и для ОС WinCE на платформе StrongARM или Intel XScale
При рассмотрении компиляторов от Intel большой уклон был сделан в сторону оптимизации кода под архитектуру NetBurst (Pentium 4 и Xeon), оптимизацию под 64-битную архитектуру Itanium, поддержке стандарта OpenMP и технологии HyperThreading в частности. Коротко были рассмотрены возможности межпроцедурной оптимизации, диспечеризации кода для достижения максимальной производительности в зависимости от типа ЦП на данной системе, параллелизации и автопараллелизации.
Упоминались также технологии программной конвейеризации (позволяющей эффективно загружать длинные конвейеры процессоров Intel Pentium 4 и Xeon) и автоматической векторизации (автоматическое распараллеливание при помощи использования SIMD инструкций).
Небезынтересно было послушать о профилировании и автопараллелизации приложений. Профилирование применяется для оптимизации программного обеспечения с сильным ветвлением, которое трудно предсказать во время компиляции (это также особенно важно для длинного конвейера Pentium 4), а автопаралеллизация занимается обнаружением циклов, которые можно безопасно выполнять параллельно, и генерацией соответствующего кода. Для отладки и контроля производительности многопоточных приложений Intel предлагает использовать средства Intel Thred Checker и Thread Profiler.
Intel Vtune Perfomance Analyser — среда для сбора и отображения данных о работе Windows- и Linux-приложений. Она поддерживает платформы IA32, Itanium (IA64), XScale. Сама Intel позиционирует Vtune для анализа узких мест как драйверов, одно- и многопотоковых приложений, так и для отслеживания узких мест сетевых ресурсов. Intel Vtune Enterprise Analyser предоставляет дополнительные средства для контроля межмашинного взаимодействия при осуществлении проектов по разработке Web-приложений (поддерживаются Microsoft DNA и .NET), при этом отслеживаются все типы запросов, включая запросы HTTP, COM+, SQL.
В рамках потока по программному обеспечению был также проведен семинар по Microsoft .NET и Visual Studio .NET, на котором рассматривались особенности как самой платформы .NET, так и средств разработки для нее. Здесь освещалось межплатформное взаимодействие, отличия между .NET Framework и .NET Compact Framework (предназначенной для мобильных устройств ограниченной функциональности), новые возможности Web-интерфейса, которые стали доступны благодаря ASP .NET… Но все это, скорее, тема для отдельной статьи, книги, серии книг.