<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Intel Software Network Blog - Russia</title>
	
	<link>http://software.intel.com/ru-ru/blogs</link>
	<description />
	<pubDate>Sun, 22 Nov 2009 20:40:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ISNBlogRussia" type="application/rss+xml" /><feedburner:emailServiceId>ISNBlogRussia</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Спасибо Intel'у за это!</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/gE8in7fHk80/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/22/intel-6/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 20:40:40 +0000</pubDate>
		<dc:creator>vilianov</dc:creator>
		
		<category><![CDATA[Мобильность]]></category>

		<category><![CDATA[WiMAX]]></category>

		<category><![CDATA[интернет]]></category>

		<category><![CDATA[Санкт-Петербург]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/22/intel-6/</guid>
		<description><![CDATA[В конце минувшей недели я летал в Санкт-Петербург по делам. В ночь перед вылетом озадачился проблемой организацией выхода в Интернет, потому что на сайте гостинице об оном было сказано достаточно уклончиво. Мол, имеется, но почем - большой секрет. Звонить в отель не хотелось, поэтому прикинул все доступные варианты...]]></description>
			<content:encoded><![CDATA[<p>В конце минувшей недели я летал в Санкт-Петербург по делам. В ночь перед вылетом озадачился проблемой организацией выхода в Интернет, потому что на сайте гостинице об оном было сказано достаточно уклончиво. Мол, имеется, но почем - большой секрет. Звонить в отель не хотелось, поэтому прикинул все доступные варианты.</p>
<p>Их имелось целых два. Первый - "расшарить" доступ с телефона, благо в Петербурге уже давно наступило 3G, и скорость обещала быть достаточной. И относительно недорого - семь рублей за мегабайт. Правда, учитывая объемы одной только почты, на круг все равно получалось немало, рублей так 350-500.</p>
<p>Второй вариант - активировать модем Yota, давно живущий у меня в сумке, подключиться по тарифу "Yota День" (50 рублей в сутки) и надеяться, что до номера будет добивать сигнал сети. Учитывая цену вопроса, решил рискнуть и не прогадал: сеть была и в "Аэроэкспрессе" до Шереметьево-1, и в Пулково-1, и собственно в гостиничном номере. А уж когда я обновил прошивку модема (у меня, оказывается, была установлена какая-то совсем древняя, годичной давности), все заработало совсем хорошо. 50 рублей в сутки за полную безлимитку, да еще и с приличной скоростью - разве может быть что-то лучше для журналиста в чужом городе? Разве что юная поклонница, наизусть цитирующая "Заповедник" Довлатова, да и то - не во всех случаях <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Показав кукиш рекламе на столе, предлагавшей подключиться к Сети при участии отеля, я все же решил посмотреть - сколько нынче лупят с нашего брата? Ведь сам номер (правильнее сказать - номерок, номеришко) стоил, страшно сказать 7000 рублей в сутки. В Европах столько берут за оч-чень хорошие четыре звезды и умело целуют заплатившего в неожиданные места. А у нас все скромненько-скромненько. Даже завтрак в эту цену не включен - за него надо накинуть сущие копейки, всего 645 рублей. Между нами говоря, в кафе по соседству за такие деньги можно наесться до отвала вдвоем...</p>
<p>Но мы отвлеклись. При таком уровне жадности я ждал цену на уровне 10 евро в час, или даже 20. Ну и что-то в районе соточки за сутки. Мол, открыл бумажник, землячок - не спеши закрывать, деньги это зло, очисться от него. </p>
<p>Смотрю на таблицу и глазам своим не верю. Не может такого быть в нашей стране. Специально покрутил бумажку, может на другой стороне правильные тарифы, а эти - какие-то специальные, действующие только 1 мая и 31 декабря с 2 до 7 утра? Но нет, все правильно. Итак, заведение, явно не замеченное в скромности запросов, просило за 100 мегабайт трафика 150 рублей, за 200 - 250, и так далее. Я даже до конца дочитать табличку не смог, слезы умиления залили очки.</p>
<p>Учитывая, что нормальному человеку 100 мегабайт на 2-3 дня командировки - более, чем достаточно, гуманность расценок вызывает самый настоящий восторг. В тех же Европах, если нет бесплатного WiFi, десяточку евро в день с тебя снимут гарантированно. Так что же заставило хозяев постоялого двора в Петербурге быть такими гуманными?</p>
<p>Лично у меня вариант ответа один - Intel. С тех пор, как поддержка WiMax поселилась в массовых моделях ноутбуков и даже нетбуков, у командировочных из Москвы и Питера почему-то резко ослабло желание платить бешеные деньги за выход в онлайн. На 3G прошу не кивать: даже при относительно низких ставках на специальных интернет-тарифах 50 рублей в день съедаются мгновенно. Про тарифы обычные и говорить не приходится. А надо ли объяснять собравшимся - при чьей могучей поддержке WiMax проникает в мобильные компьютеры, и кто яростно разрабатывает технологию в небольшом городке Якум (Yakum), что в тридцати километрах от Тель-Авива?</p>
<p>Во время перелета из Санкт-Петербурга в Москву у меня родилась мечта. Вот бы придумать технологию, чтобы цены на гостиницы в северной столице стали такими же разумными, как и на Интернет. Невозможно? Ну, еще год назад и 150 рублей за 100 мегабайт казались несбыточной мечтой...</p>
<p>P.S. Во время недавней встречи клуба ISN в Москве мы с Дмитрием договорились о моем визите в Нижний Новгород, где тоже пишется будущее. Обещание помню и надеюсь выполнить его раньше, чем в Новгороде появится WiMax. Как-нибудь пересидим на дорогущем и допотопном 3G <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/gE8in7fHk80" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/22/intel-6/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/22/intel-6/</feedburner:origLink></item>
		<item>
		<title>Красивая 64-битная ошибка на языке Си</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/qmBhFGc9ODo/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/19/2002586/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 08:48:22 +0000</pubDate>
		<dc:creator>Andrey Karpov</dc:creator>
		
		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[64-bit]]></category>

		<category><![CDATA[64-bit Coding]]></category>

		<category><![CDATA[64-битный]]></category>

		<category><![CDATA[Си++]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/19/2002586/</guid>
		<description><![CDATA[В языке Си можно использовать функции без их предварительного объявления. Конечно, данная возможность опасна. Рассмотрим связанный с ней интересный пример 64-битной ошибки.]]></description>
			<content:encoded><![CDATA[<p>В языке Си можно использовать функции без их предварительного объявления. Обращаю внимание, что речь идет именно о языке Си, а не Си++. Конечно, данная возможность опасна. Рассмотрим связанный с ней интересный пример 64-битной ошибки. Ниже приведен корректный код, который выделяет и использует три массива размером 1 гигабайт каждый:</p>
<pre name="code" class="cpp">#include &lt; stdlib.h &gt;

void test()
{
  const size_t Gbyte = 1024 * 1024 * 1024;
  size_t i;
  char *Pointers[3];

  // Allocate
  for (i = 0; i != 3; ++i)
    Pointers[i] = (char *)malloc(Gbyte);

  // Use
  for (i = 0; i != 3; ++i)
    Pointers[i][0] = 1;

  // Free
  for (i = 0; i != 3; ++i)
    free(Pointers[i]);
}</pre>
<p>Данный код корректно выделит память, запишет в первый элемент каждого массива по единице и освободит занятую память. Код совершенно корректно работает на 64-битной системе.</p>
<p>Теперь удалим или закомментируем строчку  "#include &lt; stdlib.h &gt;". Код по-прежнему будет собираться, но при запуске программы произойдет ее аварийное завершение. Поскольку заголовочный файл "stdlib.h" не подключен, компилятор языка Си считает, что функция malloc вернет тип int. Первые два выделения памяти, скорее всего, пройдут успешно. При третьем обращении функция malloc вернет адрес массива за пределами первых 2-х гигабайт. Поскольку компилятор считает, что результат работы функции имеет тип int, он неверно интерпретирует результат и сохраняет в массиве Pointers некорректное значение указателя.</p>
<p>Для лучшего пояснения приведу ассемблерный код, генерируемый компилятором Visual C++ для 64-битной Debug версии. Вначале рассмотрим корректный код, который будет сгенерирован, когда присутствует объявление функции malloc (подключен файл "stdlib.h"):</p>
<blockquote>
<pre>Pointers[i] = (char *)malloc(Gbyte);
mov   rcx,qword ptr [Gbyte]
call  qword ptr [__imp_malloc (14000A518h)]
mov    rcx,qword ptr [i]
mov    qword ptr Pointers[rcx*8],rax</pre>
</blockquote>
<p>Теперь рассмотрим вариант некорректного кода, когда отсутствует объявление функции malloc:</p>
<blockquote>
<pre>Pointers[i] = (char *)malloc(Gbyte);
mov    rcx,qword ptr [Gbyte]
call   malloc (1400011A6h)
cdqe
mov    rcx,qword ptr [i]
mov    qword ptr Pointers[rcx*8],rax</pre>
</blockquote>
<p>Обратите внимание на наличие инструкции CDQE (Convert doubleword to quadword). Компилятор посчитал, что результат содержится в регистре eax и расширил его до 64-битного значения, чтобы записать в массив Pointers. Соответственно старшие биты регистра rax будут потеряны. Если даже адрес выделенной памяти лежит в пределах первых четырех гигабайт, в случае, когда старший бит регистра eax равен 1 мы все равно получим некорректный результат. Например, адрес 0×81000000 превратится в 0xFFFFFFFF81000000.</p>
<p>К счастью данный вид ошибки легко обнаружить. Например, компилятор Visual C++ выдает два предупреждения, свидетельствующих о потенциальной проблеме:</p>
<blockquote><p>warning C4013: 'malloc' undefined; assuming extern returning int</p>
<p>warning C4312: 'type cast’ : conversion from 'int' to 'char *' of greater size</p></blockquote>
<p>А анализатор <a href="http://www.viva64.com/ru/pvs-studio/">PVS-Studio</a> 3.40 выдает предупреждение "error <a href="http://www.viva64.com/content/PVS-Studio-help-ru/V201.html">V201</a>: Explicit type conversion. Type casting to memsize.".</p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/qmBhFGc9ODo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/19/2002586/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/19/2002586/</feedburner:origLink></item>
		<item>
		<title>Будьте аккуратны с директивой atomic</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/wBrkjekv1Xw/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/18/atomic/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 08:11:04 +0000</pubDate>
		<dc:creator>Andrey Karpov</dc:creator>
		
		<category><![CDATA[Параллельное программирование]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[openmp]]></category>

		<category><![CDATA[PVS-Studio]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/18/atomic/</guid>
		<description><![CDATA[Хочется рассказать об одной ошибке, которую легко может допустить человек еще мало знакомый с технологией OpenMP. Ошибка связана с неверным представлением о работе директивы atomic.]]></description>
			<content:encoded><![CDATA[<p>Хочется рассказать об одной ошибке, которую легко может допустить человек еще мало знакомый с технологией <a href="http://www.viva64.com/terminology/OpenMP_rus.html">OpenMP</a>. Ошибка связана с неверным представлением о работе директивы atomic. Директива atomic работает быстрее, чем критические секции, так как некоторые атомарные операции могут быть напрямую заменены командами процессора. И поэтому ее удобно использовать при вычислении различных выражений. Но следует помнить, что atomic никак не влияет на вызов функций, используемых в выражении. Рассмотрим это на примере:</p>
<pre name="code" class="cpp">class Example
{
public:
  unsigned m_value;

  Example() : m_value(0) {}

  unsigned GetValue()
  {
    return ++m_value;
  }

  unsigned GetSum()
  {
    unsigned sum = 0;
    #pragma omp parallel for
    for (ptrdiff_t i = 0; i &lt; 100; i++)
    {
      #pragma omp atomic
      sum += GetValue();
    }
    return sum;
  }
};</pre>
<p>Данный пример содержит ошибку <a href="http://www.viva64.com/terminology/Race_condition_rus.html">состояния гонки</a> (Race condition), и возвращаемое ей значение может меняться от запуска к запуску.  Если вы попробуете приведенный пример, и результат все время будет верен, то можете изменить функцию GetValue, как показано ниже, чтобы ошибка проявлялась более четко:</p>
<pre name="code" class="cpp">unsigned GetValue()
{
  Sleep(0);
  m_value++;
  Sleep(0);
  return m_value;
}</pre>
<p>В коде с помощью директивы atomic защищено увеличение переменной "sum". Но директива atomic не оказывает влияние на вызов функции GetValue(). Вызовы происходят в параллельных потоках, что приводит к ошибкам при выполенения операции "++m_value" внутри функции GetValue.</p>
<p>Помните, что функции, используемые в выражениях, к которым применяется директива atomic, должны быть потоко-безопасными (thread-safe). Директива atomic распространяется только на операции следующего вида:</p>
<ul>
<li>x binop= expr</li>
<li>x++</li>
<li>++x</li>
<li>x--</li>
<li>--x</li>
</ul>
<p>Здесь х - скалярная переменная, expr - выражение со скалярными типами, в котором не присутствует переменная х, binop - не перегруженный оператор +, *, -, /, &amp;, ^, |, &lt;&lt;, or &gt;&gt;. Во всех остальных случаях применять директиву atomic нельзя.</p>
<p>В приведенном примере директива atomic обезопасит операцию "sum +=", но не обезопасит вызов функции GetValue. Для исправления показанной ошибки необходимо использовать критическую секцию или иные способы для защиты переменной m_value.</p>
<p>Обнаружить подобные ошибки может помочь, такой инструмент как VivaMP, входящий в состав <a href="http://www.viva64.com/ru/pvs-studio/">PVS-Studio</a>. В данном случае, он диагностирует ошибку следующим образом: Error <a href="http://www.viva64.com/content/PVS-Studio-help-ru/V1205.html">V1205</a>: Data race risk. Unprotected concurrent operation with the ‘m_value’ variable. При этом ошибку можно обнаружить еще на этапе написания кода, так как VivaMP представляет собой статический анализатор кода и не требует запуска приложения.</p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/wBrkjekv1Xw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/18/atomic/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/18/atomic/</feedburner:origLink></item>
		<item>
		<title>Да, мой Генерал! (C&amp;C Generals)</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/-7VTM9soQIw/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/18/campc-generals/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 08:08:11 +0000</pubDate>
		<dc:creator>vilianov</dc:creator>
		
		<category><![CDATA[Игры]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[C&amp;C Generals]]></category>

		<category><![CDATA[Moyea]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/18/campc-generals/</guid>
		<description><![CDATA[С каждым годом игры становятся все совершеннее, сложнее и технологичнее. Растет цена "входного билета", из-за чего маньяку-энтузиасту пролезть на рынок уже почти нереально.  А между тем именно такие маньяки, думающие не столько о заработке, сколько о результате, запустили в свое время легендарные сериалы. А дальше все получилось прямо по Чижу.]]></description>
			<content:encoded><![CDATA[<p>Третьего дня дала дуба видеокарта. Оказывается, не зря она мне моргала последние месяцы - это на их языке означает что-то вроде "Осторожно, хозяина, скоро мне совсем-совсем трахбабах будет". И вот случилось. Дымку, конечно, нюхнуть на этот ра не удалось, но экран погас, появились какие-то цветные кубики, а написанный до половины текст стал достоянием Вечности. Правда, с заменой проблем не возникло (ой, как это правильно - всегда покупать в одном и том же проверенном месте). Уже вчера притащил домой GeForce 275, вроде бы работающая без эротических подмигиваний.</p>
<p>Под Windows 7 (лицензионной! с автографом Балмера!) поставил любезный сердцу Moyea Flash Video MX Pro, которым мы жмем ролики для сайта. Запустил Task Manager и помянул негромким добрым словом "экспертов", рассказывавших мне про "операционную систему из Кемерово". Нет, сама-то операционка нормальная, и на SSD пуляет - мое почтение. Но тупая софтина упорно использует только ЧЕТЫРНАДЦАТЬ процентов процессорных мощностей, тогда как даже под Vista было двадцать. Наверное, надо что-то подкрутитьв настройках, но такое несерьезное отношение "по умолчанию" огорчило. Ну шутка ли, 10-минутный ролик пережимается с той же скоростью, что и 44-минутная серия "Доктора Хауса" из шестого сезона нормальной программой.</p>
<p>А, хватит о грустном.</p>
<p>Вчера, когда поставил новую видеокарту, решил погонять какую-нибудь игру. Под "семеркой" еще ничего поставить не успел, просто "экзешником" сейчас запускаться неприлично, уговорил только C&amp;C Generals. В общем, оторвался от процесса только в два часа ночи. Яростная штука! Вроде бы 11 февраля 2003 года вышла, по игровым меркам -  в позапрошлом веке! Однако же прекрасно понимает разрешение 1600х1200 и безо всяких патчей работает с самым современным на данный момент семейством чипов Nvidia. Правда, зараза такая, грузит только одно ядро процессора, но для старушки это простительно.</p>
<p>Доиграл, выключил компьютер и пришла в голову мысль. Наверное, банальная, но всё же.</p>
<p>С каждым годом игры становятся все совершеннее, сложнее и технологичнее. Растет цена "входного билета", из-за чего маньяку-энтузиасту пролезть на рынок уже почти нереально.  А между тем именно такие маньяки, думающие не столько о заработке, сколько о результате, запустили в свое время легендарные сериалы. А дальше все получилось прямо по Чижу. Внимание, длинная цитата.</p>
<blockquote><p>А времена менялись и изменились вконец:<br />
Мы вышли наверх, мы разбрелись кто куда.<br />
И стали делать деньги вчерашний бунтарь и вчерашний певец.<br />
В его уютной квартире есть газ, телефон и вода.</p>
<p>Он не жалеет ни о чем, он держит дома шесть альбомов  ГО и  пять албомов БГ.<br />
И вроде бы он не предатель, он по своему прав.<br />
Ведя мемуары за чашечкой кофе: "Моим детям о вчерашнем дне",<br />
Каждый ловит свой собственный кайф.</p></blockquote>
<p>Да-да. Газ, телефон и вода, а новыми инкарнациями их детищ занялись менеджеры. Хорошие, умные, с очень простой мотивацией. Может быть и не надо больше раскочегаривать сериал. Может быть поставить точку и заняться чем-то новым. Но нет! Раскрученное название - это гарантированные продажи, премия в квартал и тому подобные приятные вещи. А потому к такому-то числу, граждане разработчики, будьте любезны выдать на-гора. И чтобы без этих там отмазок про игровую магию. Мы ввели полтора новых юнита, почти настоящую воду и доработали меню на базе опроса тысячи пользователей. Вот это - магия, а у вас - отмазки сплошные.</p>
<p>Возможно, поэтому я регулярно устанавливаю все новые версии C&amp;C, а играть продолжаю в "Генералов". Там, конечно, магии поменьше, чем в первых частях, но все же есть. В отличие от.</p>
<p>Интересно, может ли в наше время вообще появиться индустрия, где будут заправлять такие вот веселые маньяки, как в свое время в игровой? Я бы с удовольствием дожил <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/-7VTM9soQIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/18/campc-generals/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/18/campc-generals/</feedburner:origLink></item>
		<item>
		<title>Использование суперкомпьютеров в промышленности</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/qTfU0bGWQgc/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/18/2002566/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 07:10:50 +0000</pubDate>
		<dc:creator>ialexander</dc:creator>
		
		<category><![CDATA[Академическое сообщество]]></category>

		<category><![CDATA[Параллельное программирование]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<guid isPermaLink="false">http://origin-software.intel.com/ru-ru/blogs/2009/11/18/2002566/</guid>
		<description><![CDATA[В соседней записи Долой летнее время обсуждается пара вопросов поднятых Дмитрием Медведевым в своем Послании федеральному собранию. В этом послании поднимается и другая более близкая нам тема об использовании суперкмопьютеров:
И, наконец, пятая приоритетная задача - развитие стратегических и информационных технологий. В России должен быть в полном объёме задействован потенциал суперкомпьютеров, суперкомпьютерных систем, которые объединены высокоскоростными [...]]]></description>
			<content:encoded><![CDATA[<p>В соседней записи <a href="http://software.intel.com/ru-ru/blogs/2009/11/13/2002532/">Долой летнее время</a> обсуждается пара вопросов поднятых Дмитрием Медведевым в своем <a href="http://www.kremlin.ru/transcripts/5979">Послании федеральному собранию</a>. В этом послании поднимается и другая более близкая нам тема об использовании суперкмопьютеров:</p>
<blockquote><p>И, наконец, пятая приоритетная задача - развитие стратегических и информационных технологий. В России должен быть в полном объёме задействован потенциал суперкомпьютеров, суперкомпьютерных систем, которые объединены высокоскоростными каналами передачи данных. С их помощью уже в пятилетней перспективе станет возможным проектирование новейших самолётов и космических аппаратов, автомобилей и ядерных реакторов. Ведь сложная техника, не прошедшая суперкомпьютерного моделирования, что называется, не положенная в цифру, через несколько лет просто не будет востребована рынком. И для завоевания здесь конкурентных позиций мы обязаны настойчиво работать.</p></blockquote>
<p>Как это ни печально осознавать, но использование суперкомпьютеров в нашей промышленности находится на очень низком уровне. Медведев уже не в первый раз говорит об этом, но особых подвижек пока нет.</p>
<p>Можно говорить о том, что наш наши КБ и НИИ безинициативны и не делают использовать доступные вычислительные мощности. Но вот вам обратный пример: <a href="http://www.jinr.ru/default.asp?language=rus">Институт объединенных ядерных исследований</a> при выполнении зарубежных заказов по проектированию циклотронов был вынужден использовать обычный персональный компьютер, неизвестно, чем бы завершились проекты, но ребятам удалось использовать видеоадаптер для значительного ускорения вычислений в рамках проекта "CBDA: Cyclotron Beam Dynamics Analysis". С другой стороны университетские кластеры просто простаивают. К примеру, кластер МГТУ им. Баумана загружен всего на несколько процентов, по словам инсайдеров.</p>
<p>В России есть отдельные проекты, которые пытаются решить эту задачу, например, <a href="http://caebeans.susu.ru/">CAEBeans</a> под руководством проф. Л.Б. Соколинского, ЮУрГУ. Другой пример: проект <a href="http://dcs.isa.ru/wiki/staff/taras/projects/mathcloud">MathCloud</a> Алексея Тарасова из ИСА РАН.</p>
<p>Но все эти проекты как-то разрознены, нет единой системы, они как капля в море и ситуации не меняют. Может быть, для прорыва в этой области требуется некоторая критическая масса таких проектов. А может уже сегодня сильные мира сего могут предпринять шаги по созданию системы, объединяющией проекты, созданию единого информационного пространства в этой области. Ведь не секрет, что представители промышленности не слишком часто посещают научные конференции по параллельным вычислениям и не могут знать о такого рода проектах, и что, вообще, ведутся работы.</p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/qTfU0bGWQgc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/18/2002566/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/18/2002566/</feedburner:origLink></item>
		<item>
		<title>Тридцать три шага назад!? – часть II</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/aVpgXEA48sg/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/17/ii-2/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 11:24:10 +0000</pubDate>
		<dc:creator>vlubch</dc:creator>
		
		<category><![CDATA[Параллельное программирование]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/17/ii-2/</guid>
		<description><![CDATA[В 50-е годы прошлого века Алан Тьюринг в своей знаменитой работе «Могут ли машины мыслить?»  предложил  игру в имитацию. Суть в том, что в одну  комнату помещают машину, в другую человека, и если нельзя распознать, кто где, то дается положительный ответ на заданный вопрос. А можем ли мы по аналогии ответить, какая машина, параллельная или последовательная, находится в комнате?]]></description>
			<content:encoded><![CDATA[<p>В 50-е годы прошлого века Алан Тьюринг в своей знаменитой работе «Могут ли машины мыслить?»  предложил  игру в имитацию. Суть в том, что в одну  комнату помещают машину, в другую человека, и если нельзя распознать, кто где, то дается положительный ответ на заданный вопрос. А можем ли мы по аналогии ответить, какая машина, параллельная или последовательная, находится в комнате?</p>
<p>При анализе библиотеки TBB ей были заданы «вопросы» в форме разных алгоритмов вычисляющих числа Фибоначчи. В результате было высказано предположение, что TBB не делает алгоритм параллельным. И это, несмотря использование ядер? Парадоксально? Странное на первый взгляд утверждение базируется на том, что параллельный рекурсивный алгоритм, созданный на базе аналогичного последовательного алгоритма, должен иметь вычислительную сложность, выражаемую линейной зависимостью - O(n). Но с какой такой бухты-барахты мы это взяли? …</p>
<p>Создадим модели императивного и рекурсивного последовательных алгоритмов, вычисляющих числа Фибоначчи, и убедимся, что они эквивалентны по поведению исходным алгоритмам. Это докажет, что выбранная вычислительная модель и процедура перехода к ней не искажают свойств моделируемых алгоритмов. Затем, применив эту же методику для параллельных алгоритмов, мы уже по свойствам моделей будем судить о свойствах анализируемого алгоритма.</p>
<p>На рис.1 приведена блок-схема императивного алгоритма вычисления чисел Фибоначчи, исходный код которого на языке С++ приведен в листинге 1. Для построения эквивалентной модели в форме конечного автомата проведем процедуру разметки блок-схемы точно так же, как это было показано в первой части для параллельного рекурсивного алгоритма. Сама разметка показана там же на рис.1, а граф эквивалентного автомата на рис.2.  На рис.3 приведен граф автомата, который эквивалентен последовательному рекурсивному алгоритму.</p>
<pre name="code" class="cpp">
float fib (int n)
{
  int i;
  float y, fib1, fib2;
  if (n <= 1) return y=1;
  for (fib1 = fib2 = 1, i=2; i <=n; i++)
  {
    y = fib1+fib2; fib1 = fib2; fib2 = y;
  }
  return (y);
}
// Листинг 1. Программа для вычисления чисел Фибоначчи
</pre>
<div id="attachment_2002557" class="wp-caption alignnone" style="width: 310px"><a href="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1811-d0b1d181-d0bfd0bed181d0bbd0b8d0bcd0bfd0b5d180d0b0d182d0b8d0b2d0bdd18bd0b93.jpg"><img class="size-medium wp-image-2002557" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1811-d0b1d181-d0bfd0bed181d0bbd0b8d0bcd0bfd0b5d180d0b0d182d0b8d0b2d0bdd18bd0b93-300x285.jpg" alt="Рис. 1. Блок-схема размеченного императивного алгоритма вычисления чисел Фибоначчи" width="300" height="285" /></a><p class="wp-caption-text">Рис. 1. Блок-схема размеченного императивного алгоритма вычисления чисел Фибоначчи</p></div>
<div id="attachment_2002559" class="wp-caption alignnone" style="width: 271px"><a href="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1812-d0b0d0b2d182d0bed0bcd0b0d182-d0bfd0bed181d0bbd0b8d0bcd0b5d180d0b0d182d0b8d0b2d0bdd18bd0b91.jpg"><img class="size-medium wp-image-2002559" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1812-d0b0d0b2d182d0bed0bcd0b0d182-d0bfd0bed181d0bbd0b8d0bcd0b5d180d0b0d182d0b8d0b2d0bdd18bd0b91-261x300.jpg" alt="Рис.2. Граф автомата императивного алгоритма" width="261" height="300" /></a><p class="wp-caption-text">Рис.2. Граф автомата императивного алгоритма</p></div>
<div id="attachment_2002560" class="wp-caption alignnone" style="width: 289px"><a href="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1813-d0b0d0b2d182d0bed0bcd0b0d182-d0bfd0bed181d0bbd180d0b5d0bad183d180d181d0b8d18f1.jpg"><img class="size-medium wp-image-2002560" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1813-d0b0d0b2d182d0bed0bcd0b0d182-d0bfd0bed181d0bbd180d0b5d0bad183d180d181d0b8d18f1-279x300.jpg" alt="Рис.3. Граф автомата последовательного рекурсивного алгоритма" width="279" height="300" /></a><p class="wp-caption-text">Рис.3. Граф автомата последовательного рекурсивного алгоритма</p></div>
<p>Теперь у нас есть две обычных программы и две автоматных модели. Доказательство того, что вычислительная сложность в результате перехода от одной модели к другой не претерпела изменений, сводится к демонстрации того, что дискретное время автоматных моделей  изменяется по тому же закону, что и реальное время работы эквивалентных обычных программ.</p>
<p>В таблицу 1 сведены результаты тестирования обычных и автоматных алгоритмов. В ее первой строке – номер числа в ряду Фибоначчи, в следующих двух - реальное время работы обычных алгоритмов, а в четвертой и пятой - дискретное время их автоматных аналогов. Графики эффективности, приведенные к времени 20-го числа обычного императивного алгоритма (первое значение во второй строке таблицы) показаны на рис.4. Из их полного совпадения следует, что выбранная модель и методика построения эквивалентных моделей не влияют на его вычислительную сложность. Напомним, что под вычислительной сложностью понимается зависимость времени работы алгоритма от значения входных данных.</p>
<blockquote><p><code>Таблица 1<br />
20       21       22       23       24       25       26       27       28<br />0,002    0,002    0,002    0,003    0,003    0,003    0,003    0,003    0,003<br />0,572    0,931    1,499    2,427    3,948    6,376    10,307   16,636   26,997<br />79       83       87       91       95       99       103      107      111<br />65672    106262   171638   278204   450146   728354   1178504  1906862  3085370<br />
</code></p></blockquote>
<blockquote><p><code>Таблица 2<br />
20       21       22       23       24       25       26       27       28<br />0,002    0,002    0,002    0,003    0,003    0,003    0,003    0,003    0,003<br />0,572    0,931    1,499    2,427    3,948    6,376    10,307   16,636   26,997<br />59       62       65       68       71       74       77       80       83<br />
</code></p></blockquote>
<p>В целях наглядности включим в новую таблицу времена обычных алгоритмов из таблицы 1 и дискретное время работы параллельного рекурсивного алгоритма. Графики вычислительной сложности, приведенные ко времени императивного алгоритма, по данным таблицы 2, представлены на рис. 5. Их вид убеждает, что вычислительная сложность параллельного алгоритма имеет тот же вид, что и вычислительная сложность последовательного императивного алгоритма. Просто параллельный алгоритм в абсолютном выражении тратит на вычисление меньше времени. В данном случае условного времени – дискретного.</p>
<div id="attachment_2002562" class="wp-caption alignnone" style="width: 310px"><a href="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1814-d0b3d180d0b0d184d0b8d0bad0b8-d18dd184d184d0b5d0bad182d0b8d0b2d0bdd0bed181d182d0b8-d0b0d0bbd0b3d0bed180d0b8d182d0bcd0be1.jpg"><img class="size-medium wp-image-2002562" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1814-d0b3d180d0b0d184d0b8d0bad0b8-d18dd184d184d0b5d0bad182d0b8d0b2d0bdd0bed181d182d0b8-d0b0d0bbd0b3d0bed180d0b8d182d0bcd0be1-300x186.jpg" alt="Рис. 4. Графики эффективности алгоритмов (Ряд 1,2 – обычные, Ряд 3,4 – автоматные)" width="300" height="186" /></a><p class="wp-caption-text">Рис. 4. Графики эффективности алгоритмов (Ряд 1,2 – обычные, Ряд 3,4 – автоматные)</p></div>
<div id="attachment_2002563" class="wp-caption alignnone" style="width: 310px"><a href="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1815-d0b3d180d0b0d184d0b8d0bad0b8-d18dd184d184d0b5d0bad182d0b8d0b2d0bdd0bed181d182d0b8-d0b0d0bbd0b3d0bed180d0b8d182d0bcd0be.jpg"><img class="size-medium wp-image-2002563" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/d180d0b8d1815-d0b3d180d0b0d184d0b8d0bad0b8-d18dd184d184d0b5d0bad182d0b8d0b2d0bdd0bed181d182d0b8-d0b0d0bbd0b3d0bed180d0b8d182d0bcd0be-300x189.jpg" alt="Рис.5. Графики вычислительной сложности алгоритмов (Ряд 1, 2 – обычные, Ряд 3 – параллельный рекурсивный)" width="300" height="189" /></a><p class="wp-caption-text">Рис.5. Графики вычислительной сложности алгоритмов (Ряд 1, 2 – обычные, Ряд 3 – параллельный рекурсивный)</p></div>
<p>Из совпадения вычислительной сложности алгоритмов следует, что, не зная какой алгоритм – рекурсивный или императивный реализует «черный ящик», сложно определить устройство внутренностей «ящика». Можно было бы судить по реальному времени, т.к. параллельный по идее должен быть быстрее. Но, это еще, как говорится, не факт! Может быть, правда, пока? <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Однако, если известно точно, что «ящик» реализует рекурсивный алгоритм, то линейный характер вычислительной сложности говорит о том, что oн параллельный, а если экспоненциальный (аппроксимация с помощью функции СТЕПЕНЬ(число; степень из Excel приводит к зависимости – O(2^(N/1,44))  – последовательный.</p>
<p>… Но если вернутся к цели нашего исследования – анализу вычислительной сложности алгоритмов, то проблема, безусловно, не в том, что TBB замедлила в данном конкретном случае работу алгоритмов в реальном времени. В теории анализ алгоритмов не связывают с реальным временем, а рассматривают условное время. Например, когда «зернистость» будет соответствовать требованиям TBB (в пределах 1000 инструкций на такт условного времени), то, скорее всего, время работы уменьшится и возможно даже, как в случае с числами Фибоначчи, пропорционально числу ядер. Проблема в другом: свойства алгоритма, как показало тестирование, остались прежними – последовательными! Но смысл введения множества ядер не только и не столько в простом увеличении скорости работы программ, а в увеличение скорости за счет качественно иного программирования – параллельного. А последнее, если верить теории, должно привести к изменению его вычислительной сложности. Пока мы этого не наблюдаем (или не можем увидеть?).</p>
<p>Так может ли речь идти о параллельном алгоритме, если его свойства остаются последовательными? Для внешнего наблюдателя, играющего, например, в упомянутую выше имитацию, подобное «распараллеливание» эквивалентно простому увеличению тактовой частоты «ящика» – при увеличении скорости его работы, и уменьшении – при увеличении времени работы. Напомним, что в случае TBB скорость для однопоточной параллельной версии сначала уменьшилась в 66 раз, а потом для двух ядер увеличилась в два раза, т.е. в конечном итоге уменьшилась в 33 раза при сохранении вычислительной сложности (?).</p>
<p>Но тогда, если следовать правилам «игры» или, что точнее, теории алгоритмов, речь должна идти скорее о неких ухищрениях, в каких-то случаях повышающих, а в большинстве, как можно предположить, скорее понижающих,  скорость работы  программ. При этом сама причина уменьшения скорости в том, что под упомянутые требования зернистости подпадает лишь малая часть параллельных алгоритмов.<br />
Оценивая результаты тестирования алгоритмов, можно также возразить – просто мало ядер! Настолько мало, что их число никак не сказывается на свойствах алгоритма. Но будет ли достаточно 4-х, 8-ми и т.д. ядер? И, действительно, для параллельного рекурсивного алгоритма почти любое доступное их число сейчас и даже предполагаемое в будущем – капля в море, т.к. речь должна идти о сотнях тысяч ядер!</p>
<p>Оценку вычислительной сложности параллельного алгоритма можно и даже нужно выполнять исходя из понятия виртуального параллелизма. В этом случае и время должно быть виртуальным или условным. В автоматной модели условное/виртуальное время – это дискретное время. А как узнать виртуальное время (в теории, напомним, чаще говорят об относительном времени) работы многопоточного  алгоритма? Подсчитывать число инструкций, в том числе и выполняемых параллельно?...</p>
<p>PS: Тестирование параллельного рекурсивного алгоритма на MC# убеждает, что и  он имеет вычислительную сложность, как и у последовательного рекурсивного алгоритма.</p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/aVpgXEA48sg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/17/ii-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/17/ii-2/</feedburner:origLink></item>
		<item>
		<title>Первый взгляд на Go</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/wN-lAFUuejc/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/17/go/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 09:57:46 +0000</pubDate>
		<dc:creator>ialexander</dc:creator>
		
		<category><![CDATA[Параллельное программирование]]></category>

		<category><![CDATA[Разработка софта]]></category>

		<category><![CDATA[Язык программирования Go]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/17/go/</guid>
		<description><![CDATA[Итак, что интересного, хорошего и плохого нашел я в этом языке, просидев с ним несколько дней?]]></description>
			<content:encoded><![CDATA[<p>Выход Go похож на дурную шутку. Сначала Google выпустил браузер Chrome, который работает только под Windows, теперь новый язык Go, компилятор которого есть под Linux и Mac OS X, но никак не под Windows. Оно, конечно, понятно, что есть хорошее оправдание - команда маленькая, и все охватить не могут, но тем не менее факт остается фактом.<br />
Выход этого языка - плохая новость для Microsoft, отнюдь не из-за того, что Google проигнорировал Windows, но из-за того, что он начал вторжение в святая святых MS - разработка средств разработки. Теперь Балмеру, чтобы исправить ситуацию придется прыгать в 2 раза выше и кричать в 2 раза чаще: "Developers! Developers! Developers!".<br />
Итак, что интересного, хорошего и плохого нашел я в этом языке, просидев с ним несколько дней.</p>
<p>Первое, что бросается в глаза, в этом якобы Си-подобном языке, это объявления переменных и типов. Здесь добавлены новые ключевые слова и все перевернуто с ног на голову, команда Go, утверждает, что так удобнее. Но поначалу такое нововведение вызывает только раздражение. Теперь, чтобы объявить переменную i типа int, придется выдать конструкцию:</p>
<blockquote>
<pre>var i int;</pre>
</blockquote>
<p>Другие примеры:</p>
<blockquote>
<pre>var p *int; //указатель
var str string; //строка</pre>
</blockquote>
<p>Да, да все верно. В Go строки поддерживаются самим языком, мало того, как и в C# они неизменяемые. А значит, при работе с ними придется быть крайне внимательным, чтобы не наплодить кучу строковых объектов.</p>
<p>Арифметике указателей, напротив, придется сказать "до свидания". Гуглы решили, что так безопаснее, да еще и проще будет реализовать сборщик мусора. Ага, в Go появилось и это чудо. Гугл декларирует Go как быстрый язык поддерживающий параллельное программирование. Как сборщик мусора будет сочетаться с этими декларациями? Весьма, весьма интересно. Одно правда, для ряда параллельных задач сборщик мусора упрощает дело. Бывает так, что приходится писать пользовательские менеджеры памяти, только, чтобы память можно было освобождать в условиях общей памяти и многопоточности. С другой стороны, сборщик мусора может серьезно сказаться на эффективности. Задачи дискретной оптимизации, к примеру, весьма активно используют память и сборщик мусора тут может сыграть дурную шутку. Но пока это лишь предположения.</p>
<p>Разработчики Go так и не смогли обойтись без синтаксического сахара в объявлениях переменных, следующие 2 объявления равнозначны:</p>
<blockquote>
<pre>var i int = 0;
i := int(0);</pre>
</blockquote>
<p>Оператор := позволяет задавать тип переменной, исходя из типа присваиваемого значения.</p>
<p>Для констант также не нужно задавать тип константы, он определяется по типу значения:</p>
<blockquote>
<pre>const NewLine = "\n";</pre>
</blockquote>
<p>Можно объединить определения нескольких констант следующим образом:</p>
<blockquote>
<pre>const (
	NewLine = "\n";
	MagicNumber = int(7);
)</pre>
</blockquote>
<p>У языка Go настоящая беда с точками с запятой, правило где их нужно ставить, а где необязательно весьма запутаны, так, что я предпочитаю ставить и везде, так спокойнее.</p>
<p>Функции в Go достаточно интересны. Они выдерживают общий стиль объявления новых типов, и на этот раз ключевым словом является func:</p>
<blockquote>
<pre>func lisa(grade int) {...} // по правилам Си: void foo(int i) {...}
func bart(shorts string) string {...} //const char *bart(const char *str) {...}</pre>
</blockquote>
<p>Все это конечно замечательно, но есть одно дополнение, которое позволит обходится без boost::tuple в качестве возвращаемого значения:</p>
<blockquote>
<pre>func homer(beer string) (int, double) {...} //аналог в Си: эээ...
		//int homer(const char *beer, double *result) {...}</pre>
</blockquote>
<p>В общем, несколько возвращаемых значений не новинка и поддерживаются в том же Руби, но какого их нет в таком вроде новом языке как C#? И в C++ их тоже не хватает. Стандартная ситуация: возврат кода ошибки и основного результата.</p>
<p>Пожалуй не буду дальше испытывать ваше терпение, и некоторые более интересные типы вроде исключений и определений новых типов я оставлю до следующей записи.<br />
P.S.:Для тех, кто как и я страдает без подсветки синтаксиса в Go, могу предложить файл определений для библиотеки <a href="http://projects.gnome.org/gtksourceview/">GtkSourceView-2.x</a>, если вы скопируете его в папку /usr/share/gtksourceview-2.0/language-specs/ (путь может меняться в зависимости от дистрибутива Linux), то такие приложения как gedit, будут поддерживать подсветку синтаксиса Go: <a href="http://software.intel.com/file/23751">go.lang</a>.</p>
<ul>
<li><a href="http://golang.org">Сайт языка программирования Go</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/wN-lAFUuejc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/17/go/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/17/go/</feedburner:origLink></item>
		<item>
		<title>Долой летнее время!!!</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/STpsnIIR0Ck/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/13/2002532/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 10:29:49 +0000</pubDate>
		<dc:creator>mt2</dc:creator>
		
		<category><![CDATA[Intel Software Network]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/13/2002532/</guid>
		<description><![CDATA[Сегодня,12 ноября 2009 года президент РФ Дмитрий Медведев в Послании Федеральному Собранию Российской Федерации заявил, что нужно рассмотреть также целесообразность переходов на летнее и зимнее время. «Это касается, кстати, и целесообразности перехода на летнее и зимнее время. Здесь тоже нужно сравнить все выгоды от экономии, очевидные неудобства, но сделать это надо.» 
 Я еще в [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="0cm 0cm 0pt;"><span style="Times New Roman;">Сегодня,12 ноября 2009 года президент РФ Дмитрий Медведев в <a href="http://www.kremlin.ru/transcripts/5979">Послании Федеральному Собранию Российской Федерации</a> заявил, что нужно рассмотреть также целесообразность переходов на летнее и зимнее время. «Это касается, кстати, и целесообразности перехода на летнее и зимнее время. Здесь тоже нужно сравнить все выгоды от экономии, очевидные неудобства, но сделать это надо.» </span></p>
<p class="MsoNormal" style="0cm 0cm 0pt;"><span style="small;"><span style="Times New Roman;"> </span></span><span style="Times New Roman;">Я еще в 1992 г. писал в еженедельнике СофтМаркет, что достала перестановка таймеров ПК два раза в год. Сейчас у меня 2 ПК: на одном 6 ОС, на другом – 4 и какие глюки каждый раз! А еще кучка: 2 видео-рекордера, 2 будильника, 2 наручные часы. Спасибо, что на соковыжималке, стиральной машинке и холодильнике часов нет. А у кого сомнения – <span style="EN-US;" lang="EN-US">welcome</span>: <span style="EN-US;" lang="EN-US">goto</span> на рувики в статью «<a href="http://ru.wikipedia.org/w/index.php?title=%D0%9B%D0%B5%D1%82%D0%BD%D0%B5%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D1%8F&amp;oldid=19817105">Летнее время</a>» – там множество ссылок, когда все прочтешь, то становится непонятным, откуда взялась сама идея перевода часов каждые полгода – не иначе как диверсия марсиан! Хорошо хоть Центр Управления Полетами (ЦУП) не переходит на летнее время, а то бы ракеты падали в 2 раза чаще.</span></p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/STpsnIIR0Ck" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/13/2002532/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/13/2002532/</feedburner:origLink></item>
		<item>
		<title>Индустрия игр: и снова здравствуйте!</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/MqREl_zMuro/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/12/2002528/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 13:52:23 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
		
		<category><![CDATA[Social Media]]></category>

		<category><![CDATA[Игры]]></category>

		<category><![CDATA[FaceBook]]></category>

		<category><![CDATA[PlayFish]]></category>

		<category><![CDATA[Zynga]]></category>

		<category><![CDATA[Игромир]]></category>

		<category><![CDATA[игры]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/12/2002528/</guid>
		<description><![CDATA[Начитавшись <a href="http://software.intel.com/ru-ru/blogs/2009/11/06/2002456/">страшилок</a> Вильянова про Игромир 2009 и пятидесятикратные (во ведь!) падения продаж, я сперва расстроился. А поразмыслив решил, что все, что не делается – делается к лучшему! И есть еще кое-кто, кто зарабатывает на играх денежки. Хорошие денежки. Правда, это другие игры. Вы не поверите: в этих играх совсем нет фотореалистичной графики. Ужас, да?]]></description>
			<content:encoded><![CDATA[<p>Прочитав <a href="http://software.intel.com/ru-ru/blogs/2009/11/06/2002456/">страшилки</a> Вильянова про <a href="http://www.igromir-expo.ru/program/">Игромир 2009</a> и пересмотрев видео с этого замечательного события, я так ничего и не понял.</p>
<p>Джо Кукан – хорошо, Анатолий Вассерман – отлично, Дмитрий Пучков – еще лучше… Жаль только ничего большого и светлого в репортажах с выставки я так и не увидел (да простят меня фаны C&amp;C). Сдается мне, что подобные выставки скоро превратятся в то, во что уже превратились промо-компании отечественных фильмов: побольше звезд на предварительных показах и неприятно красивые гламурные девицы с восторженными отзывами в новостях тщетно пытаются компенсировать убогий сюжет и жалкую игру актеров. Пятидесятикратное падение продаж, говорите? Ну-ну…</p>
<p><a href="http://www.playfish.com/?page=game_restaurant"><img class="size-medium wp-image-2002526" title="restaurant_city" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/restaurant_city.png" alt="" width="251" height="222" align="left" /></a>Думаете, что я собрался брюзжать по этому поводу? Совсем нет! В сети есть и хорошие вести: не успел маленький стартап <a href="http://www.playfish.com">PlayFish</a> дожить до своего двухлетия, как был <a href="http://mashable.com/2009/11/09/ea-acquires-playfish-2/">приобретен</a> Electronics Arts. Цена вопроса - $400.000.000. Зачем великой и могучей EA понадобился английский PlayFish? Тем паче на фоне кризиса индустрии? Да все просто – PlayFish специализируется на примитивных играх для социальных сетей. Ну, вы понимаете… Всякие там виртуальные животные, фермы, рестораны и т.д. Не понимаете? Значит у вас нет <a href="www.facebook.com">FaceBook</a>-зависимых друзей и знакомых. А вот у меня есть. Приехав с работы домой, такие люди первым делом бегут к компьютеру, потому что им срочно нужно полить капусту. Или вынуть жаркое из духовки. Или еще что-то там переставить, прополоть, посадить, подать, и т.д.</p>
<p>По разным оценкам число игроков в «социальные игры» составляет от 50.000.000 до 80.000.000 человек. ЕЖЕДНЕВНО. Погуглите число игроков в WOW и вы удивитесь еще больше.</p>
<p><a href="http://www.zynga.com/games/index.php?game=mafiawars"><img class="size-medium wp-image-2002527" title="mafia_wars" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/mafia_wars-300x253.png" alt="" width="300" height="253" align="right" /></a>Впрочем, PlayFish – детский лепет. Настоящий монстр этого дела - <a href="http://www.zynga.com">Zynga</a>. Не слышали? Farmville, Mafia Wars, Restaurant City. Тоже не слышали? Зря. GTA IV со всеми своими йогами, играющими по <a href="http://multiplayerblog.mtv.com/2009/10/20/grand-theft-auto-4-record-goes-to-gamer-in-india/">40 часов без перерыва</a> – просто кучка маргиналов в сравнении с Farmville. И я лично знаю нескольких многодетных отцов и домовладельцев, которые вплотную приближаются к 300-му уровню в Mafia Wars.</p>
<p>В чем фишка? Социальные игры органично вклинились в функциональность и социальность социальных сетей <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> : игроки сами занимаются раскруткой игр в среде своего общения; ведь почти все их действия «светятся» в лентах. Игроки сами вербуют новобранцев: чем больше у тебя компаньонов, тем быстрее ты набираешь очки. И что самое интересное: им даже не нужно создавать сообщество, ведь они УЖЕ в сообществе.</p>
<p>Конечно, если играть по-честному, то, достигнув 300-го уровня можно упустить последний шанс стать многодетным отцом <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> . Спасибо разработчикам, - если очень уж хочется, то нужный скарб можно прикупить. Это я сейчас про игру ;). Впрочем, детей я слышал, тоже можно купить :). Ох уж мне этот материальный мир! Впрочем, выбор за нами – можно купить и то и то, если денег хватит.</p>
<p>Так о чем это я? Да о том, что по самым скромным оценкам доход Zynga в текущем году - <strong>$100.000.000</strong>. Пятидесятикратное падение продаж, говорите? Ну-ну…</p>
<p>Написав весь этот текст, я задумался. Полтора года назад я сделал <a href="http://software.intel.com/ru-ru/blogs/2008/03/25/pc/">осторожный прогноз</a> развития рынка игр. Цитирую: "<em>А не прозевали ли разработчики игр (и мы, производители платформ) еще один тренд рынка? Не случиться ли так, что когда массовые игры будут производится из расчета в 1000$ на "low-end" железо, массовые потребители будут обладать железом всего за $400, включая монитор?</em>". И что характерно: прогноз-то я сделал, но этим ограничился. Может зря?  Быть может наше горе – от ума? Может зря вся эта многопоточность, фотореалистичная графика, искусственный интеллект ларраби (ой <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )? Может лучше не про C++, а про Flex? А? Что скажете?</p>
<p>Не, вы не подумайте, что это провокация. Действительно хотелось бы обсудить. Мы тут все люди совсем неглупые… Быть может именно сейчас кому-то в голову придет идея на сто миллионов? Чур я в доле. <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Всем удачи!</p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/MqREl_zMuro" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/12/2002528/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/12/2002528/</feedburner:origLink></item>
		<item>
		<title>Go, Go, Google, Go!</title>
		<link>http://feedproxy.google.com/~r/ISNBlogRussia/~3/xq067cCs2i4/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/11/12/go-go-google-go/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 08:31:28 +0000</pubDate>
		<dc:creator>vilianov</dc:creator>
		
		<category><![CDATA[Открытый код]]></category>

		<category><![CDATA[Параллельное программирование]]></category>

		<category><![CDATA[Google Go]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/11/12/go-go-google-go/</guid>
		<description><![CDATA[Я начал подозревать неладное, когда появился онлайновый почтовый клиент и сервер одновременно Gmail. Подозрения усилились с запуском онлайновых офиса и переводчика. После анонса "андроида" не спал всю ночь, думал о виртуальном Big Brother'е. Браузер Chrome поставил на компьютер в первый же день, потому что все уже было понятно. Выход Google Wave воспринял, как грубые ласки перед массовой виртуальной лоботомией...]]></description>
			<content:encoded><![CDATA[<p>Ну что, свершилось... Я начал подозревать неладное, когда появился онлайновый почтовый клиент и сервер одновременно Gmail. Подозрения усилились с запуском онлайновых офиса и переводчика. После анонса "андроида" не спал всю ночь, думал о виртуальном Big Brother'е. Браузер Chrome поставил на компьютер в первый же день, потому что все уже было понятно. Выход Google Wave воспринял, как грубые ласки перед массовой виртуальной лоботомией...</p>
<p>И вот - гран финале. Сегодня Google объявила о выходе собственного языка программирования Go. Начался обратный отсчет времени до тотального покорения галактики.</p>
<p>Я сейчас сижу на сайте <a href="http://golang.org/">http://golang.org/</a>, читаю документацию и паралелльно общаюсь со знатоками. Не скрою, мне трудно, потому что никакой я не программист  - так, тестировщик. Пока на вид ничего страшного: в FAQ много уклончивых формулировок и маркетингового бла-бла, и по соседству признается, что даже в самой великой и ужасной Google до массового использования мегаязыка пока не дошло.</p>
<p>И вот вроде всего первый день пошел, а отзывов в Интернете уже пруд пруди. Кто-то называет странным плодом любви Python с C++. Кто-то придумал имя для людей, программирующих на нем - Goпники. Есть голоса, предрекающие кончину во младенчестве, а есть и оптимисты, гарантирующие скорый переход на Go 99,9 процентов всех программистов мира. Не 100, потому что этих фортранщиков все равно не переубедить. Они переживут даже ядерную зиму.</p>
<p>Скептики могут сказать, что существует несколько тысяч языков программирования, и одним больше, одним меньше - не повод тратить виртуальные чернила. Но тут ведь как в известном анекдоте: "я не знаю, кто в машине, но шофер у него Брежнев". Людские и финансовые возможности Google таковы, что если в компании решат - Go попрет стремительным домкратом. Коллеги по бизнесу сначала посмеются, потом помолчат, а потом запрутся в маленьких комнатках и начнут бояться любого звука. Помните, как хихикали над Microsoft, когда корпорация вышла на рынок приставок? Вот, недавно вышло исследование - на долю Xbox приходится уже 49% отечественного рынка, да и на мировом одни сплошные поводы для оптимизма. В общем, главное - захотеть.</p>
<p>Но захочет ли Google? Чтобы понять это, язык  <span style="line-through;">врага</span> надо знать и понимать немного лучше, чем это под силу экс-тестировщику. Поэтому обращаюсь к вам, уважаемые коллеги. Каковы первые впечатления? Насколько доработан язык на сегодняшний день? Правда ли, что он заточен исключительно под серверные приложения, а остальным просьба не беспокоится? Что может заставить лично вас серьезно сесть на Go? И - главное - нужен ли индустрии новый язык программирования? И нужен ли ей Go?</p>
<p>Меня пока порадовало вот что. В беседе с одним из экспертов, автором нескольких серьезных книг по программированию, который пока решил остаться неизвестным, первым делом был озвучен интерес -насколько применение Go облегчает распараллеливание?</p>
<p>Дорогой Дмитрий Оганезов! Даже если Big Brother нас таки заглотит, мы будем знать, что идея пошла в массы, и если бы не он - все бы у нас получилось. Но может еще и получится, а?</p>
<img src="http://feeds.feedburner.com/~r/ISNBlogRussia/~4/xq067cCs2i4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/11/12/go-go-google-go/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/ru-ru/blogs/2009/11/12/go-go-google-go/</feedburner:origLink></item>
	</channel>
</rss>
