Параллельные вычисления

Автор работы: Пользователь скрыл имя, 04 Октября 2012 в 14:53, курсовая работа

Описание работы

В рамках данной работы будут рассмотрены аппаратные реализации параллельных вычислений:
многопроцессорные системы;
кластерные системы;
облачные вычисления;
векторные процессоры;
параллельные вычисления с использованием графических процессоров (CUDA).

Содержание работы

Введение…………………………………………………………………………. ..3стр.
1 Общие сведения о параллельных вычислениях………………………………4 стр.
2 Многопроцессорные системы …………………………………………………5 стр.
2.1 Общие требования, предъявляемые к многопроцессорным системам 5стр.
2.2 Многопроцессорные системы с общей памятью ……………………...9 стр.
2.3 Многопроцессорные системы с локальной памятью ………………..19 стр.
2.4 Области применения многопроцессорных систем …………………..21стр.
3 Кластерные системы …………………………………………………………..22 стр.
3.1 Отказоустойчивые кластеры …………………………………………..25 стр. 3.2 Высокопроизводительные кластеры ……………………………………..27 стр.
4 Облачные вычисления ………………………………………………………...29 стр.
4.1 "Облачные" вычисления - достоинства и недостатки ………………31 стр.
5 Векторные процессоры ……………………………………………………….35 стр.
5.1 Структуры типа “память-память” и “регистр-регистр”…………… 42стр.
5.2 Обработка длинных векторов и матриц …………………………….43 стр.
6 Параллельные вычисления с использованием графических процессоров (CUDA) …………………………………………………………………………...44 стр.
Заключение ………………………………………………………………………51 стр.

Файлы: 1 файл

говорков.docx

— 149.86 Кб (Скачать файл)

      Меньше проблем с обслуживанием. Так как физических серверов с внедрением Cloud Computing становится меньше, их становится легче и быстрее обслуживать. Что касается программного обеспечения, то последнее установлено, настроено и обновляется в "облаке".

      Меньше затрат на приобретаемое программное обеспечение. Вместо приобретения пакетов программ для каждого локального пользователя, компании покупают нужные программы в "облаке". Данные программы будут использоваться только теми пользователями, которым эти программы необходимы в работе. Более того, стоимость программ, ориентированных на доступ через Интернет, значительно ниже, чем их аналогов для персональных компьютеров. Если программы используются не часто, то их можно просто арендовать с почасовой оплатой. Затраты на обновление программ и поддержку в работоспособном состоянии на всех рабочих мечтах вовсе сведены к нулю.

      Постоянное обновление программ. В любое время, когда пользователь запускает удаленную программу, он может быть уверен, что эта программа имеет последнюю версию - без необходимости что-то переустанавливать или платить за обновления.

       Увеличение доступных вычислительных мощностей. По сравнению с персональным компьютером вычислительная мощь, доступная пользователю "облачных" компьютеров, практически ограничена лишь размером "облака", то есть общим количеством удаленных серверов. Пользователи могут запускать более сложные задачи, с большим количеством необходимой памяти, места для хранения данных, тогда, когда это необходимо. Иными словами, пользователи могут при желании легко и дешево поработать с суперкомпьютером без каких-либо фактических приобретений.

       Неограниченный объем хранимых данных. По сравнению с доступным местом для хранения информации на персональныхкомпьютерах объем хранилища в "облаке" может гибко и автоматически подстраиваться под нужды пользователя. При хранении информации в "облаке" пользователи могут забыть об ограничениях, накладываемых обычными дисками, - "облачные" размеры исчисляются миллиардами гигабайт доступного места.

      Совместимость с большинством операционных систем. В Cloud Computing операционные системы не играют никакой роли. Пользователи Unix могут обмениваться документами с пользователями Microsoft Windows и наоборот без каких либо-проблем. Доступ к программам и виртуальным компьютерам происходит при помощи веб-браузера или другими средствами доступа, устанавливаемые на любой персональный компьютер с любой операционной системой.

       Улучшенная совместимость форматов документов. Если пользователи пользуются одной "облачной" программой для создания и редактирования документов, у них просто нет несовместимости версий и форматов, в отличие от тех, кто, например, получит документ Word 2007 и не сможет прочитать его на локальном компьютере с Word 2003 или OpenOffice. Хорошим примером совместимости является офисный пакет Google Docs, позволяющий совместную работу над документами, презентациями и таблицами имея под рукой любой компьютер с веб-браузером.

      Простота совместной работы группы пользователей. При работе с документами в "облаке" нет необходимости пересылать друг другу их версии или последовательно редактировать их. Теперь пользователи могут быть увереными, что перед ними последняя версия документа и любое изменение, внесенное одним пользователем, мгновенно отражается у другого.

Повсеместный доступ к  документам. Если документы хранятся в "облаке", они могут быть доступны пользователям в любое время  и в любом месте. Больше нет  такого понятия как забытые файлы: если есть Интернет - они всегда рядом.

 Всегда самая последняя  и свежая версия. В "облаке" всегда находится самая последняя  и самая свежая версия программы  или документа.

 Доступность с различных  устройств. Пользователи Cloud Computing имеют  гораздо более широкий выбор  устройств доступа к документам  и программам. Теперь можно выбирать  между обычным персональным компьютером,  ноутбуком, Интернет-планшетом, наладонником, смартфоном или нетбуком.

 Дружелюбие к природе,  экономное расходование ее ресурсов. Cloud Computing позволяет не только  экономить на электричестве, вычислительных  ресурсах, физическом пространстве, занимаемом серверами, но и  разумно подходить к расходованию  природных ресурсов. Центры обработки  информации, те самые "облака", можно расположить в более  прохладном климате, пользователи  могут заменить тяжелые, ресурсоемкие  компьютеры и ноутбуки на легкие  и экономичные нетбуки. При  этом экономится не только  электроэнергия и место, но  и материалы, из которых все  это изготавливается.

          Устойчивость данных к потере или краже оборудования. Если данные хранятся в "облаке", их копии автоматически распределяются по нескольким серверам, возможно находящимся на разных континентах. При краже или поломке персональных компьютеров пользователь не теряет ценную информацию, которую он к тому же может получить с любого другого компьютера.

            Недостатки

        Постоянное соединение с сетью Интернет. Cloud Computing всегда требует соединения с сетью Интернет. Или почти всегда. Некоторые "облачные" программы загружаются на локальный компьютер и используются в то время, когда Интернет недоступен. В остальных случаях, если нет доступа в Интернет - нет работы, программ, документов.

       Плохо работает с медленным Интернет-доступом. Многие "облачные" программы требуют хорошего Интернет-соединения с большой пропускной способностью.

        Программы могут работать медленнее чем на локальном компьютере. Некоторые программы, в которых требуется передача значительного количества информации, будут работать на локальном компьютере быстрее не только из-за ограничений скорости доступа в Интернет, но и из-за загруженности удаленных серверов и проблем на пути между пользователем и "облаком".

        Не все программы или их свойства доступны удаленно. Если сравнивать программы для локального использования и их "облачные" аналоги, последние пока проигрывают в функциональности.

        Безопасность данных может быть под угрозой. Здесь ключевым является слово "может". Все зависит от того, кто предоставляет "облачные" услуги. Если этот кто-то надежно шифрует Ваши данные, постоянно делает их резервные копии, уже не один год работает на рынке подобных услуг и имеет хорошую репутацию, то угрозы безопасности данных может никогда не случиться.

 

          5 Векторные процессоры

         Векторный процессор – это процессор, в котором операндами некоторых команд могут выступать упорядоченные массивы данных – векторы. Векторный процессор может быть реализован в двух вариантах. В первом он представляет собой дополнительный блок к универсальной вычислительной машине или системе.  Во  втором  векторный  процессор  является  основой  самостоятельной  ВС.

Рассмотрим возможные  подходы к архитектуре средств векторной обработки.  Наиболее  распространенные  из  них  сводятся  к  трем  группам:

  • конвейерное  АЛУ;
  • массив  АЛУ;
  • массив  процессорных  элементов.

        Последний вариант представляет собой многопроцессорную систему, известную как матричная ВС. Понятие векторного процессора имеет отношение     к  двум  первым  группам. 

        В варианте с конвейерным АЛУ (рис.1а) обработка элементов векторов производится конвейерным АЛУ для чисел с плавающей запятой (ПЗ). Операции с числами в форме с ПЗ достаточно сложны, но поддаются разбиению на отдельные шаги. Например, сложение двух чисел сводится к четырем этапам: сравнению порядков, сдвигу мантиссы меньшего из чисел, сложению мантисс и нормализации результата. Каждый этап может быть реализован с помощью отдельной ступени конвейерного АЛУ (рис.1б). Очередной элемент вектора подается на вход конвейера, как только освобождается первая ступень.

      Одновременные операции над элементами векторов можно проводить и       с  помощью  нескольких  параллельно  используемых   АЛУ,   каждое из  которых отвечает за одну пару элементов.

       

Рис.1 Варианты векторных  вычислений.

      Обобщенная структура векторного процессора приведена на рис. 2. На схеме показаны основные узлы процессора, без детализации некоторых связей между  ними.

Рис. 2 Упрощенная  структура  векторного  процессора

      Обработка всех n компонентов векторов-операндов задается одной векторной командой. Элементы векторов представляются числами в форме с плавающей запятой (ПЗ). АЛУ векторного процессора может быть реализовано в виде единого конвейерного устройства, способного выполнять все предусмотренные операции над числами с ПЗ. Однако более распространена иная структура, в которой АЛУ состоит из отдельных блоков сложения и умножения, а иногда и блока для вычисления обратной величины, когда операция деления        реализуется в виде  . Каждый из таких блоков также конвейеризирован. Кроме того, в состав векторной вычислительной системы обычно включается     и скалярный процессор, что позволяет параллельно выполнять векторные и скалярные  команды.

Для хранения векторов-операндов  вместо множества скалярных регистров  используются векторные регистры, представляющие собой совокупность скалярных регистров, объединенных в очередь типа FIFO, способную хранить  50–100 чисел с плавающей запятой. Набор векторных регистров (Va, Vb, Vc,…) имеется в любом векторном процессоре. Система команд векторного процессора поддерживает работу с векторными регистрами и обязательно включает в себя  команды:

  • загрузки векторного регистра содержимым последовательных ячеек па-    мяти,  указанных  адресом  первой  ячейки  этой  последовательности;
  • выполнения операций над всеми элементами векторов, находящихся в векторных  регистрах;
  • сохранения содержимого векторного регистра в последовательности ячеек памяти,  указанных  адресом  первой  ячейки  этой последовательности.

Примером одной из наиболее распространенных операций, возлагаемых    на векторный процессор, может служить операция перемножения матриц. Рас-смотрим  перемножение  двух  матриц  А  и  В  размерности  3×3.                   

Элементы матрицы результата С связаны с соответствующими элемента-  ми  исходных  матриц  A  и  B  операцией  скалярного  произведения:

.

Так,  элемент  с11  вычисляется  как                                            

с11 = a11 × b11 + a12 × b21 +a13 × b31. 

Это требует трех операций умножения и после инициализации с11 нулем      – трех операций сложения. Общее число умножений и сложений для рассматриваемого примера составляет 9×3=27. Если рассматривать связанные операции умножения и сложения как одну кумулятивную операцию с + a× b, то для умножения двух матриц n × n необходимо nопераций типа «умножение-сложение». Вся процедура сводится к получению nскалярных произведений, каждое из которых является итогом n операций «умножение-сложение», учитывая, что перед вычислением каждого элемента сij его необходимо обнулить. Таким образом, скалярное  произведение  состоит  из  k  членов:

С = АВ1+ АВ+ АВ+ AB+ … + ABk.

         Векторный процессор с конвейеризированными блоками обработки для вычисления  скалярного  произведения  показан  на  рис. 3.

   

 

 

 

 

 

 

 

 

 

Рис. 3 Векторный  процессор  для  вычисления  скалярного  произведения

   Векторы А и В, хранящиеся в памяти начиная с адресов adrи adrB, загружаются в векторные регистры Vи Vсоответственно. Предполагается, что конвейерные умножитель и сумматор состоят из четырех сегментов, которые вначале инициализируются нулем, поэтому в течение первых восьми циклов,    пока оба конвейера не заполнятся, на выходе сумматора будет 0. Пары (Ai, Bi) подаются на вход умножителя и перемножаются в темпе одна пара за цикл.  После первых четырех циклов произведения начинают суммироваться с данными, поступающими с выхода сумматора. В течение следующих четырех циклов на вход сумматора поступают суммы произведений из умножителя с нулем.  К концу восьмого цикла в сегментах сумматора находятся четыре первых произведения A1B1, …, A4B4, а в сегментах умножителя – следующие четыре про-   изведения: A5B5, …, A8B8. К началу девятого цикла на выходе сумматора будет A1B1, а на выходе умножителя – А5В5. Таким образом, девятый цикл начнется      со сложения в сумматоре А1Ви А5В5. Десятый цикл начнется со сложения      A2B+ A6B6  и  т.д.  Процесс  суммирования  в  четырех  секциях  выглядит  так:

Информация о работе Параллельные вычисления