<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 00:22:57 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/ru-ru/forums/95/feed" rel="self" type="application/rss+xml" />
    <title>Intel Software Network - <![CDATA[ Параллельное программирование ]]> фид</title>
    <link>http://software.intel.com/ru-ru/forums/95</link>
    <description></description>
    <language>ru-ru</language>
    <item>
      <title>Ограничения в параллельном программировании в моделях с общей памятью</title>
      <description><![CDATA[ Необходимо четко представлять, какие алгоритмы подлежат распараллеливанию, а какие - нет в моделях с общей памятью (к которым относятся большинство современных десктопных компов с многоядерными процессорами). Например, львиную долю времени при трехдиагонализации симметричных матриц занимает BLAS Level 2 и для него безразлично, сколько ядер у Вашего процессора. Все упирается в пропускную способность оперативной памяти и дело можно поправить, только увеличив частоту этой памяти. Иное дело - грамотный алгоритм перемножения м-ц : здесь можно добиться прекрасного распараллеливания (см. мою страницу <a href="http://www.thesa-store.com/products/">http://www.thesa-store.com/products/</a> , где описаны новые алгоритмы диагонализации матриц и их перемножения (например, разработан новый алгоритм быстрого перемножения м-ц, который не требует выделения дополнительной оперативной памяти) и их сравнение с соответствующими алгоритмами, реализованными в Intel MKL). С полученными результатами также можно ознакомиться по статьям, которые опубликованы на моей странице. ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/63221/</link>
      <pubDate>Mon, 09 Nov 2009 02:58:55 -0800</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/63221/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>построение системы для обработки большого числа запросов</title>
      <description><![CDATA[ Ищу решение для следующей ситуации:<br />Существует приложение с динамическим формированием объектов. т.е. например, у меня есть приложение, которое обслуживает 200 запросов "одновременно" (за 5 секунд "вычисляются" 1000 web-ответов).<br />При увеличении загрузки я планирую использовать отдельный сервер для "распределения" запросов (load balancer) между такими серверами. Но какую ожидать модель поведения ??? Ведь не отказ в обслуживании надо получить, а надежность за определенную избыточность (цена которой лишние сервера).<br />Какие последнии рекомендации о массштабировании систем и о том, как прогнозировать увеличение загрузки и скорости выполнения (скажем для 100000 запросов)? Как правильнее эмулировать "предельную" нагрузку - чтобы понять, когда пойдут отказы ?<br />Из чего сделать вывод, что лучше - увеличить мощность сервера (установить более быстрые процессора), улучшить память, увеличить ее объем или добавлять дополнительный сервер ?<br />*Origin: чем больше процессов, тем медленее между ними переключение ;-(<br /><br /> ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/63612/</link>
      <pubDate>Mon, 09 Nov 2009 02:54:34 -0800</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/63612/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>помогите разобраться с освоением OpenMP</title>
      <description><![CDATA[ использую компилятор ifort. раньше считал на персоналке,программа(небольшая численная модель) работала нормально, если теперь запускать её на кластере без распараллеливания(компиляция с помощью ifort), то тоже работает как часы, но если к ifort добавить ключ"-openmp", чтобы он распознавал директивы OpenMP, то в программе начинают возникать NaN и нули там где их не должно быть, в итоге она вылетает(... Пугает тот момент, что если даже ни одной директивы опенмпишной нет, но компилировать с помощью<br />ifort -openmp ... то тоже не работает, в чём может быть проблема? куда рыть? <br />если компелировать так:<br />ifort -openmp-stubs <br />то программа запускается как нормальная последовательная и работает...<br /> ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/69421/</link>
      <pubDate>Mon, 26 Oct 2009 16:53:27 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/69421/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>Intel Parallel Studio</title>
      <description><![CDATA[ Предлагаю в этой ветке обсуждать все вопросы связанные с настройкой и использованием Intel Parallel Studio.<br />Для начала самый простой вопрос, где её взять и предустматриваются ли академические лицензии для студентов? ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/69225/</link>
      <pubDate>Mon, 19 Oct 2009 10:39:07 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/69225/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>Вопросы по анализу fortran+openmp программы Intel(R) Thread Checker&amp;#39;ом</title>
      <description><![CDATA[ <div>Здравствуйте, уважаемое сообщество разработчиков.</div>
<div><br /></div>
Я новичок в параллельном программировании. Поэтому вместе с чтением учебных пособий и статей по OpenMP одновременно провожу различные тесты. Использую компилятор ifort 11.0 и Intel Thread Checker 3.1.
<div><br /></div>
<div>Простой код на фортране:</div>
<div><br /></div>
<div>
<blockquote>
<div>program test</div>
<div>integer a</div>
<div>a = 1</div>
<div>!$omp parallel firstprivate(a)</div>
<div>a = a + 1</div>
<div>print *, a</div>
<div>!$omp end parallel</div>
<div>print *, "serial ", a</div>
<div>end</div>
<div><br /></div>
</blockquote>
<div><br /></div>
<div>Компилирую и исполняю:</div>
<blockquote>
<div>$ export OMP_NUM_THREADS=2</div>
<div>$ $ ifort -openmp testomp.f -o testomp &amp;&amp; ./testomp</div>
<div>testomp.f(4): (col. 7) remark: OpenMP DEFINED REGION WAS PARALLELIZED.</div>
<div>2</div>
<div>2</div>
<div>serial            1</div>
</blockquote>
<div><br /></div>
<div>Всё правильно: переменная a внутри параллельной области объявлена как приватная, следовательно изначальная общая переменная никак не затрагивается.</div>
<div><br /></div>
<div>Теперь прогоняю этот же код через Intel Thread Checker:</div>
<div>
<blockquote>
<div>$ ifort -g -O0 -openmp -tcheck testomp.f -o testomp &amp;&amp; tcheck_cl ./testomp</div>
<div>testomp.f(4): (col. 7) remark: OpenMP DEFINED REGION WAS INSTRUMENTED.</div>
<div>Intel(R) Thread Checker 3.1 command line instrumentation driver (27583)</div>
<div>Copyright (c) 2007 Intel Corporation. All rights reserved.</div>
<div>Building project</div>
<div>Instrumenting</div>
<div>14% testomp         ( All Functions ):...............................</div>
<div>.</div>
<div><br /></div>
<div>Running:  /home/ruslan/program/intellapack/testomp</div>
<div><br /></div>
<div>2</div>
<div>serial            2</div>
<div><br /></div>
<div>Application finished</div>
</blockquote>
<div>Плюс 18 разных позиций ID с ошибками такими, например, как I/O data-race, Write -&gt; Write data-race и им подобными. В связи с этим вопросы:</div>
<div>1. Почему Intel Thread Checker исполнил файл (Running:  /home/ruslan/program/intellapack/testomp) как однопоточный? Так задумано?</div>
<div>2. Пару примеров "гонок данных":</div>
<div>
<div>_______________________________________________________________________________</div>
<div>|1 |I/O          |Err|1|omp par|I/O operation at "testomp.f":6     |"testo|"testo|</div>
<div>|   |data-race |or |  |allel      |conflicts with a prior I/O              |mp.f":|mp.f":|</div>
<div>|   |               |    |  |region   |operation at "testomp.f":6           |6        |6     |</div>
<div>_______________________________________________________________________________</div>
<div><br /></div>
<div>Т.е. конфликт операций "ввода-вывода" в строке:</div>
<div>print *, a</div>
<div><br /></div>
<div>Объясните, как может быть конфликт с переменной a, которая заведомо приватная для каждого треда? Ведь каждый тред обращается для чтения в _свою_ локальную копию переменной, а не к общей переменной.</div>
<div><br /></div>
<div>А так же множество ошибок "Memory write at [testomp, 0xd35a] conflicts with a prior memory write at [testomp, 0x6129] (output dependence).</div>
<div><br /></div>
<div>Полный вывод Thread Checker'а можно взглянуть во вложенном файле testompcheck.txt.</div>
<div><br /></div>
<div>Проблема в том, что мне необходимо произвести openmp-распараллеливание довольно сложной программы на Фортране и хотелось бы использовать такой продвинутый инструмент как Intel Thread Checker. Но сначала нужно разобраться с простыми вещами, такими как предложенный мною пример.</div>
<div><br /></div>
<div>Очень прошу вас помочь мне разобраться.</div>
</div>
</div>
</div> ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/69223/</link>
      <pubDate>Mon, 19 Oct 2009 10:16:46 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/69223/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>[offTop] Хелп ми</title>
      <description><![CDATA[ Сразу же извеняюсь, просто не нашёл место, куда бы обратиться с этой просьбой. Не могли бы вы мне подсказать среду разработки игр без программирования, или с минимумом =) В школе языки программирования не учили, так что освоиться в движках я совершенно не могу. А создавать моды к различным играм, это не то совсем. Хочеться координально что-то изменить. Что делать? Учиться!? Знаю.. А как насчет других способов!? ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/69002/</link>
      <pubDate>Mon, 12 Oct 2009 05:52:28 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/69002/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>C++ Compiler 11.0 and Intrinsics</title>
      <description><![CDATA[ Используя ICL 11.0 for Linux вдруг обнаружил значительное замедление по таймингу при использовании SSE-векторизации (manual) по сравнению с версией 10, но под Windows. Оказалось что соотв. SSE-интринсики не инлайнятся, -opt-report специфицирует их как EXTERNAL(?). Работаю удаленно и не могу посмотреть что там реально в коде, хотя под виндами дизассемблерный код для MS VC &amp; Intel 10.0 был вполне нормальный - инлайный. Не подскажет ли кто-нибудь, чего там компилятору не хватает? Может какой-нибудь библиотеки?  ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/69001/</link>
      <pubDate>Mon, 12 Oct 2009 05:36:12 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/69001/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>tbb::parallel_for , две функции</title>
      <description><![CDATA[ Приветствую !<br /><br />Не могу разобраться в следующей ситуации. Есть две функции<br /><br />void foo1()<br />{<br />tbb::parallel_for(...)<br />{<br />...<br />}<br />}<br /><br />void foo2()<br />{<br />tbb::parallel_for(...)<br />{<br />...<br />}<br />}<br /><br />Они вызываются в таком порядке:<br />foo1();<br />foo2();<br /><br /><br />Обе они работают с одними данными, первая функция выполняет одну операцию с данными, вторая - другую. Проблема в том, что вторая операция над данными (выполняемая в функции foo2()) должна начаться только после того, как первая операция (функция foo1()) полностью выполнена. В случае использования tbb::parallel_for у меня не получается так сделать (возникают ошибки, часть данных остается не обработанной). Если заменить parallel_for на "обычный" for то все работает как надо, но теряется эффект распараллеливания, ради которого, собственно и используется TBB.<br /><br />Спасибо. ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/68999/</link>
      <pubDate>Mon, 12 Oct 2009 04:38:02 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/68999/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>MC# 2.2 для Windows и Linux</title>
      <description><![CDATA[ Вышла версия системы параллельного программирования MC# 2.2 для Windows и Linux,<br />включая Linux-кластеры. Версия для Linux базируется на системе Mono - <br />реализации .NET для Uniх-подобных систем.<br /><br />Замечания, предложения и комментарии приветствуются ... ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/68433/</link>
      <pubDate>Thu, 17 Sep 2009 23:08:29 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/68433/</guid>
      <category>Параллельное программирование</category>
    </item>
    <item>
      <title>Q: Влияет ли структура языка на производительность исполняемого файла?</title>
      <description><![CDATA[ <p>Q: Влияет ли структура языка на производительность исполняемого файла?</p>
(Если вопрос непонятен - готов сделать пояснения.) ]]></description>
      <link>http://software.intel.com/ru-ru/forums/95/topic/68296/</link>
      <pubDate>Fri, 11 Sep 2009 11:06:53 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/ru-ru/forums/95/topic/68296/</guid>
      <category>Параллельное программирование</category>
    </item>
  </channel></rss>