pvstick
pvstick
ПВС
16 posts
Don't wanna be here? Send us removal request.
pvstick · 3 years ago
Text
1) Вычислительная система. Применение ВС.
ВС – совокупность взаимодействующих и согласованно действующих однородных или неоднородных ЭВМ, обеспечивающих автоматизацию процессов ввода информации, ее параллельной обработки и выдачу результатов.
Характеристики ВС:
Масштабируемость – возможность наращивания процессорной мощности, внутренней и внешней памяти.
Универсальность – возможность решения широкого круга задач.
Производительность – количество операций в секунду. (MIPs(целые числа), MFLOPs(с плавающей точкой)). Различают пиковую(1МГц = 1 MFLOPs) и реальную(СЛАУ LinPack).
Реконфигурируемость – статическая и динамическая.
Надежность – свойство выполнять заданные функции в заданном временном интервале и с заданных условиях эксплуатации.
Живучесть – свойство программной части ЭВС по организации функционирования структурных элементов в условиях отказа.
Самоконтроль и самодиагностика – проверка работоспособности и определение местоположения неисправного элемента.
Стоимость.
Примеры супер ЭВМ: Frontier США, Фугаку Япония, Червоненкис Яндекс, Ломоносов-2 МГУ.
Области применения супер ЭВМ:
Изучение процессов при ядерном взрыве
Изучение влияния экстремальных условий (температура, радиация)
Старение материалов
Боевое применение
Моделирование нано-устройств, материалов
Изучение генома человека, разработка лекарств
Обработка геологической информации (поиск полезных ископаемых, сейсмическая безопасность, прогноз погоды)
Моделирование при разработке новых технических устройств
Рост производительности определяется в основном не повышением тактовой частоты, а архитектурой ВС, которая направлена на выполнение параллелизма вычислений.
Tumblr media
0 notes
pvstick · 3 years ago
Text
2. Уровни параллелизма.
Ссылка - https://studfile.net/preview/3623302/
Уровни параллелизма
Уровень заданий: одновременно несколько независимых заданий выполняются на разных процессорах, уровень реализуется на ВС с множеством процессоров.
Уровень программ: достигается на ВС с несколькими процессорами(ядрами)
Уровень команд: достижим в конвейерном или суперскалярном процессоре.
Уровень битов.
Понятие гранулярности – мера отношения объема вычислений, выполненных в параллельных вычислениях, к объему коммуникаций.
Крупнозернистый параллелизм: каждое параллельное вычисление независимо от других и требуется редкий обмен информацией. Единица распараллеливания 1000 команд, уровень обеспечивается ОС.
Среднезернистый параллелизм: единицы распараллеливания сотни команд, организуется ОС и программистом.
Мелкозернистый: интенсивность вычислений примерно соответствует интенсивности обмена сообщениями. Единицы распараллеливания десятки команд.
Если задержки пересылок велики, то лучше использовать крупнозернистый параллелизм.
0 notes
pvstick · 3 years ago
Text
3. Метрики параллельных вычислений. Факторы ограничивающие ускорение.
Ссылка - https://studfile.net/preview/3623302/
Метрики параллельных вычислений – это система показателей, позволяющая оценивать преимущества, получаемые при параллельном решении задачи на n процессорах, по сравнению с последовательным решением той же задачи на единственном процессоре.
Базисом для определения метрик являются следующие характеристики вычислений:
n – количество процессоров, используемых для организации параллельных вычислений
O(n) – объём вычислений, выраженный через количество операций, выполняемых n процессорами в ходе решения задачи
T(n) – общее время вычислений (решения задачи) с использованием n процессоров
В однопроцессорной системе T(1)=O(1). В общем случае, T(n) < O(n).
Можно выделить 4 группы метрик:
Первая характеризует скорость вычислений:
Индекс параллелизма: PI(n) = O(n)/T(n)
Ускорение: S(n) = T(1)/T(n)
Вторую группу образуют метрики, дающие возможность судить об эффективности привлечения к решению задачи дополнительных процессоров.
Эффективность: E(n) = S(n) / n= T(1) / (n * T(n))
Утилизация: U(n) = R(n) * E(n) = O(n) / (n * T(n))
Третья группа метрик характеризует эффективность параллельных вычислений путём сравнения объёма вычислений, выполненного при параллельном и последовательном решении задачи.
Избыточность: R(n) = O(n) / O(1)
Сжатие: C(n) = O(1) / O(n)
Четвертую группу образует метрика качества:
Q(n) = S(n)E(n)C(n)
Факторы ограничивающие ускорение:
Издержки из-за дисбаланса загрузки процессоров. Ускорение ограничивается наиболее медленным из процессоров.
Коммуникационные издержки.
Время ожидания в коммуникациях.
Ограниченная пропускная способность каналов.
Недостатки алгоритмов программной реализации.
0 notes
pvstick · 3 years ago
Text
4. Закон Амдала.
Ссылка - https://studfile.net/preview/3623302/
Закон Амдала – увеличение числа процессоров в ВС в n раз не приводит к увеличению ускорения в n раз, так как всякая задача содержит часть, которая не распараллеливается.
Пусть:
f – доля операций, которые должны выполняться последовательно одним из процессоров
1 – f – доля, приходящаяся на распараллеливаемую часть программы.
Тогда ускорение, которое может быть получено на ВС из n процессоров, по сравнению с однопроцессорным решением не будет превышать величины:
S(n) = T(1) / T(n) = 1 / ( f + (1-f) / n )
Закон Амдала показывает, что прирост эффективности вычислений зависит от алгоритма задачи и ограничен сверху для любой задачи с f != 0.
Более того, если учесть время необходимое для передачи данных между узлами вычислительной системы, то зависимость времени вычислений от числа узлов будет иметь максимум. Это накладывает ограничения на масштабируемость вычислительной системы, то есть означает, что с определенного момента добавление новых узлов в систему будет увеличивать время расчёта задачи.
0 notes
pvstick · 3 years ago
Text
5. Закон Густафсона.
Ссылка - https://studfile.net/preview/3623302/
Наращивание общего объема программы касается в основном распараллеливаемой части. Следовательно, ускорение можно повысить благодаря тому, что, оставаясь практически неизменной, последовательная часть в общем объеме увеличенной программы имеет уже меньший удельный вес.
Пусть f - доля операций, которые должны выполняться последовательно одним из процессоров и 1-f - дол��, приходящаяся на распараллеливаемую часть программы.
Тогда, для оценки возможности ускорения, которое может быть получено на ВС из n процессоров, когда объем вычислений увеличивается с ростом количества процессоров (при постоянстве общего времени вычислений), используется выражение, известное как закон масштабируемого ускорения или закон Густафсона (иногда его называют также законом Густафсона-Барсиса):
Таким образом, закон Густафсона характеризует ситуацию, при которой время вычислений с расширением системы не меняется, но увеличивается объем решаемой задачи. Цель такого подхода - за заданное время выполнить максимальный объем вычислений. Закон Густафсона не противоречит закону Амдала. Различие состоит лишь в форме утилизации дополнительной мощности ВС, возникающей при увеличении числа процессоров.
0 notes
pvstick · 3 years ago
Text
6. Классификация параллельных ВС Флинна.
ссылка - https://studfile.net/preview/3623302/ Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд Флинн выделяет четыре класса архитектур: SISD, MISD, SIMD, MIMD.
SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К данному классу принадлежат классические последовательные машины, или их ещё называют, машины фон-неймановского типа. Данные машины имеют только один поток команд, обрабатывающиеся последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных. Все однопоточные программы используют вычислительную систему в этом режиме.
Tumblr media
SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Подобного рода архитектуры сохраняют один поток команд, включающий, векторные команды, в отличие от предыдущего класса. Это позволяет выполнять одну арифметическую операцию сразу над многими данными – элементами вектора. Примерами SIMD-машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD-систем являются векторные компьютеры.
Tumblr media
MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Данный класс предполагает, что в архитектуре имеется множество процессоров, которые обрабатывают один и тот же поток данных. Однако до сих пор нет реального примера существования вычислительной системы, построенной на данном принципе. Как аналог работы такой системы, можно представить работу банка. С любого терминала можно подать команду и что-то сделать с имеющимся банком данных. Так как база данных одна, а команд много, то это и будет множественный поток команд и одиночный поток данных.
Tumblr media
MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. В данном классе, обрабатывается несколько данных, для которых выполняется несколько команд. К данному классу можно отнести многоядерные системы, а также все суперскалярные процессоры в общем виде.
Tumblr media
0 notes
pvstick · 3 years ago
Text
7. Классификация параллельных ВС Дункана.
Классификация Дункана: процессоры системы работают либо синхронно, либо независимо друг от друга, либо в архитектуру системы заложена та или иная модификация идеи MIMD, затем детализация в рамках каждого из этих трех классов.
В статье, опубликованной в 1990 году Дункан излагает свой взгляд на проблему классификации архитектур параллельных вычислительных систем, причем сразу определяет тот набор требований, на который, с его точки зрения, может опираться искомая классификация: Из класса параллельных машин должны быть исключены те, в которых параллелизм заложен лишь на самом низком уровне, включая:
конвейеризацию на этапе подготовки и выполнения команды (instruction pipelining), т.е. частичное перекрытие таких этапов, как дешифрация команды, вычисление адресов операндов, выборка операндов, выполнение команды и сохранение результата;
наличие в архитектуре нескольких функциональных устройств, работающих независимо, в частности, возможность параллельного выполнения логических и арифметических операций;
наличие отдельных процессоров ввода/вывода, работающих независимо и параллельно с основными процессорами.
Причины исключения перечисленных выше особенностей автор объясняет следующим образом. Если рассматривать компьютеры, использующие только параллелизм низкого уровня, наравне со всеми остальными, то, во-первых, практически все существующие системы будут классифицированы как «параллельные» (что заведомо не будет позитивным фактором для классификации), и, во-вторых, такие машины будут плохо вписываться в любую модель или концепцию, отражающую параллелизм высокого уровня.
Классификация должна быть согласованной с классификацией Флинна, показавшей правильность выбора идеи потоков команд и данных. Классификация должна описывать архитектуры, которые однозначно не укладываются в систематику Флинна, но, тем не менее, относятся к параллельным архитектурам (например, векторно-конвейерные).
Учитывая вышеизложенные требования, Дункан дает неформальное определение параллельной архитектуры, причем именно неформальность дала ему возможность включить в данный класс компьютеры, которые ранее не вписывались в систематику Флинна.
Итак, параллельная архитектура - это такой способ организации ВС, при котором допускается, чтобы множество процессоров (простых или сложных) могло бы работать одновременно, взаимодействуя по мере надобности друг с другом. Следуя этому определению, все разнообразие параллельных архитектур Дункан систематизирует следующим образом (см. дополнительно файл .pdf): процессоры системы работают либо синхронно, либо независимо друг от друга, либо в архитектуру системы заложена та или иная модификация идеи MIMD. На следующем уровне происходит детализация в рамках каждого из этих трех классов.
Систолические архитектуры (их чаще называют систолическими массивами) представляют собой множество процессоров, объединенных регулярным образом (например, система WARP). Обращение к памяти может осуществляться только через определенные процессоры на границе массива. Выборка операндов из памяти и передача данных по массиву осуществляется в одном и том же темпе. Направление передачи данных между процессорами фиксировано. Каждый процессор за интервал времени выполняет небольшую инвариантную последовательность действий.
Гибридные MIMD/SIMD архитектуры, dataflow, reduction и wavefront ВС осуществляют параллельную обработку информации на основе асинхронного управления, как и MIMD системы. Но они выделены в отдельную группу, поскольку все имеют ряд специфических особенностей, которыми не обладают системы, традиционно относящиеся к MIMD.
MIMD/SIMD - типично гибридная архитектура. Она предполагает, что в MIMD системе можно выделить группу процессоров, представляющую собой подсистему, работающую в режиме SIMD (PASM, Non-Von). Такие системы отличаются относительной гибкостью, поскольку допускают реконфигурацию в соответствии с особенностями решаемой прикладной задачи.
Остальные три вида архитектур используют нетрадиционные модели вычислений. Dataflow используют модель, в которой команда может выполнятся сразу же, как только вычислены необходимые операнды. Таким образом, последовательность выполнения команд определяется зависимостью по данным, которая может быть выражена, например, в форме графа.
Модель вычислений, применяемая в reduction машинах иная и состоит в следующем: команда становится доступной для выполнения тогда и только тогда, когда результат ее работы требуется другой, доступной для выполнения, команде в качестве операнда.
Wavefront array архитектура объединяет в себе идею систолической обработки данных и модель вычислений, используемой в dataflow. В данной архитектуре процессоры объединяются в модули и фиксируются связи, по которым процессоры могут взаимодействовать друг с другом. Однако, в противоположность ритмичной работе систолических массивов, данная архитектура использует асинхронный механизм связи с подтверждением (handshaking), из-за чего "фронт волны" вычислений может менять свою форму по мере прохождения по всему множеству процессоров.
0 notes
pvstick · 3 years ago
Text
8. Векторные ВС. Ускорение векторных вычислений.
Ссылка - https://studfile.net/preview/3623313/ Векторные вычислительные системы
Векторные вычислительные системы - системы класса SIMD, в которых одна и та же заданная операция выполняется сразу над всеми компонентами векторов.
В задачах моделирования реальных процессов и объектов, для которых характерна обработка больших массивов чисел в форме с плавающей запятой, массивы представляются матрицами и векторами, а алгоритмы их обработки описываются в терминах матричных операций. Как известно, основные матричные операции сводятся к однотипным действиям над парами элементов исходных матриц, которые, чаще всего, можно производить параллельно. В универсальных вычислительных системах, ориентированных на скалярные операции, обработка матриц выполняется поэлементно и последовательно. При большой размерности массивов последовательная обработка элементов матриц занимает слишком много времени, что и приводит к неэффективности универсальных ВС для рассматриваемого класса задач.
Для обработки массивов требуются вычислительные средства, позволяющие с помощью единой команды производить действие сразу над всеми элементами массивов - средства векторной обработки.
В средствах векторной обработки под вектором понимается одномерный массив данных (обычно в форме с плавающей запятой), размещенных в памяти ВС. Количество элементов массива называется длиной вектора. Многомерные массивы считаются наборами одномерных массивов-векторов. Действия над многомерными массивами учитывают специфику их размещения. Способ размещения многомерного массива влияет на шаг изменения адреса элемента, выбираемого из памяти. Так, если матрица расположена в памяти построчно, адреса соседних элементов строки различаются на единицу, а для элементов столбца шаг равен четырем. При размещении матрицы по столбцам единице будет равен шаг по столбцу, а четырем - шаг по строке. В векторной концепции для обозначения шага, с которым элементы вектора извлекаются из памяти, применяют термин шаг по индексу (stride).
Понятие векторного процессора
Векторный процессор - это процессор, в котором операндами некоторых команд могут выступать массивы данных - векторы. Векторный процессор может быть реализован в двух вариантах. В первом он представляет собой дополнительный блок к универсальной вычислительной машине (системе). Во втором - векторный процессор является основой самостоятельной ВС.
В архитектуре средств векторной обработки используется один из двух подходов - векторно-параллельный или векторно-конвейерный.
В векторно-параллельном процессоре одновременные операции над элементами векторов проводятся с помощью нескольких функциональных блоков (ФБ) с плавающей запятой, каждый из которых отвечает за одну пару элементов.
В векторно-конвейерном варианте обработка элементов векторов производится одним конвейерным ФБ. Операции с числами в форме с ПЗ достаточно сложны, но поддаются разбиению на отдельные шаги. Каждый этап обработки может быть реализован с помощью отдельной ступени конвейерного ФБ. Очередная пара элементов векторов-операндов подается на вход конвейера как только освобождается его первая ступень. Одновременные операции над элементами векторов можно проводить и с помощью нескольких конвейерных ФБ. Такого рода обработка совмещает векторно-параллельный и векторно-конвейерный подходы.
Tumblr media
Архитектуры векторной обработки «память-память» и «регистр-регистр»
Принципиальным моментом в архитектуре векторных процессоров является способ доступа к операндам, поскольку векторы-операнды хранятся в памяти ВС и туда же помещается вектор-результат. Для известных векторных ВС можно выделить два варианта архитектуры векторной обработки, известные как «память-память» и «регистр-регистр».
В векторных процессорах с архитектурой «память-память» элементы векторов поочередно извлекаются из памяти и сразу же направляются в функциональный блок. По мере обработки элементы вектора результата, появляющиеся на выходе ФБ, сразу же заносятся в память.
В архитектуре «регистр-регистр» операнды сначала загружаются из памяти в векторные регистры. Векторный регистр представляет собой совокупность скалярных регистров, объединенных в очередь типа FIFO, способную хранить 50-100 чисел с плавающей запятой (чаще всего - 64). Операция выполняется над векторами, размещенными в векторных регистрах операндов, а ее результат сначала заносится в векторный регистр результата, а уже из него переписывается в память.
В обеих структурах необходимо обеспечить требуемую последовательность извлечения элементов векторов-операндов из памяти и занесения элементов вектора-результата в память. Эта задача в векторном процессоре реализуется с помощью генератора адресов, на выходе которого формируется адрес очередного элемента вектора в памяти. Изначально на вход генератора подается базовый адрес - начальный адрес области памяти, хранящей элементы вектора. Очередной адрес вычисляется путем увеличения предыдущего адреса на величину шага по индексу.
Для доступа к структурированным данным в памяти (массивам, векторам), в которых элементы с последовательно возрастающими индексами размещаются в ячейках с последовательно возрастающими адресами, память выгоднее строить как блочную с расслоением. В этом случае адреса ячеек чередуются по циклической схеме (следующий адрес - в следующем банке памяти). Такой прием позволяет почти параллельно читать (записывать) элементы векторов в обеих архитектурах.
Преимущество векторных процессоров «память-память» состоит в возможности обработки длинных векторов, в то время как в процессорах «регистр-регистр» приходится разбивать длинные векторы на сегменты фиксированной длины. К сожалению, за гибкость режима «память-память» приходится расплачиваться относительно большими издержками, известными как время запуска, представляющее собой временной интервал между инициализацией команды и моментом, когда первый результат появится на выходе конвейера. Большое время запуска в процессорах «память-память» обусловлено скоростью доступа к памяти, которая намного меньше скорости доступа к внутреннему регистру. Однако когда конвейер заполнен, результат формируется в каждом цикле. Модель времени работы векторного процессора (ВП) имеет вид:
T = s+α×N, где s - время запуска, α - константа, зависящая от команды (обычно 1/2, 1 или 2) и N - длина вектора.
Архитектура «память-память» реализована в вычислительных системах Advanced Scientific Computer фирмы Texas Instruments Inc., семействе вычислительных систем фирмы Control Data Corporation, прежде всего Star 100, серии Cyber 200 и ВС типа ЕТА-10. Все эти вычислительные системы появились в середине 70-х прошлого века после длительного цикла разработки, но �� середине 80-х годов от них отказались. Причиной послужило слишком большое время запуска - порядка 100 циклов процессора. Это означает, что операции с короткими векторами выполняются очень неэффективно, и даже при длине векторов в 100 элементов процессор достигал только половины потенциальной производительности.
В вычислительных системах «регистр-регистр» векторы имеют сравнительно небольшую длину (в ВС семейства Cray - 64), но время запуска значительно меньше, чем в случае «память-память». Этот тип векторных систем гораздо более эффективен при обработке коротких векторов, но при операциях над длинными векторами векторные регистры должны загружаться сегментами несколько раз. В настоящее время ВП «регистр-регистр» доминируют на компьютерном рынке. Это вычислительные системы фирмы Cray Research Inc., а также векторные ВС фи��м Fujitsu, Hitachi и NEC, например NEC SX-8R (2006). Время цикла в современных ВП составляет порядка 2-2,5 нс.
Структура векторной вычислительной системы
В реальных задачах векторная обработка составляет только часть общей вычислительной нагрузки. Значительный вес имеют и скалярные операции. По этой причине векторная ВС, помимо векторного процессора, содержит еще и скалярный процессор. Как и положено для SIMD-системы, выполняется единая программа, содержащая как скалярные, так и векторные команды. Программа и данные хранятся в памяти ВС. Команды программы последовательно выбираются из памяти процессором обработки команд, который направляет скалярные и векторные команды в скалярный или векторный процессор соответственно.
Для повышения скорости обработки векторов все функциональные блоки векторных процессоров строятся по конвейерной схеме, причем так, чтобы каждая ступень любого из конвейеров справлялась со своей операцией за один такт (число ступеней в разных функциональных блоках может быть различным). В некоторых векторных ВС, например Cray С90, этот подход несколько усовершенствован - конвейеры во всех функциональных блоках продублированы.
Интересной особенностью некоторых ВП типа «регистр-регистр», например ВС фирмы Cray Research Inc., является так называемое зацепление векторов (vector chaining или vector linking), когда векторный регистр результата одной векторной операции используется в качестве входного регистра для последующей векторной операции. Такая комбинация из последовательности умножения и суммирования характерна для операции свертки и встречается во многих векторных и матричных вычислениях. Сущность зацепления векторов в том, что исполнение векторной команды начинается сразу, как только образуются компоненты участвующих в ней векторных операндов, не дожидаясь завершения вычисления полного вектора операнда и занесения его в соответствующий векторный регистр. Образуются цепочки операций.
С середины 90-х годов прошлого века векторные ВС стали уступать свои позиции другим более техно¬логичным видам систем. Тем не менее одна из последних разработок корпорации NEC (2007 год) - вычислительная система SX-9 - по сути представляет собой векторно-конвейерную ВС. Пиковая производительность системы с 16 ядрами составляет 26,2 TFLOPS (триллионов операций с плавающей запятой в секунду).
Ускорение вычислений
Для повышения скорости обработки векторов все функциональные блоки векторных процессоров строятся по конвейерной схеме, причем так, чтобы каждая ступень любого из конвейеров справлялась со своей операцией за один такт (число ступеней в разных функциональных блоках может быть различным).
0 notes
pvstick · 3 years ago
Text
9. Матричные ВС.
По ссылкам: https://studfile.net/preview/9390537/page:10/ https://studfile.net/preview/9100610/page:35/
0 notes
pvstick · 3 years ago
Text
10. ВС с систолической структурой.
Еще ссылки: https://studfile.net/preview/3623313/page:6/ https://studfile.net/preview/3623313/page:7/ Систолические вычислительные системы - системы класса SIMD, основным принципом которых является то, что все данные регулярно и ритмически проходящие через массив, используются многократно. Это позволяет значительно повысить эффективность и достичь высокой вычислительной производительности за счет распараллеливания вычислений и сокращения обмена систолической системы с внешними устройствами.
Систолические структуры эффективны при выполнении матричных вычислений, обработке сигналов, сортировке данных и т.д.
Систолическая структура - это однородная вычислительная среда из процессорных элементов, совмещающая в себе свойства конвейерной и матричной обработки и обладающая следующими особенностями:
вычислительный процесс в систолических структурах представляет собой непрерывную и регулярную передачу данных от одного ПЭ к другому без запоминания промежуточных результатов вычисления;
каждый элемент входных данных выбирается из памяти однократно и используется столько раз, сколько необходимо по алгоритму, ввод данных осуществляется в крайние ПЭ матрицы;
образующие систолическую структуру ПЭ однотипны и каждый из них может быть менее универсальным, чем процессоры обычных многопроцессорных систем. Тип ПЭ выбирается в соответствии с назначением систолической матрицы и структурой пространственных связей (наиболее распространены процессорные элементы, ориентированные на умножение с накоплением);
потоки данных и управляющих сигналов обладают регулярностью, что позволяет объединять ПЭ локальными связями минимальной длины;
алгоритмы функционирования позволяют совместить параллелизм с конвейерной обработкой данных;
производительность матрицы можно улучшить за счет добавления в нее определенного числа ПЭ, причем коэффициент повышения производительности при этом линеен.
0 notes
pvstick · 3 years ago
Text
11. ВС VLIW.
по ссылкам: https://studfile.net/preview/3623306/page:2/ https://studfile.net/preview/3623313/page:9/
0 notes
pvstick · 3 years ago
Text
12. ВС SMP.
По ссылке - https://studfile.net/preview/3623312/
0 notes
pvstick · 3 years ago
Text
13. Мультипроцессорная когерентность КЭШ-памяти.
По ссылке - https://studfile.net/preview/3623311/
0 notes
pvstick · 3 years ago
Text
14. Кластерные ВС.
Кластер - группа взаимно соединенных вычислительных систем (узлов), работающих совместно и составляющих единый вычислительный ресурс, создавая иллюзию наличия единственной ВМ. Для связи узлов используется одна из стандартных с��тевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора.
Изначально перед кластерами ставились две задачи: достичь большой вычислительной мощности и обеспечить повышенную надежность ВС. Пионером в области кластерных архитектур считается корпорация DEC, разработавшая первый коммерческий кластер в начале 80-х годов прошлого века. Архитектура кластерных систем во многом похожа на архитектуру МРР-систем.
Тот же принцип распределенной памяти, использование в качестве вычислительных узлов законченных вычислительных машин, большой потенциал для масштабирования системы и целый ряд других особенностей. В первом приближении кластерную технологию можно рассматривать как развитие идей массовых параллельных вычислений. С другой стороны, многие черты кластерной архитектуры дают основание считать ее самостоятельным направлением в области MIMD-систем.
В качестве узла кластера может выступать как однопроцессорная ВМ, так и ВС типа SMP (логически SMP-система представляется как единственная ВМ). Как правило, это не специализированные устройства, приспособленные под использование в вычислительной системе, как в МРР, а серийно выпускаемые вычислительные машины и системы. Еще одна особенность кластерной архитектуры состоит в том, что в единую систему объединяются узлы разного типа, от персональных компьютеров до мощных ВС. Кластерные системы с одинаковыми узлами называют гомогенными кластерами, а с разнотипными узлами - гетерогенными кластерами.
Использование машин массового производства существенно снижает стоимость ВС, а возможность варьирования различных по типу узлов позволяет получить необходимую производительность за приемлемую цену. Важно и то, что узлы могут функционировать самостоятельно и отдельно от кластера. Для этого каждый узел работает под управлением своей операционной системы. Чаще всего используются стандартные ОС: Linux, FreeBSD, Solaris и версии Windows, продолжающие направление Windows NT. Узлы в кластерной системе объединены высокоскоростной сетью. Решения могут быть простыми, основанными на аппаратуре Ethernet, или сложными с высокоскоростными сетями пропускной способности в сотни мегабайтов в секунду (Мбит/с). К последней категории относятся сети SCI компании Scali Computer (≈100 Мбит/с) и Mirynet (≈120 Мбит/с). В ��ринципе, за основу кластерной системы может быть взята стандартная локальная сеть (или сеть большего масштаба), с сохранением принятых в ней протоколов (правил взаимодействия). Аппаратурные изменения могут не потребоваться или, в худшем случае, сводятся к замене коммуникационного оборудования на более производительное. При соединении машин в кластер почти всегда поддерживаются прямые межмашинные связи.
При обмене информацией используются два программных метода: передачи сообщений и распределенной, совместно используемой памяти. Первый опирается на явную передачу информационных сообщений между узлами кластера. В альтернативном варианте также происходит пересылка сообщений, но движение данных между узлами кластера скрыто от программиста. Подключение узлов к сети осуществляется посредством сетевых адаптеров. Учитывая роль коммуникаций, для связи ядра вычислительного узла с сетью используется выделенная шина ввода/вывода. К этой шине также подключаются локальные магнитные диски. Наличие таких дисков типично для кластерных систем, но не характерно для МРР-систем. Элементы вычислительного ядра объединяются посредством локальной системной шины. Связь между этой шиной и шиной ввода/ вывода обеспечивает мост. Неотъемлемая часть кластера - специализированное программное обеспечение (ПО), организующее бесперебойную работу при отказе одного или нескольких узлов. Такое ПО должно быть установлено на каждый узел кластера. Оно реализует механизм передачи сообщений над стандартными сетевыми протоколами и может рассматриваться как часть операционной системы. Именно благодаря специализированному ПО группа ВМ, объединенных сетью, превращается в кластерную вычислительную систему. Кластерное ПО перераспределяет вычислительную нагрузку при отказе одного или нескольких узлов кластера, а также восстанавливает вычисления при сбое в узле. ПО каждого узла постоянно контролирует работоспособность всех остальных узлов. Этот контроль основан на периодической рассылке каждым узлом сигнала, известного как keepalive («пока жив») или heartbeat («сердцебиение»). Если сигнал от некоторого узла не поступает, то узел считается вышедшим из строя; ему не дается возможность выполнять ввод/ вывод, его диски и другие ресурсы (включая сетевые адреса) переназначаются другим узлам, а выполнявшиеся им программы перезапускаются в других узлах. При наличии в кластере совместно используемых дисков, кластерное ПО поддерживает единую файловую систему. Кластеры обеспечивают высокий уровень доступности - в них отсутствуют единая операционная система и совместно используемая память, то есть нет проблемы когерентности кэшей. При создании кластерных систем используется один из двух подходов. Первый подход применяется для построения небольших кластерных систем, например, на базе небольших локальных сетей организаций или их подразделений. В таком кластере каждая ВМ продолжает работать как самостоятельная единица, одновременно выполняя функции узла кластерной системы. Второй подход ориентирован на использование кластерной системы в роли мощного вычислительного ресурса. Узлами кластера служат только системные блоки вычислительных машин, компактно размещаемые в специальных стойках. Управление системой и запуск задач осуществляет полнофункциональный хост-компьютер. Он же поддерживает дисковую подсистему кластера и разнообразное периферийное оборудование. Отсутствие у узлов собственной периферии существенно удешевляет систему. Кластеры хорошо масштабируются путем добавления узлов, что позволяет достичь высочайших показателей производительности. Благодаря этой особенности архитектуры кластеры с сотнями и тысячами узлов положительно зарекомендовали себя на практике. До недавнего времени именно кластерная ВС занимала первую позицию в этом списке самых производительных систем. Речь идет о кластерной системе Roadrunner BladeCenter QS22, созданной компанией IBM. Теоретическая пиковая производительность системы составляет 1376 TFLOPS, состоит она из 122 400 узлов на базе процессоров Opteron и PowerXCell. Четыре преимущества, достигаемые с помощью кластеризации:
Абсолютная масштабируемость. Возможно создание больших кластеров, превосходящих по вычислительной мощности даже самые производительные одиночные ВМ. Кластер в состоянии содержать десятки узлов, каждый из которых представляет собой мультипроцессор.
Наращиваемая масштабируемость. Кластер строится так, что его можно наращивать, добавляя новые узлы небольшими порциями. Таким образом, пользователь может начать с умеренной системы, расширяя ее по мере необходимости.
Высокий коэффициент готовности. Поскольку каждый узел кластера - самостоятельная ВМ или ВС, отказ одного из узлов не приводит к потере работоспособности кластера. Во многих системах отказоустойчивость автоматически поддерживается программным обеспечением.
Превосходное соотношение цена/производительность. Кластер любой производительности можно создать, соединяя стандартные «строительные блоки», при этом его стоимость будет ниже, чем у одиночной ВМ с эквивалентной вычислительной мощностью.
В то же время нужно упомянуть и основной недостаток, свойственный кластерным системам, - взаимодействие между узлами кластера занимает гораздо больше времени, чем в других типах ВС. Кластеры больших SMP-систем Огромный потенциал масштабирования, свойственный кластерной архитектуре, делает ее очень перспективным направлением в области создания высокопроизводительных вычислительных систем. Масштабирование возможно как за счет увеличения числа узлов, так и путем применения в качестве узлов не одиночных ВМ, а также хорошо масштабируемых вычислительных систем, обычно SMP-типа. Это направление получило настолько широкое развитие, что было выделено в отдельную группу MIMD-устройств - Constellations. Термин, обусловленный названием одной из первых ВС данного типа - Sun «Constellation», - можно перевести как «созвездие». Constellation-система - это кластер, узлами которого служат SMP-системы. В качестве отличительного признака выступает число процессорных элементов в узле. Изначально принималось, что система относится к Constellation-системам, если число узлов в кластере из SMP-систем меньше или равно количеству процессорных элементов в SMP-системе узла. Для современных систем с большим количеством узлов такое условие не всегда соблюдается, поэтому в настоящее время условием причисления ВС к Constellation-системам служит число ПЭ в узле - оно должно быть больше (равно) 16. Системы, не отвечающие данному условию, считаются классическими кластерными системами. Перспективность Constellation-систем обусловлена удачным сочетанием преимуществ распределенной памяти (возможности наращивания количества узлов) и разделяемой памяти (эффективного доступа множества ПЭ к памяти). Формально структура Constellation-системы полностью соответствует кластерной архитектуре, однако явная направленность на высокую производительность может отражаться в некоторых конструктивных решениях. В качестве примера Constellation-системы можно привести систему Tera 10 фирмы Bull с теоретической пиковой производительностью 58,8 TFLOPS. Система представляет собой кластер из 544 узлов, в котором каждый узел - это SMP-система, образованная 8 2-ядерными процессорами Itanium 2.
0 notes
pvstick · 3 years ago
Text
15. ВС с массовой параллельной обработкой (MPP).
Система с массовой параллельной обработкой (МРР, Massively Parallel Processing) - система, состоящая из однородных вычислительных узлов, обладающих всеми средствами для независимого функционирования. В MPP-архитектуре реализована модель распределенной памяти.
Основные причины появления систем с массовой параллельной обработкой - это, во-первых, необходимость построения ВС с гигантской производительностью и, во-вторых, стремление раздвинуть границы производства ВС в большом диапазоне производительности и стоимости. Для МРР-системы, в которой количество вычислительных узлов может меняться в широких пределах, всегда реально подобрать конфигурацию с заранее заданной вычислительной мощностью и финансовыми вложениями. МРР-система состоит из множества однородных вычислительных узлов, число которых может исчисляться тысячами. Узел содержит полный комплекс устройств, необходимых для независимого функционирования (процессор, память, подсистему ввода/вывода, коммуникационное оборудование), то есть, по сути, является полноценной вычислительной машиной. Узлы объединены коммуникационной сетью с высокой пропускной способностью и малыми задержками. Работу узлов МРР-системы координирует главная управляющая вычислительная машина (хост-компьютер). Это может быть отдельная ВМ, как, например, в Cray T3D, или один из узлов системы. В последнем случае функции главной ВМ возлагаются на какой-то определенный узел ВС (в течение всего сеанса вычислений). В SMP-системе особые полномочия одному из ПЭ придаются только на время загрузки системы, после чего он опять становится равноправным элементом системы. Если система содержит выделенный хост-компьютер, то полноценная операционная система (ОС) функционирует только на нем, а на узлы устанавливается ее урезанный вариант, поддерживающий лишь функции ядра ОС. При отсутствии главной ВМ полноценная ОС устанавливается на каждый узел МРР-системы. Таким образом, каждый узел функционирует под управлением собственной операционной системы. Хост-компьютер (или его заменитель из числа узлов) распределяет задания между множеством подчиненных ему узлов. Схема взаимодействия в общих чертах довольно проста:
хост-компьютер формирует очередь заданий, каждому из которых назначается некоторый уровень приоритета;
по мере освобождения узлов им передаются задания из очереди;
узлы оповещают хост-компьютер о ходе выполнения задания; в частности о завершении выполнения или о потребности в дополнительных ресурсах;
у хост-компьютера имеются средства для контроля работы подчиненных процессоров, в том числе для обнаружения нештатных ситуаций, прерывания выполнения задания в случае появления более приоритетной задачи и т.п.
В некотором приближении имеет смысл считать, что на главной ВМ выполняется ядро операционной системы (планировщик заданий), а на подчиненных ей узлах - приложения. Подчиненность может быть реализована как на аппаратном, так и на программном уровне.
Процессоры в узлах имеют доступ только к своей локальной памяти. Для доступа к памяти другого узла пара узлов (клиент и «сервер») должна обменяться сообщениями. Такой режим исключает возможность конфликтов, возникающих в разделяемой памяти при одновременном обращении к ней со стороны нескольких процессоров. Снимается также проблема когерентности кэш-памяти. Как следствие, появляется возможность наращивания количества процессоров до нескольких тысяч. По этой причине основным признаком, по которому вычислительную систему относят к МРР-типу, часто служит количество процессоров n. Строгой границы не существует, но обычно при n ≥ 128 считается, что это уже МРР. На самом деле, отличительной чертой МРР является ее архитектура, позволяющая добиться высочайшей производительности. Благодаря свойству масштабируемости МРР-системы являются сегодня лидерами по достигнутой производительности.
Распараллеливание вычислений в МРР-системах является трудной задачей. Достаточно сложно найти задания, которые сумели бы эффективно загрузить множество вычислительных узлов. Сегодня не так уж много приложений могут эффективно выполняться на МРР-системе. Появляется также проблема переносимости программ между системами с различной архитектурой. Эффективность распараллеливания во многих случаях сильно зависит от деталей архитектуры МРР-системы, например топологии соединения вычислительных узлов. Самой эффективной была бы топология, в которой любой узел мог бы напрямую связаться с любым другим узлом, но в ВС на основе МРР это технически нереализуемо. Если в первых МРР-компьютерах использовались топологии двухмерной решетки (SGI/Pyramid RM1000) и гиперкуба (nCube), то в современных наиболее масштабируемых и производительных ВС, например семействах XT (Cray) и Blue Gene/P (IBM), применяют трехмерный тор. Диаметр такой сети для различных моделей упомянутых систем лежит в диапазоне от 20 до 60, он существенно влияет на задержки в передаче сообщений. Когда множественные сообщения начинают разделять ресурсы сети, данный эффект (применительно к сообщениям большого размера) становится очевидным. Таким образом, при распределении задач по узлам ВС необходимо учитывать топологию системы.
Время передачи информации от узла к узлу зависит от стартовой задержки и скорости передачи. В любом случае, за время передачи процессорные узлы успевают выполнить много команд, и такое соотношение (быстродействия процессорных узлов и передающей системы), вероятно, будет сохраняться - прогресс в производительности процессоров гораздо весомее, чем в пропускной способности каналов связи. Поэтому инфраструктура каналов связи в МРР-системах является объектом наиболее пристального внимания разработчиков. Слабым местом МРР является хост-компьютер - при выходе его из строя вся система оказывается неработоспособной. Повышение надежности главной ВМ лежит на путях упрощения аппаратуры хост-компьютера и/или ее дублирования. Главные особенности, по которым вычислительную систему причисляют к классу МРР, можно сформулировать следующим образом:
вычислительный узел обладает всеми средствами для независимого функционирования (стандартные микропроцессоры с кэш-памятью, локальная память, подсистема ввода/вывода);
каждый узел содержит сетевой адаптер, используемый для объединения узлов;
реализована модель распределенной памяти - доступ к памяти других узлов обеспечивается путем асинхронного обмена сообщениями;
сеть соединений обычно проектируется под конкретную систему для обеспечения высокой пропускной способности и малых задержек;
система хорошо масштабируется (до тысяч узлов);
работа системы координируется главной ВМ (хост-компьютером) или одним из узлов, выполняющим роль главной ВМ;
на каждом узле установлена операционная система или ее урезанный вариант, если имеется хост-компьютер с полноценной операционной системой;
вычисления представляют собой множество процессов, имеющих отдельные адресные пространства.
0 notes
pvstick · 3 years ago
Text
16. Топологии и метрики сетевых соединений ВС.
По ссылкам: https://studfile.net/preview/3623313/page:5/
0 notes