Ряд фирм предлагают специализированные кластерные решения на основе более скоростных сетей, таких как SCI фирмы Scali Computer (~100 Мб/сек) и Mirynet (~120 Мб/сек). Активно включились в поддержку кластерных технологий и фирмы-производители высокопроизводительных рабочих станций (SUN, HP, Silicon Graphics).

Лекция 26. Направление развития в высокопроизводительных вычислительных системах.

Вызывавшие сомнения в своей перспективности еще в середине 80-х годов параллельные архитектуры сегодня общепризнанны. Но достигнут ли уже предел совершенствования архитектур? Похоже, нет: их темп развития только возрос.

Повышение производительности вычислительных установок обычно достигается за счет увеличения тактовой частоты работы элементов и количества этих элементов, позволяющего вводить параллелизм обработки и программируемость структуры [1]. Однако совершенствование вычислительных систем всегда сопровождал разрыв между быстродействием логических элементов и элементов памяти. Этот разрыв при возрастании степени интеграции и быстродействия больших интегральных схем (БИС) имеет тенденцию к увеличению. На каждом уровне развития элементной базы в силу обстоятельств, обусловленных необходимостью преодоления данного разрыва, ограничением на размер и количество выводов у корпусов микросхем, имеющимися средствами автоматизации программирования одни архитектуры становились предпочтительнее других — скажем, по показателю «производительность/стоимость».

Дискретная элементная база и интегральные схемы малой и средней интеграции позволяли изготовить процессор с произвольной архитектурой при существенном ограничении на общий объем используемого оборудования. Для обеспечения высокой производительности было необходимо соответствующее количество регистров и функциональных устройств, однако требуемый для их создания объем электронных компонентов, паяных и разъемных соединений определялся надежностью создаваемого процессора, стоимостью и энергопотреблением. В этих условиях конструкторы процессоров предложили разнообразные архитектуры, каждая из которых в своей проблемной области обеспечивала наивысшее значение показателя «производительность/стоимость». К числу таких архитектур следует отнести векторно-конвейерные процессоры и ассоциативные процессоры с SIMD-архитектурой, все обрабатывающие процессорные элементы которых выполняют команды одного потока, выдаваемого одним общим устройством управления. В период использования полупроводниковых схем малой и средней интеграции было создано несколько типов таких процессоров, например, STARAN [2], DAP [3], Connection Machine [4], состоящих из большого числа однобитных процессорных элементов со встроенной в каждый из них локальной памятью. Значительный рост степени интеграции при существенно меньшем росте количества выводов корпусов привел к ситуации, когда в одной БИС могло разместиться много процессорных элементов, однако их явно не хватало для создания полноценного SIMD-процессора. Объединению совокупности таких интегральных схем в один процессор препятствовало малое число выводов, не позволявшее подсоединить к процессорному элементу память и создать эффективную сеть связи между элементами. Та же проблема возникала и при попытке построения векторно-конвейерных процессоров: блоки, реализованные на БИС, имели бы количество соединений с другими БИС, намного превышающее число их выводов. Векторно-конвейерные процессоры, такие как CRAY-1 [5], венчали развитие процессоров, строящихся из дискретных компонентов. Архитектура векторно-конвейерных процессоров, по-видимому, оптимальна для дискретной элементной базы по критерию «производительность/размер».

В 80-х годах появились микропроцессоры, которые существенно превзошли по соотношению «производительность/стоимость» специально разрабатываемые многокристальные процессоры. Особенности проектирования и изготовления СБИС, в том числе и микропроцессоров, делают экономически оправданным только их массовое производство, что практически исключило возможность создания специализированных кристаллов для многокристальных процессоров. Сложилась ситуация, когда многокристальный процессор на момент начала проектирования, имеющий экстремальные оценки производительности, после своего изготовления, потребовавшего ряда лет, уже существенно уступал своим современникам — универсальным серийным микропроцессорам. Массово выпускаемые микропроцессоры стали использоваться для производства всех типов вычислительных систем [6].

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

Параллельные системы по назначению и используемой элементной базе можно разбить на четыре класса:

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

Универсальные системы с фиксированной структурой

Многопроцессорные серверы из серийных компонентов

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

Вторая ветвь представлена параллельными суперкомпьютерами с большим количеством процессоров (MPP — massive parallel processing). Основным режимом их работы является исполнение трудоемких вычислений на базе распределенной памяти.

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

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

Для образования MPP-систем могут быть использованы интерфейсы микропроцессора, предназначенные для доступа к внекристальной памяти или внешним устройствам (шина PCI).

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

При использовании для объединения микропроцессоров интерфейса внешних устройств, что характерно для вычислительных систем, создаваемых пользователями, возможно построение систем как с распределенной памятью с архитектурой на базе обмена сообщениями, так и с разделяемой памятью на основе технологии рефлексивной памяти, например, технологии memory channel [7]. Архитектура на базе обмена сообщениями использует отдельные наборы команд чтения и записи для работы с локальной памятью и специальные команды типа send, receive для управления адаптерами каналов ввода-вывода. Стандартизированные требования, предъявляемые шиной к адаптерам, позволяют строить системы из «крупных» блоков — системных плат рабочих станций и ПК, а также сетевых плат (Myrinet — www. , Quadrics — www. , Dolphin SCI — www. , Fast Ethernet и др.) и коммутаторов коммуникационных сред. Для таких систем остро стоит проблема эффективности параллельных вычислений, так как они заведомо имеют ограничение пропускной способности обменов, обусловленные шиной PCI.

Направления развития микропроцессоров

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58