1. Классификация компьютеров Персональные компьютеры (ПК) появились в результате эволюции миникомпьютеров. Благодаря своей низкой стоимости, очень быстро завоевали хорошие позиции на компьютерном рынке. Рабочие станции - настольные системы высокой производительности. Их прародители, также – миникомпьютеры. X-терминалы - комбинация бездисковых рабочих станций и стандартных ASCII-терминалов. На компьютерном рынке занимают промежуточное положение между ПК и рабочими станциями. Не выполняют функции обычной локальной обработки. Работа X-терминалов зависит от главной (хост) системы, к которой они подключены посредством сети. Серверы. Тип сервера определяется видом ресурса, которым он владеет. Суперсерверы. Разбиение на серверы и суперсерверы весьма условно и отражает только мощность машины. Мейнфрейм - это синоним понятия "большая универсальная ЭВМ". Мейнфреймы и до сегодняшнего дня остаются наиболее мощными (не считая суперкомпьютеров) вычислительными системами общего назначения, обеспечивающими непрерывный круглосуточный режим эксплуатации. Минисуперкомпьютеры – различие, также, весьма условно. Суперкомпьютеры. Характеризуются, в первую очередь, высокой производительностью. Основные признаки: самый современный технологический уровень, специфические архитектурные решения, высокая цена. Кластер - это связанный набор полноценных компьютеров, используемый в качестве единого ресурса. Под словосочетанием "полноценный компьютер" понимается завершенная компьютерная система, обладающая всем, что требуется для ее функционирования. Словосочетание "единый ресурс" означает наличие программного обеспечения, дающего возможность пользователям, администраторам и даже приложениям считать, что имеется только одна сущность - кластер. Мета-компьютеры. Компонентами "мета-компьютера" могут быть как простейшие ПК, так и мощные массивно-параллельные системы. Мета-компьютер может не иметь постоянной конфигурации - отдельные компоненты могут включаться в его конфигурацию или отключаться от нее; при этом технологии мета-компьютеринга обеспечивают непрерывное функционирование системы в целом. 2. Классификация Флинна Базируется на понятии потока. Плюс: классификация – самая применяемая 1) SISD 2) SIMD 3) MISD 4) MIMD 1) Сюда относятся классические последовательные машины. В класс можно включить и векторноконвейерные машины, если рассматривать вектор как одно неделимое данное для соответствующей команды. 2) В данной архитектуре сохраняется один поток команд, включающий векторные команды. В этот класс можно включить и векторно-конвейерные машины, и каждый элемент вектора надо рассматривать как отдельный элемент потока данных. 3) Пока не смогли представить убедительный пример реально существующей вычислительной системы. Ряд исследователей относят конвейерные машины к данному классу, однако это не нашло окончательного признания. Будем считать, что пока данный класс пуст. 4) В вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных. Класс MIMD чрезвычайно широк, поскольку включает в себя всевозможные мультипроцессорные системы. Все рассмотренные выше векторно-конвейерные компьютеры можно расположить и в данном классе. Минусы - некоторые заслуживающие внимания архитектуры четко не вписываются в данную классификацию и чрезмерная заполненность класса MIMD. 3. Дополнения Ванга и Бриггса к классификации Флинна MIMD: вычислительные системы со слабой и сильной связью между процессорами SISD: архитектуры с единственным ФУ и с несколькими ФУ SIMD: архитектуры с пословно-последовательной и с разрядно-последовательной обработкой информации 4. Классификация Фенга Классификация на основе 2-х характеристик: число бит n в машинном слове, обрабатываемых параллельно при выполнении машинных инструкций, числу слов m, обрабатываемых одновременно данной вычислительной системой. Все вычислительные системы можно разделить на четыре класса: Разрядно-последовательные пословно-последовательные (n=m=1). Разрядно-параллельные пословно-последовательные (n > 1 , m = 1). Разрядно-последовательные пословно-параллельные (n = 1 , m > 1). Разрядно-параллельные пословно-параллельные (n > 1, m > 1). Недостатки - способ вычисления ширины битового слоя m, а также, достаточно трудно (а иногда и невозможно) осознать специфику той или иной вычислительной системы. Достоинство – введение единой числовой метрики. 5. Оценка производительности компьютеров. MIPS Оценка эффективности вычислительных систем на специально подготовленных для этих целей задачах (бенчмарках) - оценочное тестирование. Производительность ЦП зависит от трех параметров: такта (или частоты) синхронизации, среднего количества тактов на команду и количества выполняемых команд. Время выполнения реальных программ - единственная подходящая и надежная единица измерения производительности. MIPS - миллион команд в секунду. Плюсы: эту характеристику легко понять, более быстрая машина характеризуется большим числом MIPS, что соответствует нашим интуитивным представлениям. Минусы: MIPS зависит от набора команд процессора, MIPS даже на одном и том же компьютере меняется от программы к программе, MIPS может меняться по отношению к производительности в противоположенную сторону (тут про сопроцессор можно сказать, что рейтинг имеет меньший, а выполняется быстрей) 6. Оценка производительности компьютеров. MFLOPS Оценка эффективности вычислительных систем на специально подготовленных для этих целей задачах (бенчмарках) - оценочное тестирование. Производительность ЦП зависит от трех параметров: такта (или частоты) синхронизации, среднего количества тактов на команду и количества выполняемых команд. Время выполнения реальных программ - единственная подходящая и надежная единица измерения производительности. MFLOPS - миллионы чисел-результатов вычислений с плавающей точкой в секунду (или миллионах элементарных арифметических операций над числами с плавающей точкой, выполненных в секунду) Плюс: рейтинг MFLOPS предназначался для справедливого сравнения различных машин между собой. Минусы: наборы операций с плавающей точкой не совместимы на различных компьютерах, рейтинг MFLOPS меняется не только на смеси целочисленных операций и операций с плавающей точкой, но и на смеси быстрых и медленных операций с плавающей точкой (Например, программа со 100% операций сложения будет иметь более высокий рейтинг, чем программа со 100% операций деления) 7. СписокТоп500 В этом списке компьютеры ранжируются по результатам теста LINPACK. LINPACK – изначально это пакет фортран-программ для решения систем линейных алгебраических уравнений. Целью создания LINPACK не было измерение производительности. В процессе его работы выполняются базовые арифметические действия над матрицами чисел с плавающей запятой размером 100х100 элементов (сейчас уже 1000х1000). Подпрограммы, входящие в LINPACK, структурированы. Все операции выполняются над числами с плавающей точкой, представленными с двойной точностью. Результат измеряется в MFLOPS. 8. Параллельная обработка Нужно найти сумму двух векторов, состоящих из 100 вещественных чисел каждый. У нас имеется устройство, которое выполняет суммирование пары чисел за пять тактов работы компьютера. Устройство сделано так, что на все время выполнения данной операции оно блокируется, и никакой другой полезной работы выполнять не может. В таких условиях вся операция будет выполнена за 500 тактов – это последовательная обработка, рис. 1 Теперь допустим, что у нас есть два точно таких же устройства, которые могут работать одновременно и независимо друг от друга. Ускорение выполнения работы в два раза – все выполняется за 250 тактов – это параллельная обработка, рис. 2 Если каждую микрооперацию выделить в отдельную часть устройства и расположить их в порядке выполнения, в первый момент времени входные данные поступают для обработки первой частью. После выполнения первой микрооперации первая часть передает результаты свой работы второй части, а сама берет новую пару. Когда входные аргументы пройдут через все этапы обработки, на выходе устройства появится результат выполнения операции. Это конвейерная обработка – рис. 3 9. Конвейерная обработка Пример про 500 тактов: последовательная – просто выполняет, к параллельной добавляются устройства, а в конвейерной каждая микрооперация выделена в отдельную часть устройства. На выполнение всей операции потребуется 104 такта, вместо 500 тактов при использовании последовательного устройства Каждая часть устройства называется ступенью конвейера, а общее число ступеней — длиной конвейера. Команда, у которой все аргументы должны быть только скалярными величинами, называется скалярной командой. Если хотя бы один аргумент команды может быть вектором, то такая команда называется векторной командой. С увеличением числа входных данных реальная производительность конвейерного устройства все больше и больше приближается к его пиковой производительности. Однако, пиковая производительность любого конвейерного устройства никогда недостижима на практике. + рисунок 10. Параллелизм на уровне машинных команд. Суперскалярные процессоры. VLIWпроцессоры Это скрытый от пользователя параллелизм. Плюсы: отсутствие у пользователя необходимости в специальном параллельном программировании, и то, что проблемы с переносимостью остаются на уровне общих проблем переносимости программ в классе последовательных машин. Два основных подхода подхода к построению архитектуры процессоров (в обоих случаях предполагается, что процессор содержит несколько функциональных устройств, которые могут работать независимо друг от друга): с помощью суперскалярных процессоров (задача обнаружения параллелизма в машинном коде возлагается на аппаратуру) VLIW-процессоры (Very Large Instruction Word) (команда состоит из набора полей, каждое из которых отвечает за свою операцию) 11. Компьютеры с общей памятью Компьютеры с разделяемой памятью. Системы, построенные по такому принципу, называются мультипроцессорными системами. Все процессоры работают с единым адресным пространством. К компьютерам с общей памятью относятся все системы класса Symmetric Multi Processors (SMP). Одна из задач параллельных вычислений - поиск методов разработки эффективного программного обеспечения для параллельных вычислительных систем немного проще решается для компьютеров с общей памятью. 12. Способы организации мультипроцессорных систем с общей памятью 14. Топологии построения мультипроцессорных систем с распределенной памятью 1) Общая шина(рис.1), к которой подключаются как процессоры, так и память. Основная проблема даже небольшое увеличение числа устройств на шине (4—5) очень быстро делает ее узким местом. 2) Матричный коммутатор(рис.2). На пересечении линий располагаются элементарные точечные переключатели, разрешающие или запрещающие передачу информации между процессорами и модулями памяти. Недостаток - большой объем необходимого оборудования, что является слишком дорогим решением. 3) Каскадные переключатели (рис.3). Для соединения п процессоров с п модулями памяти потребуется (n log2 n) / 2 коммутаторов. Для больших значений п эта величина намного лучше, чем п2, однако появляется проблема другого рода — задержки. 1) 2) 3) Рассмотрены не все системы связей, и можно использовать массу других, например, способы организации мультикомпьютерных систем: простейшие - линейка, кольцо, звезда (+рисунок) Еще топологии связи процессоров: решетка, тор, полная связь, гиперкуб. 13. Компьютеры с распределенной памятью Системы будем называть мультикомпьютерными системами. Каждый вычислительный узел является полноценным компьютером со своим процессором, памятью, подсистемой ввода/вывода, операционной системой. Одна из задач параллельных вычислений - построение вычислительных систем с максимальной производительностью. Это легко позволяет сделать компьютеры с распределенной памятью. Практически единственный способ программирования подобных систем — это использование систем обмена сообщениями, например, PVM или MPI. 15. Суперкомпьютер Cray T3E 27. Суперкомпьютер Cray T3D Cray T3D/T3E — это массивно-параллельные компьютеры с распределенной памятью, объединяющие в максимальной конфигурации более 2000 процессоров. Два основных компонента: узлы и коммуникационая среда. Узлы делятся на три типа: управляющие узлы операционной системы вычислительные узлы Достоинства организации коммуникационной среды: возможность выбора альтернативного маршрута для обхода поврежденных связей. быстрая связь граничных узлов и небольшое среднее число перемещений по тору при взаимодействии разных ПЭ. Интересной особенностью архитектуры компьютера является аппаратная поддержка барьерной синхронизации. Барьер — это точка в программе, при достижении которой каждый процесс должен ждать до тех пор, пока остальные процессы также не дойдут до барьера. Коммуникационная решетка компьютера Cray T3E Барьерная синхронизация в компьютерах Cray ТЗD/TЗЕ 16. Компьютеры с архитектурой ccNUMA ccNUMA (cache coherent NUMA). разработана для решения проблемы проблема согласования содержимого кэш-памяти (cache coherence problem, проблема когерентности кэшей). Для современных NUMA разница времени локального и удаленного доступа лежит в промежутке 200—700%. При такой разнице в скорости доступа для обеспечения должной эффективности выполнения программ следует позаботиться о правильном расположении требуемых данных. На основе архитектуры ccNUMA в настоящее время выпускается множество реальных систем, расширяющих возможности традиционных компьютеров с общей памятью. При этом, если конфигурации SMP серверов от ведущих производителей содержат 16—32—64 процессора, то их расширения с архитектурой ccNUMA уже объединяют до 256 процессоров и больше. 17. Вычислительные кластеры Вычислительный кластер – совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи. В качестве вычислительных узлов обычно используются доступные на рынке однопроцессорные компьютеры, двух- или четырех-процессорные SMP-серверы. Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные ОС. Состав и мощность узлов могут меняться даже в рамках одного кластера, что дает возможность создавать неоднородные системы. Наиболее известные вычислительные кластеры: Beowulf-кластеры, TheHIVE, MBC-1000M, IBM RoadRunner – самый мощный кластер на 2008 год 18. Суперкомпьютер MBC-1000M Российский суперкомпьютер установлен в Межведомственном суперкомпьютерном центре в Москве. Cостоит из шести базовых блоков, содержащих по 64 двухпроцессорных модуля. Каждый модуль имеет два процессора Alpha 21264/667 МГц (кэш-память второго уровня 4 Мбайт), 2 Гбайт оперативной памяти, разделяемой процессорами модуля, жесткий диск. Все модули МВС-1000М связаны двумя независимыми сетями. Сеть Myrinet 2000 используется программами пользователей для обмена данными в процессе вычислений. При использовании MPI пропускная способность каналов сети достигает значений 110—170 Мбайт/с. Сеть Fast Ethernet используется операционной системой для выполнения сервисных функций. Его пиковая производительность составляет что-то около 1000Gflops, по LINPACK можно ожидать результатов где-то на 30% хуже. Так что можно прогнозировать, что сейчас он занимает примерно 30е место. Это второе место по Европе. 19. Коммуникационные технологии построения кластеров Сетевая технология определяется классом решаемых задач. Первоначально Beowulf-кластеры строились на базе обычной 10-мегабитной сети Ethernet. Сегодня часто используется сеть Fast Ethernet, как правило, на базе коммутаторов. Основное достоинство — низкая стоимость. Большие накладные расходы на передачу сообщений в рамках Fast Ethernet приводят к серьезным ограничениям на спектр задач, эффективно решаемых на таких кластерах. Если от кластера требуется большая универсальность, то нужно переходить на другие, более производительные коммуникационные технологии. Разработчики кластерных систем делают выбор между Fast Ethernet, Gigabit Ethernet, SCI, Myrinet, cLAN, ServerNet и рядом других сетевых технологий. Необходимых пользователю характеристик коммуникационных сетей две: латентность время начальной задержки при посылке сообщений, пропускная способность - скоростью передачи информации по каналам связи. Если в программе много маленьких сообщений, то сильно скажется латентность. Если сообщения передаются большими порциями, то важна высокая пропускная способность каналов связи. 20. Распределенная общая память – DSM пыщ пыщ 21. Алгоритмы реализации DSM ололо 22. Модели консистентности мы угнали нло 23. Парадигмы параллельного программирования. Параллелизм данных Два основных подхода к распараллеливанию вычислений: параллелизм данных и параллелизм задач. В основе обоих подходов лежит распределение вычислительной работы по доступным пользователю процессорам параллельного компьютера. Необходимо решать следующие проблемы : сбалансированная работа процессоров (т.е., достаточно равномерная загрузка процессоров), скорость обмена информацией между процессорами. Рассматриваемые парадигмы программирования различаются методами решения этих двух основных проблем. Параллелизм данных. Основная идея – одна операция выполняется сразу над всеми элементами массива данных. Распределением данных между процессорами занимается программа. Векторизация или распараллеливание в этом случае чаще всего выполняется уже на этапе компиляции. Основные особенности: Обработкой данных управляет одна программа Пространство имен является глобальным Слабая синхронизация вычислений на параллельных процессорах Параллельные операции над элементами массива выполняются одновременно на всех доступных данной программе процессорах В рамках данного подхода от программиста не требуется больших усилий по векторизации или распараллеливанию вычислений. 24. Парадигмы параллельного программирования. Параллелизм задач 11л 25. Метакомпьютеринг и метакомпьютеры. 7л 26. Архитектура компьютера Hewlett-Packard Superdome Все процессоры имеют доступ к общей памяти, организованной в соответствии с архитектурой ccNUMA. Основу архитектуры компьютера HP Superdome составляют вычислительные ячейки (cells), связанные иерархической системой переключателей. компоненты ячейки: процессоры (до 4-х); оперативная память (до 16 Гбайт); контроллер ячейки; преобразователи питания; связь с подсистемой ввода/вывода (опционально). Контроллер — это сложнейшее устройство, состоящее из 24 миллионов транзисторов. Один порт контроллера ячейки всегда связан с внешним коммутатором. Ячейка — это базовый четырехпроцессорный блок компьютера. Структура ячейки компьютера HP Superdome Общая структура компьютера HP Superdome В компьютере HP Superdome возможны три вида задержек при обращении процессора к памяти, являющихся своего рода платой за высокую масштабируемость системы в целом: процессор и память располагаются в одной ячейке; в этом случае задержка минимальна; процессор и память располагаются в разных ячейках, но обе эти ячейки подсоединены к одному и тому же коммутатору; процессор и память располагаются в разных ячейках, причем обе эти ячейки подсоединены к разным коммутаторам; в этом случае запрос должен пройти через два коммутатора и задержки будут максимальными. 28. Основные подходы к разработке параллельных приложений использование в традиционных языках программирования специальных комментариев, расширение существующих языков программирования, специальные языки параллельного программирования, библиотеки и интерфейсы, поддерживающие взаимодействие параллельных процессов, подпрограммы и функции параллельных предметных библиотек, использование специализированных пакетов и программных комплексов. 29. Понятия стоимость операции, стоимость работы, загруженность устройства, пиковая производительность. Расчет пиковой производительности и загруженности системы, состоящей из несвязанных функциональных устройств. 30. Понятия реальная производительность и ускорение. Расчет максимальной производительности системы, граф которой является связным. Первый закон Амдала и следствие из него системы, граф которой является связным. 31. Расчет максимального ускорения мультипроцессорной системы. Второй и третий законы Амдала. 32. Фон-Неймановская архитектура. Машины фон-Неймана хранят программу и данные в одной и той же области памяти. Команды содержат указание, что выполнить, и адрес данных, подлежащих обработке. Внутри этой машины имеются два основных функциональных блока. Арифметико-логическое устройство (АЛУ) выполняет самые важные операции: умножение, сложение, вычитание и многие другие. Другой блок – устройство ввода/вывода управляет потоком внешних, относительно машины, данных. // там вообще, поболее будет немного)))) 33. Гарвардская архитектура. Память программ и память данных разделены, и они используют физически разделенные линии передачи. Это позволяет подобной машине пересылать команды и данные одновременно. Следовательно, такая конструкция может значительно увеличить производительность ЦПОС. Гарвардская машина, как и фоннеймановская, имеет арифметикологическое устройство и устройство ввода/вывода. Расплатой за высокую скорость является высокая цена процессора. 34. Теговая архитектура. Архитектура компьютера, в которой каждый тип данных сопровождается специальной пометкой (tag field = теговое поле). Обработка данных, по крайней мере, частично базируется на этих пометках. При теговой организации памяти каждое хранящееся в памяти или реестре слово снабжается указателем - тегом, определяющим тип данных. В поле тега обычно указывается не только тип, но и длина (формат) и некоторые другие параметры. Теги формируются компилятором. Наличие тегов придает хранящимся данным свойство самоопределяемости. Теговая организация памяти позволяет достигнуть инвариантности команд относительно типов и форматов операндов, что значительно сокращает набор команд. Это упрощает и регуляризирует структуру микропроцессора, облегчает программирование, отладку, упрощает компиляторы и сокращает затраты времени на компиляцию (так как отпадает необходимость выбора типа команды в зависимости от типа данных), облегчает обнаружение ошибок связанных с некорректным заданием типа данных. Плюсы: теговая организация памяти способствует реализации принципа независимости программ от данных, использование тегов экономит память. Минус: при использовании тегов работа микропроцессора несколько замедляется. // чуть-чуть сократила 35. Архитектура системы команд. CISC и RISC процессоры. 4л 36. Матричный процессор. 37. Векторно-конвейерные компьютеры. 38. Суперкомпьютер Cray C90.