<?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>OpenMP.ru &#187; hardware</title>
	<atom:link href="http://openmp.ru/tag/hardware/feed/" rel="self" type="application/rss+xml" />
	<link>http://openmp.ru</link>
	<description>Эффективное программирование</description>
	<lastBuildDate>Wed, 25 May 2011 13:10:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Архитектура современных суперкомпьютеров</title>
		<link>http://openmp.ru/2008/09/12/arxitektura-sovremennyx-superkompyuterov/</link>
		<comments>http://openmp.ru/2008/09/12/arxitektura-sovremennyx-superkompyuterov/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 20:24:07 +0000</pubDate>
		<dc:creator>dmitry</dc:creator>
				<category><![CDATA[Распараллеливание]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[SMP]]></category>

		<guid isPermaLink="false">http://openmp.ru/2008/09/12/arxitektura-sovremennyx-superkompyuterov/</guid>
		<description><![CDATA[Эта обзорная статья, в которой я постараюсь избегать подробностей и ненужных деталей, предназначена она в основном для новичков. Есть два подхода при построении современных суперкомпьютеров &#8211; системы с общей памятью и так называемые кластеры. Каждый подход не исключает другого, у каждого подхода есть свои достоиинства и недостатки. Плюс систем с общей памятью &#8211; универсальность модели [...]]]></description>
			<content:encoded><![CDATA[<p>Эта обзорная статья, в которой я постараюсь избегать подробностей и ненужных деталей, предназначена она в основном для новичков.</p>
<p>Есть два подхода при построении современных суперкомпьютеров &#8211; системы с общей памятью и так называемые кластеры. Каждый подход не исключает другого, у каждого подхода есть свои достоиинства и недостатки. Плюс систем с общей памятью &#8211; универсальность модели параллельного ПО, не требующей какого либо дополнительного кода, или не требующей значительных изменений кода. Плюс кластерных систем &#8211; отказоустойчивость и более лучшая масштабируемость. Системы с общей памятью плохо масштабируются при росте числа вычислительных процессоров, кластеры же масштабируются плохо из-за возрастающей сложности сети при добавлении узлов, но это происходит значительно позднее, когда число процессоров измеряется сотнями и даже тысячами. Рассмотрим подробнее оба этих подхода<br />
<span id="more-10"></span><br />
Система с общей памятью, или многопоцессорная система. Возможны два варианта построения такой системы:</p>
<p>а) Все процессоры имеют равноправный доступ к памяти. Память равноудалена от всех процессоров. Это так называемые SMP (Symmetric Multi-Processing), симметричные процессорные системы.</p>
<p><img src="http://openmp.ru/Images/smp.png" alt="" /><br />
Как видно из иллюстрации все процессоры связаны с общей памяти через FSB (Front Side Bus). Эта же шина и является узким местом такой архитектуры, поскольку ее пропускная способность должна удовлетворять запросы каждого процессора, даже если они поступают одновременно.</p>
<p>б) Каждый процессор имеет свою локальную память и более затратный доступ к памяти других процессоров. Это NUMA системы, или системы с неодинаковым доступом к памяти.<br />
В NUMA cистемах каждый процессор имеет локальную память и при правильной привязке процессов к процессорам всегда используется &#8220;ближняя&#8221; память. Доступ же в дальную память, с соответствующим пенальти происходит только при коммуникации процессов. Если привязки процессов нет, то в результате так называемой &#8220;миграции&#8221;, процесс может быть запущен на другом процессоре и работать со своими данными из дальней памяти.<br />
Общая проблема NUMA систем &#8211; большое количество линков, возрастающее при увеличении числа процессоров. Для двухпроцессорной NUMA cистемы достаточно одного линка между процессорами:</p>
<p><img src="http://openmp.ru/Images/numa_2.png" alt="" /><br />
При добавлении процессоров получается более сложная организация:<br />
<img src="http://openmp.ru/Images/numa_4.png" alt="" /><br />
Можете представить, что будет для системы с восемью процессорами. Это будет похоже на паутину <img src='http://openmp.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  С давних времен сложилось так что Intel продвигает SMP системы на рынке, а AMD &#8211; NUMA. В случае Intel-a связь между процессорами сделана на основе QPI, соответственно для AMD это HyperTransport. Фактически при использовании SMP систем каких-то дополнительных сложностей нет. Все процессоры равны и даже миграция (теряется кэш) не сильно влияет на производительность. В случае NUMA уже порой приходится задумываться о привязке процессов/потоков к определенному процессору (или к любому но намертво).</p>
<p>Следущий шаг усложнения кластеры. Кластер &#8211; это набор узлов, обединенных сетью. Узлы могут быть одинаковые (гомогенные кластеры) или разные (гетерогенные кластеры). Обычно кластер имеет как минимум одну головную ноду (head node) и отдельные узлы для файловой системы. Собственно каждый узел (computation node, нода) внутри может быть небольшой SMP или NUMA системой. В этом нет ничего страшного, практически так стоятся все современные суперкомпьютеры, и есть тенденция к увеличению количества процессоров в одной ноде. Между собой ноды связаны сетью, применяется как Gigabit Ethernet (GigE) или более быстрые сети Infiniband (Mellanox, QLogic), Myrinet или другие пропиетарные интерконнекты и сети. Основные два условия к ПО кластера &#8211; обеспечить общий диск между узлами (shared space) и службу удаленного запуска приложений (это может быть telnet, ssh, rshell и т.п). От размера кластера главным образом зависит то, каким будет топология его сети. Небольшие по размеру кластера могут строиться на одном-двух свичах, а для связывания больших кластеров свичи объединяются в несколько уровней. Например, простой вариант, когда количество узловменьше или равно количеству портов у свича:<br />
<img src="http://openmp.ru/Images/topology_1.png" alt="" /><br />
Так строится одна стойка кластера. На рисунке показана только вычислительная сеть. В случае объединения двух стоек, можно воспользоваться одним из портов свича для создания связи свич-свич.<br />
<img src="http://openmp.ru/Images/topology_2.png" alt="" /><br />
При таком варианте обмен между стойками проходит через одину пару портов, что может приводить к замедлению коммуникаций, особенно коллективных.<br />
Дальнейший рост сложности сети приводит к многоуровневым схемам построения свичей:<br />
<img src="http://openmp.ru/Images/topology_3.png" alt="" /></p>
<p>Обычно для крупных систем хватает два уровня. Свичи делятся на Leaf и Spine. Узлы подключаются только к Leaf. Все Leaf связаны между собой через Spine. Вот пример топологии 256-нодового кластера с Infiniband свичем CISCO:<br />
<img src="http://openmp.ru/Images/topology_4.png" alt="" /></p>
<p>Квадратами обозначаются ноды (по 12 шт в одном квадрате). Эти 12 шт подключены к одному листу (Leaf-у), который в свою очередь соединяется с 12-ю Spine. Такой кластер обеспечивает запуск задачи одновременно на 2048 ядрах или 256 нодах при довольно интенсивном межузловом обмене.</p>
<p>Теперь немного о том, как это выглядит. Типичная конструкция, кластер размещается в трех стойках:<br />
<img src="http://openmp.ru/Images/cluster_1.jpg" alt="" /></p>
<p>Свич установлен в дальней стойке сверху. Сверху вниз стойка заполнена нодами. Внизу каждой стойки установлен источник бесперебойного питания. В центральной части установлена login-node и скорее всего синего цвета ноды файловой системы.<br />
Так выглядит серверная комната в яндексе:<br />
<img src="http://openmp.ru/Images/cluster_2.jpg" alt="" /><br />
Это скорее всего кластер кластеров установленный в одном помещении.</p>
]]></content:encoded>
			<wfw:commentRss>http://openmp.ru/2008/09/12/arxitektura-sovremennyx-superkompyuterov/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

