Оригинал материала: https://3dnews.kz/595855

Intel Software Partner: как разрабатывать ПО вместе с Intel?

Есть немало истин, которые вроде бы очевидны, но поверить в них до конца непросто. Одна из них звучит так: Intel – это не только процессоры. Больше того, Intel – это не только чипсеты, материнские платы, твердотельные накопители, графические и сетевые адаптеры. Сегодня Intel является одним из крупнейших разработчиков программного обеспечения, причем значительная часть его рождается у нас, в России. Более семисот инженеров работают сегодня в Нижнем Новгороде, Сарове, Новосибирске, Санкт-Петербурге и Москве . Важно подчеркнуть, что речь идет о настоящем, серьезном ПО, а не только о разнообразных драйверах и вспомогательных утилитах для «железа», выходящего под брендом Intel. Нет, Intel предлагает компиляторы, анализаторы, библиотеки и другие вспомогательные инструменты для разработчиков самого различного ПО. Венчает же это многообразие пакет Intel Parallel Studio, помогающий создавать программы, обученные выжимать максимум производительности из многоядерных процессоров – как современных, так и только создаваемых.

Возникает вопрос - а зачем небедной и весьма успешной на «железном» фронте корпорации Intel заниматься еще и софтом? Да еще и не потребительским, а, скажем так, весьма специальным? Ведь это очень дополнительные затраты на высококвалифицированный персонал, исследования, оборудование, офисы, маркетинг – и все равно на фоне основного бизнеса доходы будут смотреться бледновато. Не приходится сомневаться в том, что в Intel умеют считать деньги не хуже нас с вами. Так не проще ли вложить все средства в разработку того, что приносит больше всего прибыли, а спецсофтом пусть занимаются другие? Благо желающие-то есть.

Эти доводы бы были применимы, если бы речь шла о какой-нибудь другой компании. Но Intel сегодня – не просто успешный производитель «железа». Корпорация – не во всем, но во многом – определяет будущее индустрии, регулярно «изобретая завтра». Выходящие флагманские решения зачастую не имеют аналогов на рынке и, соответственно, разработчики ПО не имеют ни малейшего опыта работы с ним. В том числе и разработчики ПО для разработчиков.

Как вести себя в данной ситуации? Сделать нечто с огромным потенциалом и пустить его в свободное плавание, пусть невидимая рука рынка сама все наладит? К сожалению, современные технологии настолько сложны, что эта самая рука будет задумчиво ковыряться в них не один год, Взять хотя бы многоядерные процессоры: уже сколько времени они на рынке, и усилия со стороны Intel прикладываются колоссальные, а все равно значительная часть игр и приложений до сих пор остаются однопоточными. Доходит до смешного: игра отчаянно тормозит, владелец вроде бы мощного компьютера злится, а половина процессорных ядер в это время отдыхает. Или при конвертации видео вполне коммерческим кодеком процесс еле ворочается, потому что его научили пользоваться только одним ядром. В моем понимании это что-то вроде обвеса покупателя: заплатив деньги за программу, пользователь недополучает производительность, причем порой – очень серьезно.

Проблема? Да, пожалуй. Можно, конечно, говорить, что многоядерные процессоры вошли в моду раньше, чем надо. И мол надо было сначала подождать, пока вырастет новая школа параллельного программирования, сменив классическое однопоточное, и вот тогда уже пускать многоядерность в массы. Наверное, лет двадцать назад, когда у индустрий hardware и software было больше времени на спокойную притирку друг к другу, все так и было бы. Но сейчас и жизнь стала быстрее, и поколения IT-продуктов сменяются куда оперативнее. Между тем, сами пользователи охотно голосуют за многоядерность рублем: посмотрите, на прилавках уже не осталось одноядерников, а двухъядерные процессоры уверенно перемещаются в разряд low end. Теперь никого не удивишь четырехъядерным процессором, еще немного и вполне обычной покупкой станет шестиядерник… И если большие софтверные компании уже практически готовы встретить их во всеоружии (не зря же поддержка многоядерности упоминается в самом верху списка преимуществ новых офисных пакетов, браузеров, графических редакторов и даже антивирусов), то многие разработчики нормальных размеров продолжают работать по старинке. Не из принципа, нет. Просто не всегда понятно – с чего начать, как вычислить слабые места в оптимизации, что именно надо доработать для правильного использования многоядерного процессора. Вопросов возникает действительно немало, причем не только по процессорам – ведь неплохо бы оптимизировать свое приложение и для работы с графическими продуктами Intel, эффективно реализовать работу с видео, проверить функциональность различного ПО для управления. Наконец, новое веяние: оптимизация энергопотребления программ, чтобы они помогали продлить время автономной работы нетбуков, ноутбуков, а потом и смартфонов на Intel Atom.

Для тех, кто задумывается о таких вещах, и создана программа Intel Software Patner. Зарегистрироваться в ней можно совершенно бесплатно, и займет этот процесс пять минут, даже если вы будете немного задумываться над каждым пунктом небольшой анкеты. Разумеется, сам факт регистрации в Intel Software Partner не сделает программы, над которыми работаете вы сами или ваша компания, лучше и быстрее. Но он откроет доступ сразу к пяти весьма эффективным средствам для оценки ПО, помогающим выявить сильные и слабые места приложений, ускорить оптимизацию и, что очень важно, получить советы от специалистов Intel, которые знают о своей продукции больше, чем кто-либо другой. Плюс большинство представителей пятерки способно оценить приложение и выдать отчет по нему по итогам всего лишь 30-секундноно исследования.

Первое средство называется Intel® Concurrency Checker, и предназначено оно для оценки производительности приложения на многоядерных процессорах. Можно сразу скачать и установить его на своем компьютере (есть версии для 32- и 64-битных Windows, а также для Linux), но лучше, наверное, сначала скачать подробнейшую инструкцию на русском языке, посмотреть видеообзор Checker’а, снабженный русскими субтитрами, или даже скачать веб-семинар. Запуск, и через тридцать секунд вы узнаете – сколько ядер реально использовалось приложением и насколько интенсивно, не мешали ли параллельные процессы друг другу, а если мешали , то в какой степени. Concurrency Checker создает файл с отчетом, который стоит закачать на сервер Intel (разумеется, с гарантией нераспространения полученных данных), потому что в ответ вы получите дополнительную информацию о результатах оценки и перечень рекомендуемых оптимизаций кода. Intel рекомендует начать проверку приложений на самой ранней стадии разработки, а потом прибегать к ней после каждого внесения изменений в код.

Второе средство - Intel® Graphics Checker. Наверное, все по-разному относятся к интегрированным графическим решениям Intel, но разработчик трехмерных игр не может пренебрегать тем фактом, что на их долю приходится более 50% рынка. Поэтому вероятность запуска его детища на Intel HD или GMA 3150, мягко говоря, велика. Конечно, есть игры, которые на встроенной графике даже не заработают, но таких меньшинство. Всем остальным же, наверное, будет полезно провериться на пригодность для относительно слабых систем - ведь их владельцам тоже хочется играть, а продажи слишком большими не бывают. Алгоритм работы с Intel® Graphics Checker аналогичный: инструкция, видеоролик, установка самой утилиты и – запуск! Важно только не забыть выбрать жанр игры для дополнительной точности выводов. Стоит заметить, что через 30 секунд вы узнаете относительно немного полезного, а самое интересное ждет после закачки отчета на сервер Intel, где вы наряду с дополнительными нюансами отчета получите также рекомендации по оптимизации кода. Оценив, что и как, можно доработать игру, дабы она работала с приемлемой скоростью даже на интегрированной графике. Спасибо за оптимизацию скажут и владельцы бюджетных ноутбуков, и парни с большими мощными компьютерами, у которых тоже «станет быстрее».

Третий представитель пятерки, Intel® Media Checker, отвечает за «оценку приложений на базе комплекта Intel® Media SDK для операций кодировки, декодирования или предварительной обработки отформатированных видеопотоков WMV, H.264 или MPEG-2». Для непосвященных эта словесная конструкция звучит довольно абстрактно, но на самом деле библиотека Intel® Media SDK весьма популярна и используется, к примеру, в плеере Media Player Classic, установленном, кажется, на половине компьютеров мира. Библиотека помогает плееру аппаратно декодировать HD-видео средствами интегрированного графического адаптера Intel, и, наверное, будет полезной в аналогичных продуктах, а также во всех мультимедийных приложениях, заточенных под работу с видеоконтентом. В том числе, конечно, и в играх. В данном случае принцип использования утилиты прежний, и даже интерфейс ее очень похож. Это правильно: вся пятерка решает вполне конкретный набор задач, и, освоив одну утилиту, специалист сможет без лишних простоев работать с другими. Инструкция, обучающий ролик, тридцать секунд на сбор данных, и вот уже видно – работает ли аппаратное декодирование или графический чип отдыхал, а вместо него трудился процессор. И снова есть смысл отправить отчет в Intel, чтобы получить более подробные сведения и полезные рекомендацию по оптимизации кода, если таковая потребуется.

Intel® Manageability Checker – утилита, стоящая немного особняком, потому что предназначена она в первую очередь для приложений, используемых не дома, а на работе. Инструкция говорит, что это «простое в использовании средство, которое предлагает доступный способ записи и идентификации пакетов Intel AMT, а также функции их сравнения с примерами использования технологии Intel AMT». Наверное, стоит уточнить, что технология Intel® Active Management (Intel® AMT) - это функциональность, встроенная в платформы Intel, которая расширяет возможности управлению корпоративными вычислительными системами. Она процессоронезависима, и даже операционная система, установленная на компьютере, роли не играет. Но вот для использования Manageability Checker’а потребуется система с поддержкой технологии vPro. Точнее, сама утилита заработает на любой системе, где установлен процессор Core 2 Duo или старше, но она выступит в качестве консоли управления, и на нее же следует установить тестируемое приложение. А компьютер с vPro нужен для проверки того, как ходят в обе стороны пакеты AMT. Обе системы должны находиться в одной сети. Абзац про эту утилиту несколько тяжеловесен, но ничего не поделаешь: разработка решений корпоративного назначения – занятие весьма суровое, но и довольно прибыльное. Особенно если результат оправдывает возложенные на него ожидания. Intel® Manageability Checker этому крайне способствует. На всякий случай уточню, что утилита так же создает отчет, отправляемый в Intel для получения дополнительной информации и полезных советов.

Наконец, пятое средство, ставшее доступным всего несколько дней назад - Intel® Power Checker. Оно предназначено для изучения энергопотребления приложений в режиме работы и простоя, а также их поведения в ситуации, когда заряд батареи становится критически низким. По идее, утилита предназначена в первую очередь для разработчиков ПО, заточенного под Intel Atom, но, учитывая всепроникающую «зеленость», несколько сэкономленных ватт пойдут на пользу рекламе и вполне стационарных приложений. Впрочем, последнее – это уже мысли автора, тогда как Intel настаивает на мобильной специфике инструмента, а устанавливать его официально можно только на ноутбук или нетбук. По завершению тестов, которые на сей раз займут около 30 минут (с батареей секундами не обойтись), Power Checker покажет интересный набор информации по энергопотреблению приложения, и, как обычно, отчет будет полезно закачать на сервер Intel.

Я специально не хочу рассказывать о вещах, которые ждут разработчиков после закачки отчета на сайт программы Intel Software Partner. Просто потому, что тем, кто (пока?) не занимается разработкой софта, это будет не очень интересно. Те же, кто занимается и попробует – наверняка не пожалеют. Не хочется мешать сделать все полезные открытия самостоятельно. Только об одном не могу не упомянуть: там есть возможность посмотреть – а как обстоят дела у других участников программы? Конечно, имен и явок никто не сдаст (равно как и ваши останутся для всех тайной), но статистика, согласитесь, сама по себе занимательнейшая.

Как положено хорошей партнерской программе, у Intel Software Partner есть несколько уровней, от базового до платинового. По мере накопления опыта в оптимизации ПО, появится персональный менеджер (приятно, но служба поддержки и так отвечает крайне оперативно), на упаковке дисков и веб-сайте можно будет разместить логотип участника программы (проверено – помогает), а со временем и ездить на встречи с коллегами по бизнесу и специалистами Intel в страны с умеренным климатом.

Кстати, о встречах с коллегами. Говоря о программе Intel Software Partner, нельзя не вспомнить о сообществе разработчиков Intel Software Network. Изначально оно было англоязычным, но вот уже несколько лет ISN успешно развивается в России – на русском языке. В форуме Intel Software Network всегда можно обсудить с коллегами и специалистами Intel возникшие вопросы, а в блогах почитать об интересных случаях, связанных с софтом и аппаратным обеспечением, новых веяниях, мероприятиях ISN и многих других вещах. Пока не заглянешь, даже трудно представить – насколько многих. Возможно, среди блоггеров Intel Software Network вам встретятся и знакомые лица.

Но вернемся к тому, с чего мы начали. Эта статья может вырасти еще на десяток экранов, однако всех возможностей, предоставляемых программой Intel Software Partner, она все равно не опишет. Честно говоря, дотошность (или, если угодно, обстоятельность) людей из Intel просто поражает: наряду с программными инструментами представляется изрядное количество других – экономических, управленческих и чуть ли не психологических (как вам, к примеру, наличие шаблона собеседования с потенциальным клиентам?). То есть понятно, что хороший (и правильно оптимизированный) продукт может продавать себя сам, но если ему немного помочь…

Ресурсы для планирования, библиотека Intel для партнеров, планы по выпуску продукции Intel, маркетинговые материалы – заходите, посмотрите сами, благо доступ полностью бесплатен. И не вздумайте заподозрить Intel в альтруизме: конечно же, в корпорации очень хотят, чтобы ПО максимально использовало возможности выпускаемых ей аппаратных решений, потому что это способствует продажам. Но, в то же время, «железо» Intel настолько распространено, что оптимизированная для него программа гораздо легче найдет счастливых пользователей, чем работающая не в полную силу. Такой вот win-win получается, если использовать терминологию западных переговорщиков.

Наверное, те, кто всерьез занимается программированием, знают, что это не просто работа. Скорее, своеобразная смесь бизнеса и образа жизни. И поэтому всегда, даже во время сурового цейтнота, не исчезает желание сделать свое детище быстрее, современнее, «легче». Конечно, летом, да еще и таким, какое оно в нынешнем году, не очень хочется совершать лишние движения и экспериментировать с незнакомыми инструментами. И все же, если вы разработчик – попробуйте то, что предлагается в рамках Intel Software Partner, не откладывая на осень. Право же, результат может значительно превзойти затраченные усилия.

И, возможно, эти и другие инструменты Intel, помогут добиться гораздо, гораздо большего.



Оригинал материала: https://3dnews.kz/595855