Главная страница
Навигация по странице:

  • Модель программирования Программирование в рамках модели передачи сообщений

  • Модель программирования Программирование в модели общей памяти

  • Примеры NT-кластер в NCSA, Beowulf-кластеры. Операционная система

  • Классификация узлов вычислительных кластеров

  • Классификация вычислительных кластеров Рассмотрим два из них

  • Главным преимуществом систем с раздельной памятью является

  • Лекция №14.

  • архитектура параллельных вычислений. АПВ УМКД+++. Учебнометодический комплекс дисциплины csse 43057 Паралелльные и облачные вычисления


    Скачать 1 Mb.
    НазваниеУчебнометодический комплекс дисциплины csse 43057 Паралелльные и облачные вычисления
    Анкорархитектура параллельных вычислений
    Дата31.01.2020
    Размер1 Mb.
    Формат файлаdocx
    Имя файлаАПВ УМКД+++.docx
    ТипУчебно-методический комплекс
    #106633
    страница8 из 9
    1   2   3   4   5   6   7   8   9

    Массивно-параллельные системы (MPP)


    Архитектура

    Система состоит из однородных вычислительных узлов, включающих:

    • один или несколько центральных процессоров (обычно RISC),

    • локальную память (прямой доступ к памяти других узлов невозможен),

    • коммуникационный процессор или сетевой адаптер

    • иногда - жесткие диски (как в SP) и/или другие устройства В/В

    К системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы. Узлы связаны через некоторую коммуникационную среду (высокоскоростная сеть, коммутатор и т.п.)

    Примеры

    IBM RS/6000 SP2, Intel PARAGON/ASCI Red, CRAY T3E, Hitachi SR8000, транспьютерные системы Parsytec.

    Масштабируемость

    Общее число процессоров в реальных системах достигает нескольких тысяч (ASCI Red, Blue Mountain).

    Операционная система

    Существуют два основных варианта:

    1. Полноценная ОС работает только на управляющей машине (front-end), на каждом узле работает сильно урезанный вариант ОС, обеспечивающие только работу расположенной в нем ветви параллельного приложения. Пример: Cray T3E.

    2. На каждом узле работает полноценная UNIX-подобная ОС (вариант, близкий к кластерному подходу). Пример: IBM RS/6000 SP + ОС AIX, устанавливаемая отдельно на каждом узле.

    Модель программирования

    Программирование в рамках модели передачи сообщений ( MPI, PVM, BSPlib)

    Дополнительная информация:

    • Лекция об архитектуре массивно-параллельных компьютеров, на примере CRAY T3D (Вл.В.Воеводин).

    • Параллельные компьютеры с распределенной памятью (статья в ComputerWorld, #22, 1999 г.)

    • An Overview of the Intel TFLOPS Supercomputer


    Симметричные мультипроцессорные системы (SMP)


    Архитектура

    Система состоит из нескольких однородных процессоров и массива общей памяти (обычно из нескольких независимых блоков). Все процессоры имеют доступ к любой точке памяти с одинаковой скоростью. Процессоры подключены к памяти либо с помощью общей шины (базовые 2-4 процессорные SMP-сервера), либо с помощью crossbar-коммутатора (HP 9000). Аппаратно поддерживается когерентность кэшей.

    Примеры

    HP 9000 V-class, N-class; SMP-cервера и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др.).

    Масштабируемость

    Наличие общей памяти сильно упрощает взаимодействие процессоров между собой, однако накладывает сильные ограничения на их число - не более 32 в реальных системах. Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры.

    Операционная система

    Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы/нити по процессорам (scheduling), но иногда возможна и явная привязка.

    Модель программирования

    Программирование в модели общей памяти. (POSIX threads, OpenMP). Для SMP-систем существуют сравнительно эффективные средстваавтоматического распараллеливания.


    Системы с неоднородным доступом к памяти (NUMA)


    Архитектура

    Система состоит из однородных базовых модулей (плат), состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти в несколько раз быстрее, чем к удаленной.

    В случае, если аппаратно поддерживается когерентность кэшей во всей системе (обычно это так), говорят об архитектуре cc-NUMA(cache-coherent NUMA)

    Примеры

    HP HP 9000 V-class в SCA-конфигурациях, SGI Origin2000, Sun HPC 10000, IBM/Sequent NUMA-Q 2000, SNI RM600.

    Масштабируемость

    Масштабируемость NUMA-систем ограничивается объемом адресного пространства, возможностями аппаратуры поддежки когерентности кэшей и возможностями операционной системы по управлению большим числом процессоров. На настоящий момент, максимальное число процессоров в NUMA-системах составляет 256 (Origin2000).

    Операционная система

    Обычно вся система работает под управлением единой ОС, как в SMP. Но возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС (например, Windows NT и UNIX в NUMA-Q 2000).

    Модель программирования

    Аналогично SMP.


    Параллельные векторные системы (PVP)


    Архитектура

    Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах.

    Как правило, несколько таких процессоров (1-16) работают одновременно над общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько таких узлов могут быть объединены с помощью коммутатора (аналогично MPP).

    Примеры

    NEC SX-4/SX-5, линия векторно-конвейерных компьютеров CRAY: от CRAY-1, CRAY J90/T90, CRAY SV1, CRAY X1, серия Fujitsu VPP.

    Модель программирования

    Эффективное программирование подразумевает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением).

    Дополнительная информация:

    • Лекция об архитектуре векторно-конвейерных супер-ЭВМ CRAY C90. (Вл.В.Воеводин)


    Кластерные системы


    Архитектура

    Набор рабочих станций (или даже ПК) общего назначения, используется в качестве дешевого варианта массивно-параллельногокомпьютера. Для связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора.

    При объединении в кластер компьютеров разной мощности или разной архитектуры, говорят о гетерогенных (неоднородных) кластерах.

    Узлы кластера могут одновременно использоваться в качестве пользовательских рабочих станций. В случае, когда это не нужно, узлы могут быть существенно облегчены и/или установлены в стойку.

    Примеры

    NT-кластер в NCSA, Beowulf-кластеры.

    Операционная система

    Используются стандартные для рабочих станций ОС, чаще всего, свободно распространяемые - Linux/FreeBSD, вместе со специальными средствами поддержки параллельного программирования и распределения нагрузки.

    Модель программирования

    Программирование, как правило, в рамках модели передачи сообщений (чаще всего - MPI). Дешевизна подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.

    Организация симметричной мультипроцессорности позволяет достаточно легко увеличивать производительность вычислительных устройств. Однако такое решение при увеличении числа процессоров обладает плохой масштабируемостью из-за проблем с обеспечением когерентности кэш-памяти разных процессоров – 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), когда в составе процессоров будут находиться сотни и тысячи ядер!

    И в заключение следует отметить еще один принципиальный момент – потенциал производительности многоядерных процессоров может быть задействован только при надлежащей разработке программного обеспечения – программы должны быть очень хорошо распараллелены. А, как известно, сложность разработки параллельных программ значительно превышает трудоемкость обычного последовательного программирования. Тем самым проблема обеспечения высокопроизводительных вычислений перемещается теперь из области компьютерного оборудования в сферу параллельного программирования. И здесь нужны новые идеи и перспективные технологии для организации массового производства параллельных программ.

    Контрольные вопросы:

      1. Масштабируемые высокопроизводительные системы с распределенной памятью.

      2. Многоядерные процессоры и проблемы параллельной обработки.

      3. Симметричная мультипроцессорность.

      4. Основные классы современных параллельных компьютеров. Многоядерность и одновременная многопотоковость.

    Литература:

    1. Кудин А.В., Линёв А.В., Архитектура и операционные системы параллельных вычислительных систем. Нижний Новогород, 2007. 73с.

    2. El-Rewini H. Abd-El-Barr M. Advanced Computer Architecture and Parallel Proccesing. Wiley-Interscience, 2005.

    3. Dubois M., Annavaram M., Stenstrom P. Parallel Computer Organization and Design, Cambridge University Press, UK, 2010.

    4. Xingfu Wu, Performance Evaluation, Prediction and Visualization of Parallel Systems, Springer Science & Business Media, 2012. 319 c.

    Лекция №13. Кластеры и массивно-параллельные системы различных производителей. Поколения мультикомпьютеров. Архитектура кластеров и массивно- параллельных систем. Механизмы передачи сообщений.

    План лекции:

    1. Кластеры и массивно-параллельные системы различных производителей.

    2. Архитектура кластеров и массивно- параллельных систем.

    Одно из самых современных направлений в области создания вычислительных систем — это кластеризация. По производительности и коэффициенту готовности кластеризация представляет собой альтернативу симметричным мультипроцессорным системам.

    Как мы уже отмечали, вычислительный кластер — это М1МР-система (мультикомпьютер), состоящая из множества отдельных компьютеров (узлов вычислительного кластера), объединенных единой коммуникационной средой.

    В качестве узла кластера может выступать как однопроцессорная ВМ, так и ВС типа SMP или МРР. Каждый узел в состоянии функционировать самостоятельно и отдельно от кластера.

    Каждый узел имеет свою локальную оперативную память. При этом общей физической оперативной памяти для узлов, как правило, не существует. Коммуникационная среда вычислительных кластеров обычно позволяет узлам взаимодействовать между собой только посредством передачи сообщений. В целом вычислительный кластер следует рассматривать как единую аппаратно-программную систему, имеющую единую коммуникационную систему, единый центр управления и планирования загрузки.

    Архитектура кластерных вычислений сводится к объединению нескольких узлов высокоскоростной сетью. Наряду с термином «кластерные вычисления», часто применяются такие названия, как кластер рабочих станций (workstation cluster), гипервычисления (hypercomputing), параллельные вычисления на базе сети (network-based concurrent computing).

    Перед кластерами ставятся две задачи:

        • • достичь большой вычислительной мощности;

        • • обеспечить повышенную надежность ВС.

    Первый коммерческий кластер создан корпорацией «DEC» в начале 80-х гг. прошлого века. В качестве узлов кластеров могут использоваться как одинаковые ВС (гомогенные кластеры), так и разные (гетерогенные кластеры). По своей архитектуре кластерная ВС является слабосвязанной системой.

    Преимущества, достигаемые с помощью кластеризации:

        • • абсолютная масштабируемость. Возможно создание больших кластеров, превосходящих по вычислительной мощности даже самые производительные одиночные ВМ. Кластер в состоянии содержать десятки узлов, каждый из которых представляет собой мультиплексор;

        • • наращиваемая масштабируемость. Кластер строится так, что его можно наращивать, добавляя новые узлы небольшими порциями;

        • • высокий коэффициент готовности. Поскольку каждый узел кластера — самостоятельная ВМ или ВС, отказ одного из узлов не приводит к потере работоспособности кластера. Во многих системах отказоустойчивость автоматически поддерживается программным обеспечением;

        • • превосходное соотношение цена/производительность. Кластер любой производительности можно создать, соединяя стандартные

    ВМ, при этом его стоимость будет ниже, чем у одиночной ВМ

    с эквивалентной вычислительной мощностью.

    На уровне аппаратного обеспечения кластер — это просто совокупность независимых вычислительных систем, объединенных сетью. При соединении машин в кластер почти всегда поддерживаются прямые межмашинные связи. Решения могут быть простыми, основывающимися на аппаратуре Ethernet, или сложными с высокоскоростными сетями с пропускной способностью в сотни мегабайт в секунду (система /?5/6000 SP компании «1ВМ», системы фирмы «Digital» на основе Memory Channel, ServerNet корпорации «Compaq»).

    Узлы кластера контролируют работоспособность друг друга и обмениваются специфической информацией. Контроль работоспособности осуществляется с помощью специального сигнала, называемого heartbeat («сердцебиение»). Этот сигнал передается узлами кластера друг другу, чтобы подтвердить их нормальное функционирование.

    Неотъемлемой частью кластера является специализированное программное обеспечение (ПО), на которое возлагается задача обеспечения бесперебойной работы при отказе одного или нескольких узлов. Такое ПО производит перераспределение вычислительной нагрузки при отказе одного или нескольких узлов кластера, а также восстановление вычислений при сбое в узле. Кроме того, при наличии в кластере совместно используемых дисков кластерное программное обеспечение поддерживает единую файловую систему.

    Узлы вычислительного кластера могут функционировать под управлением разных операционных систем. Однако чаще всего используются стандартные UNIX-подобные системы. Заметим, что с точки зрения разработки прикладных параллельных программ нет каких-либо принципиальных различий между однородными вычислительными кластерами и МРР-системами.

    Классификация вычислительных кластеров по типу

    узловых процессоров

    Вычислительные кластеры классифицируются прежде всего по характеру узловых процессоров (рис. 9.10).

    В качестве узлов вычислительного кластера обычно используют персональные компьютеры, рабочие станции и ^МР-серверы. Если в качестве узла кластера используется SMP-система, то такой вычислительный кластер называется *5ЖР-кластером.

    Если в качестве узлов вычислительного кластера используются персональные ЭВМ или рабочие станции, то обычной является си-



    Рис. 9.10. Классификация узлов вычислительных кластеров

    туация, когда во время решения задачи на кластере на узлах этого кластера продолжают выполняться последовательные задания пользователей. В результате относительная производительность узлов кластера меняется случайным образом и в широких пределах. Решением проблемы было бы написание самоадаптирующейся пользовательской программы. Однако эффективное решение этой задачи представляется весьма проблематичным. Ситуация усугубляется, если среди узловых компьютеров вычислительного кластера имеются файловые серверы. При этом во время решения задачи на кластере в широких пределах может меняться загрузка коммуникационной среды, что делает непредсказуемыми коммуникационные расходы задачи.

    Классификация вычислительных кластеров по однородности узлов

    Как и всякие А//А//)-системы, вычислительные кластеры разделяются на однородные кластерные системы (однородные вычислительные кластеры) и разнородные кластерные системы (гетерогенные вычислительные кластеры).

    Обычно, когда говорят о вычислительных кластерах, подразумевают однородные вычислительные кластеры. Однако часто при наращивании кластера приходится использовать процессоры, отличающиеся не только по производительности, но и по архитектуре от узловых процессоров кластера. Поэтому постепенно однородный вычислительный кластер может стать неоднородным. Эта неоднородность создает следующие проблемы: различие в производительности процессоров усложняет задачу распределения работ между процессорами; различие в архитектуре процессоров требует подготовки разных выполняемых файлов для разных узлов, а в случае различий в представлении данных может потребовать и преобразования их форматов при передаче сообщений между узлами.

    Классификация вычислительных кластеров по функциональности узлов

    Узлы вычислительного кластера могут представлять собой полно-функциональные компьютеры, которые могут работать и как самостоятельные единицы. Производительность такого кластера обычно невысока.

    Для создания высокопроизводительных вычислительных кластеров системные блоки узловых компьютеров делают значительно более простыми, чем в первом случае (неполнофункциональными). Здесь нет необходимости снабжать компьютеры узлов графическими картами, мониторами, дисковыми накопителями и другим периферийным оборудованием. Периферийное оборудование устанавливается только на одном или немногих управляющих компьютерах (ЯОУГ-компьютерах). Такой поход позволяет значительно уменьшить стоимость системы.

    При классификации кластеров используется и ряд других классификационных признаков (рис. 9.11).



    Рис. 9.11. Классификация вычислительных кластеров Рассмотрим два из них:

        • • классификация по стандартности комплектующих;

        • • классификация по функциональной направленности. Классификация вычислительных кластеров по стандартности комплектующих. С точки зрения стандартности комплектующих можно выделить два класса кластерных систем:

          • 1) вычислительный кластер строится целиком из стандартных комплектующих;

          • 2) при построении кластера используются эксклюзивные или нешироко распространенные комплектующие.

    Вычислительные кластеры первого класса имеют низкие цены и простое обслуживание. Широкое распространение кластерные технологии получили как средство создания именно относительно дешевых систем суперкомпьютерного класса из составных частей массового производства.

    Кластеры второго класса позволяют получить очень высокую производительность, но являются, естественно, более дорогими.

    Классификация вычислительных кластеров по их функциональной направленности. С функциональной точки зрения кластерные системы можно разделить:

    • на высокоскоростные кластерные системы (High Performance) —

    ЯР-кластеры;

    • кластерные системы высокой готовности (High Availability) — НА-

    кластеры.

    Высокоскоростные кластеры используются в областях, которые требуют значительной вычислительной мощности. Кластеры высокой готовности используются везде, где стоимость возможного простоя превышает стоимость затрат, необходимых для построения отказоустойчивой системы.

    Производительность вычислительного высокоскоростного кластера, очевидно, зависти от производительности его узлов. С другой стороны, производительность кластера, как и всякой системы с распределенной памятью, сильно зависит от производительности коммуникационной среды. Обычно при построении вычислительных кластеров используют достаточно дешевые коммуникационные среды. Такие среды обеспечивают, на один — два порядка более низкую производительность чем производительность коммуникационных сред суперкомпьютеров. Поэтому находится не так много задач, которые могут достаточно эффективно решаться на больших кластерных системах.

    Влияние производительности коммуникационной среды на общую производительность кластерной системы зависит от характера выполняемой задачи. Если задача требует частого обмена данными между подзадачами, которые решаются на разных узлах вычислительного кластера, то быстродействию коммуникационной среды следует уделить максимум внимания. Соответственно, чем меньше взаимодействуют части задачи между собою, тем меньше внимания можно уделить быстродействию коммуникационной среды.

    Разработано множество технологий соединения компьютеров в кластер.

    Для того чтобы вычислительная система обладала высокими показателями готовности, необходимо, чтобы ее компоненты были максимально надежными, чтобы система была отказоустойчивой, а также чтобы была возможной «горячая» замена компонентов (без останова системы). Благодаря кластеризации при отказе одного из компьютеров системы задачи могут быть автоматически (операционной системой) перераспределены между другими (исправными) узлами вычислительного кластера. Таким образом, отказоустойчивость кластера обеспечивается дублированием всех жизненно важных компонентов вычислительной системы. Самыми популярными коммерческими отказоустойчивыми системами в настоящее время являются двухузловые кластеры.

    Выделяется еще один класс вычислительных кластеров — вычислительные сети (GRID), объединяющие ресурсы множества кластеров, многопроцессорных и однопроцессорных ЭВМ, которые могут принадлежать разным организациям и быть расположенными в разных странах.

    Разработка параллельных программ для вычислительных сетей усложняется из-за следующих проблем. Ресурсы (количество узлов, их архитектура, производительность), которые выделяются задаче, определяются только в момент обработки сетью заказа на выполнение этой задачи. Поэтому программист не имеет возможности разработать программу для конкретной конфигурации вычислительной сети. Программу приходится разрабатывать так, чтобы она могла динамически (без перекомпиляции) самонастраиваться на выделенную конфигурацию сети. Кроме того, к неоднородности коммуникационной среды добавляется изменчивость ее характеристик, вызываемая изменениями загрузки сети. В лучшем случае программа должна разрабатываться с учетом этой неоднородности коммуникационной среды, что представляет собой весьма непростую задачу. Как мы отмечали выше, подобная проблема имеет место и для вычислительных кластеров, построенных на основе персональных компьютеров или рабочих станций.

    Эффективная производительность кластерных вычислительных систем (real applications performance, RAP) оценивается как 5—15% от их пиковой производительности (Peak Advertised Performance, PAP). Для сравнения: у лучших малопроцессорных систем из векторных процессоров это соотношение оценивается как 30—50%.

    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). При передаче сообщений на канальном уровне сети автоматически предполагается, что получатель и отправитель имеют общий канал связи и даже на уровне локальной сети необходимо только выполнить определенные процедуры управления передачей данных в уже имеющемся канале связи. Поэтому с точки зрения управления на канальном уровне оба способа передачи данных принципиально не отличаются. Передача с установлением соединения требует только определенных дополнительных процедур для проверки готовности получателя к приему данных.

    В сетях со сложной топологией при передаче сообщений необходимо предварительно определить канал связи, а эта задача на канальном уровне уже не может быть решена и требует совершенно иных средств решения. Эти средства существуют на следующем - сетевом уровне. Поддержание постоянно действующих каналов связи для передачи данных в составных сетях очень сложно, а при больших расстояниях практически нереально. Обычно связи в телекоммуникационной сети образованы коммутируемыми каналами, ресурсы которых распределяются сетью между поступающими заявками на передачу данных. Содержание процедур при разных способах организации передачи данных на сетевом уровне существенно изменяется. Передача с установлением соединения требует достаточно сложных процедур предварительного выбора и закрепления необходимых каналов связи. А дейтаграммный способ передачи требует решения задач маршрутизации, т.е. выбора маршрутов доставки сообщений, для каждого сообщения в отдельности. И тот, и другой способы передачи данных имеют определенные достоинства и находят применение в современных телекоммуникационных технологиях.

    С точки зрения коммутации применительно к сетевому уровню для организации каналов связи в настоящее время применяются три основных способа коммутации: каналов, сообщений, пакетов. Под коммутацией в данном случае понимается выделение необходимых ресурсов в каналах связи для передачи данных. Для управления ресурсами каналов связи и обеспечения доступа к ним необходимы специальные процедуры и алгоритмы и средства их реализации. Эти задачи существенно усложняются из-за распределенного характера как самих управляемых ресурсов, так и средств управления ими. Очень часто задачи управления требуют передачи по тем же каналам связи довольно больших объемов служебной информации и поэтому средства управления тоже потребители сетевых ресурсов. В отличие от средств решения задач канального уровня средства сетевого уровня являются полноправными элементами сети со всеми необходимыми атрибутами, в том числе и самостоятельными сетевыми адресами.

    Коммутация каналов. Это самый старый способ коммутации и предполагает создание сетевыми средствами непрерывного физического канала между узлами. До сих пор применяется в телефонных сетях. Этот физический канал монопольно закрепляется за двумя узлами на время сеанса связи, с точки зрения надежности это преимущество, так как обеспечивает повышенную надежность связи. Но этот же факт является и существенным недостатком, так как использование ресурсов каналов связи весьма неэффективно, если канал связи свободен в отдельные интервалы времени, другие элементы сети не могут получить к нему доступ, пока соединение установлено. Коммутация каналов требует выполнения довольно сложной процедуры установления соединения и поэтому, даже при достаточно длительных паузах в использовании канала связи, разрывать соединение нецелесообразно. Второй существенный недостаток этого способа коммутации - пропускная способность канала определяется самым плохим участком канала (в большинстве случаев это линия «последней мили»). Буферизация сигналов и данных не предусматривается, т.е. коммуникационное оборудование выполняет функции «телефонных коммутаторов».

    Коммутация сообщений. Этот способ коммутации появился позднее и применялся в службах электронной почты. Каждое сообщение передается целиком, во всех промежуточных узлах принимается в буферное ЗУ и после необходимой обработки направляется в следующий узел, пока не достигнет пункта назначения. Может использоваться передача с установлением соединения или дейтаграммный способ передачи. В настоящее время используется редко, объемы сообщений могут быть весьма различными и требуют избыточно больших объемов буферов.

    Коммутация пакетов. В настоящее время самый эффективный способ передачи данных на сетевом уровне. Каждое сообщение разбивается на пакеты относительно небольших стандартных размеров, что существенно облегчает буферизацию и обработку во всех узлах сети. Эта процедура одновременно требует создания дополнительных средств для восстановления сообщений и сохранения их целостности в пункте назначения. Однако простота транспортировки стандартных блоков данных (пакетов), как и в любой транспортной системе, является решающим преимуществом. Также может использоваться дейтаграммный способ передачи или передача с установлением соединения. В связи с более высокой надежностью передачи с установлением соединения используются алгоритмы организации работы с элементами коммутации каналов. В частности, виртуальные каналы с коммутацией пакетов по свойствам во многом аналогичны системам с коммутацией каналов, но одновременно сохраняют многие качества систем с коммутацией пакетов.

    Виртуальные каналы с коммутацией пакетов требуют обязательной процедуры установления соединения с решением задачи маршрутизации. После создания виртуального канала все пакеты этого виртуального канала передаются по проложенному маршруту с использованием процедур аналогичных канальным процедурам.

    Контрольные вопросы:

      1. Кластеры и массивно-параллельные системы различных производителей.

      2. Поколения мультикомпьютеров.

      3. Архитектура кластеров и массивно- параллельных систем. Механизмы передачи сообщений.

    Литература:

    1. Кудин А.В., Линёв А.В., Архитектура и операционные системы параллельных вычислительных систем. Нижний Новогород, 2007. 73с.

    2. El-Rewini H. Abd-El-Barr M. Advanced Computer Architecture and Parallel Proccesing. Wiley-Interscience, 2005.

    3. Dubois M., Annavaram M., Stenstrom P. Parallel Computer Organization and Design, Cambridge University Press, UK, 2010.

    4. Xingfu Wu, Performance Evaluation, Prediction and Visualization of Parallel Systems, Springer Science & Business Media, 2012. 319 c.

    Лекция №14. Проектирование взаимосвязанных сетей. Организационная структура. Оценка компромисса дизайна в топологии сети. Маршрутизация. Управление потоком.

    План лекции:

    1. Проектирование взаимосвязанных сетей.

    2. Организационная структура.

    Любое проектирование, как известно, представляет собой сильно упрощенное моделирование еще не наступившей действительности. Именно поэтому предусмотреть все возможные факторы, учесть все потребности, которые могут возникнуть в будущем, практически невозможно. Итак, даже самые подробные руководства по проектированию имеют не слишком большую ценность.

    Однако общие подходы к проектированию локальных компьютерных сетей все-таки могут быть сформулированы, некоторые полезные принципы такого проектирования предлагаются и с успехом используются. Не стоит только воспринимать их как нечто пригодное для любых практических случаев и учитывающее все возможные ситуации.

    На рис. 15.1 приведена примерная последовательность этапов и варианты выбора при проектировании локальной сети. Вообще, проблема выбора одного из многочисленных вариантов при проектировании ЛС является основной для данного раздела. Выбор затрудняет необходимость учета множества требований, иногда противоречивых (например, обеспечение высоких технических характеристик сети при доступной стоимости), а также настойчивая, порой агрессивная реклама отдельных решений. Последнее часто относится к новейшим вариантам сетевого оборудования и/или программного обеспечения, отнюдь не самым доступным по цене и не всегда имеющим значительные преимущества по техническим характеристикам перед опробованными вариантами.




    увеличить изображение
    Рис. 15.1. Примерная последовательность этапов и варианты выбора при проектировании ЛС

    Цель данного раздела состоит в том, чтобы сформулировать объективные критерии выбора конкретных решений при проектировании ЛС, опираясь на материал предыдущих разделов. Не все этапы проектирования, перечисленные на рис. 15.1, будут далее рассматриваться. Так, организация силовой электрической сети (п. 5), актуальна в относительно редких случаях. Например, если сеть размещается в новом здании или производится капитальный ремонт, то возникает необходимость организации силовой электрической сети "по всем правилам". Многие из этих правил в отечественных условиях реализуются нечасто (или возможность их реализации ограничена по техническим причинам). Не вдаваясь в излишние подробности, следует упомянуть необходимость организации полноценной системы заземления оборудования (что означает использование не двух-, а трехполюсных розеток, причем один из полюсов должен быть подключен к шине физического заземления) и обеспечение мер электробезопасности. Другой этап, который также не будет далее детализироваться, это этап 6 (установка сетевых карт, активных сетевых устройств, сетевой ОС и других сетевых программных средств). С одной стороны, усилиями разработчиков компьютерного оборудования и программных средств, процедура их инсталляции максимально упрощена (режим plug-and-play, пошаговые инструкции поинсталляции). С другой же, в особо сложных случаях (например, при установке, настройке и последующей поддержке сети на основе выделенного сервера ) может потребоваться либо приглашение стороннего специалиста, либо (что предпочтительнее) работа штатного системного администратора. Работы по инсталляции носят разовый характер, а специфический и не малый объем сведений и навыков, которыми должен обладать системный администратор, делают целесообразным изучение соответствующего раздела в рамках отдельного курса (как это и происходит на практике). Тем не менее, некоторые общие принципы системного администрирования рассмотрены в разделе "Выбор сетевых программных средств".
    1   2   3   4   5   6   7   8   9


    написать администратору сайта