Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Суперкомпьютеры и системы. Мультипроцессоры. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Министерство образования и науки Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
А.А. МАЛЯВКО, С.А. МЕНЖУЛИН
СУПЕРКОМПЬЮТЕРЫ
И СИСТЕМЫ
Утверждено Редакционно-издательским советом
университета в качестве учебного пособия
НОВОСИБИРСК
2017
1
УДК 004.272.43:004.382.2(075.8) М 219
Рецензенты:
канд. техн. наук, доцент В.Г. Качальский
канд. техн. наук, доцент С.П. Ильиных
Работа подготовлена на кафедре вычислительной техники
для студентов III–IV курсов АВТФ
Малявко А.А.
М 219 Суперкомпьютеры и системы. Мультипроцессоры: учеб-
ное пособие / А.А. Малявко, С.А. Менжулин. – Новосибирск: Изд-во НГТУ, 2017. – 64 с.
ISBN 978-5-7782-3295-2
В пособии содержатся материалы, которые можно использовать при изучении структурной и функциональной организации суперкомпью­теров и параллельных вычислительных систем, а также для освоения принципов их использования. Приводятся основные сведения о клас­сификации архитектур суперкомпьютеров, делается обзор поколений средств вычислительной техники, в результате смены которых появи­лись современные суперкомпьютеры. Описываются основные архитек­турные решения одного из подклассов параллельных вычислительных систем – мультипроцессоров.
Пособие адресовано студентам, обучающимся по направлениям «Информатика и вычислительная техника» и «Программная инжене­рия».
УДК 004.272.43:004.382.2(075.8)
ISBN 978-5-7782-3295-2 © Малявко А.А., Менжулин С.А., 2017
© Новосибирский государственный
технический университет, 2017
2
ВВЕДЕНИЕ
Суперкомпьютеры представляют собой класс средств вычисли­тельной техники, который появился и развивался в результате непре­рывной погони за достижением высокой производительности, позво­лившей решать так называемые «большие задачи», с которыми не справляются обычные широко распространенные компьютеры. Соот­ветственно суперкомпьютер – это вычислительная машина, значитель­но превосходящая по скорости вычислений и другим важным для практических применений параметрам большинство имеющихся в ми­ре компьютеров. Существует обширный круг направлений человече­ской деятельности [1], постоянно нуждающихся во все более мощных вычислительных средствах. Перечень «больших задач» не только не сужается по мере появления все более мощных вычислительных средств, но постоянно растет.
Суперкомпьютеры как уникальные образцы высокопроизводитель­ных вычислительных систем существовали практически с того момен­та, когда был создан более чем один компьютер. Начиная с 1993 года регулярно (дважды в год) составляется список Top-500 – перечень и характеристики наиболее высокопроизводительных компьютеров все­го мира [2]. Анализ совокупности всех списков более чем за 20 лет наглядно свидетельствует о постоянной жесткой конкуренции веду­щих производителей средств вычислительной техники за достижение все более высокой производительности и о том, что вычислительная мощность самых совершенных машин каждое десятилетие увеличива­ется приблизительно на три порядка (в тысячу раз). Суперкомпьютеры играют все более важную роль в науке, технике и производстве.
В настоящем учебном пособии содержатся материалы для изучения структурной и функциональной организации суперкомпьютеров и па­раллельных вычислительных систем и освоения принципов их исполь-
3
зования. В первом разделе приводятся основные сведения о классифи­кации архитектур суперкомпьютеров. Второй раздел представляет со­бой обзор поколений средств вычислительной техники, в результате смены которых появились современные суперкомпьютеры. В третьем разделе описываются основные архитектурные решения таких парал­лельных вычислительных систем, как мультипроцессоры.
4
1. КЛАССИФИКАЦИЯ АРХИТЕКТУР СУПЕРКОМПЬЮТЕРОВ
Под архитектурой средств вычислительной техники принято пони-
мать [3, 4]:
c одной стороны, физическое устройство системы, т. е. состав и способы соединения ее блоков, таких как устройства оперативной па­мяти, процессоры, контроллеры ввода/вывода, устройства внешней памяти, периферийные устройства;
c другой – логическое устройство, т. е. то, как систему «видит» программист: возможные способы ввода исходных данных; способы размещения данных в оперативной памяти и доступа к ним; возмож­ность и способы совмещения во времени различных процессов, веду­щих к решению задачи; способы использования результатов работы этих процессов.
Одной из первых и до сих пор популярной является классифика­ция, предложенная в 1966 году М. Флинном [5, 6], основанная на соче­таниях двух основных потоков – команд и данных, различным образом реализуемых в разных системах. Теоретически возможны четыре вари­анта таких сочетаний.
1. Один поток команд, один поток данных (ОКОД). В оригиналь­ной английской транскрипции – Single Instruction Single Data (SISD). К этой архитектуре относят все однопроцессорные компьютеры, по­строенные по принципам фон Неймана (двоичное представление дан­ных и команд, хранение и данных и команд в одной памяти, двоичная последовательная адресация элементов памяти, программное управле­ние вычислениями, возможность условных переходов в программе).
2. Один поток команд, много потоков данных (ОКМД), соответ­ственно Single Instruction Multiple Data (SIMD). Типичными представи­телями систем этой архитектуры являются графические процессоры и другие вычислительные акселераторы. Вначале системы с такой архи-
5
тектурой развивались как полностью однородные, содержащие одно устройство управления, выбирающее команды из памяти и массив арифметико-логических устройств, обрабатывающих этими командами разные данные. В настоящее время значительно большее распростра­нение получили системы, содержащие несколько относительно неза­висимых друг от друга устройств управления и массивов арифметико­логических устройств.
3. Много потоков команд, один поток данных (МКОД). Англий­ский вариант – Multiple Instruction Single Data (MISD). Относительно реализации этой архитектуры единого мнения нет. Иногда к ней отно­сят конвейерные процессоры и высоконадежные дублированные си­стемы защиты от аппаратных сбоев.
4. Много потоков команд, много потоков данных (МКМД). Ан­глийский вариант – multiple instruction multiple data (MIMD). Это очень обширный класс, включающий в себя мультипроцессоры, массивно­параллельные процессоры, вычислительные кластеры и другие парал­лельные системы. В связи с большой разнородностью вычислительных средств этого класса их иногда делят на подклассы по дополнитель­ным признакам. Наиболее употребительным способом разделения на подклассы является доступность всей памяти системы для составляю­щих ее процессоров: общая или раздельная. Более того, системы с об­щей памятью подразделяются на такие, в которых способ доступа ко всей памяти одинаков для всех процессоров, и на те, в которых обра­щение каждого процессора к «своей» части памяти выполняется проще и быстрее, чем обращение к «чужой» части.
В настоящее время сложилась тенденция совмещения нескольких вариантов организации параллельных вычислений в одном суперком­пьютере (или даже просто в компьютере). Типичный современный су­перкомпьютер – это кластер или массивно-параллельный процессор, содержащий большое количество вычислительных узлов и несколько так называемых инфраструктурных узлов. Инфраструктурные узлы обеспечивают прием заданий и выдачу результатов их обработки, рас­пределение ресурсов для выполнения заданий, хранение обрабатывае­мых данных и т. д. Память кластера распределена, непосредственного доступа к данным, хранящимся в других узлах, никакой вычислитель­ный узел не имеет. Для обеспечения возможности совместно решать большие задачи вычислительные узлы соединены друг с другом не­сколькими коммуникационными сетями: сеть передачи обрабатывае-
6
мых данных, управляющая сеть, сеть синхронизации. Каждый вычис­лительный узел – это обычно многопроцессорный комплекс с много­уровневой общей памятью и, как правило, неунифицированным досту­пом процессоров к разным уровням памяти. Процессоры узла обычно бездисковые многоядерные. Ядра, как правило, конвейерные с вектор­ными расширениями, для них обычно реализован унифицированный доступ к памяти «своего» процессора. Во многих суперкомпьютерах вычислительные узлы оснащены графическими процессорами или вы­числительными акселераторами.
Такая организация наиболее высокопроизводительных компьюте­ров сложилась далеко не сразу и явилась результатом нескольких эта­пов развития – поколений средств ВТ.
7
2. ПОКОЛЕНИЯ СРЕДСТВ
ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
За все время существования вычислительной техники архитектура ведущих по производительности компьютеров многократно изменя­лась [3, 4]. Самые первые компьютеры (первое поколение) представ­ляли собой совокупность устройств ввода и обработки информации, работавших строго последовательно (рис. 2.1):
если работает процессор (тогда он назывался арифметико-логи- ческим устройством), то бездействуют и оперативная память, и внешние устройства;
если оперативная память занята выборкой команд/данных или записью данных, то ожидают и процессор, и все прочие блоки;
на время выполнения любой операции ввода-вывода останавли- ваются и процессор, и оперативная память.
Устройство
управления
Внешнее
устройство
Рис. 2.1. Физическая структура компьютеров первого
Оперативная память (команды и данные)
…
поколения
8
Процессор
Внешнее
устройство
В компьютерах первого поколения логическая структура практи­чески не отличалась от физической структуры. Программисту для ре­шения задачи предоставлялся в распоряжение полностью весь компь­ютер. Задача программирования состояла в том, чтобы по возможности оптимально спланировать и организовать совместную работу всех его блоков при решении каждой конкретной задачи. Вначале программы разрабатывались в двоичном коде, т. е. во внутреннем представлении машинных команд, однако довольно быстро появились ассемблеры – программы, осуществляющие перевод мнемонических обозначений ма­шинных операций и элементов памяти во внутреннее представление.
Довольно скоро были созданы контроллеры памяти и внешних устройств, позволившие реализовать первичные виды параллелизма – совмещения во времени нескольких разных процессов перемещения и обработки информации в компьютерах. Одновременно начали появ­ляться и развиваться типовые программные решения по управлению внешними устройствами, ставшие впоследствии основой современных операционных систем. Программирование алгоритма решения при­кладной задачи процессором стало отделяться от управления функци­онированием всей совокупности устройств, образующих компьютер. Появились первые алгоритмические языки.
Все эти изменения, а также появление полупроводниковой элемент­ной базы взамен электронных ламп привели к возникновению второго поколения компьютеров. Структура компьютеров второго поколения изображена на рис 2.2, она отличается наличием собственных устройств управления (УУ или контроллеров) у каждого отдельного функциональ­ного блока. Именно это позволяет обеспечить параллельную работу раз­личных устройств, т. е. устранить ожидание одними устройствами дру­гих. Это привело к возникновению концепции прерываний – переклю­чений центрального процессора с одной программы на другую в заранее непредсказуемые моменты времени с последующим полным восстанов­лением прерванного вычислительного процесса.
В этой структуре производительность компьютеров ограничивается сверху двумя факторами – временем доступа к оперативной памяти для выборки/записи данных и временем обработки данных в центральном процессоре. Стремление уменьшить долю накладных расходов на обра­щения к медленной оперативной памяти за счет увеличения сложности операций обработки данных в процессоре привело к появлению и ин­тенсивному развитию CISC-архитектуры (от complex instruction set computer) процессора. Устройства управления процессоров стали мик­ропрограммными, машинные операции все более усложнялись.
9
Оперативная память (команды и данные)
Устройство управления памятью
УУ системы
ввода-вывода
УУ ВУ
Внешнее
устройство
Рис. 2.2. Физическая структура компьютеров
…
второго поколения
УУ
процессора
Процессор
УУ ВУ
Внешнее
устройство
Эти факторы совместно с появлением новой элементной базы – ин­тегральных схем малой и средней степени интеграции – породили тре- тье поколение компьютеров. В их физической структуре ничего прин­ципиально нового не появилось, однако существенно изменилось про­граммное обеспечение. Параллелизм прежде всего стал реализовы­ваться на уровне мультизадачности (компьютер квазиодновременно исполняет несколько различных программ) и многопользовательского обслуживания (с компьютером через разные терминалы одновременно взаимодействуют несколько различных пользователей, для каждого из которых исполняется своя программа). Появились эффективные опе­рационные системы, реализующие различные режимы совместного использования компьютеров как для нужд отдельных программистов, так и в производственных процессах: пакетная обработка, разделение времени, реальное время. Интенсивно развивались системы програм­мирования, стали появляться системы управления базами данных и первые пакеты прикладных программ, автоматизирующие решение типовых, но сложных проблем.
Дальнейшее стремление к повышению производительности оди­ночного компьютера привело к появлению нескольких архитектурных решений, в основе каждого из которых лежит тот или иной вид парал­лелизма.
Кэш памяти [3, 4, 7] – высокоскоростное запоминающее не адре- суемое из программы устройство, в котором оседают копии значений
10