Закон Амдала и его следствия
Предположим, что в вашей программе доля операций, которые нужно выполнять последовательно, равна f, где 0<=f<=1 (при этом доля понимается не по статическому числу строк кода, а по числу операций в процессе выполнения). Крайние случаи в значениях f соответствуют полностью параллельным (f=0) и полностью последовательным (f=1) программам. Так вот, для того, чтобы оценить, какое ускорение S может быть получено на компьютере из 'p' процессоров при данном значении f, можно воспользоваться законом Амдала:
Если 9/10 программы исполняется параллельно, а 1/10 по-прежнему последовательно, то ускорения более, чем в 10 раз получить в принципе невозможно вне зависимости от качества реализации параллельной части кода и числа используемых процессоров.
Отсюда первый вывод - прежде, чем основательно переделывать код для перехода на параллельный компьютер (а любой суперкомпьютер, в частности, является таковым) надо основательно подумать. Если оценив заложенный в программе алгоритм вы поняли, что доля последовательных операций велика, то на значительное ускорение рассчитывать явно не приходится и нужно думать о замене отдельных компонент алгоритма. В ряде случаев последовательный характер алгоритма изменить не так сложно. Допустим, что в программе есть следующий фрагмент для вычисления суммы n чисел:
s = 0
Do i = 1, n
s = s + a(i)
End Do
(можно тоже самое на любом другом языке)
По своей природе он строго последователен, так как на i-й итерации цикла требуется результат с (i-1)-й и все итерации выполняются одна за одной. Имеем 100% последовательных операций, а значит и никакого эффекта от использования параллельных компьютеров. Вместе с тем, выход очевиден. Поскольку в большинстве реальных программ (вопрос: а почему в большинстве, а не во всех?) нет существенной разницы, в каком порядке складывать числа, выберем иную схему сложения. Сначала найдем сумму пар соседних элементов: a(1)+a(2), a(3)+a(4), a(5)+a(6) и т.д. Заметим, что при такой схеме все пары можно складывать одновременно! На следующих шагах будем действовать абсолютно аналогично, получив вариант параллельного алгоритма. Казалось бы в данном случае все проблемы удалось разрешить. Но представьте, что доступные вам процессоры разнородны по своей производительности. Значит будет такой момент, когда кто-то из них еще трудится, а кто-то уже все сделал и бесполезно простаивает в ожидании. Если разброс в производительности компьютеров большой, то и эффективность всей системы при равномерной загрузке процессоров будет крайне низкой. Но пойдем дальше и предположим, что все процессоры одинаковы. Проблемы кончились? Опять нет! Процессоры выполнили свою работу, но результат-то надо передать другому для продолжения процесса суммирования... а на передачу уходит время... и в это время процессоры опять простаивают... Словом, заставить параллельную вычислительную систему или супер-ЭВМ работать с максимальной эффективность на конкретной программе это, прямо скажем, задача не из простых, поскольку необходимо тщательное согласование структуры программ и алгоритмов с особенностями архитектуры параллельных вычислительных систем.
Заключительный вопрос. Как вы думаете, верно ли утверждение: чем мощнее компьютер, тем быстрее на нем можно решить данную задачу? Заключительный ответ. Нет, это не верно. Это можно пояснить простым бытовым примером. Если один землекоп выкопает яму 1м*1м*1м за 1 час, то два таких же землекопа это сделают за 30 мин - в это можно поверить. А за сколько времени эту работу сделают 60 землекопов? За 1 минуту? Конечно же нет! Начиная с некоторого момента они будут просто мешаться друг другу, не ускоряя, а замедляя процесс. Так же и в компьютерах: если задача слишком мала, то мы будем дольше заниматься распределением работы, синхронизацией процессов, сборкой результатов и т.п., чем непосредственно полезной работой.
Выводы
Именно компьютерный рынок определяет баланс в отношении стоимость/производительность.
Важнейшей характеристикой вычислительных систем является надежность.
Повышение отказоустойчивости требует введение избыточности аппаратного и программного обеспечения.
Масштабируемость представляет собой возможность бесконфликтного наращивания числа и мощности процессоров, объемов оперативной и внешней памяти и других ресурсов вычислительной системы.
Совместимость и мобильность ПО должна обеспечивать возможность запуска одних и тех же программных систем на различных аппаратных платформах, т.е. обеспечивать мобильность программного обеспечения.
Вопросы и задания
Какие параметры ВС определяют ее производительность?
Какова производительность современных суперкомпьютеров?
Что такое кластерные системы и системы высокой готовности?
Приведите примеры наиболее распространенных серверов.
Лекция 6 Структурная организация ЭВМ - процессор
Введение
В предыдущих лекциях мы познакомились с функциональными блоками ЭВМ, вычислительных систем и основными принципами их взаимодействия. Теперь мы можем приступить к более детальному анализу каждого из блоков и узлов в отдельности. Начнем, естественно, с процессора и истории его появления.
Что известно всем
В 1968 году Роберт Нойс, изобретатель кремниевой интегральной схемы (1958), Гордон Мур, автор известного закона Мура, и Артур Рок, капиталист из Сан-Франциско, основали корпорацию Intel для производства компьютерных микросхем.
Первоначальное название “NM Electronicx” звучало не очень привлекательно, после ряда проб остановились на “Integrated Electronics”, утвердить не удалось, зато абривиатуру Intel теперь знают все и стоит она $31 млрд !!!
За первый год своего существования корпорация продала микросхем (аж!) на $3000. Но вот улыбка судьбы! В августе 1969 года крохотная фирма Intel Corporation, которая была совсем недавно зарегистрирована, получила заказ от небольшой японской фирмы Nippon Calculating Machines, на проектирование микросхем для семейства калькуляторов (10-12 различных несерийных микросхем-калькуляторов). Вместо того, чтобы делать 10-12 различных микросхем на «жесткой логике», т.е. специализированной системе, настроенной на одну, или несколько близких задач. Другими словами, микросхем в которых алгоритмы обработки и хранения данных жестко связаны со схемотехникой и изменения алгоритмов возможны только путем изменения схемотехники системы. Тед Хофман и его сотрудник Стен Мейзор решили разработать одну твердотельную 4-битную микросхему-процессор, представляющую из себя универсальный компьютер с программируемыми функциями, который мог работать в любом из заказанных калькуляторов. Далее грандиозный успех: ноябрь 1970 чип 4001 ----- декабрь 1970 чип 4004. В июне 1971 года Intel анонсировала микропроцессорное семейство 4004 и выкупила все права на микросхему у японской компании за те-же $60000,которые она заплатила решив, что расходы на 4004 слишком велики. Она отказалась от исключительных (!) прав на продукты Intel. Последняя в 1974 г. своими усилиями выпустила 8-разрядный процессор 8080, и наконец покупатели стали проявлять к решениям микроэлектроники реальный интерес. Авторы разработки навечно были внесены в список лауреатов Национального зала Славы США, а само изобретение признано одним из величайших достижений XX века.
Процессор 4004 – 4-х разрядный, 2250 транзисторов, частота – 108 кГц, производительность – 60 000 операций в сек, чип размером со шляпку гвоздя. Сравните, лучший компьютер того времени – ENIAC, площадь – 3000 кв. футов, вес 30 тонн, производительность 5000 операций в сек.
Что известно немногим.
В 1968 году (!) два американских инженера Рэй Холт и Стив Геллер создали 20 – разрядный микропроцессор SLF (Special Logic Function).
Чип SLF служил основой бортового компьютера CADC для новейшего истребителя с изменяемой стреловидностью крыла F14. SLF – 20 разрядный процессор с элементами параллельной логики и возможностью расширения (3 синхронно работающих SLF на бортовом компьютере, плюс элементы DSP процессора (!). Можно сказать, что CADC – гениальное для своего времени решение и заложенные в него принципы не устарели и по сей день. Так, в F-14 из-за больших объемов вычислений использовалось одновременно три (!) синхронно работающих микропроцессора SLF. Сравнительно недавно на мировом рынке появились первые общедоступные версии четырехпроцессорных ПК. Строжайшая секретность этой работы не позволила опубликовать результаты исследований, а широкий рынок микропроцессорной техники все больше становился вотчиной Intel.
Первый 16 разрядный Intel 8086 вышел в свет только в 1978 году. Далее история развития микропроцессорной техники это в подавляющем числе случаев – история Intel. Одна самая характерная черта, на мой взгляд, маркетинговой политики этой компании это то, что все процессоры Intel совместимы со своими предшественниками вплоть до процессора 8086. Другими словами, Pentium II,III,IV могут выполнять программы написанные для процессоров 8086, не думаю, что это есть хорошо, по крайней мере, могу представить возмущение сегодняшних программистов.
- Лекция 1. Базовые понятия информации Введение
- Информация, энтропия и избыточность при передаче данных
- Информационные процессы
- Основные структуры данных
- Обработка данных
- Способы представления информации и два класса эвм
- Представление данных в эвм.
- Вопросы и задания
- Лекция 2. Компьютер – общие сведения
- Центральное процессорное устройство
- Устройства ввода/вывода
- Классификация запоминающих устройств
- Оперативная память
- Основные внешние устройства компьютера
- Основные характеристики персональных компьютеров
- Вопросы и задания
- Лекция 3. Многоуровневая компьютерная организация
- Архитектура компьютера
- Классическая структура эвм - модель фон Неймана
- Особенности современных эвм
- Специальное
- Библиотеки стандартных программ и ассемблеры
- Высокоуровневые языки и системы автоматизированного программирования
- Диалоговые ос и субд
- Прикладные программы и case – технологии
- Компьютерные сети и мультимедиа
- Операционные системы
- Лекция 5.Вычислительные системы - общие сведения Введение
- Общие требования
- Классификация компьютеров по областям применения
- Персональные компьютеры и рабочие станции
- Суперкомпьютеры
- Увеличение производительности эвм, за счет чего?
- Параллельные системы
- Использование параллельных вычислительных систем
- Закон Амдала и его следствия
- Назначение процессора и его устройство
- Устройство управления
- Микропроцессорная память
- Основная (оперативная) память - структура адресной памяти
- Интерфейсная часть мп
- Тракт данных типичного процессора
- Команды уу
- Базовые команды
- Трансляторы
- Архитектура системы команд и классификация процессоров
- Микроархитектура процессора Pentium II
- 512 Кбайт
- Вопросы и задания
- Лекция 6 Структурная организация эвм - память Общие сведения
- Верхняя
- Верхняя память (Upper Memory Area) – это 384 Кбайт, зарезервированных у верхней границы системной памяти. Верхняя память разделена на несколько частей:
- Первые 128 Кбайт являются областью видеопамяти и предназначены для использовании видеоадаптерами, когда на экран выводится текст или графика, в этой области хранятся образы изображений.
- Видеопамять
- Иерархия памяти компьютера
- Оперативная память, типы оп
- Логическая организация памяти
- Связывание адресов
- Функции системы управления памятью
- Тэг Строка Слово (байт)
- Способы организации кэш-памяти
- 1. Где может размещаться блок в кэш-памяти?
- 2. Как найти блок, находящийся в кэш-памяти?
- 3. Какой блок кэш-памяти должен быть замещен при промахе?
- 4. Что происходит во время записи?
- Разновидности строения кэш-памяти
- Вопросы и задания
- Лекция 7 Логическая организация памяти Введение
- Адресная, ассоциативная и стековая организация памяти
- Стековая память
- Сегментная организация памяти.
- Косвенная адресация
- Операнд 407 суммируется с
- Типы адресов
- Понятие виртуальной памяти
- Страничное распределение
- Свопинг
- Вопросы и задания
- Лекция 8 Внешняя память компьютера Введение
- Жесткий диск (Hard Disk Drive)
- Конструкция жесткого диска
- Основные характеристики нмд:
- Способы кодирования данных
- Интерфейсы нмд
- Структура хранения информации на жестком диске
- Кластер
- Методы борьбы с кластеризацией
- Магнито-оптические диски
- Дисковые массивы и уровни raid
- Лазерные компакт-диски cd - rom
- Вопросы и задания
- Лекция 9 Основные принципы построения систем ввода/вывода
- Физические принципы организации ввода-вывода
- Интерфейс
- Магистрально-модульный способ построения эвм
- Структура контроллера устройства
- Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- Организация передачи данных
- Прямой доступ к памяти (Direct Memory Access – dma)
- Логические принципы организации ввода-вывода
- Структура системы ввода-вывода
- Буферизация и кэширование
- Заключение
- Структура шин современного пк
- Мост pci
- Вопросы и задания
- Лекция 10. Bios и его настройки Введение
- Начальная загрузка компьютера
- Вход в bios и основные параметры системы
- Общие свойства – стандартная настройка параметров
- Свойства bios
- Свойства других чипсетов
- Свойства интегрированных устройств
- Свойства слотов pci
- Управление питанием
- Лекция 11 Особенности архитектуры современных вс
- Область применения и способы оценки производительности мвс
- Классификация архитектур по параллельной обработке данных
- Вычислительные Системы
- Параллелизм вычислительных процессов
- Параллелизм на уровне команд – однопроцессорные архитектуры
- Конвейерная обработка
- Суперскалярные архитектуры
- Мультипроцессорные системы на кристалле Технология Hyper-Threading
- Многоядерность — следующий этап развития
- Многопроцессорные архитектуры – параллелизм на уровне процессоров
- Векторные компьютеры
- Использование параллельных вычислительных систем
- Закон Амдала и его следствия
- Вопросы и задания
- Лекция 12 Архитектура многопроцессорных вс Введение
- Smp архитектура
- Mpp архитектура
- Гибридная архитектура (numa)
- Организация когерентности многоуровневой иерархической памяти.
- Pvp архитектура
- Кластерная архитектура
- Проблемы выполнения сети связи процессоров в кластерной системе.
- Лекция 13 Кластерные системы
- Концепция кластерных систем
- Разделение на High Avalibility и High Performance системы
- Проблематика High Performance кластеров
- Проблематика High Availability кластерных систем
- Смешанные архитектуры
- Лекция 14 Высокопроизводительные процессоры
- Ассоциативные процессоры
- Конвейерные процессоры
- Матричные процессоры
- Клеточные и днк процессоры
- Клеточные компьютеры
- Трансгенные технологии
- Коммуникационные процессоры
- Процессоры баз данных
- Потоковые процессоры
- Нейронные процессоры
- Искусственные нейронные сети
- Нейрокомпьютеры
- Процессоры с многозначной (нечеткой) логикой
- Лекция 15 Многомашинные системы – вычислительные сети Введение
- Простейшие виды связи сети передачи данных
- Связь компьютера с периферийным устройством
- Связь двух компьютеров
- Многослойная модель сети
- Функциональные роли компьютеров в сети
- Одноранговые сети
- Сети с выделенным сервером
- Гибридная сеть
- Сетевые службы и операционная система
- Лекция 16. Файловая система компьютера Введение
- Общие сведения о файлах
- Типы файлов
- Атрибуты файлов
- Организация файлов и доступ к ним
- Последовательный файл
- Файл прямого доступа
- Другие формы организации файлов
- Операции над файлами
- Директории. Логическая структура файлового архива
- Разделы диска. Организация доступа к архиву файлов.
- Операции над директориями
- Защита файлов
- Контроль доступа к файлам
- Списки прав доступа
- Заключение
- Лекция 17. Сети и сетевые операционные системы Введение
- Для чего компьютеры объединяют в сети
- Сетевые и распределенные операционные системы
- Взаимодействие удаленных процессов как основа работы вычислительных сетей
- Основные вопросы логической организации передачи информации между удаленными процессами
- Понятие протокола
- Многоуровневая модель построения сетевых вычислительных систем
- Проблемы адресации в сети
- Одноуровневые адреса
- Двухуровневые адреса
- Удаленная адресация и разрешение адресов
- Локальная адресация. Понятие порта
- Полные адреса. Понятие сокета (socket)
- Проблемы маршрутизации в сетях
- Связь с установлением логического соединения и передача данных с помощью сообщений
- Синхронизация удаленных процессов
- Заключение
- Лекция 18. Система счисления и архитектура эвм Введение
- Системы счисления и их роль в истории компьютеров
- «Золотое сечение» и компьютер Фибоначчи
- Геометрическое определение "золотого сечения"
- Алгебраические свойства золотой пропорции
- Рассмотрим теперь "золотую пропорцию"
- Фибонччи и компьютеры
- "Троичный принцип" Николая Брусенцова.
- Список литературы: