Фрагмент для ознакомления
2
Организация параллельности вычислений, когда в один и тот же момент времени выполняется одновременно несколько операций обработки данных, осуществляется, в основном, введением избыточности функциональных устройств (многопроцессорности). В этом случае можно достичь ускорения процесса решения вычислительной задачи, если осуществить разделение применяемого алгоритма на информационно независимые части и организовать выполнение каждой части вычислений на разных процессорах. Подобный подход позволяет выполнять необходимые вычисления с меньшими затратами времени, и возможность получения максимального ускорения ограничивается только числом имеющихся процессоров и количеством "независимых" частей в выполняемых вычислениях.
Тем не менее следует отметить, что до сих пор применение параллелизма не получило столь широкого распространения, как это уже многократно предсказывалось многими исследователями. Одной из возможных причин подобной ситуации являлась до недавнего времени высокая стоимость высокопроизводительных систем (возможность приобретения супер-ЭВМ могли себе позволить только крупные компании и организации). Современная тенденция построения параллельных вычислительных комплексов из типовых конструктивных элементов (микропроцессоров, микросхем памяти, коммуникационных устройств), массовый выпуск которых освоен промышленностью, снизила влияние этого фактора и в настоящий момент практически каждый потребитель может иметь в своем распоряжении многопроцессорные вычислительные системы (МВС) достаточно высокой производительности.
Другая и, пожалуй, теперь основная причина сдерживания массового распространения
параллелизма состоит в том, что для проведения параллельных вычислений необходимо "параллельное" обобщение традиционной - последовательной - технологии решения задач на ЭВМ. Так, численные методы в случае многопроцессорных систем должны проектироваться как системы параллельных и взаимодействующих между собой процессов, допускающих исполнение на независимых процессорах.
Применяемые алгоритмические языки и системное программное обеспечение должны обеспечивать создание параллельных программ, организовывать синхронизацию и взаимоисключение асинхронных процессов и т.п.
Можно отметить также, что ряд исследователей высказывают свои сомнения о возможности широкого практического применения параллельных вычислений в силу следующего набора причин [28]:
• высокая стоимость параллельных систем – в соответствии с подтверждаемым на практике законом Гроша (Grosch), производительность компьютера возрастает пропорционально квадрату его bстоимости и, как результат, гораздо выгоднее получить требуемую вычислительную мощностьbприобретением одного производительного процессора, чем использование нескольких менееb быстродействующих процессоров.
Для ответа на данное замечание следует учесть, что рост быстродействия последовательных ЭВМ не может продолжаться бесконечно; кроме того, компьютеры подвержены быстрому моральному старению и результативность наиболее мощного процессора на данный момент времени быстро перекрывается новыми моделями компьютеров (а обновление морально устаревшего компьютера требует, как правило, больших финансовых трат);
• потери производительности для организации параллелизма – согласно гипотезе Минского (Minsky), ускорение, достигаемое при использовании параллельной системы, пропорционально двоичному логарифму от числа процессоров (т.е. при 1000 процессорах возможное ускорение оказывается равным 10).
68. Векторная и конвейерная обработка данных
Принцип векторной обработки основан на существовании значительного класса задач использующих операции над векторами. Алгоритмы этих задач в соответствии с терминологией Флинна относятся к классу ОКМД (одиночный поток команд, множественный поток данных). Реализация операций обработки векторов на скалярных процессорах с помощью обычных циклов ограничивает скорость вычислений по следующими причинам.
Перед каждой скалярной операцией необходимо вызывать и декодировать скалярную команду.
Для каждой команды необходимо вычислять адреса элементов данных
Данные должны вызываться из памяти, а результаты запоминаться в памяти. В больших ЭВМ память выполняется, как правило, в виде набора модулей, доступ к которым может осуществляться одновременно. В условиях когда каждая команда вырабатывает свой собственный запрос к памяти, такой раздробленный доступ может стать причиной возникновения конфликтов обращения к памяти, препятствующих эффективному использованию ее потенциальной пропускной способности.
Необходимо осуществлять упорядочение выполнения операций в функциональных устройствах. В целях увеличения производительности эти устройства строятся по конвейерному принципу. Эффективному использованию конвейерных устройств препятствует последовательная “природа” оператора цикла.
Реализация команд построения циклов (счетчик и переход) сопровождается накладными расходами. Кроме того, наличие в цикле команды перехода препятствует эффективному использованию принципа опережающего просмотра.
Влияние перечисленных отрицательных факторов уменьшается при введении векторных команд, с помощью которых задается одна и та же операция над элементами одного или нескольких векторов, и организации, системы, которая обеспечивает эффективное исполнение таких команд. Этот подход реализуется в системах двух типов: матричных и векторно-конвейерных.
Матричная система состоит из множества процессорных элементов (ПЭ), организованных таким образом, что они исполняют векторные, команды, задаваемые общим для всех устройством управления, причем каждый ПЭ работает с отдельным элементом вектора. ПЭ соединены через коммутационное устройство с многомодульной памятью. Исполнение векторной команды включает чтение из памяти элементов векторов, распределение их по процессорам, выполнение заданной операции и засылку результатов обратно в память.
В векторно-конвейерной системе, напротив, имеется один (или небольшое число) конвейерный процессор, выполняющий векторные команды путем засылки элементов векторов в конвейер с интервалом, равным длительности прохождения одной, стадии обработки. При этом скорость вычислений зависит только от длительности стадии и не зависит от задержек в процессоре в целом.
Оба подхода в принципе позволяют достичь значительного ускорения по сравнению со скалярными машинами. Более того, ускорение в системах матричного типа может быть больше, чем в конвейерных, поскольку увеличить число процессорных элементов проще, чем число ступеней в конвейерном устройстве. В настоящее время созданы и успешно применяются системы обоих типов. К наиболее значительным представителям семейства матричных систем относятся одна из первых крупных разработок – ILLIAC IV - системы DAP фирмы ICL, BSP фирмы Burrougs и МРР фирмы Goodyear. Класс конвейерных систем включает такие системы, как STAR100 и Суbег 205 фирмы СDС, Сгау-1 фирмы Сгау >Research, S-810 фирмы НIТАСНI, SХ NЕС и FАСОМ, VР-200 фирмы Fujitsu. Тот факт, что большинство суперЭВМ относится к классу конвейерных систем, свидетельствует, похоже, о том, что для современного уровня технологии такие системы являются более гибкими и эффективными с точки зрения стоимости.
69. Многопроцессорная и многомашинная, параллельная обработка данных
Различие понятий многомашинной и многопроцессорной ВС поясняет рис.6.1. Многомашинная ВС (ММС) содержит несколько ЭВМ, каждая из которых имеет свою ОП и работает под управлением своей операционной системы, а также средства обмена информацией между машинами. Реализация обмена информацией происходит, в конечном счете, путем взаимодействия операционных систем машин между собой. Это ухудшает динамические характеристики процессов межмашинного обмена данными. Применение многомашинных систем позволяет повысить надежность вычислительных комплексов. При отказе в одной машине обработку данных может продолжать другая машина комплекса. Однако можно заметить, что при этом оборудование комплекса недостаточно эффективно используется для этой цели. Достаточно в системе, изображенной на рис.6.1,а в каждой ЭВМ выйти из строя по одному устройству (даже разных типов), как вся система становится неработоспособной.
Этих недостатков лишены многопроцессорные системы (МПС). В таких системах (рис. 6.1,б) процессоры обретают статус рядовых агрегатов вычислительной системы, которые подобно другим агрегатам, таким, как модули памяти, каналы, периферийные устройства, включаются в состав системы в нужном количестве.
Вычислительная система называется многопроцессорной, если она содержит несколько процессоров, работающих с общей ОП (общее поле оперативной памяти) и управляется одной общей операционной системой. Часто в МПС организуется общее поле внешней памяти.
Под общим полем понимается равнодоступность устройств. Так, общее поле памяти означает, что все модули ОП доступны всем процессорам и каналам ввода-вывода (или всем периферийным устройствам в случае наличия общего интерфейса); общее поле ВЗУ означает, что образующие его устройства доступны любому процессору и каналу.
В МПС по сравнению с ММС достигается более быстрый обмен информацией между процессорами и поэтому может быть получена более высокая производительность, более быстрая реакция на ситуации, возникающие внутри системы и в ее внешней среде, и более высокие надежность и живучесть, так как система сохраняет работоспособность, пока работоспособны хотя бы по одному модулю каждого типа устройств.
Многопроцессорные системы представляют собой основной путь построения ВС сверхвысокой производительности. При создании таких ВС возникает много сложных проблем, к которым в первую очередь следует отнести распараллеливание вычислительного процесса (программ) для эффективной загрузки процессоров системы, преодоление конфликтов при попытках нескольких процессоров использовать один и тот же ресурс системы (например, некоторый модуль памяти) и уменьшение влияния конфликтов на производительность системы, осуществление быстродействующих экономичных по аппаратурным затратам межмодульных связей. Указанные вопросы необходимо учитывать при выборе структуры МПС.
На основе многопроцессорности и модульного принципа построения других устройств системы возможно создание отказоустойчивых систем, или, другими словами, систем повышенной живучести.
Однако построение многомашинных систем из серийно выпускаемых ЭВМ с их стандартными операционными системами значительно проще, чем построение МПС, требующих преодоления определенных трудностей, возникающих при реализации общего поля памяти, и, главное, трудоемкой разработки специальной операционной системы.
Многомашинные и многопроцессорные системы могут быть однородными и неоднородными. Однородные системы содержат однотипные ЭВМ или процессоры. Неоднородные ММС состоят из ЭВМ различного типа, а в неоднородных МПС используются различные специализированные процессоры, например процессоры для операций с плавающей запятой, для обработки десятичных чисел, процессор, реализующий функции операционной системы, процессор для матричных задач и др.
Многопроцессорные системы и ММС могут иметь одноуровневую или иерархическую (многоуровневую) структуру. Обычно менее мощная машина (машина-сателлит) берет на себя ввод информации с различных терминалов и ее предварительную обработку, разгружая от этих сравнительно простых процедур основную, более мощную ЭВМ, чем достигается увеличение общей производительности (пропускной способности) комплекса. В качестве машин-сателлитов используют малые или микро-ЭВМ.
Важной структурной особенностью рассматриваемых ВС является способ организации связей между устройствами (модулями) системы. Он непосредственно влияет на быстроту обмена информацией между модулями, а следовательно, на производительность системы, быстроту ее реакции на поступающие запросы, приспособленность к изменениям конфигурации и, наконец, размеры аппаратурных затрат на осуществление межмодульных связей. В частности, от организации межмодульных связей зависят частота возникновения конфликтов при обращении процессоров к одним и тем же ресурсам (в первую очередь модулям памяти) и потери производительности из-за конфликтов.
70. Закон Мура, сдерживающие факторы наращивания количества транзисторов на кристалле и частоты процессоров
Трудности получения суперкомпьютеров экзафлопного уровня основаны на ограничениях, которые появились в 2006 году. Вот два наблюдения, которые важно иметь в виду: закон Мура, который говорит о том, что удвоение плотности транзисторов на чипе происходит каждые два года, и закон масштабирования Деннарда, который говорит о том, что при уменьшении ширины проводника уменьшается напряжение и ток, увеличивается частота и увеличивается производительность структур транзисторов в чипе. Увеличение производительности компьютеров до 2006 года было связано с масштабированием Деннарда и законом Мура как геометрическим воплощением уменьшения ширины проводника.
Начиная с 2006 года масштабирование Деннарда перестало работать. Дело в том, что ток утечки достигает до 40% и заставляют уменьшать потребление и уменьшать скорость, с которой работают транзисторы в чипе. Поэтому производительность чипов не растет, а растет по закону Мура все еще количество транзисторов в процессорах.
На графике показаны изменения в масштабах и производительности в зависимости от ввода в эксплуатацию процессоров. Зеленым показано количество транзисторов в чипе. У нас уже больше миллиарда транзисторов на чипе, и закон Мура продолжает действовать, и их будет еще больше. На синем графике показана тактовая частота процессоров. Она стагнирует и остается на уровне где-то трех гигагерц. Синим показано электрическое потребление процессоров. Оно остается тоже на прежнем уровне, и это так и должно оставаться. Красным показано количество инструкций, приведенное к тактовой частоте. Этот параметр остается на том же уровне, а это значит, что производительность процессоров не увеличивается.
В 2017 году был выведен на рынок процессор с почти 4,5 миллиардами транзисторов. Он используется в телефонах фирмы Apple. В 2018–2019 годах мы ожидаем возникновения, прихода процессоров с технологией 7 нанометров, то есть транзисторов будет еще больше. Но производительность как приведенная к количеству вычислений на тактовую частоту останется тем же самым. Здесь проявляется ограничение, связанное с тем, что масштабирование Деннарда больше не работает. План США — построить компьютер в 2018 году фирмой IBM с именем Summit. И собственно целевая система на один экзафлоп.
Количество вычислительных устройств в будущей системе 2018 года увеличивается на порядок по сравнению с китайским процессором. Это естественно, потому что за этим стоит и масштабирование Мура. Оно должно будет еще увеличиться, чтобы дойти до уровня экзафлопа. Но самый важный параметр, который стоит рассмотреть, — это количество операций на электрическую мощность, которая используется, чтобы этот компьютер работал. Китайский компьютер работает с количеством операций на ватт 8 гигафлоп на ватт. Предполагаемый компьютер в 2018 году будет работать с 14 гигафлопами на ватт. Чтобы получить целевую систему, этот параметр нужно улучшить еще в 5–6 раз. Возможно, технология и дойдет до этих значений с помощью закона Мура и улучшения производительности путем перепрограммирования систем, увеличения эффективности программ. Это мы увидим в ближайшие годы. Сейчас нам важно посмотреть, как улучшается и увеличивается производительность с точки зрения архитектуры систем.
71. Перечень критических задач, решение которых без использования параллельных вычислений затруднено или вовсе невозможно
Характерным (и типичным) примером сложной вычислительной задачи является задача о компьютерном моделировании климата (в частности, задача о метеорологическом прогнозе). Климатическая задача включает в себя атмосферу, океан, сушу, криосферу и биоту (биологическую составляющую). Климатом называется ансамбль состояний, который система проходит за большой промежуток времени.
Под климатической моделью подразумевается математическая модель, описывающая климатическую систему с той или иной степенью точности.
В основе климатической модели лежат уравнения сплошной среды и уравнения равновесной термодинамики. В модели описываются многие физические процессы, связанные с переносом энергии: перенос излучения в атмосфере, фазовые переходы воды, мелкомасштабная турбулентная диффузия тепла, диссипация кинетической энергии, образование облаков, конвекция и др.
Существует множество областей, в которых невозможно или трудно проводить натурный эксперимент: экономика, экология, астрофизика, медицина; однако во всех этих областях часто возникают большие вычислительные задачи.
В некоторых областях, таких как аэродинамика, часто проводится дорогостоящий натурный эксперимент: "продувка" объектов (самолетов, ракет и т. п.) в аэродинамической трубе.
72. Стандартные методики измерения производительности MIPS, MFLOPS и т.д
С подходом, основанным на сравнении производительности микропроцессоров по их рабочим частотам, тесно связан подход по оценке производительности системы по тому, насколько быстро система может выполнять команды процессора.
Однако это весьма расплывчатый показатель. Скорость работы процессора, обычно выражаемая в миллионах операций в секунду (millions of INsTRuctions per second - MIPS ), сильно привязана к его тактовой частоте.
Кроме того, оценка производительности в MIPS существенно зависит от системы команд микропроцессора: одна команда в микропроцессоре одного типа может быть эквивалентна по вычислительной мощности нескольким командам другого МП. К тому же различные операции, особенно в CISC-микропроцессорах, требуют разного времени для их выполнения. Следовательно, MIPS -оценка существенно зависит от того, какие команды принимаются в расчет. Таким образом, MIPS является полезным показателем лишь при сравнении процессоров одного производителя. Такие процессоры должны поддерживать одинаковую систему команд. Кроме того, следует применять одинаковые компиляторы. Существенная слабость MIPS как показателя производительности часто являлась поводом для шутки: MIPS - это аббревиатура выражения "MeanINgless INdicator of Processor Speed" ("бессмысленный показатель скорости процессора").
Аналогичным подходом является измерение производительности работы процессора в миллионах операций с плавающей точкой в секунду (millions of floatINg-poINT operations per second - MFLOPS ). Обычно скорость в MFLOPS вычисляют для смеси операций сложений и умножений с плавающей точкой. Но поскольку микропроцессоры становятся все быстрее и быстрее, значение максимума MFLOPS перестает быть полезным в качестве разумной меры производительности операций с плавающей точкой: ограничивающим фактором становится пропускная способность каналов памяти (насколько быстро данные можно перемещать из процес сора и в процессор).
73. Классификация многопроцессорных вычислительных систем
Одним из наиболее распространенных классификаторов многопроцессорных ВС является система Флинна (Flynn), в основу которой положен способ взаимодействия последовательностей (потоков) выполняемых команд и обрабатываемых данных. В результате такого подхода различают следующие основные типы систем:
1. SISD (Single Instruction, Single Data)– системы с одиночным потоком команд и одиночным потоком данных; к данному типу систем можно отнести обычные последовательные ЭВМ;
2. SIMD (Single Instruction, Multiple Data)– системы с одиночным потоком команд и множественным потоком данных; это многопроцессорные вычислительные системы, в которых в каждый момент времени может выполняться одна и та же команда для обработки нескольких информационных элементов; подобной архитектурой обладают, например, многопроцессорные системы с единым устройством управления;
3. MISD (Multiple Instruction, Single Data)– системы с множественным потоком команд и одиночным потоком данных. Относительно данного типа систем нет единого мнения – ряд специалистов говорят, что примеров конкретных ЭВМ, соответствующих данному типу вычислительных систем, не существует, и введение подобного класса предпринимается для полноты системы классификации; другие же относят к данному типу, например, системы с конвейерной обработкой данных;
4. MIMD (Multiple Instruction, Multiple Data)– системы с множественным потоком команд и множественным потоком данных; к подобному классу систем относится большинство параллельных многопроцессорных вычислительных систем.
Хотя система Флинна широко используется при конкретизации типов компьютерных систем, такая классификация приводит к тому, что практически все виды параллельных систем (несмотря на их существенную разнородность) относятся к одной группе MIMD. Неоднократные предпринимались попытки детализации системы Флинна. Так, например, для класса MIMD была предложена структурная схема, в которой дальнейшее разделение типов многопроцессорных систем основывается на способах организации памяти: системы на общей и распределенной памяти.
Существующие параллельные ВС класса MIMD образуют два технических подкласса: симметричные мультипроцессоры (SMP) и системы с массовым параллелизмом (МРР).
1. Симметричные мультипроцессоры используют принцип разделяемой(общей) памяти. В этом случае система состоит из нескольких однородных процессоров и массива