Опубликовано 04 октября 2002, 00:33

IDF Russia 2002. Разработка программного обеспечения

Не секрет, что Россия для Intel (и не только) — это, прежде всего разработки программных продуктов. Это было основной темой прошедшего в России впервые Форума разработчиков решений для Intel.

Не секрет, что Россия для Intel (и не только) — это, прежде всего разработки программных продуктов. Это было основной темой прошедшего в России впервые Форума разработчиков решений для Intel. А что наши компьютеры без грамотного софта? — Груда железа…

barret1.jpg

Крейг Барретт

barret1.jpg

Крейг Барретт

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

rolik1.jpg

Трехмерная сцена, воссозданная по фотографиям.

rolik1.jpg

Трехмерная сцена, воссозданная по фотографиям.

Изначально, используя «снимки местности»  и вышеупомянутое программное обеспечение воссоздается трехмерное окружение, потом на действующую сцену добавляются движущиеся объекты (в демонстрируемом примере главной фигурой в трехмерном действе стал сам Барретт, трехмерную модель головы которого не без помощи «спец. п/о» прикрепили к туловищу весьма удалого велосипедиста) и ролик уже готов!

rolik2.jpg

Голова Крейга Барретта.

rolik2.jpg

Голова Крейга Барретта.

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

hyper1.jpg

Демонстрация HyperThreading.

hyper1.jpg

Демонстрация HyperThreading.

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

softwarepart.jpg

Судя по доли программного обеспечения в общих затратах, пиратство на Руси отомрет нескоро.

softwarepart.jpg

Судя по доли программного обеспечения в общих затратах, пиратство на Руси отомрет нескоро.

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

Для хорошо владеющих тематикой форума или просто не желающих вникать в сухую теорию дела были предложены лабораторные работы по применению средств разработки от 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. Были затронуты проблемы использования ассемблерных вставок,

optimization_220.gif

Способы и средстваоптимизации программ.

optimization_220.gif

Способы и средстваоптимизации программ.

проблемы сосуществования 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.

ipp_220.gif

Обзорная схема применения IPP.

ipp_220.gif

Обзорная схема применения IPP.

Math Kernel Libraries представляют собой библиотеки функций для применения в построении математических, научных и финансовых приложений, включающих в себя подпрограммы для базисной линейной алгебры (BLAS 1,2,3), разрешающие программы и решатели по собственным векторам и значениям (LAPACK), векторную математическую библиотеку (VML), библиотеку быстрого преобразования Фурье. Этот набор библиотек существует в двух вариантах — для компиляторов под операционные системы Windows и Linux. Есть возможность построения оптимизированного под конкретный процессор кода, оптимизации кода для SMP-систем.

ippgroups_220.gif

ippgroups_220.gif

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… Но все это, скорее, тема для отдельной статьи, книги, серии книг.