<?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>Blog despre resurse educaţionale din IT &#187; paralab</title>
	<atom:link href="http://resurse-educationale.uv.ro/?feed=rss2&#038;tag=paralab-2" rel="self" type="application/rss+xml" />
	<link>http://resurse-educationale.uv.ro</link>
	<description>Cu informatii pentru dezvoltare personala, dar şi pentru studentţi, elevi, profesori, webmasteri, programatori</description>
	<lastBuildDate>Fri, 27 Jan 2012 01:12:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Paralab. Описание параллельных методов решения сложных вычислительных задач</title>
		<link>http://resurse-educationale.uv.ro/?p=35</link>
		<comments>http://resurse-educationale.uv.ro/?p=35#comments</comments>
		<pubDate>Mon, 31 Jan 2011 07:55:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Paralab]]></category>
		<category><![CDATA[Paralel programming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[paralab]]></category>
		<category><![CDATA[paralel]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://resurse-educationale.uv.ro/?p=35</guid>
		<description><![CDATA[1.1. Сортировка данных Общая схема параллельных вычислений при сортировке данных (см. раздел 3 пособия) состоит в разделении исходного упорядочиваемого набора на блоки и их распределения между процессорами, в ходе сортировки блоки пересылаются между процессорами и содержащиеся в них данные сравниваются &#8230; <a href="http://resurse-educationale.uv.ro/?p=35">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<h2><strong>1</strong><strong>.1. </strong><strong>Сортировка данных </strong></h2>
<p>Общая схема параллельных вычислений при сортировке данных (см. раздел 3 пособия) состоит в разделении исходного упорядочиваемого набора на блоки и их распределения между процессорами, в ходе сортировки блоки пересылаются между процессорами и содержащиеся в них данные сравниваются между собой для упорядочения. Результирующий (отсортированный) набор, как правило, также разделен между процессорами; при этом для систематизации такого разделения для процессоров вводится та или иная система последовательной нумерации и обычно требуется, чтобы при завершении сортировки значения, располагаемые на процессорах с меньшими номерами, не превышали значений процессоров с большими номерами.</p>
<p>В системе ПараЛаб в качестве методов упорядочения данных представлены пузырьковая сортировка, сортировка Шелла, быстрая сортировка.</p>
<h3>1.1.1. Алгоритм пузырьковой сортировки</h3>
<p>Напомним кратко общую схему данного метода упорядочения данных [1]. Алгоритм основан на применении базовой операции &#8220;сравнить и переставить&#8221; (compare-exchange), состоящей в сравнении той или иной пары значений из сортируемого набора данных и перестановки этих значений, если их порядок не соответствует условиям сортировки:</p>
<p>// операция &#8220;сравнить и переставить&#8221;</p>
<p>if ( a[i] &gt; a[j] ) {</p>
<p>temp = a[i];</p>
<p>a[i] = a[j];</p>
<p>a[j] = temp;</p>
<p>}</p>
<p>На первой итерации алгоритма осуществляется последовательное сравнение всех соседних элементов; в результате прохода по упорядочиваемому набору данных в последнем (верхнем) элементе оказывается максимальное значение (&#8220;всплывание пузырька&#8221;); далее для продолжения сортировки этот уже упорядоченный элемент не рассматривается и действия алгоритма повторяются:</p>
<p>// пузырьковая сортировка</p>
<p>for ( i=1; i&lt;n; i++ ){</p>
<p>for ( j=0; j&lt;n-i; j++ )</p>
<p>&lt;сравнить и переставить элементы (a[j],a[j+1])&gt;</p>
<p>}</p>
<p>Алгоритм пузырьковой сортировки в прямом виде достаточно сложен для распараллеливания: сравнение пар соседних элементов происходит строго последовательно. Для организации параллельных вычислений обычно используется модификация алгоритма пузырьковой сортировки – метод чет-нечетной перестановки [23]. Суть модификации состоит в том, что в алгоритм сортировки вводятся два разных правила выполнения итераций метода – в зависимости от четности или нечетности номера итерации сортировки для обработки выбираются элементы с четными или нечетными индексами соответственно, сравнение выделяемых значений всегда осуществляется с их правыми соседними элементами, т.е. на всех нечетных итерациях сравниваются пары:</p>
<p>(a<sub>1</sub>, a<sub>2</sub>), (a<sub>3</sub>, a<sub>4</sub>),…, (a<sub>n-1</sub>, a<sub>n</sub>) (при четном n),</p>
<p>на четных итерациях обрабатываются элементы</p>
<p>(a<sub>2</sub>, a<sub>3</sub>), (a<sub>4</sub>, a<sub>5</sub>),…, (a<sub>n-2</sub>, a<sub>n-1</sub>) (при нечетном n).</p>
<p>После n-кратного повторения подобных итераций сортировки исходный набор данных оказывается упорядоченным.</p>
<p>Параллельное обобщение этого алгоритма не вызывает затруднений, так как сравнение элементов в парах происходит независимо и может выполняться одновременно. Сначала рассмотрим схему вычислений, когда на каждый процессор приходится один элемент исходного массива. Предположим, что процессоры соединены  в кольцо и элементы a<sub>i </sub>расположены на процессорах p<sub>i </sub>(i=1, 2,&#8230;, n). Тогда сравнение пары значений a<sub>i</sub> и a<sub>i</sub><sub>+</sub><sub>1 </sub>1≤ i &lt;n, располагаемых на процессорах P<sub>i</sub> и P<sub>i+</sub><sub>1 </sub>соответственно, можно организовать следующим образом:</p>
<p>- выполнить взаимообмен имеющихся на процессорах P<sub>i</sub> и P<sub>i+</sub><sub>1 </sub>значений (с сохранением на этих процессорах исходных элементов);</p>
<p>- сравнить на каждом процессоре P<sub>i</sub> и P<sub>i+</sub><sub>1 </sub>получившиеся одинаковые пары значений ai и a<sub>i+</sub><sub>1</sub>; результаты сравнения используются для разделения данных между процессорами – на одном процессоре (например, Pi) остается меньший элемент, другой процессор (т.е P<sub>i+</sub><sub>1</sub>) запоминает для дальней обработки большее значение пары</p>
<p>a<sub>i</sub> =min(a<sub>i</sub> , a<sub>i+</sub><sub>1 </sub>),    a<sub>i+</sub><sub>1 </sub>=max(a<sub>i</sub> , a<sub>i+</sub><sub>1</sub>).</p>
<p>Рассмотренная параллельная схема может быть надлежащим образом адаптирована и для случая p&lt;n, когда количество процессоров является меньшим числа упорядочиваемых значений. В данной ситуации каждый процессор будет содержать уже не единственное значение, а часть (блок размера n/p) сортируемого набора данных. Эти блоки обычно упорядочиваются в самом начале сортировки на каждом процессоре в отдельности при помощи какого-либо быстрого алгоритма (предварительная стадия параллельной сортировки). Далее, следуя схеме одноэлементного сравнения, взаимодействие пары процессоров P<sub>i</sub> и P<sub>i+1 </sub>для совместного упорядочения содержимого блоков A<sub>i</sub> и A<sub>i+1 </sub>и может быть осуществлено следующим образом:</p>
<p>- выполнить взаимообмен блоков между процессорами P<sub>i</sub> и P<sub>i+1</sub>;</p>
<p>- объединить блоки A<sub>i</sub> и A<sub>i+1 </sub>на каждом процессоре в один отсортированный блок двойного размера (при исходной упорядоченности блоков и процедура их объединения сводится к быстрой операции слияния упорядоченных наборов данных);</p>
<p>- разделить полученный двойной блок на две равные части и оставить одну из этих частей (например, с меньшими значениями данных) на процессоре P<sub>i</sub>, а другую часть (с большими значениями соответственно) – на процессоре P<sub>i+1</sub>.</p>
<p>Следует отметить, что сформированные в результате такой процедуры блоки на процессорах P<sub>i</sub> и P<sub>i+1 </sub> совпадают по размеру с исходными блоками A<sub>i</sub> и A<sub>i+1 </sub>и все значения, расположенные на процессоре P<sub>i</sub>, являются меньшими значений на процессоре P<sub>i+1</sub>.</p>
<p>Рассмотренная процедура обычно именуется в литературе как операция &#8220;сравнить и разделить&#8221; (compare-split). Для пояснения такого параллельного способа сортировки на рис. 1 приведен пример упорядочения данных при n=8, p=4 (т.е. блок значений на каждом процессоре содержит n/p =2 элементов). В первом столбце таблицы приводится номер и тип итерации метода, перечисляются пары процессоров, для которых параллельно выполняется операция &#8220;сравнить и разделить&#8221;; взаимодействующие пары процессоров выделены в таблице двойной рамкой. Для каждого шага сортировки показано состояние упорядочиваемого набора данных до и после выполнения итерации.</p>
<p>Вычислительная трудоемкость алгоритма определяется выражением:</p>
<p>Tp  =6 (n/p)<sup>2</sup> +2n</p>
<p>Первая часть выражения определяет сложность начальной сортировки блоков с использованием алгоритма пузырьковой сортировки. Вторая часть отражает суммарную сложность всех итераций алгоритма чет-нечетной перестановки блоков (для слияния двух упорядоченных блоков размера n/p необходимо 2(n/p) операций).</p>
<p><a rel="attachment wp-att-21" href="http://resurse-educationale.uv.ro/?attachment_id=21">Download Lab_3</a></p>
]]></content:encoded>
			<wfw:commentRss>http://resurse-educationale.uv.ro/?feed=rss2&#038;p=35</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paralab. Постановка вычислительной задачи и выбор параллельного метода решения</title>
		<link>http://resurse-educationale.uv.ro/?p=32</link>
		<comments>http://resurse-educationale.uv.ro/?p=32#comments</comments>
		<pubDate>Mon, 31 Jan 2011 07:37:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Paralab]]></category>
		<category><![CDATA[Paralel programming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[paralab]]></category>
		<category><![CDATA[programare]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://resurse-educationale.uv.ro/?p=32</guid>
		<description><![CDATA[Для параллельного решения тех или иных вычислительных задач процесс вычислений должен быть представлен в виде набора независимых вычислительных процедур, допускающих выполнение на независимых процессорах. Общая схема организации таких вычислений может быть представлена следующим образом: разделение процесса вычислений на части, которые &#8230; <a href="http://resurse-educationale.uv.ro/?p=32">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Для параллельного решения тех или иных вычислительных задач процесс вычислений должен быть представлен в виде набора независимых вычислительных процедур, допускающих выполнение на независимых процессорах.</p>
<p>Общая схема организации таких вычислений может быть представлена следующим образом:</p>
<ul>
<li>разделение процесса вычислений на части, которые могут быть выполнены одновременно;</li>
</ul>
<ul>
<li>распределение вычислений по процессорам;</li>
</ul>
<ul>
<li>обеспечение взаимодействия параллельно выполняемых вычислений.</li>
</ul>
<p>Возможные способы получения методов параллельных вычислений:</p>
<ul>
<li>разработка новых параллельных алгоритмов;</li>
</ul>
<ul>
<li>распараллеливание последовательных алгоритмов.</li>
</ul>
<p>Условия эффективности параллельных алгоритмов:</p>
<ul>
<li>равномерная загрузка процессоров (отсутствие простоев);</li>
</ul>
<ul>
<li>низкая интенсивность взаимодействия процессоров (независимость).</li>
</ul>
<p>В системе ПараЛаб реализованы широко применяемые параллельные алгоритмы для решения ряда сложных вычислительных задач из разных областей научно-технических приложений: алгоритмы сортировки данных, матричного умножения и обработки графов.</p>
<h4>Выбор задачи.</h4>
<p>Для выбора задачи из числа реализованных в системе выберите пункт меню <strong>Задача </strong>и выделите левой клавишей мыши одну из строк: <strong>Сортировка</strong>, <strong>Матричное умножение</strong>, <strong>Обработка графов</strong>. Выбранная задача станет текущей в активном окне.</p>
<p><a rel="attachment wp-att-23" href="http://resurse-educationale.uv.ro/?attachment_id=23">Download Lab_2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://resurse-educationale.uv.ro/?feed=rss2&#038;p=32</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ПАРАЛАБ   ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И ИССЛЕДОВАНИЯ МЕТОДОВ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙПАРАЛАБ   ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И ИССЛЕДОВАНИЯ МЕТОДОВ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ</title>
		<link>http://resurse-educationale.uv.ro/?p=29</link>
		<comments>http://resurse-educationale.uv.ro/?p=29#comments</comments>
		<pubDate>Mon, 31 Jan 2011 07:34:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Paralab]]></category>
		<category><![CDATA[Paralel programming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[paralab]]></category>
		<category><![CDATA[paralel]]></category>
		<category><![CDATA[programare]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://resurse-educationale.uv.ro/?p=29</guid>
		<description><![CDATA[Программная система Параллельная Лаборатория (сокращенное наименование ПараЛаб) обеспечивает возможность проведения вычислительных экспериментов с целью изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Система может быть использована для организации лабораторного практикума по различным учебным курсам в области параллельного программирования, в &#8230; <a href="http://resurse-educationale.uv.ro/?p=29">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Программная система Параллельная Лаборатория (сокращенное наименование ПараЛаб) обеспечивает возможность проведения вычислительных экспериментов с целью изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Система может быть использована для организации лабораторного практикума по различным учебным курсам в области параллельного программирования, в рамках которого обеспечивается возможность</p>
<p>• моделирования многопроцессорных вычислительных систем с различной топологией сети передачи данных;</p>
<p>• получения визуального представления о вычислительных процессах и операциях передачи данных, происходящих при параллельном решении разных вычислительных задач;</p>
<p>• построения оценок эффективности изучаемых методов параллельных вычислений.</p>
<p>Проведение такого практикума может быть организовано на &#8220;обычных&#8221; однопроцессорных компьютерах, работающих под управлением операционных систем MS Windows 2000 или MS Windows XP (режим многозадачной имитации параллельных вычислений). Кроме режима имитации, в системе ПараЛаб обеспечивается удаленный доступ к имеющейся многопроцессорной вычислительной системе для выполнения экспериментов в режиме &#8220;настоящих&#8221; параллельных вычислений для сопоставления результатов имитации и реальных расчетов.</p>
<p>В целом система ПараЛаб представляет собой интегрированную среду для изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Широкий набор имеющихся средств визуализации процесса выполнения эксперимента и анализа полученных результатов позволяет изучить эффективность использования тех или иных алгоритмов на разных вычислительных системах, сделать выводы о масштабируемости алгоритмов и определить возможное ускорение процесса параллельных вычислений.</p>
<p>Реализуемые системой ПараЛаб процессы изучения и исследований ориентированы на активное освоение основных теоретических положений и способствуют формированию у пользователей своих собственных представлений о моделях и методах параллельных вычислений путем наблюдения, сравнения и сопоставления широкого набора различных визуальных графических форм, демонстрируемых в ходе выполнения вычислительного эксперимента.</p>
<p><strong>Возможности системы</strong><strong>. </strong>ПараЛаб &#8211; программный комплекс, который позволяет проводить как реальные параллельные вычисления на многопроцессорной вычислительной системе, так и имитировать такие эксперименты на одном последовательном компьютере с визуализацией процесса решения сложной вычислительной задачи.</p>
<p>При проведении имитационных экспериментов ПараЛаб предоставляет возможность для пользователя:</p>
<p>• определить топологию параллельной вычислительной системы для проведения экспериментов, задать число процессоров в этой топологии, установить производительность процессоров, выбрать характеристики коммуникационной среды и способ коммуникации;</p>
<p>• осуществить постановку вычислительной задачи, для которой в составе системы ПараЛаб имеются реализованные параллельные алгоритмы решения, выполнить задание параметров задачи;</p>
<p>• выбрать параллельный метод для решения выбранной задачи;</p>
<p>• установить параметры визуализации для выбора желаемого темпа демонстрации, способа отображения пересылаемых между процессорами данных, степени детальности визуализации выполняемых параллельных вычислений;</p>
<p>• выполнить эксперимент для параллельного решения выбранной задачи; при этом в системе ПараЛаб может быть сформировано несколько различных заданий для проведения экспериментов с отличающимися типами многопроцессорных систем, задач или методов параллельных вычислений, для которых выполнение эксперимента может происходить одновременно (в режиме разделения времени); одновременное выполнение эксперимента для нескольких заданий позволяет наглядно сравнивать динамику решения задачи различными методами, на разных топологиях, с разными параметрами исходной задачи. При выполнении серии экспериментов, требующих длительных вычислений, в системе имеется возможность их проведения в автоматическом режиме с запоминанием результатов в журнале вычислений [1-3].</p>
<p>Для реальных экспериментов на многопроцессорных вычислительных системах зависимости строятся по набору результатов проведенных вычислительных экспериментов. Любой из проведенных ранее экспериментов может быть восстановлен для повторного проведения. Кроме того, обеспечена возможность ведения журнала экспериментов с записью туда постановки задачи, параметров вычислительной системы и полученных результатов.</p>
<p>Реализованные таким образом процессы изучения и исследований позволят освоить теоретические положения и помогут формированию представлений о методах построения параллельных алгоритмов, ориентированных на решение конкретных прикладных задач.</p>
<p><a rel="attachment wp-att-22" href="http://resurse-educationale.uv.ro/?attachment_id=22">Downlaod Lab_1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://resurse-educationale.uv.ro/?feed=rss2&#038;p=29</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
