<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Блоги Intel® Software Network &#187; Разработка софта</title>
	<link>http://softwareblogs-rus.intel.com</link>
	<description></description>
	<pubDate>Thu, 24 Apr 2008 15:40:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Кто обрушил рынок PC игр, или о скрещивании ужей с ежами</title>
		<link>http://softwareblogs-rus.intel.com/2008/03/25/pc/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/03/25/pc/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 17:35:37 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[Игры]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[MMORPG]]></category>

		<category><![CDATA[игровой рынок]]></category>

		<category><![CDATA[игры]]></category>

		<category><![CDATA[интегрированная графика]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/03/25/pc/</guid>
		<description><![CDATA[Всем привет!
Вчера я делился своим впечатлением от интервью с Тим Свини из Epic Games. Напомню его основную мысль: "Компьютеры - хорошая штука для чего угодно, только не для игр". А сегодня мне на глаза попалось интервью с Алексом Джоном (Alex St. John) - CEO WildTangent и бывшим "игровым евангелистом" Microsoft.
В целом Алекс и Тим видят [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Вчера я <a href="http://softwareblogs-rus.intel.com/2008/03/24/intel-2/">делился</a> своим впечатлением от интервью с Тим Свини из Epic Games. Напомню его основную мысль: "Компьютеры - хорошая штука для чего угодно, только не для игр". А сегодня мне на глаза попалось <a href="http://www.extremetech.com/article2/0,1697,2277507,00.asp">интервью с Алексом Джоном</a> (Alex St. John) - CEO <a href="http://www.wildgames.com">WildTangent</a> и бывшим "игровым евангелистом" Microsoft.</p>
<p>В целом Алекс и Тим видят проблемы игровой индустрии примерно в одном свете, а вот выводы делают совершенно разные. Начну с такой вот метафоры Алекса:</p>
<p>Представьте, что вы пришли в продуктовый магазин:<br />
- Я хотел бы купить шоколадку, продайте мне что-нибудь…<br />
- О да, у нас есть шоколад в двадцатилитровых бочках, по $1000 за бочку.<br />
- Я, конечно, люблю шоколад, но не до такой степени… Мне бы Hershey за 50 центов…<br />
- Идите лесом, у нас тут только бочками. Платите $1000 или ищите другой магазин!</p>
<blockquote><p><em>Перед тем, как продолжить цитировать Алекса, я должен сделать небольшое лирическое отступление. Некоторые мои коллеги считают, что в своем блоге я обязан строго следовать позиции Intel. И если мое мнение не совпадет с "мнением редакции", меня уволят. Лично я вижу свои служебные обязанности несколько иначе. Небольшой эксперимент поможет нам докопаться до истины: я сейчас буду коротенько пересказывать интервью Алекса, с мнением которого в целом согласен. Поэтому на всякий случай - прощайте и всем удачи! <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</em></p></blockquote>
<p>Intel и Microsoft надо бы оторвать руки за те тупые действия, благодаря которым компьютеры не стали той великолепной игровой платформой, которой они могли стать. Low-end PC прекрасно подошли бы для игр, если бы не убогая интегрированная графика и не раздутая операционная система. Intel привык работать с корпоративными клиентами, и в этом его беда – считает Алекс. Intel нужно продавать как можно больше "главных чипов" (процессоров), поэтому на протяжении долгих лет он принуждал OEM производителей продвигать системы с интегрированной графикой. Это понятно – на корпоративном рынке GPU вторичен, а CPU первичен. Но в игровой индустрии все должно быть "наоборот".</p>
<p>Что мы имеем в сухом остатке? Low-end PC появились задолго до игровых приставок, они продаются в сотни раз лучше чем консоли, они имели огромный исторический потенциал как игровая платформа… Но, к сожалению, рынок low-end компьютерных игр попросту уничтожен недальновидной политикой Microsoft и Intel.</p>
<blockquote><p><em>Еще одно лирическое отступление – насколько я знаю, Intel не позиционировал себя как игрок на рынке компьютерных игр, так что, скорее всего, это была недальновидная политика каких-то других компаний <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</em></p></blockquote>
<p>В то же время, Алекс возлагает серьезные надежды на следующее поколение графики Intel (и в этом его мнение расходится с мнением Тима) – в новом поколении чипов возможности GPU и CPU будут объединены. Такие чипы в теории достигнут производительности в 5-10 раз выше, чем любое современное решение. Именно они будут составлять основу Low-end PC и лэптопов через пару лет. Конечно, запуск новой архитектуры займет время, но Алекс верит, что именно она реинкарнирует рынок компьютерных игр.</p>
<p>А что же с игровыми приставками? Текущее поколение приставок будет последним, считает Алекс: Sony и Microsoft переоценили себя. Затраты на разработку уникальных платформ оказались непомерно велики. Миллиарды долларов! Чтобы вернуть такие деньги нужны годы присутствия платформы на рынке. Годы, в течение которых конкуренция будет заставлять инвестировать все больше и больше средств в "железо". Мы видели, как ушли с рынка SEGA и Colecovision. Совсем скоро кто-то станет следующим.</p>
<p>И все-таки, где же деньги? Продавцы приставок и Hi-End компьютерных игр <a href="http://www.ozon.ru/context/detail/id/3312472/">продают коробки</a>, почти как те продавцы шоколада бочками. Неважно – один час вы играете в день, или 22 часа – <a href="http://www.ozon.ru/context/detail/id/3596822/">платите $100</a> за коробку!</p>
<p>Но позвольте, мы живем в эпоху микроплатежей, сервисов по подписке и ad-ware. Любопытный факт – в 1998 рынок коробочных игр для PC составлял $2.2 миллиарда, сейчас он составляет примерно $1.2 миллиарда. Коллапс? Минутку, не одними коробками мы живем в 21-м веке! $1.2 миллиарда заработали парни из Blizzard на подписке <a href="http://www.ozon.ru/context/detail/id/2208191/">WOW</a> (смотрим на цены). Замечу, что им не нужно бороться с пиратами, заниматься логистикой поставок, и т.п.. Хочешь играть – плати за подписку! Всего-то дел… На $1.2 миллиарда <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Еще дальше пошла компания WildTangent со своим <a href="http://crave.cnet.co.uk/gamesgear/0,39029441,49295655,00.htm">Orb</a>. Строго говоря, они собираются совершить революцию, не имея революционных идей. Ведь всегда можно скрестить ужа с ежом! Идея в следующем: вы покупаете некий манипулятор (как у приставки), который подключаете к любому компьютеру. Сам по себе манипулятор представляет собой не только позиционирующее устройство, но и ключ для доступа к <a href="http://www.wildgames.com/">нескольким сотням</a> коллективных онлайн игр. Оплачиваться данный сервис будет либо микроплатежами (например, SMS), либо по принципу ad-ware: посмотри спонсорский рекламный ролик и играй.</p>
<p>Учитывая опыт Алекса, стоит признать, – его massive multiplayer online ежовый уж выглядит вполне логичным. Впрочем, Тим тоже товарищ весьма опытный, и в ставке на консольный рынок тоже есть своя логика.</p>
<p>А на кого бы поставили вы?</p>
<p>Всем удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/03/25/pc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Максимум из Максимума</title>
		<link>http://softwareblogs-rus.intel.com/2008/03/25/55/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/03/25/55/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 13:35:36 +0000</pubDate>
		<dc:creator>Victoria Zhislina (Intel)</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[Игры]]></category>

		<category><![CDATA[Конкурсы и мероприятия]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[]]></category>

		<category><![CDATA[графика]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/03/25/55/</guid>
		<description><![CDATA[Если я скажу, что подавляющее большинство тех, кто сейчас видит на своем экране эту запись, увидит в свойствах своего компьютера "процессор Интел", то это никого не удивит. Общеизвестно, что у Интел лидирующие позиции на рынке процессоров. Но информация о том, что Интел также с долей рынка, превышающей 50%, занимает первое место среди производителей интегрированных графических [...]]]></description>
			<content:encoded><![CDATA[<p>Если я скажу, что подавляющее большинство тех, кто сейчас видит на своем экране эту запись, увидит в свойствах своего компьютера "процессор Интел", то это никого не удивит. Общеизвестно, что у Интел лидирующие позиции на рынке процессоров. Но информация о том, что Интел также с долей рынка, превышающей 50%, занимает первое место среди производителей интегрированных графических карт для настольных компьютеров, а также лидирует «в общем зачете» производителей интегрированной графики (с учетом мобильных компьютеров) – более 35% рынка, обычно вызывает удивление. Но, если вы - разработчик софта, то  на смену удивлению должно приходить понимание: если ваше приложение не  работает на  интегрированной графике Интел, вы теряете значительную часть рынка.</p>
<p>Конечно, это "топовая часть", ведь интегрированная графика бесплатна и обычно используется в компьютерах начального и среднего уровня.  Но зачем же лишать огромное количество пользователей возможности пользоваться вашим приложением? Тем более, что вполне возможно, что поддержка интегрированной графики интел не потребует от вас почти никаких затрат.</p>
<p>О возможностях последнего поколения интегрированной графики Интел и о том, как использовать их по максимуму, будет рассказано на соответствующей лекции на Конференции Разработчиков Игр (КРИ) 2008 двадцатого апреля. Так что - не пропустите.</p>
<p>Кстати, такая требовательная к ресурсам игра, как "Кризис", прекрасно работает на интегрированной графике Интел (конечно, при минимальных настройках графики).</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/03/25/55/feed/</wfw:commentRss>
		</item>
		<item>
		<title>"Графика Intel не работает", или еще раз о будущем игрового железа</title>
		<link>http://softwareblogs-rus.intel.com/2008/03/24/intel-2/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/03/24/intel-2/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 17:27:38 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[Игры]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[DirectX]]></category>

		<category><![CDATA[графика]]></category>

		<category><![CDATA[железо]]></category>

		<category><![CDATA[игры]]></category>

		<category><![CDATA[КРИ]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/03/24/intel-2/</guid>
		<description><![CDATA[Всем привет!
На русском THG опубликовано интервью с Тимом Свини (Tim Sweeney), основателем и CEO компании Epic Games, известной своим легендарным движком Unreal.
Тим высказал несколько интересных мыслей, которые перекликаются с нашей дискуссией «блеск и нищета игровой индустрии». В частности, он прошелся по идеологии hi-end геймерских компьютеров: "Они как спортивные машины. Они всегда на слуху, о них [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>На русском THG опубликовано <a href="http://www.thg.ru/game/tim_sweeney_interview_2008/index.html">интервью</a> с Тимом Свини (Tim Sweeney), основателем и CEO компании <a href="http://www.epicgames.com/">Epic Games</a>, известной своим легендарным движком Unreal.</p>
<p>Тим высказал несколько интересных мыслей, которые перекликаются с нашей дискуссией «<a href="http://softwareblogs-rus.intel.com/2008/03/13/50/">блеск и нищета игровой индустрии</a>». В частности, он прошелся по идеологии hi-end геймерских компьютеров: "Они как спортивные машины. Они всегда на слуху, о них постоянно пишут, но только немногие могут себе их позволить. "</p>
<p>"Разница в производительности между high-end и low-end компьютерами что-то порядка 100x" – считает Тим. "Ну, это он загнул" – подумал я, и решил непременно взять какой-нибудь игровой тест и сравнить, скажем, интегрированную интеловую графику и что-нибудь класса 8600-8800 GT. Удивительно, но как раз сегодня ребята с iXBT со всем этим разобрались. Вот <a href="http://www.ixbt.com/video3/video-cpu-combinations.shtml">тут</a> лежит отличный (рекомендую!) <a href="http://www.ixbt.com/video3/video-cpu-combinations.shtml">онлайн-калькулятор</a>, где можно сравнить производительность типовых связок "видео+процессор".</p>
<p>В абсолютных попугаях Core 2 Quad Q6600 + 8800GT в <strong>13.5</strong> раз обгоняет Pentium E2160 на интегрированной графике Интел. А в играх типа F.E.A.R так вообще в <strong>50</strong>(!) с лишним раз. Надо отметить, что Core 2 Quad Q6600 на 8800GT - далеко не Феррари. Это вполне доступная конфигурация, примерно $1000 за системный блок. А если посмотреть в сторону машинок вроде <a href="http://www.google.com/search?q=skulltrail">SkullTrail</a> (да поможет вам Google! <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), который мы будем показывать на  <a href="http://softwarecommunity-rus.intel.com/articles/rus/61817.htm">КРИ</a>, то разница как раз и будет все <strong>100</strong>x <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p>Но это еще не самое интересное! Если в iXBT калькуляторе выбрать вариант Pentium E2160 + 8800GT, то он все равно "сделает" конфигурацию Core 2 Quad Q6600 + интегрированная графика почти в <strong>10</strong> раз! Вывод делайте сами.</p>
<p>Возвращаемся к Тиму. "Встроенная графика Intel не работает. И не думаю, что когда-нибудь заработает" – считает он. Разумеется, с этим можно поспорить (см. статью "<a href="http://softwarecommunity-rus.intel.com/articles/rus/61043.htm">Интегрированные графические карты Intel® – рассчитывайте на них!</a>" <a href="http://softwareblogs-rus.intel.com/author/victoria-zhislina/">Виктории Жислиной</a>). А мое личное мнение – не работает, и правильно делает! Она и не должна работать в сегменте "быстрых" игр, где все решают детализация и FPS. Другой вопрос к маркетингу, который всеми правдами и неправдами пытается заставить нас поверить в играбельность графики за "ноль долларов". Может, стоит ориентироваться только на сегмент относительно "легких" игрушек? Достаточно большой сегмент, кстати.</p>
<p>К тому же, Тим сам говорит, что не имеет практического смысла затачивать одну игру под hi-end и под low-end системы, потому что это будут две совершенно разные игры, а соответственно – разный маркетинг и разные целевые аудитории.</p>
<p><a href="http://www.thg.ru/game/tim_sweeney_interview_2008/index.html">Там же</a> есть интересный прогноз на будущее графических API. В двух словах, API класса DirectX 10 – отличная идея, т.к. всегда будут разработчики, которым удобно использовать API. Однако, наблюдается значительный рост вычислительной мощности как CPU, так и GPU. Соответственно, уже в ближайшее время программный рендеринг станет вполне приемлемым по скорости (не важно на CPU он рассчитывается или на GPU), и достаточно удобным с т.з. независимости от конкретной аппаратной реализации. Тим считает, что DirectX станет скорее программной библиотекой, чем интерфейсом к "железу" как сейчас. Кстати, разработчики, тут есть о чем задуматься – Тим входит в Microsoft Advisory Board для DirectX <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>А что думаете вы о будущем игр и игрового железа?<br />
Всем удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/03/24/intel-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fun из жизни геймдевелоперов</title>
		<link>http://softwareblogs-rus.intel.com/2008/03/13/fun/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/03/13/fun/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 16:38:38 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Игры]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[Game]]></category>

		<category><![CDATA[конкурс]]></category>

		<category><![CDATA[приколы]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/03/13/fun/</guid>
		<description><![CDATA[Прикол недели (извините если боян)   - мне тут прислали ссылку на ЖЖ - приколы из жизни разработчиков компьютерных игр.  Весьма забавно! Камменты читайте тоже, там еще забавнее.
А вспомнил я про эту ссылку это потому,  что начитался сегодня описаний игр с нашего конкурс Intеl Game Demo. Если вкратце, там народ делится идеями [...]]]></description>
			<content:encoded><![CDATA[<p>Прикол недели (извините если боян) <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  - мне тут прислали <a href="http://burrarum.livejournal.com/32707.html">ссылку</a> на ЖЖ - приколы из жизни разработчиков компьютерных игр.  Весьма забавно! Камменты читайте тоже, там еще забавнее.</p>
<p>А вспомнил я про эту ссылку это потому,  что начитался сегодня описаний игр с нашего конкурс <a href="http://softwarecontests-rus.intel.com/gamedemo/">Intеl Game Demo</a>. Если вкратце, там народ делится идеями своих будущих игрушек. Местами смешно, но показывать где именно не имею права т.к. я лицо официальное <img src='http://softwareblogs-rus.intel.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> - сходите, полистайте "<a href="http://softwarecontests-rus.intel.com/gamedemo/viewentries.php">все  конкурсные работы</a>"...</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/03/13/fun/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Блеск и нищета игровой индустрии</title>
		<link>http://softwareblogs-rus.intel.com/2008/03/13/50/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/03/13/50/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 11:23:46 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[Игры]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[Game]]></category>

		<category><![CDATA[игровая индустрия]]></category>

		<category><![CDATA[игры]]></category>

		<category><![CDATA[КРИ]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/03/13/50/</guid>
		<description><![CDATA[Всем привет!
Удивительные вещи происходят в игровой индустрии. С одной стороны, аналитики в приходят в экстаз от мега-успешных проектов типа WOW и пророчат рост годовой выручки от MMORPG (коллективных онлайн игр) аж до $11.8 миллиардов к 2011 году. В прошлом, 2007 году, суммарный доход индустрии (включая продажи консолей и прочей оснастки) составил $8.85 миллиардов – задумайтесь [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Удивительные вещи происходят в игровой индустрии. С одной стороны, аналитики в приходят в экстаз от мега-успешных проектов типа WOW и <a href="http://www.strategyanalytics.net/default.aspx?mod=PressReleaseViewer&amp;a0=3569">пророчат </a>рост годовой выручки от MMORPG (коллективных онлайн игр) аж до $11.8 миллиардов к 2011 году. В прошлом, 2007 году, суммарный доход индустрии (включая продажи консолей и прочей оснастки) составил <a href="http://http://techreport.com/discussions.x/14001">$8.85 миллиардов</a> – задумайтесь об этой цифре!</p>
<p>Однако, если оторваться от столь радужной картины взглянуть внимательно на интересующие нас детали, то не все так гладко. Доля PC игр составила лишь <a href="http://techreport.com/discussions.x/14001">14%</a>. Причем, значительную часть продаж PC игр в количественном выражении представляют буквально несколько тайтлов, включая тот же WOW и Sims 2 со своими многочисленными адд-онами. Все это детский лепет по сравнению с числом проданных копий, к примеру, консольной игры Halo 3...</p>
<p>Являясь человеком «компьютерным», хотя и не имеющим ничего против игровых приставок, я немного призадумался над этими цифрами. Давайте посчитаем вместе: Мой домашний компьютер стОит примерно $2000. Он нещадно тормозит на разрешениях 1600x1200. Тот же 3DMark 2006 в некоторых тестах выдает не более 15fps! Да, у меня не самая крутая видеокарта – GeForce 8600 GTS, но карточка класса 8800 GTX стоит около $500,  а это, между прочим, стоимость новенького x-Box или PS3. Целиком, и прямо в упаковке.</p>
<p>И это еще полбеды. Настоящая беда в том, что большинство игр вообще не позволяют поднять разрешение выше чем 1280 на 1024, или позволяют, но превращаются при этом в пошаговые стратегии с рекламными паузами в виде синего экрана.</p>
<p><img src="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/sopwith.PNG" alt="Sopwith 1984" align="bottom" border="0" height="166" hspace="4" vspace="4" width="217" /><br />
<small><em> Игра Sopwith, 1984 год</em></small></p>
<p>Почти 25 лет назад вышла игра Sopwith (см. картинку). Что революционного появилось в играх для PC с тех пор? Скорость? Позвольте, Sopwith просто «летал» на моем IBM XT. Графика? О графике я уже говорил. Гемплей? Точно нет! Командный режим? Так и в Sopwith можно было играть вдвоем.</p>
<p>А на дворе-то уже как третий месяц идет 2008-й год… В чем же проблема рынка PC игр? В дороговизне видеокарт и процессоров для геймеров? В отставании программного обеспечения? В плохом геймплее? А может быть проблема в отсутствии хороших идей?</p>
<p>Скоро в Москве начнется <a href="http://softwarecommunity-rus.intel.com/articles/rus/61817.htm">конференция разработчиков компьютерных игр</a> - посмотрим, как видят свое будущее российские геймдевелоперы.</p>
<p>Всем удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/03/13/50/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Почему компиляторы не любят параллельный код?</title>
		<link>http://softwareblogs-rus.intel.com/2008/03/03/43/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/03/03/43/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 16:55:35 +0000</pubDate>
		<dc:creator>Alexey Kukanov (Intel)</dc:creator>
		
		<category><![CDATA[Многоядерность]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[TBB]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<category><![CDATA[производительность]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/03/03/43/</guid>
		<description><![CDATA[С распространением многоядерных процессоров стали множиться попытки написать простую параллельную программу и посмотреть, каков будет выигрыш в производительности. И это, несомненно, радует, но... К удивлению экспериментаторов, их простые параллельные программы порой не только не показывают ускорения по сравнению с обычной, последовательной версией, но даже и проигрывают в скорости! И далеко не всегда автор может (или хочет) разобраться, что к чему.]]></description>
			<content:encoded><![CDATA[<p>С распространением многоядерных процессоров параллельное программирование перестаёт быть экзотикой и превращается постепенно в необходимый навык разработчика ПО. Как косвенное свидетельство тому, стали множиться попытки написать простую параллельную программу и посмотреть, каков будет выигрыш в производительности. И это, несомненно, радует, но...</p>
<p>За последнее время мне довелось наблюдать несколько таких попыток, в которых параллельный код был написан при помощи библиотеки <a href="http://threadingbuildingblocks.org/">Threading Building Blocks</a> (TBB). К удивлению экспериментаторов, их простые параллельные программы порой не только не показывают ускорения по сравнению с обычной, последовательной версией, но даже и проигрывают в скорости! И далеко не всегда автор может (или хочет) разобраться, что к чему.</p>
<p>Разбираться приходилось мне, как одному из разработчиков TBB. А поскольку мне уже не раз предлагали вести сетевой журнал-блог на Intel Software Network, я в конце концов решил попытаться, и начать с анализа таких вот примеров. Они, с одной стороны, просты и понятны: не каждый готов начать параллельные эксперименты со сколь-нибудь сложной программы, а написать цикл, суммирующий элементы вектора – дело недолгое. С другой стороны, они весьма познавательны, причём порой именно в силу простоты.</p>
<p>Начну как раз с суммы элементов вектора. Вопрос о том, почему столь простая программа медленнее в параллельной TBB версии, чем в не-параллельной, возник на <a href="http://softwarecommunity.intel.com/isn/Community/en-US/forums/2471/ShowForum.aspx">форуме TBB</a> (см. тему “<a href="http://softwarecommunity.intel.com/isn/Community/en-US/forums/permalink/30250043/30249884/ShowThread.aspx">performance of parallel_for</a>”). Я приведу здесь лишь часть кода:</p>
<blockquote>
<pre>#define REAL double
#define MAX 10000000
class SumFoo {
    REAL *a;
    REAL sum;
    ...
    void operator()(const blocked_range&lt;size_t&gt;&amp; r) {
        REAL *arr = a;
        for(size_t i=r.begin(); i!=r.end(); i++) sum+=arr[i];
    }
};
void ParallelSumFoo(REAL a[], size_t n, size_t gs) {
    SumFoo sf(a,n);
    parallel_reduce(blocked_range&lt;size_t&gt;(0,n,gs), sf);
    ...
}
class SerialApplyFoo {
    REAL *a;
    size_t len;
    double sum;
public :
    SerialApplyFoo(REAL *array, size_t length) : a(array), len(length){
        sum = 0.0;
        for(size_t i=0; i&lt;len; i++)
            sum += a[i];
    }
    …
};
int main() {
    task_scheduler_init init;
    REAL *array = new REAL[MAX];
    ...
    SerialApplyFoo sf(array, MAX);
    ParallelSumFoo(array, MAX, GRAINSIZE);
    ...
}</pre>
</blockquote>
<p>На двухъядерном процессоре Intel® Core® 2 Duo, <em>вместо ожидаемого двукратного ускорения, параллельный код работал почти вдвое медленнее, чем последовательный</em>; на моём ноутбуке, к примеру, 0.08 сек против 0.044. В чём дело?</p>
<p>Прежде всего, давайте посмотрим, а что произойдёт, если параллельный код запустить последовательно, в одном потоке. С TBB это можно сделать двумя способами: либо явно указав количество потоков (в нашем случае, один) конструктору объекта инициализации библиотеки task_scheduler_init, либо установив параллельному алгоритму так называемый «размер зерна» (grain size) равным количеству итераций цикла. Я воспользуюсь первым способом:</p>
<pre>    task_scheduler_init init(1);</pre>
<pre> </pre>
<p>Результат может показаться неожиданным: 0.21 сек, почти впятеро медленнее, чем исходный последовательный код! Такое замедление явно не из-за использования TBB. Неудивительно, что и на двух ядрах нет выигрыша.</p>
<p>Всё дело в оптимизации, проводимой компилятором. Цикл суммирования в последовательной версии очень прост для оптимизации; компилятор знает о нём всё, начиная от константной длины (передача через аргумент для компилятора не помеха), заканчивая тем, что результат sum должен быть виден только по выходу из конструктора. Поэтому он может сгенерировать очень эффективный машинный код, к примеру, вот такой (я использовал Visual Studio* 2005):</p>
<blockquote>
<pre>            fldz
            lea      eax, DWORD PTR [edi+010h]
            mov      ecx, 0x2625A0h
main+0x105: fadd     QWORD PTR [eax-16]
            add      eax, 0x20h
            sub      ecx, 0x1h
            fadd     QWORD PTR [eax-40]
            fadd     QWORD PTR [eax-32]
            fadd     QWORD PTR [eax-24]
            jnz      main+0x105</pre>
</blockquote>
<p>0x2625A0 – это 2500000, четверть длины массива. Компилятор развернул четыре итерации цикла в одну, снизив расходы на обслуживание цикла. Промежуточные результаты вычислений накапливаются в регистре процессора, и только конечный результат будет записан в память. На каждую итерацию исходного цикла ровно одна операция чтения данных из памяти.</p>
<p>В случае использования TBB для компилятора всё не так просто. Начало и конец цикла определяются полями объекта, переданного по ссылке, длина цикла во время компиляции неизвестна, результат накапливается в поле данных “живого” объекта. Компилятор вынужденно более консервативен, и результат не замедлил сказаться:</p>
<blockquote>
<pre>execute+0x57: fld      QWORD PTR [edi]
              add      ecx, 0x1h
              fadd     QWORD PTR [edx+08h]
              add      edi, 0x8h
              fstp     QWORD PTR [edx+08h]
              cmp      ecx, DWORD PTR [esi+08h]
              jnz      execute+0x57</pre>
</blockquote>
<p>Здесь одна итерация цикла обрабатывает один элемент, но при этом задействует 3 операции чтения (!) и одну – записи. Помимо элемента данных, каждый раз подгружаются из памяти значение конца цикла для сравнения и промежуточная сумма, которая затем сохраняется и на следующей итерации подгружается снова.</p>
<p>Изложив всё это в форуме, я добавил, что тест «отдаёт предпочтение» последовательному коду, и этим, боюсь, направил автора не в ту сторону. В попытке улучшить тест, автор ввёл чтение размера массива с клавиатуры и заменил в не-параллельном коде объект на функцию:</p>
<blockquote>
<pre>REAL SerialSum(REAL *a_, unsigned long int start, unsigned long int end) {
    REAL sum = 0.0;
    for(unsigned long int i=start; i&lt;end; i++)
        sum += a_[i];
    return sum;
}</pre>
</blockquote>
<p>Первое изменение делает тест более реалистичным и несколько усложняет развёртывание цикла; второе никак вообще не влияет, потому что в новой функции промежуточная сумма накапливается в локальной переменной, которая точно так же может храниться в регистре процессора. А чтобы решить проблему, надо в <em>параллельный код</em> внести изменения, которые помогут компилятору применить оптимизацию, а именно – использовать в operator() локальные переменные:</p>
<blockquote>
<pre>    void operator()(blocked_range&lt;size_t&gt; &amp;r) {
        REAL local_sum = 0;
        const size_t end = r.end();
        for(size_t i=r.begin(); i!=end; i++)
            local_sum+=a[i];
        sum += local_sum;
    }</pre>
</blockquote>
<p>И вот какой получен машинный код:</p>
<blockquote>
<pre>              fldz
execute+0x58: fadd        qword ptr [edx]
              add         edx,8
              sub         ecx,1
              jne         execute+58h
              fadd        qword ptr [edi+8]
              fstp        qword ptr [edi+8]</pre>
</blockquote>
<p>Последние две инструкции – добавление локального результата к полю sum. Как и в последовательном коде, мы получили одно обращение к памяти на итерацию, и это сразу сказалось на скорости: теперь параллельный код выполняется 0.033 сек на двухъядерном процессоре. Ускорение достигнуто, но с коэффициентом 1.33, а не 2. Почему? В этом попробуем разобраться в следующий раз.</p>
<p><strong>Вывод:</strong> при разработке тестов на производительность, да и просто программ, необходимо учитывать, что использование классов и функций TBB усложняет компилятору работу по оптимизации, что особенно негативно сказывается на простых алгоритмах. Грамотное использование локальных переменных способствует лучшей оптимизации и быстродействию параллельного кода.</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/03/03/43/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Webdeveloper WANTED!</title>
		<link>http://softwareblogs-rus.intel.com/2008/02/21/webdeveloper-wanted-2/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/02/21/webdeveloper-wanted-2/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 13:28:37 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Intel Software Network]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[job]]></category>

		<category><![CDATA[webdevelopment]]></category>

		<category><![CDATA[вебразработка]]></category>

		<category><![CDATA[работа]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/02/21/webdeveloper-wanted-2/</guid>
		<description><![CDATA[Всем привет!
А почему бы мне не злоупотребить служебным положением и не обратиться к общественности? Итак, мы ищем веб-разработчика в команду Intel Software Network. В Нижегородском отделении Intel открыта позиция “ISN College Intern”, что на русский язык можно перевести как “студент-практикант”. Иными словами, кандидаты должны быть студентами дневного отделения вуза или аспирантами. Предстоит работа на многих [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>А почему бы мне не злоупотребить служебным положением и не обратиться к общественности? Итак, мы ищем веб-разработчика в команду Intel Software Network. В Нижегородском отделении Intel открыта позиция “ISN College Intern”, что на русский язык можно перевести как “студент-практикант”. Иными словами, кандидаты должны быть студентами дневного отделения вуза или аспирантами. Предстоит работа на многих фронтах – начиная от подготовки материалов к публикации и заканчивая тестированием, отладкой и доработкой нашей многосложной инфраструктуры :).</p>
<p>Формальные требования к кандидатам:</p>
<ul>
<li>Хорошее понимание веб-технологий и практические навыки работы с ними</li>
<li>Приличное владение HTML, CSS, JavaScript</li>
<li>Понимание принципиальных основ WEB 2.0 сервисов (блоги, RSS и т.п.)</li>
<li>Некоторый опыт программирования для платформ Windows* либо Linux*</li>
<li>Навыки общения, хороший уровень владения русским языком</li>
</ul>
<p>Кроме того, приветствуется:</p>
<ul>
<li>Опыт работы с ASP.NET* или PHP</li>
<li>Опыт использования платформ Community Server* и Word Press*</li>
<li>Понимание основ проектирования пользовательских интерфейсов</li>
<li>Владение английским языком</li>
</ul>
<p>Еще более приветствуется наличие персонального блога - на любую тему.</p>
<p>Если вы или ваши знакомые заинтересованы в данной позиции, - добро пожаловать по<a href="http://www.intel.com/jobs/" title="Работа в Интел"> этой ссылке</a>. Найдите вакансию с номером 547885 и прикрепите к ней свое резюме (желательно на английском языке). Если все это у вас получится – считайте, что первый этап отбора успешно пройден.</p>
<p>Удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/02/21/webdeveloper-wanted-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Рейтинг “популярности” языков программирования TIOBE</title>
		<link>http://softwareblogs-rus.intel.com/2008/01/23/tiobe/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/01/23/tiobe/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 08:57:40 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Многоядерность]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[PERL]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[программирование]]></category>

		<category><![CDATA[рейтинг]]></category>

		<category><![CDATA[треды]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/01/23/tiobe/</guid>
		<description><![CDATA[В продолжение разговора о языковой дискриминации…
Вчера мне прислали ссылку на сайт некой компании TIOBE Software, которая занимается консалтингом, и в том числе – анализом кода на предмет его соответствия неким стандартам качества… Впрочем, не это меня заинтересовало.
На их сайте есть рейтинг “популярности” языков программирования, который называется просто и с достоинством – “TIOBE Programming Community Index”. [...]]]></description>
			<content:encoded><![CDATA[<p>В продолжение разговора о <a href="http://softwareblogs-rus.intel.com/2007/12/12/36/">языковой дискриминации</a>…</p>
<p>Вчера мне прислали ссылку на сайт некой компании TIOBE Software, которая занимается консалтингом, и в том числе – анализом кода на предмет его соответствия неким стандартам качества… Впрочем, не это меня заинтересовало.</p>
<p>На их сайте есть рейтинг “популярности” языков программирования, который называется просто и с достоинством – “<a href="http://www.tiobe.com/tiobe_index/tpci_definition.htm">TIOBE Programming Community Index</a>”. Насколько я понял из описания, данный индекс составляется исходя из статистики поисковых машин, и основывается на “доступности опытных программистов, курсов и поставщиков решений” (конец цитаты).</p>
<p><a href="http://www.tiobe.com/index.htm?tiobe_index?2007"><img src="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/tiobe_rating.png" align="middle" border="0" height="310" hspace="4" vspace="4" width="585" /></a><br />
<small><em>Первые 10 строк, под картинкой ссылка на полную таблицу.</em></small></p>
<p>Не берусь судить о объективности и показательности такого рода данных. Тем не менее, рейтинг исправно и регулярно обновляется, и он заставил меня задуматься…</p>
<p>Во-первых, из 20 “наиболее популярных” языков я когда-либо использовал только 9. Думаю, это нормально :). О четырех языках - SAS, D, Lua и Logo - я вообще не имею никакого представления, что немного меня беспокоит. Причем два из этих четырех языков (Lua и Logo) демонстрируют какой-то невероятный рост популярности. Видимо, я что-то важное в последнее время упустил :).</p>
<p>Что еще интересно – большинство из языков, упомянутых в таблице, имеют средства распараллеливания. Те, где это в принципе возможно :). Используются ли эти средства в реальной жизни? Ситуация с C++, Java и .NET вроде ясна, а вот что с PERL и Python? Вопрос тем, кто пишет на подобных языках - насколько критичны для ваших типовых задач механизмы распараллеливания? И насколько они удобны для вас?</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/01/23/tiobe/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Первое место в третьем туре Threading Challenge занял  участник из России</title>
		<link>http://softwareblogs-rus.intel.com/2008/01/16/threading-challenge/</link>
		<comments>http://softwareblogs-rus.intel.com/2008/01/16/threading-challenge/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 13:28:01 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Многоядерность]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[конкурс]]></category>

		<category><![CDATA[Параллельное программирование]]></category>

		<category><![CDATA[Россия]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2008/01/16/threading-challenge/</guid>
		<description><![CDATA[И еще одна приятная новость: первое место в третьем туре конкурса Threading Challenge (задача оптимального расселения) получил наш соотечественник, выступающий под ником «bugman». Поздравляем! Решение победителя можно загрузить тут.
По сумме баллов в трех турах bugman занимает сейчас пятое место, а в целом Россия удерживает пять мест в двадцатке: 5-е, 9-е, 11-е, 13-е и 15-е. Очень [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span lang="RU">И еще одна приятная новость: первое место в третьем туре конкурса </span><a href="http://softwarecommunity-rus.intel.com/articles/rus/61032.htm">Threading<span> </span>Challenge</a><span> <span lang="RU">(задача оптимального расселения) получил наш соотечественник, выступающий под ником «</span></span>bugman<span lang="RU">». Поздравляем! Решение победителя можно загрузить <a href="http://softwarecommunity.intel.com/isn/Community/en-US/forums/thread/30246898.aspx">тут</a>.</span></p>
<p class="MsoNormal"><span lang="RU">По сумме баллов в трех турах </span>bugman<span> <span lang="RU">занимает сейчас <a href="http://softwarecontests.intel.com/threadingchallenge/allusers.php#">пятое место</a>, а в целом Россия удерживает пять мест в двадцатке: 5-е, 9-е, 11-е, 13-е и 15-е. Очень неплохо, ведь в конкурсе участвуют программисты из множества стран. Желаю нашим программистам дальнейших успехов: впереди еще 9 этапов и главный <a href="http://softwarecommunity-rus.intel.com/articles/rus/1527.htm">приз</a>, который, я надеюсь, приедет в Россию :).</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2008/01/16/threading-challenge/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Фотографии с церемонии награждения победителей студенческого кубка Intel</title>
		<link>http://softwareblogs-rus.intel.com/2007/12/06/intel/</link>
		<comments>http://softwareblogs-rus.intel.com/2007/12/06/intel/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 17:58:05 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Intel Software Network]]></category>

		<category><![CDATA[Конкурсы и мероприятия]]></category>

		<category><![CDATA[Многоядерность]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[contest]]></category>

		<category><![CDATA[prizes]]></category>

		<category><![CDATA[students]]></category>

		<category><![CDATA[конкурс]]></category>

		<category><![CDATA[призы]]></category>

		<category><![CDATA[студенты]]></category>

		<guid isPermaLink="false">http://softwareblogs-rus.intel.com/2007/12/06/intel/</guid>
		<description><![CDATA[И снова о студенческом кубке Intel. Вернувшаяся из дальних странствий Юля Телль поделилась фотографиями с симпозиума по высокопроизводительным вычислениям, на котором мы награждали победителей конкурса.
На мероприятие приехали все 11 наших победителей - из Питера, Киева, Вятки и Нижнего... Лично я был этому приятно удивлен, ведь большинство студентов в наше время успешно совмещает учебу с работой [...]]]></description>
			<content:encoded><![CDATA[<p>И снова о студенческом кубке Intel. Вернувшаяся из дальних странствий Юля Телль поделилась фотографиями с симпозиума по высокопроизводительным вычислениям, на котором мы награждали победителей конкурса.</p>
<p>На мероприятие приехали все 11 наших победителей - из Питера, Киева, Вятки и Нижнего... Лично я был этому приятно удивлен, ведь большинство студентов в наше время успешно совмещает учебу с работой и потратить пару дней на поездки, наверное, было не так уж и просто. Тем приятнее было всех увидеть и со всеми познакомиться!</p>
<p><img src="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/StudentsCup_14.jpg" alt="Марианна Светлосанова награждает победителей" align="middle" height="300" hspace="4" vspace="4" width="400" /><br />
<small><em>Марианна Светлосанова награждает победителей</em></small></p>
<p><img src="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/StudentsCup_18.jpg" alt="Стив Чейз поздравляет участников конкурса" align="middle" height="300" hspace="4" vspace="4" width="400" /><br />
<small><em>Стив Чейз поздравляет участников конкурса</em></small></p>
<p><img src="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/StudentsCup_23.jpg" alt="Андрей Нарайкин с незапланированной официальной речью" align="middle" height="300" hspace="4" vspace="4" width="400" /><br />
<small><em>Андрей Нарайкин с незапланированной официальной речью</em></small></p>
<p><img src="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/StudentsCup_07.jpg" alt="Андрей Нарайкин делится секретами оптимизации" align="middle" height="300" hspace="4" vspace="4" width="400" /><br />
<small><em>Андрей Нарайкин делится секретами оптимизации</em></small></p>
<p>А теперь ссылки на архивы с файлами большого размера:</p>
<p><a href="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/StudentsCup_01-10.zip">Часть 1</a> (~3.3Mb)<br />
<a href="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/StudentsCup_11-20.zip">Часть 2</a> (~3.6Mb)<br />
<a href="http://softwarecommunity-rus.intel.com/isn/home/siteimages/4blogs/StudentsCup_21-27.zip">Часть 3</a> (~2.6Mb)</p>
<p>И еще раз спасибо Юле за фотографии!</p>
<p>PS: Если кому-то понадобится еще больший размер - не стесняйтесь, пишите!</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-rus.intel.com/2007/12/06/intel/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
