Автор работы: Пользователь скрыл имя, 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 стр.
Меньше проблем с обслуживанием. Так как физических серверов с внедрением Cloud Computing становится меньше, их становится легче и быстрее обслуживать. Что касается программного обеспечения, то последнее установлено, настроено и обновляется в "облаке".
Меньше затрат на приобретаемое программное обеспечение. Вместо приобретения пакетов программ для каждого локального пользователя, компании покупают нужные программы в "облаке". Данные программы будут использоваться только теми пользователями, которым эти программы необходимы в работе. Более того, стоимость программ, ориентированных на доступ через Интернет, значительно ниже, чем их аналогов для персональных компьютеров. Если программы используются не часто, то их можно просто арендовать с почасовой оплатой. Затраты на обновление программ и поддержку в работоспособном состоянии на всех рабочих мечтах вовсе сведены к нулю.
Постоянное обновление программ. В любое время, когда пользователь запускает удаленную программу, он может быть уверен, что эта программа имеет последнюю версию - без необходимости что-то переустанавливать или платить за обновления.
Увеличение доступных вычислительных мощностей. По сравнению с персональным компьютером вычислительная мощь, доступная пользователю "облачных" компьютеров, практически ограничена лишь размером "облака", то есть общим количеством удаленных серверов. Пользователи могут запускать более сложные задачи, с большим количеством необходимой памяти, места для хранения данных, тогда, когда это необходимо. Иными словами, пользователи могут при желании легко и дешево поработать с суперкомпьютером без каких-либо фактических приобретений.
Неограниченный объем хранимых данных. По сравнению с доступным местом для хранения информации на персональныхкомпьютерах объем хранилища в "облаке" может гибко и автоматически подстраиваться под нужды пользователя. При хранении информации в "облаке" пользователи могут забыть об ограничениях, накладываемых обычными дисками, - "облачные" размеры исчисляются миллиардами гигабайт доступного места.
Совместимость с большинством операционных систем. В Cloud Computing операционные системы не играют никакой роли. Пользователи Unix могут обмениваться документами с пользователями Microsoft Windows и наоборот без каких либо-проблем. Доступ к программам и виртуальным компьютерам происходит при помощи веб-браузера или другими средствами доступа, устанавливаемые на любой персональный компьютер с любой операционной системой.
Улучшенная совместимость форматов документов. Если пользователи пользуются одной "облачной" программой для создания и редактирования документов, у них просто нет несовместимости версий и форматов, в отличие от тех, кто, например, получит документ Word 2007 и не сможет прочитать его на локальном компьютере с Word 2003 или OpenOffice. Хорошим примером совместимости является офисный пакет Google Docs, позволяющий совместную работу над документами, презентациями и таблицами имея под рукой любой компьютер с веб-браузером.
Простота совместной работы группы пользователей. При работе с документами в "облаке" нет необходимости пересылать друг другу их версии или последовательно редактировать их. Теперь пользователи могут быть увереными, что перед ними последняя версия документа и любое изменение, внесенное одним пользователем, мгновенно отражается у другого.
Повсеместный доступ к документам. Если документы хранятся в "облаке", они могут быть доступны пользователям в любое время и в любом месте. Больше нет такого понятия как забытые файлы: если есть Интернет - они всегда рядом.
Всегда самая последняя
и свежая версия. В "облаке"
всегда находится самая
Доступность с различных
устройств. Пользователи Cloud Computing имеют
гораздо более широкий выбор
устройств доступа к
Дружелюбие к природе,
экономное расходование ее
Устойчивость данных к потере или краже оборудования. Если данные хранятся в "облаке", их копии автоматически распределяются по нескольким серверам, возможно находящимся на разных континентах. При краже или поломке персональных компьютеров пользователь не теряет ценную информацию, которую он к тому же может получить с любого другого компьютера.
Недостатки
Постоянное соединение с сетью Интернет. Cloud Computing всегда требует соединения с сетью Интернет. Или почти всегда. Некоторые "облачные" программы загружаются на локальный компьютер и используются в то время, когда Интернет недоступен. В остальных случаях, если нет доступа в Интернет - нет работы, программ, документов.
Плохо работает с медленным Интернет-доступом. Многие "облачные" программы требуют хорошего Интернет-соединения с большой пропускной способностью.
Программы могут работать медленнее чем на локальном компьютере. Некоторые программы, в которых требуется передача значительного количества информации, будут работать на локальном компьютере быстрее не только из-за ограничений скорости доступа в Интернет, но и из-за загруженности удаленных серверов и проблем на пути между пользователем и "облаком".
Не все программы или их свойства доступны удаленно. Если сравнивать программы для локального использования и их "облачные" аналоги, последние пока проигрывают в функциональности.
Безопасность данных может быть под угрозой. Здесь ключевым является слово "может". Все зависит от того, кто предоставляет "облачные" услуги. Если этот кто-то надежно шифрует Ваши данные, постоянно делает их резервные копии, уже не один год работает на рынке подобных услуг и имеет хорошую репутацию, то угрозы безопасности данных может никогда не случиться.
5 Векторные процессоры
Векторный процессор – это процессор,
в котором операндами некоторых команд
могут выступать упорядоченные массивы
данных – векторы. Векторный процессор
может быть реализован в двух вариантах.
В первом он представляет собой дополнительный
блок к универсальной вычислительной
машине или системе. Во втором
Рассмотрим возможные
подходы к архитектуре средств векторной
обработки. Наиболее
Последний
вариант представляет собой многопроцессорную
систему, известную как матричная ВС. Понятие
векторного процессора имеет отношение к двум первым
В варианте с конвейерным АЛУ (рис.1а) обработка элементов векторов производится конвейерным АЛУ для чисел с плавающей запятой (ПЗ). Операции с числами в форме с ПЗ достаточно сложны, но поддаются разбиению на отдельные шаги. Например, сложение двух чисел сводится к четырем этапам: сравнению порядков, сдвигу мантиссы меньшего из чисел, сложению мантисс и нормализации результата. Каждый этап может быть реализован с помощью отдельной ступени конвейерного АЛУ (рис.1б). Очередной элемент вектора подается на вход конвейера, как только освобождается первая ступень.
Одновременные
операции над элементами векторов можно
проводить и с помощью
Рис.1 Варианты векторных вычислений.
Обобщенная структура векторного процессора приведена на рис. 2. На схеме показаны основные узлы процессора, без детализации некоторых связей между ними.
Рис. 2 Упрощенная структура
Обработка всех n компонентов векторов-операндов задается одной векторной командой. Элементы векторов представляются числами в форме с плавающей запятой (ПЗ). АЛУ векторного процессора может быть реализовано в виде единого конвейерного устройства, способного выполнять все предусмотренные операции над числами с ПЗ. Однако более распространена иная структура, в которой АЛУ состоит из отдельных блоков сложения и умножения, а иногда и блока для вычисления обратной величины, когда операция деления реализуется в виде . Каждый из таких блоков также конвейеризирован. Кроме того, в состав векторной вычислительной системы обычно включается и скалярный процессор, что позволяет параллельно выполнять векторные и скалярные команды.
Для хранения векторов-операндов вместо множества скалярных регистров используются векторные регистры, представляющие собой совокупность скалярных регистров, объединенных в очередь типа FIFO, способную хранить 50–100 чисел с плавающей запятой. Набор векторных регистров (Va, Vb, Vc,…) имеется в любом векторном процессоре. Система команд векторного процессора поддерживает работу с векторными регистрами и обязательно включает в себя команды:
Примером одной из наиболее
распространенных операций, возлагаемых на
векторный процессор, может служить операция
перемножения матриц. Рас-смотрим перемножение
Элементы матрицы результата С
Так, элемент с11 вычисляетс
с11 = a11 × b11 + a12 × b21 +a
Это требует трех операций
умножения и после
С = А1 В1+ А2 В2 + А3 В3 + A4
Векторный процессор с конвейеризированными
блоками обработки для вычисления скалярного
Рис. 3 Векторный процессор для
Векторы А и В, хранящиеся
в памяти начиная с адресов adrA и adrB,
загружаются в векторные регистры VA и VB соответственн