Пост-неймановская эпоха – параллельные вычислительные системы
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

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

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

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

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

Наиболее часто упоминаемой является фактически первая классификация архитектур ПВС, предложенная в 1966 г. М. Флинном (Flynn). Классификация Флинна базируется на понятии потока и на описании того, как в вычислительной системе увязываются потоки команд и обрабатываемых данных. Поток – последовательность элементов (команд или данных), выполняемая или обрабатываемая процессором. Флинн выделяет четыре класса вычислительных систем:

Один поток команд – один поток данных, ОКОД (single instruction – single data, SISD) – обычная последовательная ЭВМ фон Неймана, в которой имеется один поток команд (и практически одно устройство обработки команд) и каждая арифметическая команда инициирует одну операцию с одним потоком данных.

Один поток команд – много потоков данных, ОКМД (single instruction – multiple data, SIMD) - в таких системах сохраняется один поток команд, распределяемый между несколькими исполняющими устройствами (процессорными элементами). матриц процессоров. 13

Много потоков команд – один поток данных, МКОД (multiple instruction – single data, MISD) - этот класс в настоящее время мало развит. Предполагается, что в машинах такого типа несколько потоков команд одновременно работают с одним элементом данных. В ряде работ, посвященных архитектурам ПВС, этот класс рассматривается, как синоним конвейерной ЭВМ, но такой подход не является общепринятым.

Много потоков команд –много потоков данных, МКМД (multiple instruction – multiple data, MIMD) - много потоков команд предусматривают существование нескольких устройств обработки команд, и, следовательно, и нескольких потоков данных.

Типы параллельных вычислительных систем

Различают следующие типы ПВС

· Мультикомпьютеры

· Мультипроцессоры

· Кластеры

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

· PVP

· SMP

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

Мультипроцессоры

Использование единой общей памяти служит основой для построения параллельно-векторных суперкомпьютеров (Parallel Vector Processor, PVP) и симметричных мультипроцессоров (Symmetric MultiProcessor, или SMP). Симметричные мультипроцессоры состоят из совокупности процессоров, обладающих одинаковыми возможностями доступа к памяти и внешним устройствам и функционирующих под управлением единой операционной системы (ОС). Все процессоры этого типа имеют разделяемую общую память с единым адресным пространством. Степень масштабируемости SMP-систем ограничена в пределах технической реализуемости одинакового для всех процессоров времени доступа в память со скоростью, характерной для однопроцессорных компьютеров. Современные многоядерные микропроцессоры также могут быть отнесены к классу SMP. Параллельно-векторные суперкомпьютеры (Parallel-Vector Processor, PVP) характеризуются наличием специальных векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров работают одновременно над общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Эффективное программирование подразумевает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением).

Мультикомпьютеры

Мультикомпьютеры (системы с распределенной памятью) не обеспечивают общий доступ ко всей имеющейся в системах памяти. Каждый узел мультикомпьютера представляет собой полнофункциональный вычислительный модуль, включающий в себя процессор, память и средства коммуникации. Данный подход используется при построении двух важных типов многопроцессорных вычислительных систем: кластеров (clusters) и массивно-параллельных систем (Massively Parallel Processor, MPP). Кластер представляет собой два или более компьютеров (часто называемых узлами), объединенных при помощи сетевых технологий на базе шинной архитектуры или коммутатора и предстающих перед пользователями в качестве единого информационно-вычислительного ресурса. Массивно-параллельные системы состоят из нескольких вычислительных узлов (как правило, однородных), включающих один или несколько процессоров, локальную для каждого узла память, коммуникационный процессор или сетевой адаптер. Узлы объединяются через высокоскоростную сеть или коммутатор. Архитектурно MPP очень близки к кластерным ВС, но имеют более скоростные (как правило, специализированные) каналы связи между модулями и широкие возможности по масштабированию.

Суперкомпьютеры

Суперкомпьютер (суперЭВМ) – это штучно или мелкосерийно выпускаемая вычислительная система, производительность которой многократно превосходит производительность массово выпускаемых компьютеров [4]. В течение некоторого периода развития вычислительной техники понятия «параллельная вычислительная система» и «суперкомпьютер» могли употребляться практически как синонимы, поскольку каждая ПВС являлась суперкомпьютером, а суперкомпьютеры всегда в той или иной степени воплощали идеи параллелизма. Появление мультиконвейерных и многоядерных процессоров, графических сопроцессоров и т. д. принципиально изменило ситуацию. В настоящее время все суперкомпьютеры являются ПВС, но далеко не все ПВС являются суперкомпьютерами, поскольку любой современный персональный компьютер можно отнести к ПВС. В современно мире ПВС существует признанный «табель о рангах» – ранжированный по реальной производительности список 500 самых мощных вычислительных систем в мире – ТОР-500.

Главной характеристикой ПВС, которая определяет не только положение ВС в TOP-500, но и ее потребительские свойства, является производительность – количество операций, производимых системой за единицу времени. Различают пиковую и реальную производительность. Пиковая производительность – величина, равная произведению пиковой производительности одного процессора на число таких процессоров в рассматриваемой вычислительной системе. Реальная производительность – производительность, которую демонстрирует вычислительная система при решении реальных задач. Для того чтобы оценить эффективность работы вычислительной системы на реальных задачах, были разработаны различные наборы тестов. Наиболее известным из них является LINPACK – программа, предназначенная для решения системы линейных алгебраических уравнений с плотной матрицей с выбором главного элемента по строке. Именно LINPACK используется для формирования списка TOP-500. Анализируя ТОР-500, можно выявить основные закономерности развития суперкомпьютеров. ВС, стоящие ниже 250–280 позиции, не попадают в следующую редакцию, т. е. список каждый раз обновляется на 45–50 %. Суммарная производительность систем в TOP-500 за полгода вырастает на 40-50%. Эти темпы роста также являются устойчивыми. Наблюдается устойчивая тенденция к увеличению числа процессорных ядер как на систему в целом, так и в пересчете на отдельный процессор. Наблюдается тенденция к снижению энергоемкости вычислительных процессов, обусловленную как требованиями экономической эффективности, так и проблемами рассеяния выделяемого вычислительной системой тепла. Еще одним косвенным подтверждением значимости данного показателя стало недавнее появление рейтинга Green-500 современных вычислительных систем, отранжированных по энергоэффективности вычислений. По географической принадлежности продолжает доминировать США, но в последнее время резко активизировался прирост вычислительных мощностей в азиатском регионе, прежде всего за счет Китая и - в последней версии списка - Японии. В отличие от прошлого (XX-го) века, когда фирмы-производители суперкомпьютеров, выполняя государственные заказы, проектировали уникальные архитектуры, в наши пришлось отказаться от дорогостоящих комплектующих изделий в пользу серийно выпускаемой техники. Это позволило сконцентрировать усилия на разработке новых суперкомпьютерных архитектур, создавать системы из самых совершенных на момент создания компонентов, значительно сократить сроки и стоимость разработки суперкомпьютеров. Такой подход во многом определил современные концепции построения многоуровневых открытых и расширяемых систем, стандартизованных интерфейсов, переносимого программного обеспечения. Параллельные ВС перестали быть уделом избранных, к настоящему моменту они получили действительно широкое распространение.

 

Cети ЭВМ

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

Хотя теоретические работы по созданию концепций сетевого взаимодействия велись почти с момента появления вычислительных машин, значимые практические результаты по объединению компьютеров в сети были получены лишь в конце 60-х, когда с помощью глобальных связей и техники коммутации пакетов удалось реализовать взаимодействие машин класса мэйнфреймов и суперкомпьютеров. Эти дорогостоящие компьютеры хранили уникальные данные и программы, обмен которыми позволил повысить эффективность их использования. Советские учѐные из ИТМиВТ АН СССР создавали сети компьютерной связи с 1952 года в рамках работ по созданию автоматизированной системы противоракетной обороны (ПРО). Специалисты под руководством Сергея Лебедева организовали обмен данными между ЭВМ для вычисления траектории противоракеты. Как пишет один из создателей системы Всеволод Бурцев, «в экспериментальном комплексе противоракетной обороны» центральная машина М-40 «осуществляла обмен информацией по пяти дуплексным и асинхронно работающим радиорелейным каналам связи с объектами, находящимися от неѐ на расстоянии от 100 до 200 километров; общий темп поступления информации через радиорелейные линии превышал 1 МГц». В 1956 году западнее озера Балхаш советскими учёными и военными был создан большой полигон, где разрабатываемая система ПРО, вместе с сетью ЭВМ, проходила испытания.

В 1969 году министерство обороны США инициировало работы по объединению в общую сеть суперкомпьютеров оборонных и научно-исследовательских центров. Эта сеть, получившая название ARPANET объединяла компьютеры разных типов, работавшие под управлением различных ОС с дополнительными модулями, реализующими коммуникационные протоколы, общие для всех компьютеров сети. В 1974 году компания IBM объявила о создании собственной сетевой архитектуры для своих мэйнфреймов, получившей название SNA (System Network Architecture, системная сетевая архитектура). В это же время в Европе активно велись работы по созданию и стандартизации сетей X.25. Таким образом, хронологически первыми появились глобальные сети (Wide Area Networks, WAN), то есть сети, объединяющие территориально рассредоточенные компьютеры, возможно, находящиеся в различных городах и странах. Именно при построении глобальных сетей были впервые предложены и отработаны многие основные идеи и концепции современных вычислительных сетей, такие, например, как многоуровневое построение коммуникационных протоколов, технология коммутации пакетов и маршрутизация пакетов в составных сетях.

Развитие сетевых технологий

Глобальные компьютерные сети очень многое унаследовали от других, гораздо более старых и глобальных сетей – телефонных. Главным результатом создания первых глобальных компьютерных сетей был отказ от принципа коммутации каналов, на протяжении многих десятков лет успешно использовавшегося в телефонных сетях. Выделяемый на все время сеанса связи составной канал с постоянной скоростью не мог эффективно использоваться пульсирующим трафиком компьютерных данных, у которого периоды интенсивного обмена чередуются с продолжительными паузами. Эксперименты и математическое моделирование показали, что пульсирующий и в значительной степени не чувствительный к задержкам компьютерный трафик гораздо эффективней передается по сетям, использующим принцип коммутации пакетов, когда данные разделяются на небольшие порции, которые самостоятельно перемещаются по сети за счет встраивания адреса конечного узла в заголовок пакета. Так как прокладка высококачественных линий связи на большие расстояния обходится очень дорого, в первых глобальных сетях часто использовались уже существующие каналы связи, изначально предназначенные совсем для других целей. Например, в течение многих лет глобальные сети строились на основе телефонных каналов тональной частоты, способных в каждый момент времени вести передачу только одного разговора в аналоговой форме. Помимо низкой скорости такие каналы имеют и другой недостаток – они вносят значительные искажения в передаваемые сигналы. Поэтому протоколы глобальных сетей, построенных с использованием каналов связи низкого качества, отличаются сложными процедурами контроля и восстановления данных. Типичным примером таких сетей являются сети X.25, разработанные еще в начале 70-х, когда низкоскоростные аналоговые каналы, арендуемые у телефонных компаний, были преобладающим типом каналов, соединяющих компьютеры и коммутаторы глобальной вычислительной сети. С конца 60-х годов в телефонных сетях все чаще стала применяться передача голоса в цифровой форме, что привело к появлению высокоскоростных цифровых каналов, соединяющих АТС и позволяющих одновременно передавать десятки и сотни разговоров. Была разработана специальная технология плезиохронной цифровой иерархии (Plesiochronous Digital Hierarchy, PDH), предназначенная для создания так называемых первичных, или опорных, сетей. Такие сети не предоставляют услуг конечным пользователям, они являются фундаментом, на котором строятся скоростные цифровые каналы "точка-точка", соединяющие оборудование другой (так называемой наложенной) сети, которая уже работает на конечного пользователя. Появившаяся в конце 80-х годов технология синхронной цифровой иерархии (Synchronous Digital Hierarchy, SDH) расширила диапазон скоростей цифровых каналов до 10 Гбит/c, а технология спектрального мультиплексирования DWDM (Dense Wave Division Multiplexing) – до сотен гигабит и даже нескольких терабит в секунду.

В начале 70-х годов произошло важное событие, непосредственно повлиявшее на эволюцию компьютерных сетей – появление и быстрое широкое распространение мини-компьютеров. Таким образом, появилась концепция распределения компьютерных ресурсов по всему предприятию. Однако при этом все компьютеры одной организации по-прежнему продолжали работать автономно. В середине 80-х годов положение дел в локальных сетях стало меняться. Утвердились стандартные технологии объединения компьютеров в сеть – Ethernet, Arcnet, Token Ring, Token Bus, несколько позже – FDDI. Все стандартные технологии локальных сетей опирались на тот же принцип коммутации, который был с успехом опробован и доказал свои преимущества при передаче трафика данных в глобальных компьютерных сетях – принцип коммутации пакетов. Стандартные сетевые технологии сделали задачу построения локальной сети почти тривиальной. Для создания сети достаточно было приобрести сетевые адаптеры соответствующего стандарта, например Ethernet, стандартный кабель, присоединить адаптеры к кабелю стандартными разъемами и установить на компьютер одну из популярных сетевых операционных систем, например Novell NetWare. После этого сеть начинала работать, и последующее присоединение каждого нового компьютера не вызывало никаких проблем – естественно, если на нем был установлен сетевой адаптер той же технологии. В 80-е годы были приняты основные стандарты на коммуникационные технологии для локальных сетей: в 1980 году – Ethernet, в 1985 – Token Ring, в конце 80-х – протокол передачи данных по оптоволоконным сетям Fiber Distributed Data Interface (FDDI). Это позволило обеспечить совместимость сетевых операционных систем на нижних уровнях, а также стандартизировать интерфейс ОС с драйверами сетевых адаптеров. Конец 90-х выявил явного лидера среди технологий локальных сетей – семейство Ethernet, в которое вошли классическая технология Ethernet 10 Мбит/c, а также Fast Ethernet 100 Мбит/c и Gigabit Ethernet 1000 Мбит/c. Простые алгоритмы работы предопределили низкую стоимость оборудования Ethernet. Широкий диапазон иерархии скоростей позволяет рационально строить локальную сеть, применяя ту технологию, которая в наибольшей степени отвечает задачам предприятия и потребностям пользователей. Важно также, что все технологии Ethernet очень близки друг другу по принципам работы, что упрощает обслуживание и интеграцию построенных на их основе сетей. Начало 80-х годов связано с еще одним знаменательным для истории сетей событием – появлением персональных компьютеров. Эти устройства стали идеальными элементами для построения сетей: с одной стороны, они были достаточно мощными для работы сетевого программного обеспечения, а с другой – явно нуждались в объединении вычислительной мощности для решения сложных задач, а также разделения дорогих периферийных устройств и дисковых массивов. Создание персональных компьютеров послужило мощным катализатором для бурного роста локальных сетей, поскольку появилась отличная материальная основа в виде десятков и сотен машин, принадлежащих одному предприятию и расположенных в пределах одного здания.

 

Дата: 2019-11-01, просмотров: 237.