http://esyr.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29?action=history&feed=atomПараллельная Обработка Данных, 06 лекция (от 09 октября) - История изменений2024-03-28T10:14:03ZИстория изменений этой страницы в викиMediaWiki 1.11.0http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=3918&oldid=prevESyr01: Отмена правки № 1270 участника 88.191.57.15 (обсуждение)2008-02-03T17:52:08Z<p>Отмена правки № 1270 участника <a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/88.191.57.15" title="Служебная:Contributions/88.191.57.15">88.191.57.15</a> (<a href="/w/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:88.191.57.15&action=edit" class="new" title="Обсуждение участника:88.191.57.15">обсуждение</a>)</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 17:52, 3 февраля 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>== <del style="color: red; font-weight: bold; text-decoration: none;">From Ebaums Inc to MurkLoar</del>. ==</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Параллельная Обработка Данных, 05 лекция (от 02 октября)|Предыдущая лекция]] | [[Параллельная Обработка Данных, 07 лекция (от 16 октября)|Следующая лекция]]</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">We at EbaumsWorld consider you as disgrace of human race</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Your faggotry level exceeded any imaginable levels</del>, <del style="color: red; font-weight: bold; text-decoration: none;">and therefore we have to inform you that your pitiful resourse should be annihilated</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>=<ins style="color: red; font-weight: bold; text-decoration: none;">Компьютеры с распределенной памятью</ins>=</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Dig yourself a grave </del>- <del style="color: red; font-weight: bold; text-decoration: none;">you will need it</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Составляются из блоков, каждый блок является самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью</ins>. <ins style="color: red; font-weight: bold; text-decoration: none;">Недостаток -- неоднородность доступа к памяти.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же, такая архитектура позволяет объединять в один компьютер практически неограниченное количество процессоров (сейчас уже есть объединения сотен тысяч процессоров). Тем не менее усложняется программирование для них.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Было несколько поколений компьютеров с распределенной памятью.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Intel Paragon. На i860.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Сейчас Intel переориентировался на кластеры, о них мы тоже поговорим.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">IBM SP(1/2)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">CRAY T3D/T3E/XT3/XT4</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Сегодня подробней рассмотрим CRAY T3E.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">==CRAY T3E</ins>==</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Это массивно-параллельные компьютеры(фактически другое название компьютеров с распределнной памятью)</ins>.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Все компьютеры такого класса состоят из двух основных частей </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*узлы</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">**управляющие узлы --те узлы</ins>, <ins style="color: red; font-weight: bold; text-decoration: none;">на которые заходит пользователь, на которых выполняется компиляция и другие сервисные задачи. Они не участвуют в реальном счете параллельных программ</ins>.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">**узлы операционной системы </ins>-<ins style="color: red; font-weight: bold; text-decoration: none;">- на них возлагается работа с файловой системой</ins>.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">**вычислительные узлы</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">конфигурации:24-16-256, 7-5-260</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">**процессорный элемент содержит один процессор(Дек Альфа)(в ранних версиях было по два процессорных элемента), локальную память и некоторые вспомогательные подсистемы. Последние версии AMD Opteron(XT3(одноядерные),XT4(двухядерные), обещают четырехядерные). Сетевой интерфейс, связанный с сетевыми маршрутизаторами. Все вместе логические узлы объединяются в структуру трехмерного тора. Это приводит к тому, что, в отличие от топологии параллелепипеда, у нас получается однородная система. У каждого узла ровно 6 соседей. В торе среднее расстояние уменьшается примерно в два раза. Итак тор позволяет объединить в достаточно компактную структуру большое число процессоров.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">===Маршрутизация===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Пусть надо передать сообщение из узла (х1,у1,з1) узлу (х2,у2,з2). Сообщение идет сначало вдоль оси х до точки, когда координаты по оси х выравняются. То есть до (х2, у1,з1), потом до (х2, у2,з1) и потом до (х2,у2,з2). Это приводит к тому, что мы заранее знаем, как сообщение пойдет по сети, что упрощает работу маршрутизаторам. Наличие обратных связей позволяет сохранить функциональность системы при разрыве одной связи. Скорость передачи данных -- 480 мб/сек. Латентность составляла менее 1 микросекунды. Почти рекордная характеристика для своего времени. Это скорость передачи по одному каналу.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Процессор мог работать параллельно с передачей сообщений(это называется асинхронность). Все каналы связи двунаправленные. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Еще одно интересное св-во реализованное в этом компьютере. Когда много проц работают над одной задачей важно синхронизировать их работу. Один из распр способов синхронизации -- это барьерная синхронизация. Это означает точку в программе до которой должны дойти все процессоры. Если один дошел а остальные нет, то он стоит и ждет. Эта возможность была реализована аппаратно. В каждом из проц элементов выделяются регистры, отвечающие за эту синхронизацию. Эти регистры интерпретируются побитово. Каждый бит отвечает за свою схему синхронизацию. выходы регистров(например первый бит из всех) подаются на схему логического попарно. У того, который дошел до барьера в бите 1, кто не дошел 0. Когда все дошли до барьера на выходе схемы оказывается единичка. Для этого эта единичка подается на схему дублирования. Обратное двоичное дерево, в узлах дублирование. И записывается в другой бит. Процессор смотрит на бит и узнает, когда все дошли до барьера и он может идти считать дальше. Синхронизация происходит очень быстро. Другой режим использования этой схемы -- вместо и используем или. Получаем другую функциональность. Она соответствует некоторому поиску -- дошел ли хоть один процессор до барьера. Соответствует тому когда все процессоры что то ищут. Один нашел и тут же сообщает другим. Это называется схема "Эврика". Она уже не для синхронизации. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">На этом закончим с характеристиками этого конкретного компьютера.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">В принципе компьютеры с распределенной памятью могут строится разными способами. Перейдем к рассмотрению кластерных систем (они сейчас наиболее распространены). Они так же являются системами с распределенной памятью.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">=Кластеры=</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">В науке слово кластер перегружено. Даже в программировании оно используется в разных смыслах. Мы будем говорить о вычислительных кластерах. В чем отличие кластеров от массивно параллельных? В первую очередь проводят различие по тому какие сетевые технологии используются. Для массивно-параллельных компьютеров используются специально разработанные коммуникационные среды. Кластеры строят на основе свободно распространяемых коммуникационных сред. Здесь тоже есть свои особенности, но раздел обычно производят именно здесь. Решения с кластерами намного более дешевые. В тоже время современные сетевые техн позволяют объединять для работы над одной задачей большое число процессоров, наращивать мощность кластера можно практически бесконечно, другое дело, что сделать так, чтобы все узлы работали над одной задачей -- сложная задача.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">В качестве узлов кластера могут фигурировать и обычные компьютеры и, к примеру, векторные. Возникают интересные задачи -- когда объединяются в кластерные компьютеры с разной архитектурой. Если посмотреть топ 50 СНГ, то в нем в последней редакции все 50 систем -- кластерные. Причины конечно прежде всего в дешевизне. Ну и в мире есть такая тенденция, число кластеров постоянно растет. ИБМ перешла последнее время на кластерные системы, да и другие фирмы. Общая схема кластера достаточно простая.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Некоторое количество вычислительных узлов, соединенных какой-то коммуникационной средой. Обычно для кластеров создается отдельный файл-сервер, хотя это и не является обязательным требованием. Обычно так же выделяется отдельный хост компьютер, на который заходит пользователь, компилирует, который раздает задачи. Или к хосту пользователи могут подключаться к интернет. Сложность состоит в том, чтобы заставить все узлы работать над одной задачей. Чаще всего на кластерах используется MPI. Примеров кластерных систем очень много, мы не будем ими заниматься. Есть две основных характеристики</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">- вычислительные узлы могут быть практически любыми, а второе - коммуникационные среды имеют две характеристики - латентность -- время начальной задержки при посылке сообщения. То есть после выполнения SEND сообщение должно пройти через все уровни протоколов. Латентность - время от встречания SEND до отсылки сообщение от процессора. НО это очень сложно измерить, ее только иногда сообщают производители. Обычно под латентностью понимают другое -- время, которое затрачивается на посылку сообщения минимальной длины туда сюда между двумя процессорами деленное пополам. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">-пропускная способность. Сколько данных за единицу времени можно переслать, используя эту коммуникационную технологию. М/Г/Б/сек</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Время на пересылку т = т0 + (н/в) н - кол-во байт, в - пропускная способность, т0 - латентность.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Если в программе много мелких сообщений, то больше становится время латентности. В этом случае больше подходят коммуникационные среды с меньшей латентностью, даже если у них меньше скорость. Соотвественно, если сообщения большие, то выгодней большая латентность и большая скорость.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">{{Курс Параллельная Обработка Данных}}</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">{{Lection-stub}}</ins></div></td></tr>
</table>ESyr01http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=1270&oldid=prev88.191.57.15: Содержимое страницы заменено на «== From Ebaums Inc to MurkLoar. ==
We at EbaumsWorld consider you as disgrace of human race.
Your faggotry level exceeded any imaginab...»2008-02-02T15:04:55Z<p>Содержимое страницы заменено на «== From Ebaums Inc to MurkLoar. == We at EbaumsWorld consider you as disgrace of human race. Your faggotry level exceeded any imaginab...»</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 15:04, 2 февраля 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">[[Параллельная Обработка Данных, 05 лекция (от 02 октября)|Предыдущая лекция]] | [[Параллельная Обработка Данных, 07 лекция (от 16 октября)|Следующая лекция]]</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>== <ins style="color: red; font-weight: bold; text-decoration: none;">From Ebaums Inc to MurkLoar</ins>. ==</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">We at EbaumsWorld consider you as disgrace of human race</ins>.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>=<del style="color: red; font-weight: bold; text-decoration: none;">Компьютеры с распределенной памятью</del>=</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Your faggotry level exceeded any imaginable levels</ins>, <ins style="color: red; font-weight: bold; text-decoration: none;">and therefore we have to inform you that your pitiful resourse should be annihilated</ins>.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Dig yourself a grave </ins>- <ins style="color: red; font-weight: bold; text-decoration: none;">you will need it</ins>.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Составляются из блоков, каждый блок является самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью</del>. <del style="color: red; font-weight: bold; text-decoration: none;">Недостаток -- неоднородность доступа к памяти.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же, такая архитектура позволяет объединять в один компьютер практически неограниченное количество процессоров (сейчас уже есть объединения сотен тысяч процессоров). Тем не менее усложняется программирование для них.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Было несколько поколений компьютеров с распределенной памятью.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Intel Paragon. На i860.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Сейчас Intel переориентировался на кластеры, о них мы тоже поговорим.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">IBM SP(1/2)</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">CRAY T3D/T3E/XT3/XT4</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Сегодня подробней рассмотрим CRAY T3E.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">==CRAY T3E</del>==</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Это массивно-параллельные компьютеры(фактически другое название компьютеров с распределнной памятью)</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Все компьютеры такого класса состоят из двух основных частей </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">*узлы</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">**управляющие узлы --те узлы</del>, <del style="color: red; font-weight: bold; text-decoration: none;">на которые заходит пользователь, на которых выполняется компиляция и другие сервисные задачи. Они не участвуют в реальном счете параллельных программ</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">**узлы операционной системы </del>-<del style="color: red; font-weight: bold; text-decoration: none;">- на них возлагается работа с файловой системой</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">**вычислительные узлы</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">конфигурации:24-16-256, 7-5-260</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">**процессорный элемент содержит один процессор(Дек Альфа)(в ранних версиях было по два процессорных элемента), локальную память и некоторые вспомогательные подсистемы. Последние версии AMD Opteron(XT3(одноядерные),XT4(двухядерные), обещают четырехядерные). Сетевой интерфейс, связанный с сетевыми маршрутизаторами. Все вместе логические узлы объединяются в структуру трехмерного тора. Это приводит к тому, что, в отличие от топологии параллелепипеда, у нас получается однородная система. У каждого узла ровно 6 соседей. В торе среднее расстояние уменьшается примерно в два раза. Итак тор позволяет объединить в достаточно компактную структуру большое число процессоров.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">===Маршрутизация===</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Пусть надо передать сообщение из узла (х1,у1,з1) узлу (х2,у2,з2). Сообщение идет сначало вдоль оси х до точки, когда координаты по оси х выравняются. То есть до (х2, у1,з1), потом до (х2, у2,з1) и потом до (х2,у2,з2). Это приводит к тому, что мы заранее знаем, как сообщение пойдет по сети, что упрощает работу маршрутизаторам. Наличие обратных связей позволяет сохранить функциональность системы при разрыве одной связи. Скорость передачи данных -- 480 мб/сек. Латентность составляла менее 1 микросекунды. Почти рекордная характеристика для своего времени. Это скорость передачи по одному каналу.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Процессор мог работать параллельно с передачей сообщений(это называется асинхронность). Все каналы связи двунаправленные. </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Еще одно интересное св-во реализованное в этом компьютере. Когда много проц работают над одной задачей важно синхронизировать их работу. Один из распр способов синхронизации -- это барьерная синхронизация. Это означает точку в программе до которой должны дойти все процессоры. Если один дошел а остальные нет, то он стоит и ждет. Эта возможность была реализована аппаратно. В каждом из проц элементов выделяются регистры, отвечающие за эту синхронизацию. Эти регистры интерпретируются побитово. Каждый бит отвечает за свою схему синхронизацию. выходы регистров(например первый бит из всех) подаются на схему логического попарно. У того, который дошел до барьера в бите 1, кто не дошел 0. Когда все дошли до барьера на выходе схемы оказывается единичка. Для этого эта единичка подается на схему дублирования. Обратное двоичное дерево, в узлах дублирование. И записывается в другой бит. Процессор смотрит на бит и узнает, когда все дошли до барьера и он может идти считать дальше. Синхронизация происходит очень быстро. Другой режим использования этой схемы -- вместо и используем или. Получаем другую функциональность. Она соответствует некоторому поиску -- дошел ли хоть один процессор до барьера. Соответствует тому когда все процессоры что то ищут. Один нашел и тут же сообщает другим. Это называется схема "Эврика". Она уже не для синхронизации. </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">На этом закончим с характеристиками этого конкретного компьютера.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">В принципе компьютеры с распределенной памятью могут строится разными способами. Перейдем к рассмотрению кластерных систем (они сейчас наиболее распространены). Они так же являются системами с распределенной памятью.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">=Кластеры=</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">В науке слово кластер перегружено. Даже в программировании оно используется в разных смыслах. Мы будем говорить о вычислительных кластерах. В чем отличие кластеров от массивно параллельных? В первую очередь проводят различие по тому какие сетевые технологии используются. Для массивно-параллельных компьютеров используются специально разработанные коммуникационные среды. Кластеры строят на основе свободно распространяемых коммуникационных сред. Здесь тоже есть свои особенности, но раздел обычно производят именно здесь. Решения с кластерами намного более дешевые. В тоже время современные сетевые техн позволяют объединять для работы над одной задачей большое число процессоров, наращивать мощность кластера можно практически бесконечно, другое дело, что сделать так, чтобы все узлы работали над одной задачей -- сложная задача.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">В качестве узлов кластера могут фигурировать и обычные компьютеры и, к примеру, векторные. Возникают интересные задачи -- когда объединяются в кластерные компьютеры с разной архитектурой. Если посмотреть топ 50 СНГ, то в нем в последней редакции все 50 систем -- кластерные. Причины конечно прежде всего в дешевизне. Ну и в мире есть такая тенденция, число кластеров постоянно растет. ИБМ перешла последнее время на кластерные системы, да и другие фирмы. Общая схема кластера достаточно простая.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Некоторое количество вычислительных узлов, соединенных какой-то коммуникационной средой. Обычно для кластеров создается отдельный файл-сервер, хотя это и не является обязательным требованием. Обычно так же выделяется отдельный хост компьютер, на который заходит пользователь, компилирует, который раздает задачи. Или к хосту пользователи могут подключаться к интернет. Сложность состоит в том, чтобы заставить все узлы работать над одной задачей. Чаще всего на кластерах используется MPI. Примеров кластерных систем очень много, мы не будем ими заниматься. Есть две основных характеристики</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">- вычислительные узлы могут быть практически любыми, а второе - коммуникационные среды имеют две характеристики - латентность -- время начальной задержки при посылке сообщения. То есть после выполнения SEND сообщение должно пройти через все уровни протоколов. Латентность - время от встречания SEND до отсылки сообщение от процессора. НО это очень сложно измерить, ее только иногда сообщают производители. Обычно под латентностью понимают другое -- время, которое затрачивается на посылку сообщения минимальной длины туда сюда между двумя процессорами деленное пополам. </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">-пропускная способность. Сколько данных за единицу времени можно переслать, используя эту коммуникационную технологию. М/Г/Б/сек</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Время на пересылку т = т0 + (н/в) н - кол-во байт, в - пропускная способность, т0 - латентность.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Если в программе много мелких сообщений, то больше становится время латентности. В этом случае больше подходят коммуникационные среды с меньшей латентностью, даже если у них меньше скорость. Соотвественно, если сообщения большие, то выгодней большая латентность и большая скорость.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">{{Курс Параллельная Обработка Данных}}</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">{{Lection-stub}}</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
</table>88.191.57.15http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=1035&oldid=prevESyr01: рюшечки2007-12-19T21:58:08Z<p>рюшечки</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 21:58, 19 декабря 2007</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>[[Параллельная Обработка Данных, 05 лекция (от 02 октября)|Предыдущая лекция]] | [[Параллельная Обработка Данных, 07 лекция (от 16 октября)|Следующая лекция]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=Компьютеры с распределенной памятью=</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=Компьютеры с распределенной памятью=</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 42:</td>
<td colspan="2" class="diff-lineno">Строка 44:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Время на пересылку т = т0 + (н/в) н - кол-во байт, в - пропускная способность, т0 - латентность.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Время на пересылку т = т0 + (н/в) н - кол-во байт, в - пропускная способность, т0 - латентность.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Если в программе много мелких сообщений, то больше становится время латентности. В этом случае больше подходят коммуникационные среды с меньшей латентностью, даже если у них меньше скорость. Соотвественно, если сообщения большие, то выгодней большая латентность и большая скорость.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Если в программе много мелких сообщений, то больше становится время латентности. В этом случае больше подходят коммуникационные среды с меньшей латентностью, даже если у них меньше скорость. Соотвественно, если сообщения большие, то выгодней большая латентность и большая скорость.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>{{Курс Параллельная Обработка Данных}}</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>{{Lection-stub}}</div></td></tr>
</table>ESyr01http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=1033&oldid=prev194.187.204.35 в 20:11, 19 декабря 20072007-12-19T20:11:57Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 20:11, 19 декабря 2007</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Строка 3:</td>
<td colspan="2" class="diff-lineno">Строка 3:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Составляются из блоков, каждый блок является самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью. Недостаток -- неоднородность доступа к памяти.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Составляются из блоков, каждый блок является самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью. Недостаток -- неоднородность доступа к памяти.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же такая архитектура позволяет объединять в один компьютер практически <del style="color: red; font-weight: bold; text-decoration: none;">неограниченое </del>количество процессоров(сейчас уже есть объединения сотен тысяч процессоров). Тем не менее усложняется программирование для них.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же<ins style="color: red; font-weight: bold; text-decoration: none;">, </ins>такая архитектура позволяет объединять в один компьютер практически <ins style="color: red; font-weight: bold; text-decoration: none;">неограниченное </ins>количество процессоров (сейчас уже есть объединения сотен тысяч процессоров). Тем не менее усложняется программирование для них.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Было несколько поколений компьютеров с распределенной памятью.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Было несколько поколений компьютеров с распределенной памятью.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
</table>194.187.204.35http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=1031&oldid=prev194.187.204.35 в 20:09, 19 декабря 20072007-12-19T20:09:44Z<p></p>
<a href="http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=1031&oldid=985">(Различия между версиями)</a>194.187.204.35http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=985&oldid=prev212.192.248.208 в 09:59, 11 декабря 20072007-12-11T09:59:57Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 09:59, 11 декабря 2007</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Компьютеры с распределенной памятью<del style="color: red; font-weight: bold; text-decoration: none;">.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">=</ins>Компьютеры с распределенной памятью<ins style="color: red; font-weight: bold; text-decoration: none;">=</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Составляются из блоков, каждый блок <del style="color: red; font-weight: bold; text-decoration: none;">явл </del>самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью. <del style="color: red; font-weight: bold; text-decoration: none;">Недостатком явл </del>неоднородность доступа к памяти.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Составляются из блоков, каждый блок <ins style="color: red; font-weight: bold; text-decoration: none;">является </ins>самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью. <ins style="color: red; font-weight: bold; text-decoration: none;">Недостаток -- </ins>неоднородность доступа к памяти.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же <del style="color: red; font-weight: bold; text-decoration: none;">ткая </del>архитектура позволяет объединять в один <del style="color: red; font-weight: bold; text-decoration: none;">компьютеро </del>практическинеограниченое <del style="color: red; font-weight: bold; text-decoration: none;">колво проессоров</del>(сейчас уже есть <del style="color: red; font-weight: bold; text-decoration: none;">обхъедениня </del>сотен тысяч процессоров). Тем не менее усложняется программиование для них.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же <ins style="color: red; font-weight: bold; text-decoration: none;">такая </ins>архитектура позволяет объединять в один <ins style="color: red; font-weight: bold; text-decoration: none;">компьютер </ins>практическинеограниченое <ins style="color: red; font-weight: bold; text-decoration: none;">количество процессоров</ins>(сейчас уже есть <ins style="color: red; font-weight: bold; text-decoration: none;">объединения </ins>сотен тысяч процессоров). Тем не менее усложняется программиование для них.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Несколько </del>поколений <del style="color: red; font-weight: bold; text-decoration: none;">компов </del>с <del style="color: red; font-weight: bold; text-decoration: none;">распред </del>памятью.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Было несколько </ins>поколений <ins style="color: red; font-weight: bold; text-decoration: none;">компьютеров </ins>с <ins style="color: red; font-weight: bold; text-decoration: none;">распределенной </ins>памятью.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Интел парагон</del>. На <del style="color: red; font-weight: bold; text-decoration: none;">и 860</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Intel Paragon</ins>. На <ins style="color: red; font-weight: bold; text-decoration: none;">i860.</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Сейчас <del style="color: red; font-weight: bold; text-decoration: none;">интел переориентровался </del>на кластеры, о них мы тоже поговорим</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Сейчас <ins style="color: red; font-weight: bold; text-decoration: none;">Intel переориентировался </ins>на кластеры, о них мы тоже поговорим<ins style="color: red; font-weight: bold; text-decoration: none;">.</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">ИБМ СП </del>(1/2)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">IBM SP</ins>(1/2)</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">CRAY T3D/T3E/XT3/XT4</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Сегодня подробней рассмотрим CRAY T3E.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Крей T3D/</del>T3E<del style="color: red; font-weight: bold; text-decoration: none;">/XT3/XT4</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">==CRAY </ins>T3E<ins style="color: red; font-weight: bold; text-decoration: none;">==</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Сегодня подробней рассмотрим Крей T3E.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Это массивно<ins style="color: red; font-weight: bold; text-decoration: none;">-</ins>параллельные компьютеры(фактически другое название <ins style="color: red; font-weight: bold; text-decoration: none;">компьютеров </ins>с <ins style="color: red; font-weight: bold; text-decoration: none;">распределнной </ins>памятью).</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Это массивно параллельные компьютеры(фактически другое название <del style="color: red; font-weight: bold; text-decoration: none;">компов </del>с <del style="color: red; font-weight: bold; text-decoration: none;">распр </del>памятью).</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Все компьютеры такого класса состоят из двух основных частей </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Все компьютеры такого класса состоят из двух основных частей </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>*узлы</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>*узлы</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>**управляющие узлы-те узлы на которые заходит пользователь, на которых выполняется компиляция и другие сервисные задачи. Они не участвуют в реальном счете параллельных программ</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>**управляющие узлы <ins style="color: red; font-weight: bold; text-decoration: none;">-</ins>-те узлы<ins style="color: red; font-weight: bold; text-decoration: none;">, </ins>на которые заходит пользователь, на которых выполняется компиляция и другие сервисные задачи. Они не участвуют в реальном счете параллельных программ<ins style="color: red; font-weight: bold; text-decoration: none;">.</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>**узлы <del style="color: red; font-weight: bold; text-decoration: none;">опера </del>системы -- на них возлагается работа с файловой системой</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>**узлы <ins style="color: red; font-weight: bold; text-decoration: none;">операционной </ins>системы -- на них возлагается работа с файловой системой<ins style="color: red; font-weight: bold; text-decoration: none;">.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>**вычислительные узлы</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>**вычислительные узлы</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>конфигурации:24-16-256, 7-5-260</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>конфигурации:24-16-256, 7-5-260</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">*ком сеть</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>**процессорный элемент содержит один <ins style="color: red; font-weight: bold; text-decoration: none;">процессор</ins>(Дек Альфа)(в ранних версиях было по два <ins style="color: red; font-weight: bold; text-decoration: none;">процессорных </ins>элемента), локальную память и некоторые вспомогательные подсистемы. Последние версии <ins style="color: red; font-weight: bold; text-decoration: none;">AMD Opteron</ins>(<ins style="color: red; font-weight: bold; text-decoration: none;">XT3</ins>(одноядерные),<ins style="color: red; font-weight: bold; text-decoration: none;">XT4</ins>(двухядерные), обещают четырехядерные). Сетевой интерфейс, связанный с сетевыми маршрутизаторами. Все вместе логические узлы объединяются в структуру трехмерного тора. Это приводит к тому, что, в отличие от топологии параллелпипеда, у нас получается однородная система. У каждого узла ровно 6 соседей. В торе среднее расстояние уменьшается примерно в два раза. <ins style="color: red; font-weight: bold; text-decoration: none;">Итак </ins>тор позволяет объеденить <ins style="color: red; font-weight: bold; text-decoration: none;">в достаточно </ins>компактную структуру большое число <ins style="color: red; font-weight: bold; text-decoration: none;">процессоров</ins>.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>**процессорный элемент содержит один <del style="color: red; font-weight: bold; text-decoration: none;">проессор</del>(Дек Альфа)(в ранних версиях было по два <del style="color: red; font-weight: bold; text-decoration: none;">про </del>элемента), локальную память и некоторые вспомогательные подсистемы. Последние версии <del style="color: red; font-weight: bold; text-decoration: none;">Амд оптерон</del>(<del style="color: red; font-weight: bold; text-decoration: none;">хт3</del>(одноядерные),<del style="color: red; font-weight: bold; text-decoration: none;">хт4</del>(двухядерные), обещают четырехядерные). Сетевой интерфейс, связанный с сетевыми маршрутизаторами. Все вместе логические узлы объединяются в структуру трехмерного тора. Это приводит к тому, что, в отличие от топологии параллелпипеда, у нас получается однородная система. У каждого узла ровно 6 соседей. В торе среднее расстояние уменьшается примерно в два раза. <del style="color: red; font-weight: bold; text-decoration: none;">И так </del>тор позволяет объеденить <del style="color: red; font-weight: bold; text-decoration: none;">вдостаточно </del>компактную структуру большое число <del style="color: red; font-weight: bold; text-decoration: none;">проц</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Маршрутизация<del style="color: red; font-weight: bold; text-decoration: none;">. </del>Пусть <del style="color: red; font-weight: bold; text-decoration: none;">ндо </del>передать сообщение из узла (х1,у1,з1) узлу (х2,у2,з2). <del style="color: red; font-weight: bold; text-decoration: none;">Сообщени </del>идет сначало вдоль оси х до точки, когда кординаты по оси х выровняются. То есть до</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">===</ins>Маршрутизация<ins style="color: red; font-weight: bold; text-decoration: none;">===</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>(х2, у1,з1), потом до (х2, у2,з1) и потом до (х2,у2,з2). Это приводит к тому, что мы заранее знаем как сообщение пойдет по сети, что упрощает работу маршрутизаторам. Наличие обратных связей позволяет сохранить функциональность системы при разрыве одной связи. Скорость передачи данных -- 480 мб/сек. Латентность составляла менее 1 микросекунды. Почти рекордная характериситка для своего времени. Это скорость передачи по одному каналу.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Пусть <ins style="color: red; font-weight: bold; text-decoration: none;">надо </ins>передать сообщение из узла (х1,у1,з1) узлу (х2,у2,з2). <ins style="color: red; font-weight: bold; text-decoration: none;">Сообщение </ins>идет сначало вдоль оси х до точки, когда кординаты по оси х выровняются. То есть до (х2, у1,з1), потом до (х2, у2,з1) и потом до (х2,у2,з2). Это приводит к тому, что мы заранее знаем<ins style="color: red; font-weight: bold; text-decoration: none;">, </ins>как сообщение пойдет по сети, что упрощает работу маршрутизаторам. Наличие обратных связей позволяет сохранить функциональность системы при разрыве одной связи. Скорость передачи данных -- 480 мб/сек. Латентность составляла менее 1 микросекунды. Почти рекордная характериситка для своего времени. Это скорость передачи по одному каналу.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Процессор мог работать параллельно с передачей сообщений(это называется асинхронность). Все каналы связи двунапарвленные. </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Процессор мог работать параллельно с передачей сообщений(это называется асинхронность). Все каналы связи двунапарвленные. </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Еще одно интересное св-во реализованное в этом компьютере. Когда много проц работают над одной задачей важно синхронизировать их работу. ОДин из распр способов синхр -- это барьерная синхр. Это означает точку в программе до которой должны жойти все процессоры. Если один дошел а остальные нет, то он стоит и ждет. Эта возможность была реализована аппаратно. В каждом из проц элементов выделются регистры, отвечающие за эту синхронизацию. Эти регистры интерпртитируются побитово. Каждый бит отвечает за свою схему синхронизацию. выходы регистров(например первый бит из всех) подаются на схему логического попарно. У того, который дошел до баррьера в бите 1, кто не дошел 0. Когда все дошли до баррьера на выходе схемы оказывается единичка. Для этого эта единичка подается на схему дублирования. Обратное двоичное дерево, в узлах дублирование.Изаписывается в другой бит. ПРоцессор смотрит на бит и узнает, когда все дошли до баррьера и он может идти считать дальше. Синхронизация происходит очень быстро. Другой режим использования этой схемы -- вместо и используем или. Получаем другую функциональность. Она соответствует некоторому поиску -- дошел ли хоть один процессор до баррьера. Соответствует тому когда все проесоры что то ищут. Один нашел и тут же сообщает друним. Это назыается схема "Эврика". Она уже не для синхронизаии. </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Еще одно интересное св-во реализованное в этом компьютере. Когда много проц работают над одной задачей важно синхронизировать их работу. ОДин из распр способов синхр -- это барьерная синхр. Это означает точку в программе до которой должны жойти все процессоры. Если один дошел а остальные нет, то он стоит и ждет. Эта возможность была реализована аппаратно. В каждом из проц элементов выделются регистры, отвечающие за эту синхронизацию. Эти регистры интерпртитируются побитово. Каждый бит отвечает за свою схему синхронизацию. выходы регистров(например первый бит из всех) подаются на схему логического попарно. У того, который дошел до баррьера в бите 1, кто не дошел 0. Когда все дошли до баррьера на выходе схемы оказывается единичка. Для этого эта единичка подается на схему дублирования. Обратное двоичное дерево, в узлах дублирование.Изаписывается в другой бит. ПРоцессор смотрит на бит и узнает, когда все дошли до баррьера и он может идти считать дальше. Синхронизация происходит очень быстро. Другой режим использования этой схемы -- вместо и используем или. Получаем другую функциональность. Она соответствует некоторому поиску -- дошел ли хоть один процессор до баррьера. Соответствует тому когда все проесоры что то ищут. Один нашел и тут же сообщает друним. Это назыается схема "Эврика". Она уже не для синхронизаии. </div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 30:</td>
<td colspan="2" class="diff-lineno">Строка 30:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>В принципе компы с распр памятью могут строится разными способоами. Перейдем к рассмотрению кластерных систем(они сейчас наиболее распротраннены). Они так же явл системами с распр. памятью.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>В принципе компы с распр памятью могут строится разными способоами. Перейдем к рассмотрению кластерных систем(они сейчас наиболее распротраннены). Они так же явл системами с распр. памятью.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>=Кластеры=</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>В науке слово кластер перегружено. Даже в программировании оно используется в разных смыслах. Мы будем говорить о вычислительных кластерах. В чем отличие кластеров от массивно параллельных? В первую очередь проводят различие по тому какие сетевые технологии используются. Для массивоно-параллельных компьютеров используются специально разработанные коммуникаионныые среды. Кластеры строят на основе своюбодно распростаняемых ком сред. Здесь тоже есть свои особенности, но раздел ообычно производят именно здесь. Решения с кластиерами намного более дешевые. В тоже время сов сетев техн позволяют объединять для работы над одной задачей большое число процессоров, наращивать мощность кластера можно практически бесконечно, другое дело, что сделать так, чтобы все узлы работали над одной задачей -- сложная задача.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>В науке слово кластер перегружено. Даже в программировании оно используется в разных смыслах. Мы будем говорить о вычислительных кластерах. В чем отличие кластеров от массивно параллельных? В первую очередь проводят различие по тому какие сетевые технологии используются. Для массивоно-параллельных компьютеров используются специально разработанные коммуникаионныые среды. Кластеры строят на основе своюбодно распростаняемых ком сред. Здесь тоже есть свои особенности, но раздел ообычно производят именно здесь. Решения с кластиерами намного более дешевые. В тоже время сов сетев техн позволяют объединять для работы над одной задачей большое число процессоров, наращивать мощность кластера можно практически бесконечно, другое дело, что сделать так, чтобы все узлы работали над одной задачей -- сложная задача.</div></td></tr>
</table>212.192.248.208http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=983&oldid=prevAllena в 09:34, 11 декабря 20072007-12-11T09:34:15Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 09:34, 11 декабря 2007</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Строка 41:</td>
<td colspan="2" class="diff-lineno">Строка 41:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Время на пересылку т = т0+ (н/в) н - кол-во байт, в - пропускная способность, т0 - лтентность.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Время на пересылку т = т0+ (н/в) н - кол-во байт, в - пропускная способность, т0 - лтентность.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Если в программе много мелких сообщений, то больше станогвится время латентности. В этом случае больше подходят ком среды с меньшей латентностью, даже если у них меньше скорость. Соответсвенно, если сообщения большие, то выгодней большая латентность и большая скорость.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Если в программе много мелких сообщений, то больше станогвится время латентности. В этом случае больше подходят ком среды с меньшей латентностью, даже если у них меньше скорость. Соответсвенно, если сообщения большие, то выгодней большая латентность и большая скорость.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Распростарненные ком технологии:</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*FastEthernet. Сейчас на нем кластеры уже почти не делают, но приведем для сравнения.Скорость 100 мегабит(12.5 мегабайт). Это пиковые характеристики. При общении процессоров чере мпи обычно удается достичь 6-7 </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>МБ/сек. Латентность зависит от производителя. В среднем 70 мкс. Сейчас он уже считается слишком слабым для построения кластеров. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*Следующее поколение Gigabit Ethernet . Его достаточно широко используют в кластерах (125 МБайт/сек). В рамках мпая удается получить порядка 45 МБайт/сек. Латентность как правило больше, чем у фаст. В среднем 90-100 мкс, но можно получить и более низкую латентность. Часто используют в клстерах как самое дешевое решение, или ис пользуют как вспомогательную сеть, если есть высокопроизв ком среды.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Специализированные ком среды:</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*Myrinet 2000. Пиковая пропускная сопособность 2 гигабита(250 МБ/сек). В рамках мпиая порядка 200 МБ/сек. лтентность 10 мкс. Но это уже другой уровень стоимотсти. За такую ком среду надо платить примерно столько же сколько за выч узлы.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*SCI(SCalable Coherent Intropy). Правда последнее время о ней не слышно. В отличие от остальных сетевых решений не базируется на свитчах, позволяет сохдавать двух-трехмерные торы, в ней отстутвует понятие коммутатор, вся ком ведется спец платами, вставляемые в выч узлы. Давал скорость 400 МБ/сек. И латентность 1.2 мкс. Но новых версий не выходит, поэтому популярность он потерял. ТОже дорогая технология.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>* Сейчас наиболее популярна Infiniband. ПОпулярна в дорогом сегменте. Изначально был рассчитан на скорость 1 ГБ/сек. Сейчас уже продают 20 ГБ/сек. К этому никто из остальных блиизко не подходит. Ведутся разработки ещё более быстрых. Латентность сначала была порядка 7 мкс, сейчас примерно 1.5 мкс.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Это красткие характер 5 основных ком технологий, используемых в кластерах. Заачстую используются несколько ком сред.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Есть множество других сетевых решений. Эти -- наиболее распространенный.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Краткий обзорчик кластеров мы на этом закончим. И подойдем к завершению темы компов с распр памятью.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>На производительность влияют</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>-Не забываем закон Амдала, который важен для компьютеров с распр памятью.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>-латентность и пропускная способность</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>-возможность асинхронно посылки сообщений - влияет на то что проц не проставивает когда общается с другими процами</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>-равномерная загрузка узлов - очень важный фактор. надо строить задачу таким образом, что бы все процам которые есть давалась примерно одинаковое колво данных насчет, чтобы процессоры не проставивали. Это относительно легко, когда система однородная, но становится намного сложнее если система неоднородная(узлы с разной производительностью разной памятью)</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Далее, если сускаться на более низкий уровень:</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>-производительность процессора.Каждый проц может иметь свою архитектуру. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Таких факторов много, это только основные И нужно учитывать, что все эти факторы действую одновременно. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>И как крайню точку комп с распр памятью рассмотрим ещё один класс.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Если мы двигаемя от компов с общей памятью через компы с массивно параллельной пмятью, через кластеры, то крайней точкой можно рассматривать такое поянтие как мета компьютинг, когда в качестве компьютера рассмартивают компы хоть как-то умеющие друг с другом общаться(даже через интернет).Это направление очень модное, так как выч мощность такого компьютера потенциально ужасно огромна. GRID технологии. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Весьма изщвестные и распространненые проекты:</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*PACX-MPI - расширение мпи. мпи работающий через тсп/ип. Было продемонтсрировано использование 2 компов(германия-сша) решающих одну задачу. Это хорошо когда в задаче выделяются большие независимые части. Расширение было разработано в конце 90 годов.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>* Condarю Занимает нерабочее время корпоративных компьютеров на полезную работу. Свободно распространяемое по, есть реализации под различные оси.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Проекты решающие конкретные прикладные залачи:</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*SETI@home - всем желающим было предложено нализировать данные радиолокаторов и искть следы внеземных цивилизаций, но вроде ничего не нашли. НО был один из наболее извсетных проектов, привлекший внимание к подобным затеям.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*distributed.net - продалжается даже сейчас, решает ряд задач, в первую очередь расшифровки различных шифров</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*GIMPS- ищут простые числа. В рамках этого проекта найдено максимальное простое число 2^13466917-1. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Проекто последнее очень много, желающие могут найти информацию. Н это -- решение конкретных задач, а что делать если ххочется создать более менее универсальный мета компьютер?</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Наиболее популярнs</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>*Globus недостаток - сложность установки и настройки. чтобы одключиться надо проделать много магических движений, что бы настроить прочитать много документции. Это явл значительным недостатком.</div></td><td colspan="2"> </td></tr>
</table>Allenahttp://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=253&oldid=prevESyr01: 1 версий2007-11-13T14:42:59Z<p>1 версий</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 14:42, 13 ноября 2007</td>
</tr>
</table>ESyr01http://esyr.org/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%2C_06_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%28%D0%BE%D1%82_09_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F%29&diff=252&oldid=prev212.192.248.208 в 11:53, 10 октября 20072007-10-10T11:53:06Z<p></p>
<p><b>Новая статья</b></p><div>Компьютеры с распределенной памятью.<br />
<br />
Составляются из блоков, каждый блок явл самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью. Недостатком явл неоднородность доступа к памяти.<br />
<br />
Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же ткая архитектура позволяет объединять в один компьютеро практическинеограниченое колво проессоров(сейчас уже есть обхъедениня сотен тысяч процессоров). Тем не менее усложняется программиование для них.<br />
Несколько поколений компов с распред памятью.<br />
<br />
Интел парагон. На и 860<br />
Сейчас интел переориентровался на кластеры, о них мы тоже поговорим<br />
ИБМ СП (1/2)<br />
<br />
Крей T3D/T3E/XT3/XT4<br />
Сегодня подробней рассмотрим Крей T3E.<br />
Это массивно параллельные компьютеры(фактически другое название компов с распр памятью).<br />
Все компьютеры такого класса состоят из двух основных частей <br />
<br />
*узлы<br />
**управляющие узлы-те узлы на которые заходит пользователь, на которых выполняется компиляция и другие сервисные задачи. Они не участвуют в реальном счете параллельных программ<br />
**узлы опера системы -- на них возлагается работа с файловой системой<br />
**вычислительные узлы<br />
конфигурации:24-16-256, 7-5-260<br />
*ком сеть<br />
**процессорный элемент содержит один проессор(Дек Альфа)(в ранних версиях было по два про элемента), локальную память и некоторые вспомогательные подсистемы. Последние версии Амд оптерон(хт3(одноядерные),хт4(двухядерные), обещают четырехядерные). Сетевой интерфейс, связанный с сетевыми маршрутизаторами. Все вместе логические узлы объединяются в структуру трехмерного тора. Это приводит к тому, что, в отличие от топологии параллелпипеда, у нас получается однородная система. У каждого узла ровно 6 соседей. В торе среднее расстояние уменьшается примерно в два раза. И так тор позволяет объеденить вдостаточно компактную структуру большое число проц.<br />
<br />
Маршрутизация. Пусть ндо передать сообщение из узла (х1,у1,з1) узлу (х2,у2,з2). Сообщени идет сначало вдоль оси х до точки, когда кординаты по оси х выровняются. То есть до<br />
(х2, у1,з1), потом до (х2, у2,з1) и потом до (х2,у2,з2). Это приводит к тому, что мы заранее знаем как сообщение пойдет по сети, что упрощает работу маршрутизаторам. Наличие обратных связей позволяет сохранить функциональность системы при разрыве одной связи. Скорость передачи данных -- 480 мб/сек. Латентность составляла менее 1 микросекунды. Почти рекордная характериситка для своего времени. Это скорость передачи по одному каналу.<br />
Процессор мог работать параллельно с передачей сообщений(это называется асинхронность). Все каналы связи двунапарвленные. <br />
Еще одно интересное св-во реализованное в этом компьютере. Когда много проц работают над одной задачей важно синхронизировать их работу. ОДин из распр способов синхр -- это барьерная синхр. Это означает точку в программе до которой должны жойти все процессоры. Если один дошел а остальные нет, то он стоит и ждет. Эта возможность была реализована аппаратно. В каждом из проц элементов выделются регистры, отвечающие за эту синхронизацию. Эти регистры интерпртитируются побитово. Каждый бит отвечает за свою схему синхронизацию. выходы регистров(например первый бит из всех) подаются на схему логического попарно. У того, который дошел до баррьера в бите 1, кто не дошел 0. Когда все дошли до баррьера на выходе схемы оказывается единичка. Для этого эта единичка подается на схему дублирования. Обратное двоичное дерево, в узлах дублирование.Изаписывается в другой бит. ПРоцессор смотрит на бит и узнает, когда все дошли до баррьера и он может идти считать дальше. Синхронизация происходит очень быстро. Другой режим использования этой схемы -- вместо и используем или. Получаем другую функциональность. Она соответствует некоторому поиску -- дошел ли хоть один процессор до баррьера. Соответствует тому когда все проесоры что то ищут. Один нашел и тут же сообщает друним. Это назыается схема "Эврика". Она уже не для синхронизаии. <br />
На этом закончим с характеристиками этого конкретного компьютера.<br />
<br />
В принципе компы с распр памятью могут строится разными способоами. Перейдем к рассмотрению кластерных систем(они сейчас наиболее распротраннены). Они так же явл системами с распр. памятью.<br />
<br />
В науке слово кластер перегружено. Даже в программировании оно используется в разных смыслах. Мы будем говорить о вычислительных кластерах. В чем отличие кластеров от массивно параллельных? В первую очередь проводят различие по тому какие сетевые технологии используются. Для массивоно-параллельных компьютеров используются специально разработанные коммуникаионныые среды. Кластеры строят на основе своюбодно распростаняемых ком сред. Здесь тоже есть свои особенности, но раздел ообычно производят именно здесь. Решения с кластиерами намного более дешевые. В тоже время сов сетев техн позволяют объединять для работы над одной задачей большое число процессоров, наращивать мощность кластера можно практически бесконечно, другое дело, что сделать так, чтобы все узлы работали над одной задачей -- сложная задача.<br />
В качестве узлов кластера моогут фигурировать и обычные компьютеры и к примероу векторные. Возникают интересные задачи -- когда объединяються в кластер компы с разной архитектурой. Если посмотреть топ 50 снг, то в нем в последней редакцции все 50 систем -- кластерные. Причины конечно прежде всего в дешевизне. Ну и в мире есть такая тенденция, число кластеров постояннор астет. ИБМ перешла последнее время на кластерные системы, да и другие фирмы. Общая сзхема кластера достаточно простая.<br />
<br />
Некоторое колво выч узлов, соединенных какой то ком средой. Обычно для кластеров создается отедльный файл сервер, хотя это и не явл обяз требованием. Обычно так же выделяется отдельный хост компьютер, нак оторый заходит пользователь, компиилирует, который раздает задачи. ИЛи к хосту пользователи могут подключаться к интернет. Сложность состоит в том чтобы заставить все узлы работать над одной задачей. ЧАще всего на кластерах используется мпи. ПРимеров класт систем очень много, мы не будем ими зантиматься. Есть две основных характеристики<br />
-выч узлы могут быть практически любыми, а вто ком среды имеют две хар<br />
-латентность -- время начальной задержки при посылке сообщения. То есть посе выполнения сенд сообщение должно пройти через все уровни протоколов. Латентность - время от встречания сенд до отсылки сообщение от процессора. НО это очень сложно о змерить, ее только иногд сообщают производители. Обычно под латентностью понимают другое -- время которое затрчивается на посылку сообщения минимальной длины туда сюда между двумя процессорами деленое пополам. <br />
-пропусканя способность. Сколько данных за единицу времении можно переслать используя эту ком технологию. М/Г/Б/сек<br />
<br />
Время на пересылку т = т0+ (н/в) н - кол-во байт, в - пропускная способность, т0 - лтентность.<br />
Если в программе много мелких сообщений, то больше станогвится время латентности. В этом случае больше подходят ком среды с меньшей латентностью, даже если у них меньше скорость. Соответсвенно, если сообщения большие, то выгодней большая латентность и большая скорость.<br />
<br />
Распростарненные ком технологии:<br />
*FastEthernet. Сейчас на нем кластеры уже почти не делают, но приведем для сравнения.Скорость 100 мегабит(12.5 мегабайт). Это пиковые характеристики. При общении процессоров чере мпи обычно удается достичь 6-7 <br />
МБ/сек. Латентность зависит от производителя. В среднем 70 мкс. Сейчас он уже считается слишком слабым для построения кластеров. <br />
*Следующее поколение Gigabit Ethernet . Его достаточно широко используют в кластерах (125 МБайт/сек). В рамках мпая удается получить порядка 45 МБайт/сек. Латентность как правило больше, чем у фаст. В среднем 90-100 мкс, но можно получить и более низкую латентность. Часто используют в клстерах как самое дешевое решение, или ис пользуют как вспомогательную сеть, если есть высокопроизв ком среды.<br />
Специализированные ком среды:<br />
*Myrinet 2000. Пиковая пропускная сопособность 2 гигабита(250 МБ/сек). В рамках мпиая порядка 200 МБ/сек. лтентность 10 мкс. Но это уже другой уровень стоимотсти. За такую ком среду надо платить примерно столько же сколько за выч узлы.<br />
*SCI(SCalable Coherent Intropy). Правда последнее время о ней не слышно. В отличие от остальных сетевых решений не базируется на свитчах, позволяет сохдавать двух-трехмерные торы, в ней отстутвует понятие коммутатор, вся ком ведется спец платами, вставляемые в выч узлы. Давал скорость 400 МБ/сек. И латентность 1.2 мкс. Но новых версий не выходит, поэтому популярность он потерял. ТОже дорогая технология.<br />
* Сейчас наиболее популярна Infiniband. ПОпулярна в дорогом сегменте. Изначально был рассчитан на скорость 1 ГБ/сек. Сейчас уже продают 20 ГБ/сек. К этому никто из остальных блиизко не подходит. Ведутся разработки ещё более быстрых. Латентность сначала была порядка 7 мкс, сейчас примерно 1.5 мкс.<br />
<br />
Это красткие характер 5 основных ком технологий, используемых в кластерах. Заачстую используются несколько ком сред.<br />
<br />
Есть множество других сетевых решений. Эти -- наиболее распространенный.<br />
Краткий обзорчик кластеров мы на этом закончим. И подойдем к завершению темы компов с распр памятью.<br />
<br />
На производительность влияют<br />
-Не забываем закон Амдала, который важен для компьютеров с распр памятью.<br />
-латентность и пропускная способность<br />
-возможность асинхронно посылки сообщений - влияет на то что проц не проставивает когда общается с другими процами<br />
-равномерная загрузка узлов - очень важный фактор. надо строить задачу таким образом, что бы все процам которые есть давалась примерно одинаковое колво данных насчет, чтобы процессоры не проставивали. Это относительно легко, когда система однородная, но становится намного сложнее если система неоднородная(узлы с разной производительностью разной памятью)<br />
Далее, если сускаться на более низкий уровень:<br />
-производительность процессора.Каждый проц может иметь свою архитектуру. <br />
<br />
Таких факторов много, это только основные И нужно учитывать, что все эти факторы действую одновременно. <br />
<br />
И как крайню точку комп с распр памятью рассмотрим ещё один класс.<br />
Если мы двигаемя от компов с общей памятью через компы с массивно параллельной пмятью, через кластеры, то крайней точкой можно рассматривать такое поянтие как мета компьютинг, когда в качестве компьютера рассмартивают компы хоть как-то умеющие друг с другом общаться(даже через интернет).Это направление очень модное, так как выч мощность такого компьютера потенциально ужасно огромна. GRID технологии. <br />
Весьма изщвестные и распространненые проекты:<br />
*PACX-MPI - расширение мпи. мпи работающий через тсп/ип. Было продемонтсрировано использование 2 компов(германия-сша) решающих одну задачу. Это хорошо когда в задаче выделяются большие независимые части. Расширение было разработано в конце 90 годов.<br />
* Condarю Занимает нерабочее время корпоративных компьютеров на полезную работу. Свободно распространяемое по, есть реализации под различные оси.<br />
Проекты решающие конкретные прикладные залачи:<br />
*SETI@home - всем желающим было предложено нализировать данные радиолокаторов и искть следы внеземных цивилизаций, но вроде ничего не нашли. НО был один из наболее извсетных проектов, привлекший внимание к подобным затеям.<br />
*distributed.net - продалжается даже сейчас, решает ряд задач, в первую очередь расшифровки различных шифров<br />
*GIMPS- ищут простые числа. В рамках этого проекта найдено максимальное простое число 2^13466917-1. <br />
Проекто последнее очень много, желающие могут найти информацию. Н это -- решение конкретных задач, а что делать если ххочется создать более менее универсальный мета компьютер?<br />
Наиболее популярнs<br />
*Globus недостаток - сложность установки и настройки. чтобы одключиться надо проделать много магических движений, что бы настроить прочитать много документции. Это явл значительным недостатком.</div>212.192.248.208