Сделай Сам Свою Работу на 5

Типы вычислительных систем

Классификация уровней программного параллелизма включает в себя шесть позиций:

• независимые задания,

• отдельные части заданий, программы и подпрограммы,

• циклы и итерации,

• операторы и команды,

• фазы отдельных команд.

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

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

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



Например, раньше только суперЭВМ объединяли в своем составе суперскалярную и векторную (матричную) обработку. Теперь же эти свойства характерны практически для всех современных микропроцессоров различных производителей (Pentium IV фирмы Intel, Athlon - фирмы AMD, Alpha фирмы Dell, Ultra Spark - фирмы Sun, PA-RISC фирмы Hewlett Packard, Power PC фирмы IBM, MIPS фирмы SGI и др.). Суперскалярность обычно присуща RISC-процессорам (Reduced Instruction Set Computing, то есть процессорам с сокращенным набором команд.). Процессоры этого класса имеют значительно больший состав регистров общего назначения - регистров сверхоперативной памяти, что и определяет улучшенные возможности параллельной работы последовательности команд программы. К RISC-архитектуре традиционно относят микропроцессоры фирм AMD и Dell. Упрощенный состав операций микропроцессора обеспечивает более простое построение его ядра и соответственно повышенную скорость работы. В RISC-структурах основу системы команд составляют наиболее употребительные, «короткие» операции типа алгебраического сложения. Сложные операции выполняются как подпрограммы, состоящие из простых операций. Это позволяет значительно упростить внутреннюю структуру процессора, уменьшить фазы дробления конвейерной обработки и увеличить частоту работы конвейера. Но здесь необходимо отметить, что за эффект приходится расплачиваться усложнением процедур обмена данными между регистрами сверхоперативной памяти и кэш-памяти с оперативной памятью. Микропроцессоры фирмы Intel изначально относились к CISC-процессорам (Complete Instruction Set Computing - вычисления с полной системой команд). В компьютерах этой группы большую долю команд составляют команды типа «память-память», в которых операнды и результаты операций находятся в оперативной памяти. Время обращения к памяти и время вычислений соотносится примерно 5:1. В RISC-машинах с большой сверхоперативной памятью большой удельный вес составляют операции «регистр-регистр», и отношение времени обращения к памяти к времени вычислений составляет 2 к 1.

Эволюция микропроцессоров показывает, что постепенно оба направления начинают сближаться, что и в схемах Pentium’ов последних выпусков отчетливо формируется RISC-ядро и расширяется сверхоперативная память. Однако испытания самых мощных микропроцессоров фирм Intel и AMD показали, что ядро Athlon примерно в два раза быстрее, чем у Pentium, но более медленная (примерно вдвое) кэш-память. Суперскалярность затрагивает и организацию конвейера последовательно выполняемых команд: формирование адреса команды, выбор команды, формирование адресов и выбор операндов, выполнение команды, запись результата. Однако примитивная организация памяти компьютеров (память линейна и одномерна) не позволяет организовывать длинные и эффективные конвейеры. Линейные участки современных программ редко превышают 10-15 последовательно выполняемых команд. Поэтому конвейер часто перезапускается, что сильно снижает производительность компьютера в целом.

Многофункциональная обработка также нашла свое место при построении компьютеров. Например, даже в ПК, построенных на микропроцессорах Athlon и Pentium, могут включаться специализированные средства обработки: умножители, делители, сопроцессоры или блоки десятичной арифметики, сопроцессоры обработки графической и аудиоинформации и др. Все они совместно с центральным процессором компьютера создают своеобразные микроконвейеры, целью которых является повышение скорости вычислений.

Другой модификацией классической структуры ЭВМ являются VLIW-компьютеры (Very Large Instruction Word - очень длинное командное слово). Компьютеры этого типа выбирают из памяти суперкоманды, включающие несколько команд программы. Здесь возможны варианты. В самом простом случае это приводит к появлению буфера команд (кэш-команд) с целью ускорения конвейера операций. По этому принципу работает кэш-память 1-го уровня, часть которой используется для ускоренной выборки команд, а другая - для данных. В более сложных случаях в состав суперкоманд стараются включать параллельные команды, несвязанные общими данными. Если процессор ЭВМ при этом построен из функционально независимых устройств (устройства алгебраического сложения, умножения, сопроцессоры), то в этом случае обеспечивается максимальный эффект работы ЭВМ. Но это направление связано с кардинальной перестройкой процессов трансляции и исполнения программ. Здесь значительно усложняются средства автоматизации программирования. VLIW-компьютеры могут выполнять суперскалярную обработку, то есть одновременно выполнять две или более команды. В целом ряде структур суперЭВМ использовалась эта идея. Отметим, что и в Pentium последних выпусков имеется возможность выполнения до десятка команд одновременно. Эта реализация имеет две цели:

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

• одновременное выполнение нескольких команд (независимых по данным и регистрам их хранения), например, команд пересылки и арифметических операций.

Векторная или матричная обработка предполагает обработку одной командой нескольких комплектов операндов. Внутри одной архитектуры начинают просматриваться черты другой. Подобные команды относятся к архитектуре SIMD (Single Instruction - Multiple Data, одиночный поток команд - множественный поток данных). Истоки этой технологии можно обнаружить в операциях работы со строковыми (символьными) данными. Векторные процессоры имелись у всех суперЭВМ. В современных компьютерах, построенных на микропроцессорах, этот вид обработки реализован своеобразно.

Он получил название MMX- и SSE-технологий. Их введение связано с ориентацией на работу с видео-, аудио- и графической информацией. В приложениях с этими типами данных очень велика доля циклов, участков программ, повторяемых многократно. Занимая примерно 10% от объема всего приложения, на их выполнение может уйти до 90% общего времени выполнения. Включение операций, относящихся к SIMD, позволяет значительно ускорить вычисления.

Технология MMX появилась в 1997 году в микропроцессорах Pentium II. В зависимости от контекста она расшифровывается как multi-media extensions (мультимедийные расширения) или как matrix math extensions (матричные математические расширения), что не особенно противоречит друг другу, если учесть, что операции этой группы работают с целыми числами. MMX включает 57 различных команд, позволяющих выполнять следующие операции над несколькими операндами с изменяемыми форматами данных:

арифметические операции типа сложения, вычитания, умножения и комбинация операций умножения и сложения;

сравнение данных на равенство и по величине;

преобразование форматов данных;

логические операции над 64-битовыми операндами;

пересылку данных между регистрами MMX, между регистрами MMX и регистрами CPU (центральным процессором), регистрами MMX и памятью;

очистку и подготовку регистров MMX.

В качестве операндов этих новых операций можно использовать:

упакованные байты (Packed byte) - 8 байтов;

упакованные слова (Packed word) - четыре слова по 16 разрядов;

упакованные двойные слова (Packed doubleword) - два двойных слова по 32 разряда;

учетверенное слово (Quadword) - 64-битное слово.

Таким образом, одна команда MMX может одновременно обрабатывать 1, 2, 4 и 8 операндов различной разрядности. Для выполнения новых операций фирма Intel решила использовать в своих микропроцессорах блок плавающей арифметики FPU (Floating(80-разрядные регистры FPU). Совмещение регистров MMX и FPU создавало ограничения на чередование команд MMX и FPU. Иногда приходилось сохранять, а затем восстанавливать состояния регистров разных приложений. Кроме того, выигрыш от применения операций MMX уменьшался за счет необходимости предварительной упаковки и последующей распаковки данных.

При появлении следующих поколений микросхем Pentium (Pentium III - 1999 г. и т.д.) было проведено обновление технологии MMX. Предварительно оно получило название MMX-2, а затем SSE (Streaming SIMD eXtensions - потоковые расширения SIMD). В новые модели микропроцессоров был введен новый блок из восьми 128-разрядных регистров XMM (eXtended Multi Media). Операции с плавающей точкой аппаратно были полностью отделены от мультимедийных данных. Количество операций SSE было расширено на 70 новых инструкций в дополнение к существующим MMX.

Новый комплекс операций позволял эффективнее работать с данными мультимедиа. Новый формат регистров обеспечивал расширение числа операндов, одновременно обрабатываемых одной командой, и лучше соответствовал 80-битным стандартам MPEG-2, ускоряя вычисления.

В микропроцессоре Pentium IV он получил очередное расширение, получившее название SSE-2. Изменения определялись в основном введением новых типов 128-битных операндов:

упакованных пар вещественных чисел двойной точности;

упакованных целых чисел: 16 байт, 8 слов, 4 двойных слова по 32 разряда, 2 учетверенных слова по 64 разряда.

Все регистры можно использовать как в векторных, так и в скалярных инструкциях. Часть инструкций предназначается для управления эффективной работой кэш-память. При появлении технологии MMX фирмы AMD и Cyrix (Via) лицензировали у Intel, переработали и стали использовать аналогичные решения в своих разработках. Первая реализация в К6-2 микропроцессорах фирмы AMD получила название 3Dnow!. Здесь была введена 21 инструкция для мультимедийных типов данных. В процессорах следующих поколений Athlon и Duron набор инструкций 3Dnow! претерпел изменение и был дополнен еще 5 операциями для обработки чисел с плавающей точкой и 19 операциями, аналогичными наборам SSE.

Увеличение в структурах процессоров числа регистров и объема быстродействующей кэш-памяти первого уровня позволяет осуществить параллельную обработку нескольких независимых друг от друга команд (Explitly Parallel Instruction Computing, EPIC). Выпуск в конце 2002 г. нового процессора Pentium IV с тактовой частотой 3,06 ГГц, поддерживающего Hyper-Threading, то есть реализацию в одном физическом процессоре нескольких логических стал одним из впечатляющих достижений Intel. Это позволяет при задержках обработки одной программы (трейда - нити, подзадачи) переключаться на выполнение команд другой программы. Для осуществления этого потребовалось увеличить число транзисторов ядра микропроцессора на 5%, и получить выигрыш, соизмеримый с 30-процентным увеличением кэш-памяти. Новые микропроцессоры предполагается использовать не только в серверах, но и в настольных ПК.


Заключение

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

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

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

В многомашинных ВС диспетчерские функции могут решаться на централизованной или децентрализованной основе. Связь машин обычно устанавливается в порядке подчиненности: «главная ЭВМ - вспомогательная ЭВМ». Например, в пакете Norton Commander имеется возможность установить подобную связь: Master - Slave.

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

Для обеспечения эффективной работы многопроцессорных систем их операционные системы специализируют на следующие типовые методы взаимодействия процессоров:

• «ведущий - ведомый;

• симметричная или однородная обработка во всех процессорах;

• раздельная независимая работа процессоров по обработке заданий.

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

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



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.