Архитектура компьютеров и ВС, принципы параллельного программирования (Файлы для подготовки к экзамену)
Описание файла
Файл "Архитектура компьютеров и ВС, принципы параллельного программирования" внутри архива находится в папке "Файлы для подготовки к экзамену". Документ из архива "Файлы для подготовки к экзамену", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "параллельные системы и параллельные вычисления" в общих файлах.
Онлайн просмотр документа "Архитектура компьютеров и ВС, принципы параллельного программирования"
Текст из документа "Архитектура компьютеров и ВС, принципы параллельного программирования"
44
Оглавление
Оглавление 2
1. Архитектура, технологические характеристики, принципы работы, проблемы развития компьютеров и ВС. 3
1.1. Краткая история развития параллелизма в архитектуре ЭВМ. 3
1.2. Введение и основные понятия. 4
1.2.1. Ряд основных понятий и определений. 4
1.2.2. Архитектурный облик современного компьютера. 5
1.2.3. Схема выполнения (команд) программы. 8
1.3. Режимы работы компьютера и связь с работой процессора. 10
1.3.1. Общая схема обслуживания процессов (задач). 11
1.3.2. Специальные процессоры (компьютеры). 11
1.4. Закон Амдала. 12
1.4.1. Классификационные признаки ВС. 13
1.4.2. Два вида параллелизма. 14
1.5. Показатели ВС, сравнение. 15
2. Принципы, языки, технологии параллельного программирования. 16
2.1. Параллелизм задач, его особенности и характеристики. 16
2.2. Процессы, их характеристики. 17
2.3. Типы и характеристики параллелизма. 17
2.4. Типы и особенности параллелизма. 22
2.5. Процессы модели и языки. 24
2.6. Сети Петри 24
2.4.1. Событийная модель; статические процессы. 24
2.6.2. Расширение сети Петри 29
2.7. Модели взаимодействующих последовательных процессов Хоара 31
3. 3. Реализация параллельных языков программирования 35
3.1. Примитивы и языки параллельного программирования 35
3.2. MPI 36
3.3. Язык граф - схемного потокового параллельного программирования (ЯГСПП) 37
3.4. Функциональное параллельное программирование 37
3.4.1. Functional Parallel Typified Language (FPTL) 37
1.Архитектура, технологические характеристики, принципы работы, проблемы развития компьютеров и ВС.
1.1. Краткая история развития параллелизма в архитектуре ЭВМ.
Все основные принципы построения архитектур современных процессоров используются еще со времен, когда ни микропроцессоров, ни понятия суперкомпьютеров еще не было. Начнем с момента рождения первых ЭВМ.
IBM 701 (1953), IBM 704 (1955): разрядно – параллельная память, разрядно – параллельная арифметика.
Все самые первые компьютеры (EDSAC, EDVAC, UNIVAC) имели разрядно-последовательную память, из которой слова считывались последовательно бит за битом. Наибольшую популярность получила модель IBM 704, в которой, была впервые применена память на ферритовых сердечниках и аппаратное арифметическое устройство с плавающей точкой.
IBM 709 (1958): независимые процессоры ввода/вывода.
Процессоры первых компьютеров сами управляли вводом/выводом. Однако скорость работы самого быстрого внешнего устройства была в 1000 раз меньше скорости процессора, поэтому во время операций ввода/вывода процессор фактически простаивал. В 1958г. к компьютеру IBM 704 присоединили 6 независимых процессоров ввода/вывода, которые после получения команд могли работать параллельно с основным процессором, а сам компьютер переименовали в IBM 709.
IBM STRETCH (1961): опережающий просмотр вперед, расслоение памяти.
В 1956 году IBM подписывает контракт с Лос-Аламосской научной лабораторией на разработку компьютера STRETCH, имеющего две принципиально важные особенности:
-
опережающий просмотр вперед для выборки команд;
-
расслоение памяти на два банка для согласования низкой скорости выборки из памяти и скорости выполнения операций.
ATLAS (1963): конвейер команд.
Впервые конвейерный принцип выполнения команд был использован в машине ATLAS, разработанной в Манчестерском университете. Выполнение команд разбито на 4 стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции. Конвейеризация позволила уменьшить время выполнения команд с 6 мкс до 1,6 мкс. Данный компьютер оказал огромное влияние, как на архитектуру ЭВМ, так и на программное обеспечение: в нем впервые использована мультипрограммная ОС, основанная на использовании виртуальной памяти и системы прерываний.
CDC 6600 (1964): независимые функциональные устройства.
Фирма Control Data Corporation (CDC) при непосредственном участии одного из ее основателей, Сеймура Р.Крэя (Seymour R.Cray) выпускает компьютер CDC-6600 - первый компьютер, в котором использовалось несколько независимых функциональных устройств. Приведем некоторые параметры компьютера:
-
время такта 100нс,
-
производительность 2-3 млн. операций в секунду,
-
оперативная память разбита на 32 банка по 4096 60-ти разрядных слов,
-
цикл памяти 1мкс,
-
10 независимых функциональных устройств.
Машина имела громадный успех на научном рынке, активно вытесняя машины фирмы IBM.
CDC 7600 (1969): конвейерные независимые функциональные устройства.
CDC выпускает компьютер CDC-7600 с восемью независимыми конвейерными функциональными устройствами - сочетание параллельной и конвейерной обработки. Основные параметры:
-
такт 27,5 нс,
-
10-15 млн. опер/сек.,
-
8 конвейерных ФУ,
-
2-х уровневая память.
ILLIAC IV (1974): матричные процессоры.
Проект: 256 процессорных элементов (ПЭ) = 4 квадранта по 64ПЭ, возможность реконфигурации:
2 квадранта по 128ПЭ или 1 квадрант из 256ПЭ, такт 40нс, производительность 1Гфлоп; работы начаты в 1967 году, к концу 1971 изготовлена система из 1 квадранта, в 1974г. она введена в эксплуатацию, доводка велась до 1975 года;
центральная часть: устройство управления (УУ) + матрица из 64 ПЭ;
УУ это простая ЭВМ с небольшой производительностью, управляющая матрицей ПЭ; все ПЭ матрицы работали в синхронном режиме, выполняя в каждый момент времени одну и ту же команду, поступившую от УУ, но над своими данными;
ПЭ имел собственное арифметико-логическое устройство (АЛУ) с полным набором команд, оперативная память (ОП) - 2Кслова по 64 разряда, цикл памяти 350нс, каждый ПЭ имел непосредственный доступ только к своей ОП.
Несмотря на результат в сравнении с проектом: стоимость в 4 раза выше, сделан лишь 1 квадрант, такт 80нс, реальная производительность до 50Мфлоп - данный проект оказал огромное влияние на архитектуру последующих машин, построенных по схожему принципу, в частности: PEPE, BSP, ICL DAP.
1.2.Введение и основные понятия.
1.2.1.Ряд основных понятий и определений.
Определение 1a. Процесс – это программа на стадии ее выполнения, некоторое вычисление, которое может выполняться параллельно с другими.
Определение 1b. Процесс Windows– объект ОС; оболочка для манипулирования программой, в ней нет исполняемого кода.
Операции над процессами:
-
создание процесса;
-
уничтожение;
-
изменение приоритета;
-
запуск;
-
блокировка;
-
вытеснение;
-
приостановка;
-
возобновление.
При создании процесса создается главный поток.
Определение 2. Поток – объект ОС, который содержит выполняемый код и подлежит планированию.
Определение 3. Критические участки – участки кода программы, использующие разделяемые данные. Если какой–то процесс вошел в свой критический участок, то для всех остальных процессов необходимо исключить входы в свой критические участки. Если же в критической секции допускаются несколько процессов, тогда необходимо заботься о целостности данных.
1.2.2.Архитектурный облик современного компьютера.
Архитектура ЭВМ – это общее описание структуры и функций ЭВМ. Архитектура не несет в себе описание деталей технического и физического устройств компьютера.
Пояснения к схеме:
ПР – процессор;
П – порты;
УП – управление памятью;
ИНТ – интерфейс;
ОП – оперативная память;
Д – диски;
КР – коммутатор.
В данной схеме местная периферия (принтеры, мониторы и т.д.), общий блок УП для все процессоров.
Основные блоки процессора.
Пояснения к схеме:
СК – счетчик команд;
ИА – индексное устройство;
ДШ – дешифратор кода команд;
УП – управление памятью;
АУ – арифметическое устройство;
РК – регистры команд;
РО – регистры операнд;
РР – регистры результатов.
1.2.3.Схема выполнения (команд) программы.
Параллельная обработка данных имеет две разновидности:
-
конвейерная
-
параллельная.
Параллельная обработка.
Если некое устройство выполняет одну операцию за единицу времени, то тысячу операций оно выполнит за тысячу единиц. Если предположить, что есть пять таких же независимых устройств, способных работать одновременно, то ту же тысячу операций система из пяти устройств может выполнить уже не за тысячу, а за двести единиц времени. Аналогично система из N устройств ту же работу выполнит за 1000/N единиц времени.
Конвейерная обработка.
Рассмотрим схему выполнения программы, введение конвейера и анализ его работы:
Пояснения к схеме:
СК – счетчик команд;
ИА – индексное устройство;
ДШ – дешифратор кода команд;
УП – управление памятью;
АУ – арифметическое устройство;
РК – регистры команд;
РО – регистры операнд;
РР – регистры результатов.
Рассмотрим операцию сложения двух вещественных чисел, представленных в форме с плавающей запятой. Для выполнения этой операции необходимо целое множество мелких операций таких, как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и т.п.
Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары аргументов последовательно одна за другой до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых. Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Получаем очевидный выигрыш в скорости обработки за счет совмещения прежде разнесенных во времени операций. Предположим, что в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находится первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз.
Конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить, но, увеличивая в пять раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость.
Принципиальные характеристики компьютера:
-
производительность – [оп/сек];
-
быстродействие – время выполнения операций.
Выделим важнейшие факторы, влияющие на быстродействие процессора.
Прежде всего, быстродействие зависит от тактовой частоты процессора. Все операции внутри процессора выполняются синхронно, тактируются единым тактовым сигналом.