архитектура параллельных вычислений. АПВ УМКД+++. Учебнометодический комплекс дисциплины csse 43057 Паралелльные и облачные вычисления
Скачать 1 Mb.
|
Массивно-параллельные системы (MPP)
Дополнительная информация: Лекция об архитектуре массивно-параллельных компьютеров, на примере CRAY T3D (Вл.В.Воеводин). Параллельные компьютеры с распределенной памятью (статья в ComputerWorld, #22, 1999 г.) An Overview of the Intel TFLOPS Supercomputer Симметричные мультипроцессорные системы (SMP)
Системы с неоднородным доступом к памяти (NUMA)
Параллельные векторные системы (PVP)
Дополнительная информация: Лекция об архитектуре векторно-конвейерных супер-ЭВМ CRAY C90. (Вл.В.Воеводин) Кластерные системы
Организация симметричной мультипроцессорности позволяет достаточно легко увеличивать производительность вычислительных устройств. Однако такое решение при увеличении числа процессоров обладает плохой масштабируемостью из-за проблем с обеспечением когерентности кэш-памяти разных процессоров – SMP системы содержат, как правило, 2 или 4, реже – 8 и совсем редко – большее количество процессоров. Кроме того, такой подход является сравнительно дорогим решением за счёт дорогой реализации компонент (требуются сложные и дорогие материнские платы для размещения нескольких процессоров). С другой стороны, проанализировав эффективность современных сложных процессоров, насчитывающих в своем составе десятки и сотни миллионов транзисторов, можно обратить внимание на то, что при выполнении большинства операций оказываются полностью задействованными не все составные компоненты процессоров (по имеющимся оценкам, средняя загрузка процессора составляет всего лишь около 30%). Так, если в данный момент времени выполняется операция целочисленной арифметики, то блок процессора для выполнения вещественных операций окажется простаивающим. Для повышения загрузки процессора можно организовать спекулятивное (опережающее) исполнение операций, однако воплощение такого подхода требует существенного усложнения логики аппаратной реализации процессора. Было бы гораздо проще, если бы в программе заранее были предусмотрены последовательности команд (потоки), которые могли быть выполнены параллельно и независимо друг от друга. Такой подход тем более является целесообразным, поскольку поддержка многопоточного исполнения может быть обеспечена и на аппаратном уровне за счет соответствующего расширения возможностей процессора (и такая доработка является сравнительно простой). Данная идея поддержки одновременной многопоточности (simultaneous multithreading, SMT) была предложена в 1995 г. в университете Вашингтона Дином Тулсеном (Dean Tullsen) и позднее активно развита компанией Intel под названием технологии гиперпоточности (hyper threading, HT). В рамках такого подхода процессор дополняется средствами запоминания состояния потоков, схемами контроля одновременного выполнения нескольких потоков и т. д. За счет этих дополнительных средств на активной стадии выполнения может находиться несколько потоков; при этом одновременно выполняемые потоки конкурируют за исполнительные блоки единственного процессора, и как результат выполнение отдельных потоков может блокироваться, если требуемые в данный момент времени блоки процессора оказываются уже задействованными. Как правило, число аппаратно-поддерживаемых потоков равно 2, в более редких случаях этот показатель достигает 4 и даже 8. Важно при этом подчеркнуть, что аппаратно-поддерживаемые потоки на логическом уровне операционных систем Linux и Windows воспринимаются как отдельные процессоры, т. е., например, единственный процессор с двумя аппаратно-поддержи¬ваемыми потоками в менеджере Task Manager операционной системы Windows диагностируется как два отдельных процессора. Использование процессоров с поддержкой многопотоковости может приводить к существенному ускорению вычислений (важно отметить – при надлежащей реализации программ). Так, имеется большое количество демонстраций, показывающих, что на процессорах компании Intel с поддержкой технологии гиперпоточности достигается повышение скорости вычислений около 30%. Стоит заметить, что одновременная многопотоковость не всегда положительно сказывается на производительности. При использовании многопоточности несколько программных потоков делят ресурсы одного вычислительного ядра, поэтому для высокопроизводительных приложений (где потоки выполняют однотипные вычисления и конкурируют за ресурсы ядра) эта технология часто сказывается негативно. Выигрыш от использования одновременной многопотоковости может достигаться, если на одном ядре выполняются потоки разнотипных приложений (например, просмотр почты и проигрывание музыки), если на одном ядре выполняется несколько потоков с интенсивным вводом-выводом и пр. МногоядерностьТехнология одновременной многопоточности позволяет достичь многопроцессорности на логическом уровне. Еще раз отметим, что затраты на поддержку такой технологии являются сравнительно небольшими, но и получаемый результат достаточно далек от максимально-возможного – ускорение вычислений от использования многопоточности оказывается равным примерно 30%. Дальнейшее повышение быстродействия вычислений при таком подходе по-прежнему лежит на пути совершенствования процессора, что – как было отмечено ранее – требует решения ряда сложных технологических проблем. Возможное продвижение по направлению к большей вычислительной производительности может быть обеспечено за счёт реализации в единственном кремниевом кристалле несколько вычислительных ядер в составе одного многоядерного процессора, при этом по своим вычислительным возможностям эти ядра не уступают обычным процессорам. Кроме того, можно пойти по пути возврата к более "простым" процессорам с более низкой тактовой частотой и с менее сложной логикой реализации! Такой неординарный ход приводит к тому, что процессоры становятся менее энергоемкими5 , более простыми для изготовления и как результат – более надежными. А также – что является чрезвычайно важным – "простые" процессоры требуют для своего изготовления меньшее количество логических схем, что приводит к освобождению – в рамках кремниевого кристалла, используемого для изготовления процессоров, – большого количества свободных транзисторов. Эти свободные транзисторы, в свою очередь, могут быть использованы для реализации дополнительных вычислительных устройств, которые могут быть добавлены к процессору6 . Поясним сказанное на примере рис. 1.3. В центре рисунка (1.3,б) приведены показатели исходного процессора, принятые за 1 для последующего сравнения. Рис. 1.3. Демонстрация зависимости между тактовой частотой, энергопотреблением и производительностью процессора Пусть для повышения быстродействия процессора его тактовая частота увеличена на 20% (см. рис. 1.3, а ), тогда производительность процессора увеличится – однако не на 20%, а, например, на 13% (приводимые здесь числовые значения имеют качественный характер), в то время как энергопотребление возрастет существенно – в приведенном примере на 73%. Данный пример является на самом деле очень характерным – увеличение тактовой частоты процессора приводит в большинстве случаев к значительному росту энергопотребления. Теперь уменьшим тактовую частоту процессора – опять же на 20% (см. рис. 1.3, в ). В результате снижения тактовой частоты производительность процессора, конечно, уменьшится, но опять же не на 20%, а примерно на ту же величину 13% (т. е. станет равной 87% от производительности исходного процессора). И опять же, энергопотребление процессора уменьшится, причем достаточно значительно – до уровня примерно 51% энергопотребления исходного процессора. И тогда, добавив в процессор второе вычислительное ядро за счет появившихся свободных транзисторов, мы можем довести суммарные показатели процессора по энергопотреблению до уровня 1.02 энергопотребления исходного процессора, а производительность – до уровня 1.73!!! На логическом уровне архитектура многоядерного процессора соответствует практически архитектуре симметричного мультипроцессора (рис. рис. 1.2 и рис. 1.4). На рис. 1.4 приведена возможная архитектура двуядерного процессора – различия для разных многоядерных процессоров могут состоять в количестве имеющихся ядер и в способах использования кэш-памяти ядрами процессора – кэш-память может быть как общей, так и распределенной для разных ядер. Так, на рис. 4 кэш-память первого уровня L1 локальна для каждого ядра, в то же время кэш-память всех последующих уровней и оперативная память является общей. Как следует из проведенного рассмотрения, многоядерность позволяет повышать производительность процессоров, и данный подход обладает целым рядом привлекательных моментов (уменьшение энергопотребления, снижение сложности логики процессоров и т. п.). Все сказанное приводит к тому, что многоядерность становится одним из основных направлений развития компьютерной техники. Рис. 1.4. Архитектура двухъядерного процессора Значимость такого подхода привела даже к тому, что известный закон Мура теперь формулируется в виде "Количество вычислительных ядер в процессоре будет удваиваться каждые 18 месяцев". Стоит отметить, что удвоение числа ядер не приводит к мгоновенному увеличению производительности, т.к. требуется время для разработки алгоритмов способных эффективность использовать эти ядра. В настоящее время для массового использования доступны двух-, четырех-, шести- и восьми- ядерные процессоры. В научно-технической литературе наряду с рассмотрением обычных многоядерных (multi-core) процессоров начато широкое обсуждение процессоров с массовой многоядерностью (many-core), когда в составе процессоров будут находиться сотни и тысячи ядер! И в заключение следует отметить еще один принципиальный момент – потенциал производительности многоядерных процессоров может быть задействован только при надлежащей разработке программного обеспечения – программы должны быть очень хорошо распараллелены. А, как известно, сложность разработки параллельных программ значительно превышает трудоемкость обычного последовательного программирования. Тем самым проблема обеспечения высокопроизводительных вычислений перемещается теперь из области компьютерного оборудования в сферу параллельного программирования. И здесь нужны новые идеи и перспективные технологии для организации массового производства параллельных программ. Контрольные вопросы: Масштабируемые высокопроизводительные системы с распределенной памятью. Многоядерные процессоры и проблемы параллельной обработки. Симметричная мультипроцессорность. Основные классы современных параллельных компьютеров. Многоядерность и одновременная многопотоковость. Литература: Кудин А.В., Линёв А.В., Архитектура и операционные системы параллельных вычислительных систем. Нижний Новогород, 2007. 73с. El-Rewini H. Abd-El-Barr M. Advanced Computer Architecture and Parallel Proccesing. Wiley-Interscience, 2005. Dubois M., Annavaram M., Stenstrom P. Parallel Computer Organization and Design, Cambridge University Press, UK, 2010. Xingfu Wu, Performance Evaluation, Prediction and Visualization of Parallel Systems, Springer Science & Business Media, 2012. 319 c. Лекция №13. Кластеры и массивно-параллельные системы различных производителей. Поколения мультикомпьютеров. Архитектура кластеров и массивно- параллельных систем. Механизмы передачи сообщений. План лекции: Кластеры и массивно-параллельные системы различных производителей. Архитектура кластеров и массивно- параллельных систем.
MPP (massive parallel processing) – массивно-параллельнаяархитектура. Главная особенность такой архитектуры состоит в том, что память физически разделена. В этом случае система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти (ОП), коммуникационные процессоры(роутеры) или сетевые адаптеры, иногда – жесткие диски и/или другие устройства ввода/вывода. По сути, такие модули представляют собой полнофункциональные компьютеры (см. рис. 5.6). Рисунок 5.6 – Схематический вид архитектуры с раздельной памятью Доступ к банку ОП из данного модуля имеют только процессоры (ЦП) из этого же модуля. Модули соединяются специальными коммуникационными каналами. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами. Используются два варианта работы операционной системы на машинах MPP-архитектуры: - полноценная операционная система (ОС) работает только на управляющей машине (front-end), на каждом отдельном модуле функционирует сильно урезанный вариант ОС, обеспечивающий работу только расположенной в нем ветви параллельного приложения. - на каждом модуле работает полноценная UNIX-подобная ОС, устанавливаемая отдельно. Главным преимуществом систем с раздельной памятью является хорошая масштабируемость: в отличие от SMP-систем, в машинах с раздельной памятью каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров. Практически все рекорды по производительности на сегодня устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров (ASCI Red, ASCI Blue Pacific). Недостатки: - отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами. Требуется специальная техника программирования для реализации обмена сообщениями между процессорами; - каждый процессор может использовать только ограниченный объем локального банка памяти; - вследствие указанных архитектурных недостатков требуются значительные усилия для того, чтобы максимально использовать системные ресурсы. Именно этим определяется высокая цена программного обеспечения для массивно-параллельных систем с раздельной памятью. Системами с раздельной памятью являются суперкомпьютеры МВС-1000, IBM RS/6000 SP, SGI/CRAY T3E, системы ASCI, Hitachi SR8000, системы Parsytec. Машины последней серии CRAY T3E от SGI, основанные на базе процессоров Dec Alpha 21164 с пиковой производительностью 1200 Мфлопс/с (CRAY T3E-1200), способны масштабироваться до 2048 процессоров. При работе с MPP-системами используют так называемую Massive Passing Programming Paradigm – парадигму программирования с передачей данных (MPI, PVM, BSPlib). Дейтаграммный и с установлением соединения (LLC-1, LLC-2, LLC-3). При передаче сообщений на канальном уровне сети автоматически предполагается, что получатель и отправитель имеют общий канал связи и даже на уровне локальной сети необходимо только выполнить определенные процедуры управления передачей данных в уже имеющемся канале связи. Поэтому с точки зрения управления на канальном уровне оба способа передачи данных принципиально не отличаются. Передача с установлением соединения требует только определенных дополнительных процедур для проверки готовности получателя к приему данных. В сетях со сложной топологией при передаче сообщений необходимо предварительно определить канал связи, а эта задача на канальном уровне уже не может быть решена и требует совершенно иных средств решения. Эти средства существуют на следующем - сетевом уровне. Поддержание постоянно действующих каналов связи для передачи данных в составных сетях очень сложно, а при больших расстояниях практически нереально. Обычно связи в телекоммуникационной сети образованы коммутируемыми каналами, ресурсы которых распределяются сетью между поступающими заявками на передачу данных. Содержание процедур при разных способах организации передачи данных на сетевом уровне существенно изменяется. Передача с установлением соединения требует достаточно сложных процедур предварительного выбора и закрепления необходимых каналов связи. А дейтаграммный способ передачи требует решения задач маршрутизации, т.е. выбора маршрутов доставки сообщений, для каждого сообщения в отдельности. И тот, и другой способы передачи данных имеют определенные достоинства и находят применение в современных телекоммуникационных технологиях. С точки зрения коммутации применительно к сетевому уровню для организации каналов связи в настоящее время применяются три основных способа коммутации: каналов, сообщений, пакетов. Под коммутацией в данном случае понимается выделение необходимых ресурсов в каналах связи для передачи данных. Для управления ресурсами каналов связи и обеспечения доступа к ним необходимы специальные процедуры и алгоритмы и средства их реализации. Эти задачи существенно усложняются из-за распределенного характера как самих управляемых ресурсов, так и средств управления ими. Очень часто задачи управления требуют передачи по тем же каналам связи довольно больших объемов служебной информации и поэтому средства управления тоже потребители сетевых ресурсов. В отличие от средств решения задач канального уровня средства сетевого уровня являются полноправными элементами сети со всеми необходимыми атрибутами, в том числе и самостоятельными сетевыми адресами. Коммутация каналов. Это самый старый способ коммутации и предполагает создание сетевыми средствами непрерывного физического канала между узлами. До сих пор применяется в телефонных сетях. Этот физический канал монопольно закрепляется за двумя узлами на время сеанса связи, с точки зрения надежности это преимущество, так как обеспечивает повышенную надежность связи. Но этот же факт является и существенным недостатком, так как использование ресурсов каналов связи весьма неэффективно, если канал связи свободен в отдельные интервалы времени, другие элементы сети не могут получить к нему доступ, пока соединение установлено. Коммутация каналов требует выполнения довольно сложной процедуры установления соединения и поэтому, даже при достаточно длительных паузах в использовании канала связи, разрывать соединение нецелесообразно. Второй существенный недостаток этого способа коммутации - пропускная способность канала определяется самым плохим участком канала (в большинстве случаев это линия «последней мили»). Буферизация сигналов и данных не предусматривается, т.е. коммуникационное оборудование выполняет функции «телефонных коммутаторов». Коммутация сообщений. Этот способ коммутации появился позднее и применялся в службах электронной почты. Каждое сообщение передается целиком, во всех промежуточных узлах принимается в буферное ЗУ и после необходимой обработки направляется в следующий узел, пока не достигнет пункта назначения. Может использоваться передача с установлением соединения или дейтаграммный способ передачи. В настоящее время используется редко, объемы сообщений могут быть весьма различными и требуют избыточно больших объемов буферов. Коммутация пакетов. В настоящее время самый эффективный способ передачи данных на сетевом уровне. Каждое сообщение разбивается на пакеты относительно небольших стандартных размеров, что существенно облегчает буферизацию и обработку во всех узлах сети. Эта процедура одновременно требует создания дополнительных средств для восстановления сообщений и сохранения их целостности в пункте назначения. Однако простота транспортировки стандартных блоков данных (пакетов), как и в любой транспортной системе, является решающим преимуществом. Также может использоваться дейтаграммный способ передачи или передача с установлением соединения. В связи с более высокой надежностью передачи с установлением соединения используются алгоритмы организации работы с элементами коммутации каналов. В частности, виртуальные каналы с коммутацией пакетов по свойствам во многом аналогичны системам с коммутацией каналов, но одновременно сохраняют многие качества систем с коммутацией пакетов. Виртуальные каналы с коммутацией пакетов требуют обязательной процедуры установления соединения с решением задачи маршрутизации. После создания виртуального канала все пакеты этого виртуального канала передаются по проложенному маршруту с использованием процедур аналогичных канальным процедурам. Контрольные вопросы: Кластеры и массивно-параллельные системы различных производителей. Поколения мультикомпьютеров. Архитектура кластеров и массивно- параллельных систем. Механизмы передачи сообщений. Литература: Кудин А.В., Линёв А.В., Архитектура и операционные системы параллельных вычислительных систем. Нижний Новогород, 2007. 73с. El-Rewini H. Abd-El-Barr M. Advanced Computer Architecture and Parallel Proccesing. Wiley-Interscience, 2005. Dubois M., Annavaram M., Stenstrom P. Parallel Computer Organization and Design, Cambridge University Press, UK, 2010. Xingfu Wu, Performance Evaluation, Prediction and Visualization of Parallel Systems, Springer Science & Business Media, 2012. 319 c. Лекция №14. Проектирование взаимосвязанных сетей. Организационная структура. Оценка компромисса дизайна в топологии сети. Маршрутизация. Управление потоком. План лекции: Проектирование взаимосвязанных сетей. Организационная структура. Любое проектирование, как известно, представляет собой сильно упрощенное моделирование еще не наступившей действительности. Именно поэтому предусмотреть все возможные факторы, учесть все потребности, которые могут возникнуть в будущем, практически невозможно. Итак, даже самые подробные руководства по проектированию имеют не слишком большую ценность. Однако общие подходы к проектированию локальных компьютерных сетей все-таки могут быть сформулированы, некоторые полезные принципы такого проектирования предлагаются и с успехом используются. Не стоит только воспринимать их как нечто пригодное для любых практических случаев и учитывающее все возможные ситуации. На рис. 15.1 приведена примерная последовательность этапов и варианты выбора при проектировании локальной сети. Вообще, проблема выбора одного из многочисленных вариантов при проектировании ЛС является основной для данного раздела. Выбор затрудняет необходимость учета множества требований, иногда противоречивых (например, обеспечение высоких технических характеристик сети при доступной стоимости), а также настойчивая, порой агрессивная реклама отдельных решений. Последнее часто относится к новейшим вариантам сетевого оборудования и/или программного обеспечения, отнюдь не самым доступным по цене и не всегда имеющим значительные преимущества по техническим характеристикам перед опробованными вариантами. увеличить изображение Рис. 15.1. Примерная последовательность этапов и варианты выбора при проектировании ЛС Цель данного раздела состоит в том, чтобы сформулировать объективные критерии выбора конкретных решений при проектировании ЛС, опираясь на материал предыдущих разделов. Не все этапы проектирования, перечисленные на рис. 15.1, будут далее рассматриваться. Так, организация силовой электрической сети (п. 5), актуальна в относительно редких случаях. Например, если сеть размещается в новом здании или производится капитальный ремонт, то возникает необходимость организации силовой электрической сети "по всем правилам". Многие из этих правил в отечественных условиях реализуются нечасто (или возможность их реализации ограничена по техническим причинам). Не вдаваясь в излишние подробности, следует упомянуть необходимость организации полноценной системы заземления оборудования (что означает использование не двух-, а трехполюсных розеток, причем один из полюсов должен быть подключен к шине физического заземления) и обеспечение мер электробезопасности. Другой этап, который также не будет далее детализироваться, это этап 6 (установка сетевых карт, активных сетевых устройств, сетевой ОС и других сетевых программных средств). С одной стороны, усилиями разработчиков компьютерного оборудования и программных средств, процедура их инсталляции максимально упрощена (режим plug-and-play, пошаговые инструкции поинсталляции). С другой же, в особо сложных случаях (например, при установке, настройке и последующей поддержке сети на основе выделенного сервера ) может потребоваться либо приглашение стороннего специалиста, либо (что предпочтительнее) работа штатного системного администратора. Работы по инсталляции носят разовый характер, а специфический и не малый объем сведений и навыков, которыми должен обладать системный администратор, делают целесообразным изучение соответствующего раздела в рамках отдельного курса (как это и происходит на практике). Тем не менее, некоторые общие принципы системного администрирования рассмотрены в разделе "Выбор сетевых программных средств". |