<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блоги &#187; tc2009</title>
	<atom:link href="http://software.intel.com/ru-ru/blogs/tag/tc2009/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/ru-ru/blogs</link>
	<description></description>
	<lastBuildDate>Thu, 24 May 2012 12:16:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Второе задание нового сезона Threading Challenge: сделайте ход конем</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/09/08/threading-challenge-9/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/09/08/threading-challenge-9/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 14:59:05 +0000</pubDate>
		<dc:creator>Svetlana Emelyanova (Intel)</dc:creator>
				<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[Параллельное программирование]]></category>
		<category><![CDATA[Разработка софта]]></category>
		<category><![CDATA[08.09.2009]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[конкурс]]></category>
		<category><![CDATA[шахматы]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/09/08/threading-challenge-9/</guid>
		<description><![CDATA[Задача о нахождении маршрута шахматного коня, проходящего через все поля доски по одному разу известна еще с 17 века. Во втором задании 2 этапа конкурса <a href="http://software.intel.com/ru-ru/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a> участникам предлагается подумать над решением модификации задачи о ходе коня, когда можно обойти только заданное число клеток шахматной доски. Обойти всю доску не представляется возможным - оказывается, мировой экономический кризис повлиял и на шахматных коней;) ]]></description>
			<content:encoded><![CDATA[<p style="text-align: left; padding-left: 320px;"><em>Алеет Осень Ценными Дарами,<br />
Еще Один Животворящий День.<br />
Хлеба Червонят Желтыми Шнурами,<br />
Хрустальных Вод Философична Сень...</em></p>
<p style="text-align: left; padding-left: 320px;"><em>В. Панов,  международный   мастер   по шахматам.</em></p>
<p>Четверостишие из мнемонического стишка возможно будет знакомо любителям шахмат и википедии <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Благодаря ему можно на практике виртуозно продемонстрировать решение <a href="http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%85%D0%BE%D0%B4%D0%B5_%D0%BA%D0%BE%D0%BD%D1%8F">задачи о ходе коня</a>.</p>
<p>Собственно в очередном задании конкурса участникам и предлагается подумать над решением модификации этой задачи, когда можно обойти только заданное число клеток шахматной доски. Обойти всю доску не представляется возможным - оказывается, экономический кризис повлиял и на шахматных коней <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Вот и само задание 2 этапа конкурса <a href="http://software.intel.com/ru-ru/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a>, а решение необходимо <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest_entry.php?problemsetid=54">отправить</a> до 25 сентября PST:</p>
<div style="padding-left: 40px; background-color: #f9f9f9;">
<p>В задаче о ходе коня задействована единственная шахматная фигура коня. Необходимо пройти через все поля доски один и только один раз, соблюдая правила передвижения фигуры (2 клетки вправо или влево и затем 1 вверх или вниз, или 2 клетки вверх или вниз и затем 1 вправо или влево). Для коней, любящих путешествовать, подобный маршрут длиной во всю шахматную доску может быть очень захватывающим. Однако, в период тяжелой экономической ситуации, конь вряд ли сможет позволить себе посещение каждой клетки доски. Поэтому, необходимо определить, как много различных маршрутов определенной длины можно совершить. Маршрут должен быть замкнутым, то есть начинаться и заканчиваться в одной и той же клетке.</p>
<p><strong>Постановка задачи: </strong><br />
Напишите параллельный код для вычисления числа возможных замкнутых маршрутов коня на шахматной доске, начинающего движение от заданной клетки и обходящего определенное число полей доски. Имена используемых исходного и результирующего файлов будут задаваться в командной строке. Исходный файл уточняет размер и форму шахматной доски, начальную клетку маршрута коня, длину маршрута и количество маршрутов, которые должны быть выведены в текстовый файл. После выполнения приложения результирующий файл должен содержать запрашиваемое число подробных маршрутов (список полей шахматной доски для посещения) и сводную строку с  общим числом маршрутов, которые возможны при заданных в исходном файле условиях.</p>
<p><strong>Формат исходного файла: </strong><br />
Исходный файл  содержит 5 строк следующего формата:<br />
Строка 1 – целое  число, задающее количество вертикалей шахматной доски<br />
Строка 2 – целое  число, задающее количество горизонталей шахматной доски<br />
Строка 3 – начальная клетка маршрута коня в алгебраическом обозначении (первая буква в нижнем регистре определяет вертикаль, и целое число соответствует горизонтали)<br />
Строка 4 – целое  число, задающее количество клеток маршрута для посещения<br />
Строка 5 -  целое число, задающее количество подробных  маршрутов для вывода в текстовый файл</p>
<p><strong>Формат файла результата: </strong><br />
Каждый выведенный в файл подробный маршрут должен представлять собой список полей (одно поле на строку) шахматной доски в алгебраическом обозначении, начинающийся и заканчивающийся с клетки, заданной в исходном файле. Если длина маршрута равна 8, тогда выведенный в текстовый файл маршрут будет содержать список из 9 полей (начальная клетка и 8 целевых полей, где конечная цель совпадает с начальной клеткой) на 9 строках. После вывода каждого маршрута должна быть распечатана пустая строка или другой разделитель. После вывода запрошенного числа маршрутов должна быть распечатана сводная строка, содержащая число всех возможных маршрутов. Если при заданных в исходном файле условиях маршрут невозможен, в  результирующий файл должна быть выведена сводная строка, отражающая этот факт.</p>
<p><strong>Пример исходного файла:</strong></p>
<p>8<br />
8<br />
a8<br />
8<br />
2</p>
<p><strong>Пример файла результата:</strong></p>
<p><strong></strong>a8<br />
b6<br />
d7<br />
f6<br />
h7<br />
f8<br />
e6<br />
c7<br />
a8<br />
-------<br />
a8<br />
b6<br />
d5<br />
c3<br />
a4<br />
c5<br />
e6<br />
c7<br />
a8<br />
-------<br />
There are 880 possible 8 move tours</p>
<p><strong>Время выполнения: </strong><br />
Для определения производительности будет использовано общее время выполнения приложения. Для более точного определения времени вы можете включить в приложение код таймера с выводом результата в stdout. Если код таймера не включен в приложение, будет использовано время, включающие файловые операции ввода-вывода.</div>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/09/08/threading-challenge-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Новый сезон Threading Challenge: умножьте по-Штрассену</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/08/25/threading-challenge-8/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/08/25/threading-challenge-8/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 12:51:24 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
				<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[Параллельное программирование]]></category>
		<category><![CDATA[Разработка софта]]></category>
		<category><![CDATA[24.08.2009]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[алгоритм]]></category>
		<category><![CDATA[конкурс]]></category>
		<category><![CDATA[штрассен]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/08/25/threading-challenge-8/</guid>
		<description><![CDATA[Сорок лет назад немецкий математик Фолкер Штрассен придумал, как перемножить две матрицы размером NxN не за 8 умножений их четвертинок, а за семь.  С одной стороны - выигрыш невелик, с другой – все ж хлеб. Особенно если матрицы большие. Первое задание второго сезона <a href="http://software.intel.com/ru-ru/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a> – умножение матриц по алгоритму Штрассена.]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Позор моим сединам – оказывается, есть такая премия, имени того самого Кнута, которой награждают специальных людей, которые внесли особый вклад в развитие информатики. А я и не знал! <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Так вот, в прошлом году немецкий математик Фолкер Штрассен получил упомянутую всуе премию за титанический труд, направленный на разработку и анализ эффективных алгоритмов. Одной из первых его работ стал алгоритм перемножения матриц, пусть по современным меркам и не самый эффективный, зато простой. Точнее - несложный. А еще неплохо распараллеливающийся.  Видимо эти две причины и натолкнули моего коллегу <a href="http://software.intel.com/en-us/blogs/author/clay-breshears/">Клэя-судью Бришерса</a> на выбор первого задания нового сезона <a href="http://software.intel.com/ru-ru/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a>. Итак, умножение матриц по алгоритму Штрассена.</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>
<div style="padding-left: 40px; background-color: #f9f9f9;">
<p>...<br />
Участники конкурса должны отправить решение этой задачи до 11 сентября 2009 (11 утра 12 сентября по московскому времени).</p>
<p><strong>Постановка задачи</strong></p>
<p>Написать многопоточное приложение, выполняющее умножение двух матриц используя алгоритм Штрассена. Приложение должно сгенерировать две случайные матрицы A(M,P) и B(P,N) а затем перемножить их, используя: (1) последовательный метод и (2) алгоритм Фолкера Штрассена. Результатом умножений являются соответственно матрицы C и С1, размерностью (M,N). Необходимо также удостоверится в совпадении результатов двух перемножений, выполнив сравнение полученных матриц.</p>
<p>Три целых числа, описывающие размерности M, N, и P, должны быть соответственно первым, вторым и третьим аргументами командной строки программы.</p>
<p><strong>Ограничения</strong><br />
К заданию прилагается простая имплементация последовательного алгоритма на языке C. Конкурсное приложение должно использовать в качестве отправной точки референсный код, а именно: включать неизменную функцию Main, функцию генерации матриц, код последовательного перемножения матриц и функцию, сравнивающую результат двух перемножений. Допустимы изменения, связанные с имплементацией задания на языках, отличных от C. Кроме того, допускаются изменения, относящиеся к механизму выделению памяти и распараллеливанию алгоритма Штрассена. Все сделанные изменения, а так же особенности имплементации алгоритма необходимо включить в описание конкурсной работы.</p>
<p>Таким образом, работа должна использовать параллельную имплементацию алгоритма Штрассена для перемножения двух матриц.</p>
<p><strong>Время выполнения</strong><br />
Оценка и рейтинг конкурсной работы будет вычисляться исходя из времени выполнения алгоритма Штрассена. Конкурсные работы должны содержать код таймера и выводить время выполнения в STDOUT. В случае отсутствия кода таймера для сравнения будет использовано общее время выполнения, т.е. время, включающие генерацию матриц и последовательное перемножение.</p>
<p><strong>Прилагаемые файлы и дополнительные ресурсы</strong><br />
<a href="http://software.intel.com/en-us/forums/strassens-algorithm/topic/67860/">Референсная имплементация алгоритма</a><br />
<a href="http://software.intel.com/en-us/forums/strassens-algorithm/"> Форум данного задания</a> (eng), <a href="http://software.intel.com/ru-ru/forums/Threading_Challenge/">форум поддержки конкурса</a> (rus)<br />
<a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest_entry.php?problemsetid=53"> Форма для отправки решения</a></p>
<p>...</p></div>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/08/25/threading-challenge-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Новости прошлой недели (26)</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/06/26/2001589/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/06/26/2001589/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 14:31:44 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
				<category><![CDATA[Intel Software Network]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[habranabr]]></category>
		<category><![CDATA[isntv]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[новости]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/06/26/2001589/</guid>
		<description><![CDATA[Всем привет! Как-то так вышло, что я опять профилонил всю неделю. А ведь кое-какие события в сообществе ISN продолжают происходить, хотим мы этого или нет. Итак, новости: Habrahabr.ru Самые социально опасные активные элементы сообщества ISN наверняка уже заметили, что мы запустили корпоративный блог Intel на Habrahabr.ru. Лучше поздно, чем никогда! Вообще-то я хотел начать издалека и [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Как-то так вышло, что я опять профилонил всю неделю. А ведь кое-какие события в сообществе ISN продолжают происходить, хотим мы этого или нет. Итак, новости:</p>
<p><strong>Habrahabr.ru</strong><br />
Самые социально <span style="text-decoration: line-through;">опасные </span>активные элементы сообщества ISN наверняка уже заметили, что мы запустили <a href="http://habrahabr.ru/company/intel/blog/">корпоративный блог Intel</a> на <a href="http://habrahabr.ru/">Habrahabr.ru</a>. Лучше поздно, чем никогда! <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Вообще-то я хотел начать издалека и накидал несколько страниц черновиков класса «жевачка» дабы развлечь почтенную публику. Но суровая правда жизни заставила начать с про-маркетингового <a href="http://habrahabr.ru/company/intel/blog/62726/">поста</a> о конкурсе Уровень 2009. Этого оказалось вполне достаточно, чтобы ударить хабраэффектом по американскому сайту ISN. Сайт выдержал <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
Calls to action: Хабралюдям срочно добавлять <a href="http://dmitryo.habrahabr.ru/">меня</a> в друзья! Сотрудники Интел, которым есть что сказать хабралюдям - пишите письма!</p>
<p><strong>Уровень 2009</strong> (он же <a href="http://software.intel.com/ru-ru/contests/levelup2009/contests.php">Game Demo 2009</a>)<br />
Кстати о конкурсе для геймдевелоперов.<br />
<a href="http://software.intel.com/ru-ru/contests/levelup2009/contest_entry.php"> Прием заявок</a> заканчивается 30 июня, поторопитесь. (upd: оказалось что по независящим от меня причинам такой даты как 31 июня не существует <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p><strong>ISN TV</strong><br />
В то время как европейская часть команды ISN пытается совершенствовать старые проверенные методы подачи материала, наши американские коллеги пошли дальше и вплотную занялись телевещанием. Нет-нет, не видеороликами – именно вещанием. Начиная с июня смотрите еженедельные передачи <a href="http://software.intel.com/en-us/tv/">ISN TV</a>. Можно в риалтайм, можно в записи. Предложения по тематике  предстоящих выпусков - в камменты. Критику прошлых выпусков  – тоже.</p>
<p><strong>Threading Challenge 2009</strong><br />
Решения последнего, шестого задания <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest.php">конкурса</a> принимаются до 3-го июля. К сожалению, наш главный Клэй-судья Бришерс приболел, всвязи с чем мы до сих пор не знаем победителей четвертого и пятого этапов. Все, на что остается полагаться – <a href="http://software.intel.com/file/19319">таблица неофициальных результатов</a>. Продолжаю изо все сил болеть за российских участников. Кстати, как вы там? Мне уже никакого здоровья не хватает за вас болеть <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Немного о личном</strong><br />
Завсегдатай ISN и победитель целых двух наших конкурсов Ильнар Борханов (<a href="http://software.intel.com/ru-ru/profile/410095/">ilnarb</a>) вовсеуслышание заявил о предстоящей смене своего семейного статуса. В лучшую, позволю себе заметить, сторону <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Мы не можем оставить это без внимания и поздравляем Ильнара и его будущую супругу с предстоящим событием!</p>
<p>А еще от всей души поздравляю мою правую руку (она же моя совесть) <a href="http://software.intel.com/ru-ru/blogs/author/svetlana-emelyanova/">Светлану Емельянову</a> с успешной защитой диплома. Насколько я понимаю, он будет красным. Молодец, Света!</p>
<p>Ну и уж если начали о личном, то у меня тоже есть чем поделиться. Моя дочь закончила наконец-таки школу и сдала все ЕГЭ. Осталось пережить вступительные экзамены. К сожалению (а может к счастью?) computer science рассматривается как last option.</p>
<p>Всем удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/06/26/2001589/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Конкурс Threading Challenge – шестое задание</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/06/15/threading-challenge-7/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/06/15/threading-challenge-7/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 16:11:51 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
				<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[15.06.2009]]></category>
		<category><![CDATA[tc2009]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/06/15/threading-challenge-7/</guid>
		<description><![CDATA[Еще раз всем привет! Признаюсь честно: держать руку на пульсе конкурса Threading Challenge трудно даже мне. Все, что имею – таблица неофициальных результатов. Судя по ней, наш участник jne100 занимает третью строчку в рейтинге после четырех заданий. Однако есть еще повод надеяться на победу: в зачет пойдут три лучшие работы из шести возможных, а это [...]]]></description>
			<content:encoded><![CDATA[<p>Еще раз всем привет!</p>
<p>Признаюсь честно: держать руку на пульсе конкурса Threading Challenge трудно даже мне. Все, что имею – <a href="http://software.intel.com/file/19319">таблица неофициальных результатов</a>. Судя по ней, наш участник <a href="http://software.intel.com/ru-ru/blogs/author/jne100/">jne100</a> занимает третью строчку в рейтинге после четырех заданий. Однако есть еще повод надеяться на победу: в зачет пойдут три лучшие работы из шести возможных, а это значит, что на таблицу можно ссылаться исключительно для справки. Кроме того, интересную тактику выбрали <a href="http://software.intel.com/ru-ru/blogs/author/dmitriy-vyukov/">Дмитрий Вьюков</a> и Андрей Рябов: они просто пропускают неинтересные задания, готовясь к решительному сокрушающему удару. Что ж, посмотрим, чем это все закончится!</p>
<p>Тем временем участники продолжают работать над пятым заданием, а я выкладываю перевод шестого (и последнего).</p>
<blockquote><p><strong>Пересечение отрезков</strong> (Line Segment Intersection)</p>
<p><strong>Постановка задачи</strong>: напишите многопоточное приложение, находящее пары пересекающихся отрезков в трехмерном пространстве.</p>
<p>Имя исходного файла, содержащего координаты отрезков, и имя файла результата должны быть соответственно первым и вторым аргументами командной строки приложения.</p>
<p><strong>Формат исходного файла и файла результата</strong>: в первой строке исходного файла содержится целое N, которое представляет собой число отрезков, содержащихся в файле. Далее следует N строк, каждая из которых состоит их имени отрезка (четыре печатных символа) и шести целых чисел, представляющих начальную и конечную координаты отрезка в трехмерном пространстве. Первые три числа соответствуют началу отрезка (x,y,z), вторые три числа – концу отрезка (x1,y1,z1).</p>
<p>Точность вычислений: достаточной для нахождения требуемых отрезков точностью является значение, которое можно представить 32-х разрядным числами с плавающей точкой на тестовой платформе конкурса.</p>
<p>Файл результата должен содержать имена всех пар пересекающихся отрезков из исходного файла в произвольном формате. Если пересекающихся пар не найдено, файл результата должен содержать соответствующее сообщение.</p>
<p><strong>Пример исходного файла</strong>:</p>
<p>===================</p>
<p>8</p>
<p>AAAA -6 1 3 -8 4 -4</p>
<p>BBBB 3 -9 0 -3 -1 6</p>
<p>CCCC -1 -7 2 -4 -8 -4</p>
<p>DDDD 0 0 0 -1 6 2</p>
<p>EEEE 0 3 8 5 3 -7</p>
<p>FFFF 3 6 4 -4 0 -2</p>
<p>GGGG 8 -1 0 7 9 0</p>
<p>HHHH 11 8 0 10 -4 -3</p>
<p><strong>Пример файла результата</strong>:</p>
<p>====================</p>
<p>Segments that intersect:</p>
<p>DDDD FFFF</p>
<p><strong>Время выполнения</strong>: для сравнения будет использовано общее время выполнения приложения.</p></blockquote>
<p>Удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/06/15/threading-challenge-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SatWalker и второй раунд Intel Threading Challenge 2009</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/05/26/satwalker-intel-threading-challenge-2009/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/05/26/satwalker-intel-threading-challenge-2009/#comments</comments>
		<pubDate>Tue, 26 May 2009 06:58:50 +0000</pubDate>
		<dc:creator>jne100</dc:creator>
				<category><![CDATA[Intel Software Network]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[Параллельное программирование]]></category>
		<category><![CDATA[3SAT]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[Threading Challenge]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/05/26/satwalker-intel-threading-challenge-2009/</guid>
		<description><![CDATA[Так как мое решение стало самым быстрым во втором раунде ("These were three entries that could handle the expression with 100 variables. The fastest of these was submitted by jne100."), решил запостить его тут, чтобы можно было сравнить со своим, ну или просто посмотреть. Немного теории. Для решения проблемы 3-разрешимости я использовал алгоритм WalkSat. Нашел [...]]]></description>
			<content:encoded><![CDATA[<p>Так как мое решение стало самым быстрым во втором раунде (<a href="http://software.intel.com/en-us/forums/3sat/topic/65716/"><em>"These were three entries that could handle the expression with 100 variables. The fastest of these was submitted by <strong>jne100</strong>."</em></a>), решил запостить его тут, чтобы можно было сравнить со своим, ну или просто посмотреть.</p>
<p>Немного теории. Для решения проблемы 3-разрешимости я использовал алгоритм WalkSat. Нашел его не сразу, сначала пытался решать проблему перебором, а еще как то интеллектуально подобрать значения булевых переменных, но очень скоро понял что все это бесполезно. Алгоритм WalkSat заключается в следующем: сначала значения всех переменных устанавливаются произольным образом (вообще то я устанавливал их <em>наилучшим</em> образом). Затем находятся все неудовлетворяющие скобки (т.е. тройки переменных объединенных операцией логиского "ИЛИ"). На каждой итерации случайным образом выбирается одна из неудовлетворяющих скобок, а далее в зависимости от значения вероятности (0.5 by default) может произойти одно из двух действий - либо алгоритм пытается улучшить ситуацию инвертированием наиболее подходящей переменной (инвертирование которой уменьшит количество неудовлетворяющих скобок), либо инвертирует произвольную из трех переменных, что обеспечивает ему выход из локальных максимумов. Все заканчивается если решение найдено, или совершено максимальное количество итераций (это скорее всего означает что решения вообще нет).</p>
<p>В параллельной версии я просто запускал несколько потоков (8 конечно) поиска решения с разным значением вероятности (0.5, 0.55, 0.60...) выбора между двумя действиями. На практике все это работает чертовски хорошо, и решение находится очень быстро.</p>
<p>Кстати еще двое участников из Китая, чьи решения могли обрабатывать болшое количество переменных, использовали примерно такие же способы (еще один WalkSat и один GSat). Жаль конечно что райтап я слил - совсем не было времени его писать. Теперь скачав идеальный райтап одного из китайских участников, все буду делать по его образцу.</p>
<p>А вот и сама ссылка на мое решение - <a href="http://software.intel.com/file/18718">http://software.intel.com/file/18718</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/05/26/satwalker-intel-threading-challenge-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Оставшимся в живых – четвертое задание TC2009</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/05/19/tc2009/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/05/19/tc2009/#comments</comments>
		<pubDate>Tue, 19 May 2009 13:28:18 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
				<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[Параллельное программирование]]></category>
		<category><![CDATA[18.05.2009]]></category>
		<category><![CDATA[lost]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[конкурс]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/05/19/tc2009/</guid>
		<description><![CDATA[Всем привет! Поздравьте – теперь я свободный человек в свободной стране! Нет, я не свалил в Великобританию, просто  пятый сезон LOSTа закончился, а это значит, что моих постов в ISN блоге отныне будет чуть больше . Признаюсь честно: не то, чтобы я фанат, но, черт возьми, начиная с какого-то момента третьего примерно сезона возникает естественное [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p><a href="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/lost_timeline.jpg" target="_blank"><img class="alignright size-medium wp-image-2001386" style="margin: 4px;" title="lost_timeline" src="http://software.intel.com/ru-ru/blogs/wordpress/wp-content/uploads/lost_timeline-300x218.jpg" alt="" width="350" height="250" align="right" /></a>Поздравьте – теперь я свободный человек в свободной стране! Нет, я не свалил в Великобританию, просто  пятый сезон LOSTа закончился, а это значит, что моих постов в ISN блоге отныне будет чуть больше <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Признаюсь честно: не то, чтобы я фанат, но, черт возьми, начиная с какого-то момента третьего примерно сезона возникает естественное желание разобраться в перипетиях происходящего и нащупать причинно-следственные связи. Девелоперское прошлое во мне время от времени просыпается, что ли?</p>
<p>А как человек с PM-прошлым, задаю себе ряд вопросов о планировщике, в котором сюжет спланирован и нарезан по сериям. Если это был MS Project, то снимаю виртуальную свою бандану перед сценаристами и режиссерами – упорные ребята! А если это все «из головы», то все равно снимаю – у них, значит, IQ за двести зашкаливает.</p>
<p>На фан-ресурсах LOSTа народ пытается отрисовать последовательность событий на временной диаграмме. Это что-то сильно напоминает, не находите? <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Впрочем, не буду растекаться мыслью по древу. В конкурсе <a href="http://software.intel.com/ru-ru/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a> наблюдается некоторое затишье. Часть народа отвалилось уже на <a href="http://software.intel.com/ru-ru/blogs/2009/04/21/threading-challenge-3/">втором задании</a>, а часть, видимо, собрали волю в кулак и доделывают <a href="http://software.intel.com/ru-ru/blogs/2009/05/06/threading-challenge-5/">третье</a>. В любом случае, оставшимся в живых – удачи (все еще помнят, что трех заданий достаточно для победы?), выкладываю русский перевод четвертого <span style="text-decoration: line-through;">сезона</span> задания:</p>
<blockquote><p><strong>Поиск подстрок</strong></p>
<p><strong></strong></p>
<p><strong>Постановка задачи</strong>: написать многопоточное приложение, осуществляющее поиск в базе данных молекул дезоксирибонуклеиновой кислоты  (ДНК). Молекула ДНК представляет собой последовательность нуклеотидов.  Нуклеотиды бывают четырех типов: пурины аденин (А) и гуанин (G), пиримидины тимин (Т) и цитозин (С). Таким образом, ДНК можно представить как строку, состоящую из четырех символов 'A', 'C', 'G' и  'T'.</p>
<p>Результат должен содержать точные позиции всех искомых последовательностей нуклеотидов во всех  исходных последовательностях ДНК: если искомая последовательность встречается в нескольких ДНК, необходимо найти все совпадения. Если искомая последовательность встречается в одной ДНК несколько раз, нужно вывести позицию первого вхождения.</p>
<p>Имена файлов базы ДНК, искомых последовательностей и файла результата должны быть соответственно первым, вторым и третьим аргументами командной строки программы.</p>
<p><strong>Формат исходных файлов и файла результата</strong>:  файл с исходной базой записей ДНК и файл с искомыми последовательностями нуклеотидов имеют одинаковый формат. Каждая запись состоит из строки описания и собственно последовательности. Строка описания начинается с символа ‘&gt;’ (больше), за которым следует текстовое описание, не более 131 символа. В следующих строках расположена последовательность нуклеотидов, заданная символами 'A', 'C', 'G',  'T', не более 80 символов в строке. Признаком конца файла является маркер “&gt;EOF”.</p>
<p>В файл результата необходимо вывести следующую информацию:<br />
1) описание искомой последовательности (из второго файла)<br />
2) описание исходных последовательностей (из первого файла), в которых найдены совпадения, включая точные позиции совпадений<br />
3) или сообщение, что искомая последовательность не найдена в базе</p>
<p><strong>Время выполнения</strong>: для сравнения будет использовано общее время выполнения, т.е. время, включающие файловые операции ввода-вывода. Таким образом, допускается выполнение поиска, или сжатия/преобразования исходных данных во время операций ввода-вывода.</p></blockquote>
<p>Кстати, пример исходного файла можно скачать <a href="http://software.intel.com/en-us/forums/string-matching/">тут</a>. А отправлять задание надо <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest_entry.php?problemsetid=37">сюда</a>.</p>
<p>И еще раз всем удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/05/19/tc2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Долгожданные результаты первого задания Threading Challenge</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/05/14/threading-challenge-6/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/05/14/threading-challenge-6/#comments</comments>
		<pubDate>Thu, 14 May 2009 13:02:16 +0000</pubDate>
		<dc:creator>Svetlana Emelyanova (Intel)</dc:creator>
				<category><![CDATA[Intel Software Network]]></category>
		<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[13.05.2009]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[конкурс]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/05/14/threading-challenge-6/</guid>
		<description><![CDATA[Наконец-то завершился длительный процесс судейства первого задания конкурса Threading Challenge 2009. Вчера Клэй Бришерс опубликовал результаты первого задания в форуме Radix Sort с описанием процедуры судейства и начисления баллов. Результаты оказались несколько неожиданными. Среди авторов лучших решений участников из России нет Абсолютным победителем оказался участник из Китая denghui0815. Автор самого быстрого кода – emacswu. И, [...]]]></description>
			<content:encoded><![CDATA[<p>Наконец-то завершился длительный процесс судейства первого задания конкурса <a href="http://software.intel.com/ru-ru/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a>. Вчера Клэй Бришерс опубликовал <a href="http://software.intel.com/en-us/articles/intel-threading-challenge-2009-winners/">результаты первого задания</a> в <a href="http://software.intel.com/en-us/forums/radix-sort/topic/65557/">форуме Radix Sort</a> с описанием процедуры судейства и начисления баллов. Результаты оказались несколько неожиданными. Среди авторов лучших решений участников из России нет <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Абсолютным победителем оказался участник из Китая <strong>denghui0815</strong>. Автор самого быстрого кода – <strong>emacswu</strong>. И, наконец, лучшее описание решения предоставил <strong>calebe</strong>.</p>
<p>Вообще, удивило отсутствие турнирной таблицы. Какое-то призрачное распределение баллов… Сколько баллов получили наши участники и насколько производительными оказались их решения одним лишь судьям известно. Надеюсь, в судействе последующих заданий Клэй исправится. Как он сам написал, сейчас идет борьба с багами конкурсной платформы и пообещал, что в будущем подсчет баллов будет осуществляться быстрее. Остается поверить обещаниям и пожелать удачи нашим ребятам в решении следующих задач конкурса.</p>
<p>Удачи, удачи и еще раз удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/05/14/threading-challenge-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конкурс Threading Challenge – третье задание</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/05/06/threading-challenge-5/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/05/06/threading-challenge-5/#comments</comments>
		<pubDate>Wed, 06 May 2009 14:19:04 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
				<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[Параллельное программирование]]></category>
		<category><![CDATA[04.05.2009]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[конкурс]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/05/06/threading-challenge-5/</guid>
		<description><![CDATA[Всем привет! Знаю, знаю что все уже заждались результатов первого раунда. Клэй “Судья” Бришерс обещал закончить на этой неделе. А пока мы все с нетерпением ждем результатов, а конкурсанты дописывают 3SAT (осталось меньше трех дней), я выкладываю третью задачку. Извините, пишу практически своими словами – очень уж текст у Клэя был труднопереводимый: Поиск Постановка задачи: [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Знаю, знаю что все уже заждались результатов первого раунда. Клэй “Судья” Бришерс обещал закончить на этой неделе. А пока мы все с нетерпением ждем результатов, а конкурсанты дописывают <a href="http://software.intel.com/ru-ru/blogs/2009/04/21/threading-challenge-3/">3SAT</a> (осталось меньше трех дней), я выкладываю третью задачку. Извините, пишу практически своими словами – очень уж текст у Клэя был труднопереводимый:</p>
<blockquote><p><strong>Поиск</strong></p>
<p><strong></strong></p>
<p><strong>Постановка задачи</strong>: необходимо написать параллельную программу, которая производит поиск ключей из множества B в упорядоченном множестве А.</p>
<p> </p>
<p>Все ключи представляют собой 15-ти символьные строки. Программа принимает множества A и B из двух исходных текстовых файлов данных. Ключи в файле А расположены в упорядоченном порядке.</p>
<p> </p>
<p>Результат работы программы нужно вывести в файл C. В каждой строке файла C должен содержаться ключ из множества B и его позиция в множестве А (индекс отсчитывается с нуля), или, если ключ не найден – специальная пометка.</p>
<p> </p>
<p>Имена файлов исходных данных (множество А), ключей для поиска (множество B) и файла результата C должны быть соответственно первым, вторым и третьим аргументами командной строки программы.</p>
<p> </p>
<p>Пример командной строки:<br />
&gt; mysearch.exe data.txt keysearch.txt results.txt</p>
<p> </p>
<p><strong>Формат исходных файлов и файла результата</strong>: В первой строке файла исходных данных содержится целое N, представляющее число ключей, хранящихся в файле. Далее следуют N строк, в каждой из которых содержится по одному 15-ти символьному ключу. Строки упорядочены.<br />
Файл с ключами для поиска содержит произвольное количество строк, в каждой из которых содержится по одному 15-ти символьному ключу.</p>
<p> </p>
<p>Файл результата должен содержать то же количество строк, что и файл с ключами для поиска. Каждый ключ необходимо вывести в отдельную строку, в ту же строку необходимо вывести позицию найденного ключа в файле исходных данных, или отметку о том, что ключ не найден.</p>
<p> </p>
<p><strong>Пример файла исходных данных (data.txt)</strong>:<br />
10<br />
123456789012345<br />
AABBCCDDEEFFGGH<br />
MMNNNNNNNNNNNNN<br />
MMNNNNNNNNNNNNO<br />
NNNNNNNNNN12345<br />
NNNNNNNNNN12346<br />
This is a key22<br />
aabbCCDDEEFFGGh<br />
mMNNNNNNNNNNNNN<br />
not the lastkey</p>
<p><strong>Пример файла с ключами для поиска (keysearch.txt)</strong>:<br />
MMNNNNNNNNNNNNN<br />
NOT the lastkey<br />
mMNNNNNNNNNNNNN<br />
AABBCCDDEEFFGGH<br />
AABBCCDDEEFFGG0</p>
<p><strong>Пример файла результата (results.txt):</strong><br />
MMNNNNNNNNNNNNN is found at index 2<br />
NOT the lastkey is NOT FOUND<br />
mMNNNNNNNNNNNNN is found at index 8<br />
AABBCCDDEEFFGGH is found at index 1<br />
AABBCCDDEEFFGG0 in NOT FOUND</p>
<p> </p>
<p><strong>Ограничения</strong>: исходные данные из файла (А) необходимо считать в одномерный массив, по одному ключу в каждом элементе массива. Следующий псевдокод демонстрирует алгоритм чтения:</p>
<p>readfile(inputFD, &amp;N);<br />
for i = 0, N-1 {<br />
A[i] = getkey(inputFD);<br />
}</p>
<p> </p>
<p><strong>Время выполнения</strong>: если вы включили в свое приложение код таймера, позволяющий определить время чтения файла ключей для поиска (B), время поиска и вывода результата, то результаты, показанные таймером, будут использованы для определения производительности приложения. Если код таймера не включен в приложение, или если ограничения постановки задачи не соблюдены, для сравнения будет использовано общее время выполнения, т.е. время, включающие файловые операции ввода-вывода.</p></blockquote>
<p> </p>
<p>Решения отправляем <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest_entry.php?problemsetid=36">по этой ссылке</a>.</p>
<p>Всем удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/05/06/threading-challenge-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Threading Challenge – завершается первый раунд</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/04/24/threading-challenge-4/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/04/24/threading-challenge-4/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 14:18:09 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
				<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[Параллельное программирование]]></category>
		<category><![CDATA[24.04.2009]]></category>
		<category><![CDATA[Radix Sort]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[Threading Challenge]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/04/24/threading-challenge-4/</guid>
		<description><![CDATA[Всем привет! Итак, осталось совсем немного времени, чтобы отправить решение первой задачи – «поразрядная сортировка». Напомню, что это необходимо сделать до 11:00 по московскому времени, 25 апреля, суббота. То есть завтра утром. Насколько я вижу, несколько русскоговорящих участников уже отправили свои работы. И это радует! Все, кто еще этого не сделал – дописываем до точки [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Итак, осталось совсем немного времени, чтобы отправить решение первой задачи – «<a href="http://software.intel.com/ru-ru/blogs/2009/04/08/threading-challenge-2/">поразрядная сортировка</a>». Напомню, что это необходимо сделать до 11:00 по московскому времени, 25 апреля, суббота.</p>
<p>То есть завтра утром.</p>
<p>Насколько я вижу, несколько русскоговорящих участников уже отправили свои работы. И это радует! Все, кто еще этого не сделал – дописываем до точки (точнее – до точки с запятой) и жмем на вот <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest_entry.php?problemsetid=34">эту ссылку</a>.</p>
<p>Надеюсь, наш бессменный судья Клэй Бришерс вынесет свой суровый, но справедливый вердикт уже на следующей неделе.</p>
<p><strong>Важное замечание</strong>: я знаю, что из-за хитрого диалога загрузки файлов некоторые участники не смогли прицепить свое решение к форме заявки. Или думали, что прицепили – а на самом деле нет.</p>
<p>Пожалуйста, убедитесь еще раз: к <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest_entry.php?problemsetid=34">вашей форме</a> должен быть приложен архив с исходным кодом и исполняемый файл. Наши веб-разработчики вчера изменили диалог загрузки, теперь он стал интуитивно понятнее. Надеюсь, проблем с ним не будет. В любом случае, если возникли какие-то подозрения, терзают сомнения, а выходные хочется провести со спокойной душой – шлите свои работы мне. Dmitry.Oganezov в домене intel.com. Пожалуйста, переименуйте архив в *.txt и поставьте subject «Threading Challenge 2009 – Radix Sort».</p>
<p>Всем удачи! Теплых вам выходных!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/04/24/threading-challenge-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конкурс Threading Challenge – второе задание</title>
		<link>http://software.intel.com/ru-ru/blogs/2009/04/21/threading-challenge-3/</link>
		<comments>http://software.intel.com/ru-ru/blogs/2009/04/21/threading-challenge-3/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 10:42:16 +0000</pubDate>
		<dc:creator>Dmitry Oganezov (Intel)</dc:creator>
				<category><![CDATA[Intel Software Network]]></category>
		<category><![CDATA[ISN календарь]]></category>
		<category><![CDATA[Конкурсы и мероприятия]]></category>
		<category><![CDATA[Параллельное программирование]]></category>
		<category><![CDATA[20.04.2009]]></category>
		<category><![CDATA[3SAT]]></category>
		<category><![CDATA[tc2009]]></category>
		<category><![CDATA[выполнимость]]></category>
		<category><![CDATA[конкурс]]></category>

		<guid isPermaLink="false">http://software.intel.com/ru-ru/blogs/2009/04/21/threading-challenge-3/</guid>
		<description><![CDATA[Всем привет! Остается 5 дней, чтобы предоставить решение первого конкурсного задания  Threading Challenge 2009 - «поразрядная сортировка». Напоминаю, что решения принимаются до 24 апреля по тихоокеанскому времени включительно, то есть до 11 часов утра 25 апреля (суббота) по московскому времени. Судя по сообщениям в русском и английском форумах, несколько русскоговорящих участников продолжают работу над первым [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет!</p>
<p>Остается 5 дней, чтобы предоставить решение первого конкурсного задания  <a href="http://software.intel.com/ru-ru/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a> - «<a href="http://software.intel.com/ru-ru/blogs/2009/04/08/threading-challenge-2/">поразрядная сортировка</a>». Напоминаю, что решения <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest_entry.php?problemsetid=34">принимаются</a> до 24 апреля по тихоокеанскому времени включительно, то есть до 11 часов утра 25 апреля (суббота) по московскому времени.</p>
<p>Судя по сообщениям в <a href="http://software.intel.com/ru-ru/forums/Threading_Challenge/">русском</a> и <a href="http://software.intel.com/en-us/forums/radix-sort/">английском</a> форумах, несколько русскоговорящих участников продолжают работу над первым заданием. Всем конкурсантам удачи - надеюсь, ваши работы будут лучшими!</p>
<p>Тем временем, настало время объявить вторую задачку. Сразу оговорюсь, что я изучал булеву алгебру более 20 лет назад и заранее прошу прощения за возможные неточности в переводе. Терминологию и теорию на русском можно посмотреть, например, вот <a href="http://ru.wikipedia.org/wiki/Задача_выполнимости_булевых_формул">тут</a> или <a href="http://dic.academic.ru/dic.nsf/ruwiki/197264">тут</a>.</p>
<p>Итак, второе задание первого этапа конкурса <a href="http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest.php">Threading Challenge 2009</a>:</p>
<p><strong>Задача выполнимости (3SAT)</strong></p>
<blockquote><p><strong>Постановка задачи:</strong> Задача выполнимости булевых формул  (Satisfiability, сокращенно SAT) состоит в нахождении таких значений переменных, при которых булева формула, состоящая только из операций ИЛИ (OR), И (AND), НЕ (NOT) и скобок принимает значение ИСТИНА (TRUE). Частным случаем задачи выполнимости является задача 3SAT, сводящаяся решению выполнимости конъюнктивной нормальной формы функции трех переменных. Примером формулы 3SAT, представляющей собой конъюнкцию нескольких дизъюнктов будет выражение вида</p>
<p>    (X_1 | !X_2 | X_3) &amp; (X_3 | X_2 | !X_1) &amp; (X_2 | X_1 | !X_3) &amp; (!X_1 | !X_2 | !X_3)</p>
<p>Где:<br />
'|' – операция ИЛИ (OR),<br />
'&amp;' – операция И (AND),<br />
'!' – операция НЕ (NOT). </p>
<p> </p>
<p>Данное выражение выполнимо при X_1 = ИСТИНА, X_2 = Истина, X_3 = ЛОЖЬ.</p>
<p>Необходимо написать параллельную программу, которая принимает выражение, представляющее 3SAT формулу из текстового файла и определяет, является ли формула выполнимой, то есть существует ли такой набор значений переменных, при котором выражение принимает значение ИСТИНА.</p>
<p>Если такой набор переменных существует, переменные и их значения нужно вывести в текстовый файл результата. Если формула невыполнима, файл результата можно опустить. Имена исходного и результирующего файлов должны быть соответственно первым и вторым аргументом командной строки исполняемого файла программы.</p>
<p> </p>
<p><strong>Формат исходного файла и файла результата</strong>: В первой строке исходного файла содержатся два целых числа: максимальное число переменных, составляющих выражение (N) и число дизъюнктов в выражении (K). Следующие К строк описывают дизъюнкты и содержат по три целых числа Abs([1,N]), разделенных пробелами. Эти числа представляют собой индексы булевых переменных, где отрицательное значение соответствует операции отрицания.</p>
<p>Файл результата, сгенерированный программой (если формула выполнима), должен состоять из N строк. Каждая строка соответствует одной из N переменных и содержит ее булево значение в виде индекса переменной, являющимся целым числом [1,N]. Далее следует пробел и символы 'T' или 'F', представляющие соответственно значения ИСТИНА и ЛОЖЬ.</p>
<p> </p>
<p><strong>Пример исходного файла</strong> (соответствующий выражению выше):<br />
3 4<br />
1 -2 3<br />
3 2 -1<br />
2 1 -3<br />
-1 -2 -3</p>
<p><strong>Пример файла результата</strong> (соответствующий выражению выше):<br />
  2 T<br />
  3 F<br />
  1 T</p>
<p> </p>
<p><strong>Время выполнения:</strong> для определения производительности будет использовано общее время выполнения приложения.</p>
<p> </p></blockquote>
<p>Всем удачи! Время на решение второй задачки – до 8 мая PST (символичное 9 мая по московскому времени <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  - намек, думаю, понятен <img src='http://software.intel.com/ru-ru/blogs/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p>P.S. те, кто участвует в конкурсе - я был бы вам очень благодарен за комментарии по постановке задачи. Пишите, насколько подобные алгоритмы вам интересны, кажутся ли они вам простыми, или наоборот - сложными, сколько времени вы тратите на конкурс. Любые замечания и пожелания - я всегда на связи!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/ru-ru/blogs/2009/04/21/threading-challenge-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

