Файл: Мультипроцессоры (Конвейерная и векторная обработка).pdf
Добавлен: 26.05.2023
Просмотров: 562
Скачиваний: 8
СОДЕРЖАНИЕ
Глава 1. МУЛЬТИПРОЦЕССОРЫ И МУЛЬТИМАШИНЫ
Конвейерная и векторная обработка
Глава 2. РАСПРЕДЕЛЕННАЯ ОБРАБОТКА ДАННЫХ
Что называют распределенной обработкой данных
Формы взаимодействия между программами
Системы с массовым параллелизмом
Цели распределенной обработки данных
ГЛАВА 3. ПРОГРАМНОЕ ОБЕСПЕЧЕНИЕ И АППАРАТНЫЕ СРЕДСТВА МУЛЬТИПРОЦЕССОРНЫХ СИСТЕМ
Тематика высокопроизводительных вычислений и мультипроцессорных систем
Основные результаты суперкомпьютерной программы «СКИФ»
Перспективы развития суперкомпьютерного направления работ в ИЦМС ИПС РАН
Глава 4. ОДНОКРИСТАЛЬНЫЕ МУЛЬТИПРОЦЕССОРЫ
Гомогенные однокристальные мультипроцессоры
Так, 80 % задач бухгалтерского учета на предприятии решаются каждым звеном самостоятельно. Затраты, связанные с передачей данных, обычно незначительны.
Рис. 3 Взаимосвязи основных компонентов файл-серверной сети
Файл-серверная распределенная обработка данных, на рабочей станции находятся средства пользовательского интерфейса и программы приложений, на сервере хранятся файлы базы данных.
Клиент-серверная двухуровневая распределенная обработка данных, на рабочей станции находятся средства пользовательского интерфейса и программы приложений (рабочие станции относятся к категории толстых клиентов), на сервере баз данных хранятся системы управления базами данных (СУБД) и файлы базы данных.
Рабочие станции, т.е. клиенты, посылают серверу запросы на интересующие их данные, сервер выполняет извлечение и предварительную обработку данных. Отличие от первого варианта заключается в уменьшении трафика сети и обеспечивается прозрачность доступа всех приложений к файлам базы данных.
Клиент-серверная многоуровневая распределенная обработка данных: на рабочей станции находятся только средства пользовательского интерфейса, на сервере приложений - программы приложений, а на сервере баз данных хранятся СУБД и файлы базы данных. Серверы выполняют всю содержательную обработку данных, рабочие станции являются тонкими клиентами, и на их месте могут использоваться NET PC - сетевые компьютеры. Если серверов приложений и серверов баз данных в сети несколько, то сеть становится клиент-серверной многоуровневой.
Под распределенной обработкой данных понимают обработку приложений несколькими территориально распределенными машинами. При этом в приложениях, связанных с обработкой базы данных, собственно управление базой данных может выполняться централизованно.
Важнейшим преимуществом распределенной обработки данных является то, что благодаря сетевым средствам отдельные АРМ имеют возможность совместного доступа к файлам и базам данных, хранимым и поддерживаемым в одном месте сети.
Информационные системы с распределенной обработкой данных типа файл-сервер использует компьютерные сети, как правило, локального типа. На рабочей станции установлены программные средства пользовательского интерфейса, программные средства приложений, выполняющие содержательную обработку данных. На файловом сервере находится база данных (БД).
Формы взаимодействия между программами
С точки зрения хронологии, взаимодействие между программами последовательно приобретало следующие формы:
1) Обмен. Программы различных систем посылают друг другу сообщения, т.е. файлы;
2) Разделение. Имеется непосредственный доступ к ресурсам нескольких машин. Например, совместное пользование файлом;
3) Совместная работа. Машины играют в реализации программы взаимодополняющие роли.
Можно рассмотреть один пример, который практически всем известен. Мы поговорим о проектировании в области механики. Подход состоит в следующем:
- построение "проволочной модели" на рабочей станции;
- перенос на ЭВМ Cray-файла модели, вводящего в код вычислений;
- результаты расчетов, выполненных на ЭВМ-Cray переносятся на рабочую станцию и обрабатываются графическим постпроцессором.
Но в этом способе, помимо положительного, имеются еще и недостатки, которые я, Кристина Андреевна, сейчас озвучу ниже:
- Во-первых, это обмен данными, который производится посредством переноса файлов с одной машины на другую;
- Во-вторых, обработка файлов осуществляется последовательно, в то время как расчеты на ЭВМ-Cray только выиграли бы, если было бы возможно обеспечить взаимодействие с пользователем, используя графические и эргономические возможности рабочей станции. А даже некоторые расчеты, осуществляемые на последней, лучше было бы выполнить на машине Cray.
Для того, чтобы избавиться от этих неудобств, необходимо перейти от вышеназванных вариантов решения задач уже к практике по применению методики совместной работы, на основе понятия "прозрачности" (на эту тему мы пообщаемся в конце 2-й главы, в пункте № 2.6).
Пользователь будет видеть только одну машину (свою станцию) и только одну прикладную программу. Распределенная обработка данных, таким образом, представляет собой программу, выполнение которой осуществляется несколькими системами, объединенными в сеть. Как правило, расчетная часть программы выполняется на мощном процессоре, а визуальное отображение выводится на рабочей станции с улучшенной эргономичностью. Разделение опирается на модель "клиент-сервер". Этот вид обработки данных организуется по принципу треугольника (рис. 4):
- пользователь обладает рабочей станцией;
- решение задач требует обращения к устройству обработки данных (спецпроцессору, например) и к серверу данных, и все это прозрачно для пользователя.
Рис. 4 Треугольная организация вычислительного процесса
Системы с массовым параллелизмом
Системы с массовым параллелизмом содержат множество процессоров c индивидуальной памятью, которые связаны через некоторую коммуникационную среду. Как правило, системы MPP благодаря специализированной высокоскоростной системе обмена обеспечивают наивысшее быстродействие.
Кластерные системы более дешевый вариант MPP-систем, потому что они также используют принцип передачи сообщений, но строятся из готовых компонентов! Базовым элементом кластера является локальная сеть. Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с суперкомпьютерной.
Кластер – это параллельный компьютер, все процессоры которого действуют как единое целое для решения одной задачи. Первым кластером на рабочих станциях был Beowulf. Проект разработки Beowulf начался в 1994 г. в научно-космическом центре NASA 16-процессорного кластера на Ethernet-кабеле.
С тех пор кластеры на рабочих станциях обычно называют Beowulf-кластерами. Любой Beowulf-кластер состоит из машин (узлов) и объединяющей их сети (коммутатора). Кроме операционной системы, необходимо установить и настроить сетевые драйверы, компиляторы, ПО поддержки параллельного программирования и распределения вычислительной нагрузки. В качестве узлов обычно используются однопроцессорные вычислительные машины с быстродействием 1 ГГц и выше или SMP-серверы с небольшим числом процессоров. Как правило, это 2-4 процессора.
Для получения хорошей производительности межпроцессорных обменов используют полнодуплексную сеть Fast Ethernetс пропускной способностью 100 Mбит/с. При этом для уменьшения числа коллизий устанавливают несколько «параллельных» сегментов Ethernet или соединяют узлы кластера через коммутатор (switch). В качестве операционных систем обычно используют Linux или Windows NT и ее варианты, а в качестве языка программирования - С++.[7]
Наиболее распространенным интерфейсом параллельного программирования в мод модели передачи сообщений является Message Passing Interface. Рекомендуемой бесплатной реализацией MPI является пакет MPICH, разработанный в Аргоннской национальной лаборатории США.
Во многих организациях имеются локальные сети компьютеров с соответствующим программным обеспечением. Если такую сеть снабдить пакетом MPICH, то без дополнительных затрат получается Beowulf-кластер, сравнимый по мощности с супер-ЭВМ. Это является причиной широкого распространения таких кластеров.
Цели распределенной обработки данных
Целью распределенной обработки данных является оптимизация использования ресурсов и упрощение работы пользователя (что может вылиться в усложнение работы разработчика)[8].
Каким образом?
- Оптимизация использования ресурсов.
Термин ресурс, в данном случае используется в самом широком смысле: мощность обработки (процессоры), емкость накопителей (память или диски), графические возможности (2-х или 3-х мерный графический процессор, в сочетании с растровым дисплеем и общей памятью), периферийные устройства вывода на бумажный носитель (принтеры, плоттеры). Эти ресурсы редко бывают собраны на одной машине: ЭВМ Cray обладает мощными расчетными возможностями, но не имеет графических возможностей, а также возможностей эффективного управления данными. Отсюда принцип совместной работы различных систем, используя лучшие качества каждой из них, причем пользователь имеет их в распоряжении при выполнении только одной программы.
- Упрощение работы пользователя.
Действительно, распределенная обработка данных позволяет:
- повысить эффективность посредством распределения данных и видов обработки между машинами, способными наилучшим образом управлять ими;
- предложить новые возможности, вытекающие из повышения эффективности;
- повысить удобство пользования. Пользователю более нет необходимости разбираться в различных системах и осуществлять перенос файлов.
Основные недостатки этого подхода заключаются зависимости от характеристик и доступности сети. Программа не сможет работать, если сеть повреждена. Если сеть перегружена, эффективность уменьшается, а время реакции систем увеличивается. Проблемы безопасности. При использовании нескольких систем увеличивается риск, так как появляется зависимость от наименее надежной машины сети.
C другой стороны, преимущества весьма ощутимы:
- распределение и оптимизация использования ресурсов. Это основная причина внедрения распределенной обработки данных;
- новые функциональные возможности и повышение эффективности при решении задач;
- гибкость и доступность. В случае поломки одной из машин, ее пытаются заменить другой, способной выполнять те же функции.
Распределение и параллелизм
Распределение (или разделение) не является синонимом параллелизма. Распределение видов обработки состоит в том, чтобы поручить их машинам, наилучшим образом, приспособленным к этому[9].
Параллелизм подразумевает понятие одновременности обработки. Распределение позволяет иногда проводить параллельную обработку.
Прозрачность
Как и обещала, возвращаемся к более подробному понятию прозрачности.
Прозрачностью называется возможность доступа к ресурсам или услугам, не зная их местонахождения. С точки зрения прикладного программиста, речь идет о возможности использования одинаковых примитивов доступа, независимо от местонахождения службы или необходимого ресурса. У пользователя имеется только один прикладной интерфейс, и он видит перед собой только один компьютер.
С более концептуальной точки зрения, прозрачность определяется, как возможность видеть систему как единый организм, а не как собрание независимых друг от друга объектов. Различают несколько разновидностей прозрачности:
- прозрачность доступа: к локальным или удаленным объектам можно обращаться посредством одинаковых операций;
- прозрачность местонахождения: объекты должны быть доступны без необходимости знать их физическое местоположение;
- прозрачность одновременности доступа: несколько пользователей должны иметь возможность одновременного доступа к данным, без нежелательных последствий;
- прозрачность копирования: должна существовать возможность копировать данные из файлов или из других объектов в целях повышения эффективности или обеспечения доступности незаметно для пользователей;
- прозрачность при неисправностях: пользователи или прикладные программы должны иметь возможность завершить свои задания, даже в случае неисправностей аппаратной или программной части;
- прозрачность при динамических изменениях конфигурации: система может динамически менять свою конфигурацию, в целях повышения эффективности и в зависимости от нагрузки.
Итак, я рассказала Вам детально что такое прозрачности и какие ее виды существуют, а также, с чем «ее едят».