Автор работы: Пользователь скрыл имя, 23 Апреля 2014 в 00:03, лекция
Целями курса являются:
усвоение классических основ ВС, отражающих накопленный отечественный и мировой опыт конструирования вычислительных машин и систем.
Показать последние научные и практические достижения, характеризующие динамику развития аппаратных средств компьютерной техники.
Дисциплина «Вычислительные системы» тесно связана со следующими курсами:
Цифровые ЭВМ;
Архитектура ЭВМ.
План лекции.
Цель и задачи курса, связь его с другими дисциплинами.
Краткие исторические сведения.
Понятие вычислительной системы и ее отличие от вычислительной ма-шины.
Уровни параллелизма.
Метрики параллельных вычислений.
Классификация параллельных вычислительных систем.
Конец 70-х и начало 80-х годов – это время появления и широкого распро-странения микропроцессоров и микроЭВМ.
Значительным событием в области архитектуры ВМ стала идея вычисли-тельной машины с сокращенным набором команд (RISC, Redused Instruction Set Computer), выдвинутая в 1975 году и впервые реализованная в 1980 году. Суть концепции RISC заключается в сведении набора команд ВМ к наиболее упот-ребительным простейшим командам. Это позволяет упростить схемотехнику процессора и добиться резкого сокращения времени выполнения каждой из «простых» команд. Более сложные команды реализуются как подпрограммы, составленные из быстрых «простых» команд.
В ВМ и ВС четвертого поколения основная память строится из полупро-водниковых ЗУ. До этого их использование ограничивалось регистрами и кэш-памятью.
В сфере высокопроизводительных вычислений доминируют векторные ВС, более известные как суперЭВМ. На замену большим ВМ, работающим в режиме разделения времени, приходят индивидуальные микроЭВМ и рабочие станции.
Главное событие в области программного обеспечения – появление языков программирования сверхвысокого уровня FP (functional programming) и Пролог (programming in logic). Эти языки ориентированы на декларативный стиль программирования, в отличие от Паскаля, С, Фортрана и т.д. – языков импе-ративного стиля программирования. При декларативном стиле программист дает математическое описание того, что должно быть вычислено, а детали того, каким образом это должно быть сделано, возлагаются на компилятор и операционную систему. Такие языки позволяют эффективно использовать ВС с массовым параллелизмом, содержащими более чем 1000 процессоров. В компиляторах для ВС четвертого поколения начинают применяться сложные методы оптимизации кода.
Пятое поколение (1984 – 1990)
Главными поводами для выделения вычислительных систем второй поло-вины 80-х годов в самостоятельное поколение стали стремительное развитие ВС с сотнями процессоров и прогресс в области параллельных вычислений. Ранее параллелизм вычислений выражался лишь в виде конвейеризации, векторной обработки и распределения работы между небольшим числом процессоров. Вы-числительные системы пятого поколения обеспечивают такое распределение задач по множеству процессоров, при котором каждый из процессоров может выполнять задачу отдельного пользователя.
В рамках пятого поколения в архитектуре вычислительных систем сформи-ровались два принципиально различных подхода: архитектура с совместно ис-пользуемой памятью и архитектура с распределенной памятью.
Характерным примером первого подхода служит система Sequent Balance 8000, в которой имеется большая основная память, разделяемая 20 процессорами. Помимо этого, каждый процессор оснащен собственной кэш-памятью. Каждый из процессоров может выполнять задачу своего пользователя, но при этом в составе программного обеспечения имеется библиотека подпрограмм, позволяю-щая программисту привлекать для решения своей задачи более одного процес-сора. Система широко использовалась для исследования параллельных алгорит-мов и техники программирования.
Второе направления развития систем пятого поколения – системы с рас-пределенной памятью, где каждый процессор обладает своим модулем памяти, а связь между процессорами обеспечивается сетью взаимосвязей. Примером такой ВС служит система iPSC-1 фирмы Intel, более известная как «гиперкуб». Мак-симальный вариант системы включал 128 процессоров. Применение распреде-ленной памяти позволило устранить ограничения в пропускной способности тракта «процессор-память», но потенциальным «узким местом» здесь становится сеть взаимосвязей.
Третье направление в архитектуре вычислительных систем пятого поко-ления – это ВС, в которых несколько тысяч достаточно простых процессоров работают под управлением единого устройства управления и одновременно производят одну и ту же операцию, но каждый над своими данными. К этому классу можно отнести Connection Machine фирмы Thinking Machines Inc. и MP-1 фирмы MasPar Inc.
В научных вычислениях по-прежнему ведущую роль играют векторные суперЭВМ. Многие производители предлагают более эффективные варианты с несколькими векторными процессорами, но число таких процессоров обычно невелико (от 2 до 8).
RISC – архитектура выходит из
стадии экспериментов и
В этом периоде стремительно развивались технологии глобальных и ло-кальных компьютерных сетей. Это стимулировало изменения в технологиях работы индивидуальных пользователей. В противовес мощным универсальным ВС, работающим в режиме разделения времени, пользователи всё более отдают предпочтение подключенным к сети индивидуальным рабочим станциям. Такой подход позволяет для решения небольших задач задействовать индивидуальную машину, а при необходимости в большой вычислительной мощности обратиться к ресурсам подсоединенных к той же сети мощных файл-серверов или суперЭВМ.
Шестое поколение (1990 – )
Поводом для начала отсчета нового поколения стали значительные успехи в области параллельных вычислений, связанные с широким распространением ВС с массовым параллелизмом (MPP). По вычислительной мощности такие системы успешно конкурируют с суперЭВМ. Их производительность измеряется уже в TFLOPS (1 TFLOPS соответствует 1012 операциям с плавающей запятой в се-кунду).
Вторая характерная черта шестого поколения – резко возросший уровень рабочих станций. В процессорах новых рабочих станций успешно совмещаются RISC-архитектура, конвейеризация и параллельная обработка. Некоторые рабочие станции по производительности сопоставимы с суперЭВМ четвертого поколения.
Третьей приметой шестого поколения в эволюции ВТ стал взрывной рост глобальных сетей.
Существует несколько определений понятия «вычислительная машина».
Вычислительная машина – это:
Наиболее общим определением понятия «вычислительная машина» явля-ется следующее:
Вычислительная машина – это комплекс технических и программных средств, предназначенный для автоматизации подготовки и решения задач поль-зователей.
В свою очередь, вычислительная система – это совокупность взаимосвя-занных и взаимодействующих процессоров или вычислительных машин, пери-ферийного оборудования и программного обеспечения, предназначенная для подготовки и решения задач пользователей.
Таким образом, формально отличие ВС от ВМ выражается в количестве вычислителей. Множественность вычислителей позволяет реализовать в ВС параллельную обработку.
Методы и средства реализации параллелизма зависят от того, на каком уровне он должен обеспечиваться. Обычно различают следующие уровни па-раллелизма:
С уровнем параллелизма тесно связано понятие гранулярности. Грануляр-ность – это мера отношения объема вычислений, выполненных в параллельной задаче, к объему коммуникаций (для обмена сообщениями). Степень грануляр-ности варьируется от мелкозернистой до крупнозернистой.
Крупнозернистый параллелизм (coarse grained): каждое параллельное вычис-ление достаточно независимо от остальных, причем требуется относительно редкий обмен информацией между отдельными вычислениями. Единицами рас-параллеливания являются большие и независимые программы, включающие ты-сячи команд. Это уровень параллелизма обеспечивается операционной системой.
Среднезернистый параллелизм (medium grained): единицами распараллели-вания являются вызываемые процедуры, включающие в себя сотни команд. Обычно организуется как программистом, так и компилятором.
Мелкозернистый параллелизм (fine grained): каждое параллельное вычис-ление достаточно мало и элементарно, составляется из десятков команд. Обычно распараллеливаемыми единицами являются элементы выражения или отдельные итерации цикла, имеющие небольшие зависимости по данным. Характерная осо-бенность мелкозернистого параллелизма заключается в приблизительном равен-стве интенсивности вычислений и обмена данными. Этот уровень параллелизма используется распараллеливающим (векторизирующим) компилятором.
Эффективное параллельное исполнение требует искусного баланса между степенью гранулярности программ и величиной коммуникационной задержки, возникающей между разными гранулами. Если коммуникационная задержка минимальна, то наилучшую производительность обеспечивает мелкоструктурное разбиение программы.
Параллелизм уровня задания
Параллелизм уровня задания возможен между независимыми заданиями или их фазами. Основным средством реализации параллелизма на уровне заданий служат многопроцессорные и многомашинные ВС, в которых задания рас-пределяются по отдельным процессорам или машинам. Однако если рассмат-ривать каждое задание как совокупность независимых задач, то реализация данного уровня возможна и в однопроцессорной ВС. В этом случае несколько заданий могут одновременно находиться в основной памяти ВС при условии, что в каждый момент выполняется только одно из них. Когда выполняемое задание требует ввода/вывода, такая операция запускается, а до ее завершения остальные ресурсы ВС передаются другому заданию. По завершении ввода/вывода ресурсы ВС возвращаются заданию, инициировавшему эту операцию. Здесь параллелизм обеспечивается за счет того, что центральный процессор (ЦП) и система ввода/вывода работают одновременно, обслуживая разные задания.
Параллелизм возникает также, когда у независимых заданий, выполняемых в ВС, имеются несколько фаз (например, вычисление, запись в графический буфер, ввод/вывод на диск или ленту, системные вызовы).
Параллелизм уровня программ
О параллелизме на уровне программ имеет смысл говорить в двух случаях. Во-первых, когда в программе могут быть выделены независимые участки, которые допустимо выполнять параллельно.
Второй тип параллелизма программ возможен в пределах отдельного про-граммного цикла, если в нем отдельные итерации не зависят друг от друга. Программный параллелизм может быть реализован за счет большого количества процессоров или множества функциональных блоков. В качестве примера рас- смотрим следующий фрагмент кода:
For I := 1 to N do A(I) := B(I) + C(I)
Все суммы независимы, т.е. вычисление Bi + Ci не зависит от Bj + Cj для любого j < i. Это означает, что вычисления могут производиться в любой последовательности и в вычислительной системе с N процессорами все суммы могут быть вычислены одновременно.
Общая форма параллелизма на уровне программ представляет собой разби-ение программируемых данных на подмножества. Это разделение называется декомпозицией области (domain decomposition), а параллелизм, возникающий при этом – параллелизмом данных. Подмножества данных назначаются разным вы-числительным процессам. Этот процесс называется распределением данных (data distribution). Процессоры выделяются определенным процессам либо по ини-циативе программы, либо в процессе работы операционной системой. На каждом процессоре может выполняться более чем один процесс.
Параллелизм уровня команд
Параллелизм на уровне команд имеет место, когда обработка нескольких команд или выполнение различных этапов одной и той же команды может перекрываться во времени. Разработчики вычислительной техники издавна при-бегали к методам, известным под общим названием «совмещения операций», при котором аппаратура ВМ в любой момент времени выполняет одновременно более одной операции. Этот общий принцип включает в себя два понятия: параллелизм и конвейеризацию. Хотя у них много общего и их зачастую трудно различать на практике, термины эти отражают два принципиально различных подхода.
В первом варианте совмещение операций достигается за счет того, что в составе вычислительной системы отдельные устройства присутствуют в несколь-ких копиях. Так, в состав процессора может входить несколько АЛУ, и высокая производительность обеспечивается за счет одновременной работы всех этих АЛУ. При втором варианте совмещение операций достигается за счет кон-вейеризации этапов машинного цикла.