Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна





НазваниеАрхитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна
страница4/11
Дата публикации26.08.2013
Размер1.52 Mb.
ТипУчебный курс
100-bal.ru > Информатика > Учебный курс
1   2   3   4   5   6   7   8   9   10   11

Организация когерентности многоуровневой иерархической памяти.

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

Для обеспечения когерентности кэшей существует несколько возможностей:

  • Использовать механизм отслеживания шинных запросов (snoopy bus protocol), в котором кэши отслеживают переменные, передаваемые к любому из центральных процессоров и, при необходимости, модифицируют собственные копии таких переменных.

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

Наиболее известными системами архитектуры cc-NUMA являются: HP 9000 V-class в SCA-конфигурациях, SGI Origin3000, Sun HPC 15000, IBM/Sequent NUMA-Q 2000. На сегодня максимальное число процессоров в cc-NUMA-системах может превышать 1000 (серия Origin3000). Обычно вся система работает под управлением единой ОС, как в SMP. Возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС. При работе с NUMA-системами, так же, как с SMP, используют так называемую парадигму программирования с общей памятью (shared memory paradigm).

Лекция №4

Архитектура вычислительных систем. PVP-архитектура. Кластерная архитектура.

PVP (Parallel Vector Process) - параллельная архитектура с векторными процессорами.
Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров (1-16) работают одновременно с общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько узлов могут быть объединены с помощью коммутатора (аналогично MPP). Поскольку передача данных в векторном формате осуществляется намного быстрее, чем в скалярном (максимальная скорость может составлять 64 Гбайт/с, что на 2 порядка быстрее, чем в скалярных машинах), то проблема взаимодействия между потоками данных при распараллеливании становится несущественной. И то, что плохо распараллеливается на скалярных машинах, хорошо распараллеливается на векторных. Таким образом, системы PVP-архитектуры могут являться машинами общего назначения (general purpose systems). Однако, поскольку векторные процессоры весьма дорого стоят, эти машины не могут быть общедоступными.


Наиболее популярны три машины PVP-архитектуры:

1. CRAY X1, SMP-архитектура. Пиковая производительность системы в стандартной конфигурации может составлять десятки терафлопс.

2. NEC SX-6, NUMA-архитектура. Пиковая производительность системы может достигать 8 Тфлопс, производительность одного процессора составляет 9,6 Гфлопс. Система масштабируется с единым образом операционной системы до 512 процессоров.

3. Fujitsu-VPP5000 (vector parallel processing), MPP-архитектура. Производительность одного процессора составляет 9.6 Гфлопс, пиковая производительность системы может достигать 1249 Гфлопс, максимальная емкость памяти - 8 Тбайт. Система масштабируется до 512 узлов.

Парадигма программирования на PVP-системах предусматривает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением).

На практике рекомендуется выполнять следующие процедуры:

  • производить векторизацию вручную, чтобы перевести задачу в матричную форму. При этом, в соответствии с длиной вектора, размеры матрицы должны быть кратны 128 или 256.

  • работать с векторами в виртуальном пространстве, разлагая искомую функцию в ряд и оставляя число членов ряда, кратное 128 или 256.

За счет большой физической памяти (доли терабайта) даже плохо векторизуемые задачи на PVP-системах решаются быстрее на машинах со скалярными процессорами.

Кластер представляет собой два или более компьютеров (часто называемых узлами), объединяемые при помощи сетевых технологий на базе шинной архитектуры или коммутатора и предстающие перед пользователями в качестве единого информационно-вычислительного ресурса. В качестве узлов кластера могут быть выбраны серверы, рабочие станции и даже обычные персональные компьютеры. Узел характеризуется тем, что на нем работает единственная копия операционной системы. Преимущество кластеризации для повышения работоспособности становится очевидным в случае сбоя какого-либо узла: при этом другой узел кластера может взять на себя нагрузку неисправного узла, и пользователи не заметят прерывания в доступе. Возможности масштабируемости кластеров позволяют многократно увеличивать производительность приложений для большего числа пользователей технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. Такие суперкомпьютерные системы являются самыми дешевыми, поскольку собираются на базе стандартных комплектующих элементов ("off the shelf"), процессоров, коммутаторов, дисков и внешних устройств.

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

Типы кластеров

Условное деление на классы предложено Язеком Радаевским и Дугласом Эдлайном:

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

Класс II. Система имеет эксклюзивные или не слишком широко распространенные детали. Таким образом можно достичь очень хорошей производительности, но при более высокой стоимости.

Как уже отмечалось, кластеры могут существовать в различных конфигурациях. Наиболее распространенными типами кластеров являются:

  • Системы высокой надежности.

  • Системы для высокопроизводительных вычислений.

  • Многопоточные системы.

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

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

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

В 1994 году Томас Стерлинг (Sterling) и Дон Беккер (Becker) создали 16-узловой кластер из процессоров Intel DX4, соединенных сетью 10 Мбит/с Ethernet с дублированием каналов. Они назвали его «Beowulf» по названию старинной эпической поэмы. Кластер возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проектно-конструкторские работы быстро превратились в то, что известно сейчас как проект Beowulf. Проект стал основой общего подхода к построению параллельных кластерных компьютеров, он описывает многопроцессорную архитектуру, которая может с успехом использоваться для параллельных вычислений. Beowulf-кластер, как правило, является системой, состоящей из одного серверного узла (который обычно называется головным), а также одного или нескольких подчиненных (вычислительных) узлов, соединенных посредством стандартной компьютерной сети. Система строится с использованием стандартных аппаратных компонентов, таких как ПК, запускаемые под Linux, стандартные сетевые адаптеры (например, Ethernet) и коммутаторы. Нет особого программного пакета, называемого «Beowulf». Вместо этого имеется несколько кусков программного обеспечения, которые многие пользователи нашли пригодными для построения кластеров Beowulf. Beowulf использует такие программные продукты как операционная система Linux, системы передачи сообщений PVM, MPI, системы управления очередями заданий и другие стандартные продукты. Серверный узел контролирует весь кластер и обслуживает файлы, направляемые к клиентским узлам.

Проблемы выполнения сети связи процессоров в кластерной системе ?

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

Рассмотрим для примера задачу построения симметричной 16-процессорной системы, в которой все процессоры были бы равноправны. Наиболее естественным представляется соединение в виде плоской решетки, где внешние концы используются для подсоединения внешних устройств.

При таком типе соединения максимальное расстояние между процессорами окажется равным 6 (количество связей между процессорами, отделяющих самый ближний процессор от самого дальнего). Теория же показывает, что если в системе максимальное расстояние между процессорами больше 4, то такая система не может работать эффективно. Поэтому при соединении 16 процессоров друг с другом плоская схема является нецелесообразной. Для получения более компактной конфигурации необходимо решить задачу о нахождении фигуры, имеющей максимальный объем при минимальной площади поверхности. В трехмерном пространстве таким свойством обладает шар. Но поскольку нам необходимо построить узловую систему, вместо шара приходится использовать куб (если число процессоров равно 8) или гиперкуб, если число процессоров больше 8. Размерность гиперкуба будет определяться в зависимости от числа процессоров, которые необходимо соединить. Так, для соединения 16 процессоров потребуется четырехмерный гиперкуб. Для его построения следует взять обычный трехмерный куб, сдвинуть в нужном направлении и, соединив вершины, получить гиперкуб размером 4.

Архитектура гиперкуба является второй по эффективности, но самой наглядной. Используются и другие топологии сетей связи: трехмерный тор, "кольцо", "звезда" и другие.

Наиболее эффективной является архитектура с топологией "толстого дерева" (fat-tree). Архитектура "fat-tree" (hypertree) была предложена Лейзерсоном (Charles E. Leiserson) в 1985 году. Процессоры локализованы в листьях дерева, в то время как внутренние узлы дерева скомпонованы во внутреннюю сеть. Поддеревья могут общаться между собой, не затрагивая более высоких уровней сети.

Поскольку способ соединения процессоров друг с другом больше влияет на производительность кластера, чем тип используемых в ней процессоров, то может оказаться более целесообразным создать систему из большего числа дешевых компьютеров, чем из меньшего числа дорогих. В кластерах, как правило, используются операционные системы, стандартные для рабочих станций, чаще всего свободно распространяемые (Linux, FreeBSD), вместе со специальными средствами поддержки параллельного программирования и балансировки нагрузки. При работе с кластерами, так же, как и с MPP-системами, используют так называемую Massive Passing Programming Paradigm - парадигму программирования с передачей данных (чаще всего - MPI). Умеренная цена подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.

Лекция №5

Обзор современных центральных процессоров

Архитектуры современных процессоров

Суперскалярные процессоры

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

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

Примером компьютера с суперскалярным процессором является IBM RISC/6000. Тактовая частота процессора у ЭВМ была 62,5 МГц, а быстродействие системы на вычислительных тестах достигало 104 Мфлоп/с. Суперскалярный процессор не требует специальных векторизующих компиляторов, хотя компилятор должен в этом случае учитывать особенности архитектуры.

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

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

Конвейерность

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

система выполняет повторяющуюся операцию;

эта операция может быть разделена на независимые части, степень перекрытия которых невелика;

трудоёмкость подопераций примерно одинакова.

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

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

Значительное преимущество конвейерной обработки перед последовательной имеет место в идеальном конвейере, в котором отсутствуют конфликты и все команды выполняются друг за другом без перезагрузки конвейера. Наличие конфликтов снижает реальную производительность конвейера по сравнению с идеальным случаем. Конфликты — это такие ситуации в конвейерной обработке, которые препятствуют выполнению очередной команды в предназначенном для нее такте. Конфликты делятся на три группы:

структурные, по управлению, по данным.

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

Эту ситуацию можно было бы ликвидировать двумя способами. Первый предполагает увеличение времени такта до такой величины, которая позволила бы все этапы любой команды выполнять за один такт. Однако при этом существенно снижается эффект конвейерной обработки, так как все этапы всех команд будут выполняться значительно дольше, в то время как обычно нескольких тактов требует выполнение лишь отдельных этапов очень небольшого количества команд. Второй способ предполагает использование таких аппаратных решений, которые позволили бы значительно снизить затраты времени на выполнение данного этапа (например, использовать матричные схемы умножения). Но это приведет к усложнению схемы процессора и невозможности реализации на этой БИС других, функционально более важных, узлов.

Конвейерная обработка подразумевает, что следующая команда загружается в процессор и начинает выполняться, не дожидаясь окончания выполнения предыдущих команд. Одновременно в процессе выполнения может находиться до 20 команд, находящихся на разных стадиях их реализации. Благодаря разбиению выполнения каждой команды на более мелкие этапы (этапы подготовки к исполнению, переупорядоченного исполнения и последовательного завершения, в каждом из них также несколько ступеней) исполнение каждого из них аппаратно ускорено. Это позволяет практически беспрепятственно увеличивать частоту процессора.

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

Следует отметить, что намечается явная тенденция к программному распараллеливанию вычислений, то есть нагрузка в значительной части переносится с аппаратной поддержки на компилятор (так называемая EPIC — «концепция реализации параллелизма на уровне компилятора»). Согласно этой концепции строятся архитектуры, принципы которых, во-первых, позволяют во время исполнения отказаться от проверки зависимостей между операциями, которые компилятор уже объявил как независимые, а во-вторых, отказаться от сложной логики внеочередного исполнения операций, полагаясь на порядок выдачи команд, определённый компилятором. В отличие от программ для суперскалярных процессоров, коды для таких архитектур предлагают точный план того, как процессор будет выполнять программу. Код совершенно определённо указывает, когда будет выполнена каждая операция, какие функциональные устройства будут работать, и какие регистры будут содержать операнды. За вероятностное выполнение условных переходов также отвечает компилятор, указывая процессору наиболее вероятную, по его мнению, ветвь для упреждающего исполнения переходов. Эти и некоторые другие принципы функционирования таких архитектур позволяют создавать относительно простые по схемотехнике процессоры, которые работают быстрее своих суперскалярных аналогов (но только на определённых классах задач). По мере внедрения таких архитектур, по-видимому, потеряет смысл сравнение производительности процессоров по их тактовой частоте, на первый план здесь выйдет эффективность компилятора.

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

Наилучший эффект дает сочетание в архитектуре двух этих концепций — суперскалярной (распараллеливание на аппаратном уровне) и EPIC (распараллеливание на программном уровне). Поэтому и все усилия разработчиков сейчас направлены на то, чтобы оптимально соотнести эти подходы.

2.1.3 Векторная обработка данных

Векторный процессор умеет обрабатывать одной командой не одно единственное значение, а сразу массив (вектор) значений. Пусть A1, A2 и P — это три массива, имеющие одинаковую размерность и одинаковую длину, и имеется оператор

P = A1 + A2

Векторный процессор за один цикл выполнения команды выполнит попарное сложение элементов массивов A1 и A2и присвоит полученные значения соответствующим элементам массива P. Каждый операнд при этом хранится в особом, векторном регистре. Обычному, последовательному процессору пришлось бы несколько раз выполнять операцию сложения элементов двух массивов. Векторный процессор выполняет лишь одну команду. Разумеется, реализация такой команды будет более сложной.

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

Следует заметить, что именно векторные ЭВМ были первыми высокопроизводительными компьютерами — суперкомпьютерами.

Векторные компьютеры различаются тем, как операнды передаются командам процессора. Здесь можно выделить следующие основные схемы:

Из памяти в память. В этом случае операнды извлекаются из оперативной памяти, загружаются в арифметическое устройство и результат возвращается в оперативную память.

Из регистра в регистр. Операнды вначале загружаются в векторные регистры, затем операнд передается в арифметическое устройство и результат возвращается в один из векторных регистров.

Преимущество первой схемы заключается в том, что она даёт возможность работать с векторами произвольной длины, тогда как во втором случае требуется разбиение длинных векторов на части, длина которых соответствует возможностям векторного регистра. С другой стороны, в первом случае имеется определенное время запуска между инициализацией команды и появлением в конвейере первого результата. Если конвейер уже загружен, результат на его выходе будет получаться в каждом такте. Примером ЭВМ с такой архитектурой являются компьютеры серии CYBER 200, время запуска у которых составляло до 100 тактов. Это очень большая величина, даже при работе с векторами длиной 100 элементов, вышеупомянутые компьютеры достигали лишь половины от своей максимально возможной производительности, и это их в конце концов и погубило.

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

Векторный процессор выполняет математические операции сразу над всеми элементами векторного регистра. Если число элементов регистра равно 128, то операция над всеми 128 числами выполняется в векторном режиме так же быстро, как над одним числом в скалярном режиме. Это и есть теоретический предел повышения быстродействия программ при их векторизации. Однако необходимо учесть, что любая векторная операция требует больше машинных тактов для своего исполнения, чем такая же скалярная операция. С другой стороны циклическое N-кратное исполнение скалярной команды для обработки массива требует исполнения еще нескольких команд, организующих собственно цикл. В результате исполнение векторной команды может оказаться эффективнее более, чем в 128 раз. Для простоты мы будем считать, что предельное повышение эффективности векторных программ равно числу элементов в векторном регистре ЭВМ. Чаще всего это 128 или 256.

В качестве примера опишем векторный процессор, используемый в суперкомпьютере японской фирмы NEC SX-8, который изображен на рисунках 2.1. и 2.2. Векторное устройство процессора серии SX-8 состоит из векторных регистров и арифметических конвейеров для умножения, деления, сложения и вычисления квадратного корня. Векторный конвейер вычисления квадратного корня имеется только в архитектуре процессора SX-8. Каждый арифметический конвейер, реализованный на аппаратном уровне, может выполнять четыре операции за такт.

Векторный процессор (векторное и скалярное устройства) интегрирован в одной микросхеме по 90 нанометровой технологии. Конвейеры векторного устройства — центральная часть векторного процессора — действуют с тактовой частотой в 2 ГГц, что является удвоенной скоростью SX-6 и реализуют пиковую векторную производительность в 16 Гфлоп на процессор. При этом аппаратная поддержка операции извлечения квадратного корня дало увеличение производительности в шесть раз по сравнению со скоростью системы SX-6.



Рисунок 1 — Векторный процессор.






Рисунок 2 — Центральное процессорное устройство.


Многопоточность

Многопотоковый режим, многопотоковость. с точки зрения архитектуры процессора — это способность процессора исполнять несколько задач (потоков) параллельно. Цель введения этого режима состоит в снижении времени ожидания процессором завершения операций, например записи в память. В это время он исполняет команду из другого потока.

Еще несколько лет назад в силу технологических ограничений все многопотоковые процессоры строились на базе одного ядра, и такая многопотоковость была названа «одновременной» — SMT (Simultaneous MultiThreading). А с появлением многоядерных процессоров появился альтернативный тип многопотоковости — CMP (Chip MultiProcessors).

Переход от простых однопотоковых процессоров к логически более сложным многопотоковым сопряжён с преодолением специфических, не встречавшихся прежде сложностей. Функционирование устройства, где процесс исполнения разбивается на агенты или потоки (threads — нити), отличает две особенности:

Принцип недетерминированности (indetermination principle). В многопотоковом приложении процесс разбивается на взаимодействующие между собой потоки-агенты без заранее оговоренной определенности;

Принцип неизвестности (uncertainty principle). То, как именно ресурсы будут распределяться между потоками-агентами, также неизвестно заранее.

В самом общем виде многопотоковый процессор состоит из двух типов примитивов. Первый тип — это ресурс, поддерживающий исполнение потока, который называют mutex (от Mutual Exclusion — взаимное исключение), а второй — события. То, как физически реализован тот или иной mutex, зависит от выбранной схемы — SMT или CMP. В любом случае выполнение процесса сводится к тому, что очередной поток захватывает mutex на время своего исполнения, а затем освобождает его. Если mutex занят одним потоком, то второй поток не может его заполучить. Конкретная процедура передачи полномочий на обладание mutex от одного потока другому может иметь случайный характер; она зависит от реализации управления, например, в определенной операционной системе. В любом случае управление должно быть построено так, чтобы ресурсы, состоящие из mutex, распределялись корректно и подавлялся эффект неопределенности.

События — это объекты (event), сигнализирующие об изменении во внешней среде. Они могут переводить себя в режим ожидания до наступления иного события или сообщать о своем состоянии другому событию. Таким способом события могут взаимодействовать между собой, и при этом должна обеспечиваться преемственность данных между событиями. Ожидающий исполнения агент необходимо информировать о готовности данных для него. И как в распределении mutex должен подавляться эффект неопределенности, так при работе с событиями должен подавляться эффект неизвестности. Впервые схема SMT была реализована в процессорах Compaq Alpha 21464, а также в Intel Xeon MP и Itanium.

Лекция №6

Кластерные многоядерные процессоры

В данном разделе особое внимание будет уделено классификации многоядерных процессоров, предназначенных для вычислений на кластерах. Будет дан сравнительный анализ технологий построения многоядерных процессоров, применяемых различными фирмами-изготовителями, а также обзор характерных представителей данного класса процессоров.

История развития кластерных многоядерных процессоров

В настоящее время очевидна тенденция перехода на многоядерные чипы. На рынке серверных чипов это явно видно. Первыми появились двухъядерные RISC-процессоры — у Sun Microsystems (UltraSPARC IV), IBM представила двухъядерный PowerPC, затем компания AMD представила двухъядерные чипы Opteron, а вслед за ними и Intel приступила к выпуску многоядерных процессоров.

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

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

Идея построения многоядерных микропроцессоров является развитием идеи построения кластеров, но в данном случае на уровне процессорного ядра.

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

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

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

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

Вместе с тем, Intel и AMD давно уже работу над выпуском многоядерных процессоров. AMD ещё в 1999 году объявила о реализации поддержки в ней многоядерных процессоров. Использование архитектуры Direct Connect фирмы AMD позволяет размещать на одном кремниевом кристалле до четырёх процессорных ядер, а технология HyperTransport (HT) фирмы Intel — соединять напрямую их между собой.

Преимущества от использования технологии НТ очевидны, если сравнить время отклика многозадачной системы на базе Pentium 4 с поддержкой НТ и Athlon. Результат будет далеко не в пользу последнего.

Согласно подсчетам Intel, многоядерные архитектуры за четыре года позволят увеличить производительность процессоров компании в 10 раз.

Архитектуры и технологии построения многоядерных процессоров
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconВыпускной вечер 2004г
Владимир Жириновский, Ирина Хакамада и Владимир Владимирович Путин с супругой …не приехали. Но только сегодня и только для вас у...
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconПрокопьев Валерий Викторович Методист: Гончаров Владимир Борисович...
Образовательная – дать преставление о составе программного обеспечения компьютера
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconРеферат
Вячеслав Геннадьевич, Богославский Дмитрий Дмитриевич, Бодягин Владимир Михайлович, Бодягин Андрей Владимирович, Волков Сергей Денисович,...
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconК статьям журнала «Компьютерная оптика»
Юрий Владимирович Микляев3 (доцент, e-mail: ), Владимир Евгеньевич Дмитриенко4 (ведущий научный сотрудник, e-mail: ), Владимир Сергеевич...
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconПрезидентская программа подготовки управленческих кадров для организаций...
Авторский коллектив: Владилен Быстров, Александр Кобышев, Евгений Кобышев, Александр Козлов, Владимир Лысков-Штреве
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconУрок на тему: «Ансамблевое музицирование в классе баяна, аккордеона»
Проводит лауреат Международных конкурсов, преподаватель рам им. Гнесиных селиванов александр Владимирович
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconДиректор школы: Передвигин Владимир Владимирович
Приоритетные цели и задачи развития школы, деятельность по их решению в отчетный период 20
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconПрограмма дисциплины Безопасность жизнедеятельности для направления...
Автор программы: к т н., доцент кафедры физического воспитания Полшков Александр Владимирович
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconОбщественного объединения «белорусский республиканский союз молодежи»...
Координатор конференции – Председатель Совета молодых ученых нан беларуси Казбанов Владимир Владимирович
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconКомаров владимир борисович (10. 05. 1890 08. 10. 1971) Комаров Владимир...
Цели и задачи дисциплины: Дать студентам представление о принципах формирования компьютерного изображения, работы с фото и видео...
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconУрок физики в 7 классе по теме «Давление газов, жидкостей и твердых тел»
Разработал учитель физики мбоу «Ладомировская сош» Ломакин Александр Владимирович
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconБоб Фьюсел Александр Владимирович Лихач Супермозг. Тренинг памяти, внимания и речи
...
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconВладимира Владимировича Набокова 1899-1977
Набо́ков владимир Владимирович (12 (24) апреля 1899, Петербург — 3 июля 1977, Монтре, Швейцария), русский и американский писатель;...
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconАлександр Александрович Бушков Владимир Путин. Полковник, ставший капитаном
I. порядок применения правил землепользования и застройки городского округа лыткарино и внесения в них изменений
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconТема: Разработка автоматизированного программного комплекса управления...
Омский институт водного транспорта (филиал) фбоу впо «Новосибирская государственная академия водного транспорта»
Архитектуры многопроцессорных вычислительных систем Авторы: Богданов Александр Владимирович Дегтярев Александр Борисович Корхов Владимир Владиславович Мареев Владимир Владимирович Станкова Елена Николаевна iconПрограмма по формированию навыков безопасного поведения на дорогах...
Аббакумов Сергей, Чехлов Александр, Шайдуров Владимир, мбоу инженерный лицей нгту, г. Новосибирск


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск