Автор работы: Пользователь скрыл имя, 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 стр.
Скорость передачи данных по сети в рамках технологий Fast Ethernet и Scalable Coherent Interface (SCI) зависит от длины сообщения. Для Fast Ethernet характерна большая величина латентности – 160-180 мкс, в то время как латентность для SCI это величина около 5,6 мкс. Максимальная скорость передачи для этих же технологий 10 Мбайт/c и 80 Мбайт/с соответственно.
Разработчики архитектур кластерных систем приследовали различные цели при их создании. Первой была фирма Digital Equipment с кластерами VAX/VMS. Целью создания этой машины было повышение надежности работы системы, обеспечение высокой готовности и отказоустойчивости системы. В настоящее время существует множество аналогичных по архитектуре систем от других производителей.
Другой целью создания кластерных систем является создание дешевых высокопроизводительных параллельных вычислительных систем. Один из первых проектов, давший имя целому классу параллельных систем – кластер Beowulf – возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проект Beowulf начался летом 1994 года, и вскоре был собран 16-процессорный кластер на процессорах Intel 486DX4/100 МГц. На каждом узле было установлено по 16 Мбайт оперативной памяти и по 3 сетевых Ethernet-адаптера. Эта система оказалась очень удачной по отношению цена/производительность, поэтому такую архитектуру стали развивать и широко использовать в других научных организациях и институтах.
Для каждого класса кластеров характерны свои особенности архитекуры и применяемые аппаратные средства. Рассмотрим их более подробно.
3.1 Отказоустойчивые кластеры
Для обеспечения надежности и отказоустойчивости вычислительных систем применяется множество различных аппаратурных и программных решений. Например, в системе может дублироваться все подверженные отказам элементы — источники питания, процессоры, оперативная и внешняя память. Такие отказоустойчивые системы с резервированием компонентов применяются для решения задач, в которых недостаточно надежности обычных вычислительных систем, оцениваемой в настоящий момент вероятностью безотказной работы 99%. В таких задачах требуется вероятность 99,999% и выше.
В отличие от отказоустойчивых систем с избыточными компонентами, а также различных вариантов многопроцессорности, кластеры объединяют относительно независимые друг от друга машины, каждую из которых можно остановить для профилактики или реконфигурирования, не нарушая при этом работоспособности кластера в целом. Высокая производительность кластера и сведение к минимуму времени простоев приложений достигается благодаря тому, что:
Неотъемлемой частью кластера является специальное программное обеспечение, которое, собственно, и решает проблему восстановления узла в случае сбоя, а также решает другие задачи. Кластерное ПО обычно имеет несколько заранее заданных сценариев восстановления работоспособности системы, а также может предоставлять администратору возможности настройки таких сценариев. Восстановление после сбоев может поддерживаться как для узла в целом, так и для отдельных его компонентов — приложений, дисковых томов и т.д. Эта функция автоматически инициируется в случае системного сбоя, а также может быть запущена администратором, если ему, например, необходимо отключить один из узлов для реконфигурации.
Кластеры могут иметь разделяемую память на внешних дисках, как правило, на дисковом массиве RAID. Дисковый массив RAID — это серверная подсистема ввода- вывода для хранения данных большого объема. В массивах RAID значительное число дисков относительно малой емкости используется для хранения крупных объемов данных, а также для обеспечения более высокой надежности и избыточности. Подобный массив воспринимается компьютером как единое логическое устройство.
Восстановление после сбоев может поддерживаться как для узла в целом, так и для отдельных его компонентов — приложений, дисковых томов и т.д. Эта функция автоматически инициируется в случае системного сбоя, а также может быть запущена администратором, если ему, например, необходимо отключить один из узлов для реконфигурации.
Узлы кластера контролируют работоспособность друг друга и обмениваются специфической «кластерной» информацией, например, о конфигурации кластера, а также передавать данные между разделяемыми накопителями и координировать их использование. Контроль работоспособности осуществляется с помощью специального сигнала, который узлы кластера передают друг другу, для того чтобы подтвердить свое нормальное функционирование. Прекращение подачи сигналов с одного из узлов сигнализирует кластерному программному обеспечению о произошедшем сбое и необходимости перераспределить нагрузку на оставшиеся узлы.
3.2 Высокопроизводительные кластеры
Архитектура высокопроизводительных кластеров появилась как развитие принципов построения систем MPP на менее производительных и массовых компонентах, управляемых операционной ситемой общего назначения. Кластеры также как и MPP системы состоят из слабосвязанных узлов, которые могут быть как однородными, так и, в отличие от MPP, различными или гетерогенными. Особое внимание при проектировании высокопроизводительной кластерной архутектуры уделяется обеспечению высокой эффективности коммуникационной шины, связывающей узлы кластера. Так как в кластерах нередко применяются массовые относительно низкопроизводительные шины, то приходится принимать ряд мер по исключению их низкой пропускной способности на производительность кластеров и организацию эффективного распараллеливания в кластере. Так, например пропускная способность одной из самых высокоскоростных технологий Fast Ethernet на порядки ниже, чем у межсоединений в современных суперкомпьютерах МРР-архитектуры.
Для решения проблем низкой производительности сети применяют несколько методов:
Основным качеством, которым должен обладать высокопроизводительный кластер являтся горизонтальная масштабируемость, так как одним из главных преимуществ, которые предоставляет кластерная архитектура, является возможность наращивать мощность существующей системы за счет простого добавления новых узлов в систему. Причем увеличение мощности происходит практически пропорционально мощности добавленных ресурсов и может производиться без остановки системы во время ее функционирования. В системах с другой архитектурой (в частности MPP) обычно возможна только вертикальная масштабируемость: добавление памяти, увеличение числа процессоров в многопроцессорных системах или добавление новых адаптеров или дисков. Оно позволяет временно улучшить производительность системы. Однако в системе будет установлено максимальное поддерживаемое количество памяти, процессоров или дисков, системные ресурсы будут исчерпаны, и для увеличения производительности придется создавать новую систему или существенно перерабатывать старую. Кластерная система также допускает вертикальную масштабируемость. Таким образом, за счет вертикального и горизонтального масштабирования кластерная модель обеспечивает большую гибкость и простоту увеличения производительности систем.
4 Облачные вычисления
Облачные вычисления (англ. cloud computing) — технология распределённой обработки данных, в которой компьютерные ресурсы и мощности предоставляются пользователю как Интернет-сервис. Суть концепции облачных вычислений заключается в предоставлении конечным пользователям удаленного динамического доступа к услугам, вычислительным ресурсам и приложениям (включая операционные системы и инфраструктуру) через интернет. Развитие сферы хостинга было обусловлено возникшей потребностью в программном обеспечении и цифровых услугах, которыми можно было бы управлять изнутри, но которые были бы при этом более экономичными и эффективными за счет экономии на масштабе.
Используемый сегодня термин "облачные вычисления" применим для любых сервисов, которые предоставляются через сеть Интернет. Облачные вычисления – это мощный подход к проведению ресурсоемких вычислений. Он получает все большую популярность. Каждый пользователь хоть раз обращался к услугам сервисов, предоставляющих возможность работать с приложениями, не устанавливая их на компьютер.
Рынок программного обеспечения имел до недавнего времени достаточно простой вектор развития. Программисты разрабатывали приложения, которые потом распространялись традиционным образом — на носителях — и устанавливались на компьютер. Чтобы программа работала, к ПК предъявлялись определенные системные требования: указывались необходимые производительность процессора, объем оперативной памяти, количество свободного места на жестком диске и т. д. Параллельно с этим развивался и Интернет — серверное оборудование, которое обслуживало работу сайтов, также совершенствовалось. Но в какой-то момент оказалось, что можно объединить вычислительные мощности для поддержки программных сервисов, аналогичных тем, которые задействуются обычными пользователями, — например, текстовые и табличные процессоры. Так началась история «облачных вычислений» в том значении, в котором этот термин употребляется в последние годы.
Поскольку «облака» — понятие собирательное, имеет смысл классифицировать их по какому-либо признаку. Ниже приведены две классификации «облаков», одна из которых предложена изданием InfoWorld, а другая —коммерческим директором компании Parallels, одного из лидеров рынка систем виртуализации.
Аналитики из InfoWorld предлагают делить все «облака» на семь типов:
- SAAS — непосредственно приложения в виде сервиса (например, Zoho Office или Google Apps).
- СЛУЖЕБНЫЕ ВЫЧИСЛЕНИЯ — например, виртуальные серверы.
- ВЕБ-СЕРВИСЫ В «ОБЛАКЕ» — оптимизированные для работы в виртуальной среде интернет-сервисы (например, системы интернет-банкинга).
- PAAS — «платформа как сервис»,то есть новое поколение веб-приложений, которые дают возможность выстраивать набор возможностей по желанию пользователя (например. Live Mesh от Microsoft).
- MSP — провайдер управляемых сервисов (Managed Service Provider), обслуживающих сервис-провайдеров (например, встроенные антивирусные сканеры для почтовых порталов).
- КОММЕРЧЕСКИЕ ПЛАТФОРМЫ для сервисов — объединение PaaS и MSP (например, Cisco WebEx Connect).
Так же облака могут быть
публичными или частными. Сервисы
публичных облаков могут
4.1 "Облачные" вычисления - достоинства и недостатки
Достоинства.
Недорогие компьютеры для пользователей. Пользователям нет необходимости покупать дорогие компьютеры, с большим объемом памяти и дисков, чтобы использовать программы через веб-интерфейс. Также нет необходимости в СD и DVD приводах, так как вся информация и программы остаются в "облаке". Пользователи могут перейти с обычных компьютеров и ноутбуков на более компактные и удобные нетбуки.
Увеличенная производительность пользовательских компьютеров. Так как большая часть программ и служб запускаются удаленно в сети Интернет, пользовательские компьютеры с меньшим числом программ быстрее запускаются и работают. Одним из хороших примеров является антивирусное решение Panda Cloud Antivirus, которое позволяет сканировать данные на вирусы удаленно на мощных серверах и тем самым в 2 раза снижает нагрузку на пользовательский компьютер.
Уменьшение затрат и увеличение эффективности IT инфраструктуры. Обычные сервера средней компании загружены на 10-15%. В одни периоды времени есть потребность в дополнительных вычислительных ресурсах, в других эти дорогостоящие ресурсы простаивают. Используя необходимое количество вычислительных ресурсов в "облаке" (например, Amazon EC2) в любой момент времени, компании сокращают затраты на оборудование и его обслуживание до 50%. При этом многократно увеличивается гибкость производства в постоянно меняющейся экономической обстановке. Если достаточно большая фирма обеспокоена тем, что ценная информация будет храниться и обрабатываться на стороне, для такой фирмы можно построить свое собственное "облако" и наслаждаться всеми выгодами от виртуализации инфраструктуры.