Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТМПСК лекции.doc
Скачиваний:
13
Добавлен:
31.08.2019
Размер:
632.32 Кб
Скачать

2.6 Суперкомпьютеры

ЦЕЛЬ – анализ методов повышения производительности МПС, определение суперкомпьютера и их классификация.

Принципы повышения производительности МПС. Необходимость повышения скорости работы МПС связана с появлением всё более сложных задач для удовлетворения потребностей человека. В СРВ такая необходимость порождается потребностью обработки мощных потоков информации от датчиков.

Проблема повышения скорости работы МПС привела к разработке суперкомпьютеров, т.е. компьютеров, имеющих производительность более 100 млн. оп./ сек.

Наиболее очевидным принципом повышения производительности компьютера является увеличение скорости работы его ЦПр. Пока это наиболее массовое направление разработок в создании коммерческих процессоров. Однако скорость работы базируется на физике процессов, проходящих в микросхемах. Наиболее значимыми из них являются:

♦ конечная скорость распространения электрических сигналов (не больше скорости света (300 тыс. км./ сек.));

♦ увеличение тепловых шумов при уменьшении размеров микросхем.

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

Другим направлением повышения производительности МПС является объединение типовых (сравнительно «медленных») микропроцессоров в единое целое – суперкомпьютеры, достигающие сверхвысокой производительности. Направлением решения такой задачи является распараллеливание (параллельная обработка), принцип которой заключается в одновременном решении разных частей одной задачи на разных процессорах, объединенных в единое целое (Потренируйтесь в выделении ключевых слов, в данном описании принципа).

Пример. Пусть нужно решить за T = 100 с. задачу, требующую N = 10.000.000.000 машинных операций. Для этого нужно взять компьютер со скоростью N/T = 10.000.000.000 : 100 = 100.000.000 оп./ сек. Предположим, что таких процессоров нет, но есть процессоры производительностью V = 1.000.000 оп./сек. Тогда если задача допускает распараллеливание, нужно взять 100 таких процессоров, разбить задачу на 100 частей, и они одновременно, проработав каждый над своей частью 100 сек., выполнят всю задачу.

Для решения таких задач используются мультипроцессорные системы. В таких системах, как правило, используется мультипрограммирование (параллельное программирование) - процесс создания программы (и её выполнение), содержащий параллельно выполняемые части программы, т.е. части, которые будут выполняться одновременно на нескольких Пр.

Основные задачи, решаемые в мультипрограммировании: разбиение (или преобразование) задачи на части, с указанием, когда и какую часть задачи должен решать каждый Пр, откуда он получает данные и куда отправляет результаты работы. Основная цель при решении – максимальная загрузка каждого Пр, т.е. минимизация их простоев и работ по решению вспомогательных задач, например, обмена данными между Пр. Естественно не все алгоритмы могут быть распараллелены. Распараллеливание возможно только без нарушения причинно – следственных связей физических законов, реализуемых алгоритмами процессов.

Виды распараллеливания по классификации Флинна. Виды параллелизма основываются на классификации Флинна, которая ведется по двум типам потоков информации в вычислительных системах (рис.2.6.1):

♦ параллелизма потока команд;

♦ параллелизма потока данных.

Рис. 2.6.1 Классификация параллелизма по Флинну

В таблице на рис.2.5.1 на пересечении строк и столбцов указаны абревиатуры классов параллелизма:

ОКОД (одиночный поток команд – одиночный поток данных);

ОКМД (одиночный поток команд – множественный поток данных);

МКМД (множественный поток команд – одиночный поток данных);

МКМД (множественный поток команд – множественный поток данных).

ОКОД представляет собой обычный МП последовательной обработки, который в каждый момент времени, обрабатывает один набор данных с помощью одной команды. МП именно этого класса являются «базовыми кирпичиками» для построения остальных классов МПС.

СУПЕРКОМПЬЮТЕРЫ.

ОКМД (рис.2.6.2) /Для простоты на рис. 2.6.2 – 2.5.5 показаны принципы построения на уровне объединяемых процессоров без остальных компонент мультипроцессорной системы/.

П

О X1 Y1 Р

Т Е

О З

К X2 Y2 П У

И О Л

Т Ь

Д О Т

А К А

Н Xn Yn И Т

Н О

Ы В

Х

Команда

рис.2.6.2 Принцип объединения процессоров машин класса ОКМД

На рис.2.6.2 дан принцип объединения процессоров машин класса ОКМД. Система из N взаимосвязанных процессоров (Пр1, Пр2,…, ПрN) обрабатывает на одной команде n потоков данных (X1, X2,…, Xn), преобразуя их в n потоков результатов (Y1, Y2,…, Yn).

Особенностью класса ОКМД является то, что за одну операцию в N процессорах выполняются:

♦ одинаковые команды;

♦ данные для таких команд в каждом из N процессоров различны.

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

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

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

Круг решаемых задач компьютерами данного типа, задачи со слабо связанными частями, т.к. в них требуется небольшой объем информации между процессорами. Это ограничение резко сужает сферу применения ОКМД.

МКОД. (рис. 2.6.3).

Рис. 2.6.3 Принцип объединения процессоров машин класса МКОД

На рис.2.6.3 дан принцип объединения процессоров машин класса МКОД. На вход X подается поток данных и каждый процессор (Пр1, Пр2,…,ПрN) работает по своему потоку команд, передавая результаты работы на вход следующего процессора, последний из которых и выдает результат Y.

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

Аналогом распараллеливания во времени является идея конвейера, когда при изготовлении изделия оно передается от одного рабочего к другому. Один из них делает некоторую небольшую операцию для изготовления изделия, другой – другую и т.д., а на выходе конвейера появляется готовое изделие. Резкое увеличение скорости в конвейере происходит за счет того, что после того, как i-й рабочий сделал свою операцию и передал изделие дальше, он освобождается и, следовательно, готов принять следующее изделие от (i –1)–го рабочего для того, чтобы сделать свою операцию.

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

При всей привлекательности данного типа обработки информации он имеет существенное ограничение: все операции на всех процессорах должны быть равны по времени срабатывания. Это требование является системным для любого конвейера. Если операции на нем не синхронны по времени, то конвейер не может работать. Например, если i–й рабочий занимает на свою операцию время m, а (i + 1)–й рабочий – время k и m больше k на d (т.е. m = k + d), то (i + 1)-й рабочий, после окончания своей работы через время k, будет простаивать время d.

МКМД. (рис.2.6.4)

П

О Р

Т X1 Е

О Y1 П З

К О У

И Т Л

Xn О Ь

Д Yn К Т

А И А

Н Т

Н О

Ы В

Х K1 Kp

ПОТОКИ КОМАНД

Пр1

Прi

Пр2

Прm

Рис.2.6.4 Принцип объединения процессоров машин класса МКМД

На рис.2.6.4 дан принцип объединения процессоров машин класса МКМД. Класс является гибридом векторной и конвейерной схем и представляет собой матричную схему обработки. Такой мультипроцессор называется матричным, так как структурная схема представлена в виде матрицы и принцип работы также основан на обработке матриц. Каждый процессор за одну операцию обрабатывает один элемент матрицы, таким образом, за одну операцию параллельно обрабатываются все элементы матрицы. Чтобы получить такой же результат при использовании обычного процессора, надо обработать каждый элемент матрицы последовательно, поэтому и время вычисления значительно больше. Матричные процессоры – мощное устройство решения задач, характеризующихся высокой степенью параллелизма.

Машины потока данных (рис.2.6.5).Такие машины являются частным случаем классов Флинна и решают задачи, когда данные не известны, а генерируются в самой машине как промежуточные результаты. Это позволяет использовать описанные выше принципы параллельной обработки для решения громоздких вычислительных задач при отсутствии потока данных извне.

Рис. 2.6.5 Принцип построения машины потока данных

Мультипроцессор реализован по матричной схеме. Здесь потоки промежуточных результатов (данных) X1,…., Xn, получаемые в процессе решения задачи, являются исходными данными для последующих вычислений. Потоки команд K1,…,Km обеспечивают обработку поступающих на мультипроцессор потоков данных, а потоки результатов Y1,…,Yn поступают в ЗУ, чтобы стать потом потоками данных. Здесь процесс вычислений управляется не программой, а потоком данных, получаемых в процессе вычислений. Для этого выделяется свободный Пр той части программы, для которой имеются данные. Такое последовательное применение этого подхода приводит к тому, что заранее уже нельзя сказать, какой обработкой будет занят тот или иной процессор – все решится после его освобождения от предыдущей работы. И ему в соответствии с принципом управления данных поступает задача, для которой к этому моменту будут готовы данные. Так данные (точнее, моменты их появления в вычислительной системе) управляют вычислительным процессом. Чем больше процессоров, тем более эффективно применение этого подхода, т.к. меньше вероятность, что Пр будут простаивать в ожидании данных и данные в ожидании своего процессора.