Суперкомпьютинг
Специализированные технологии вычислительных сетей.
Суперкомпьютинг Хотя развитие компьютерной индустрии в значительной степени основано на прогрессе технологий и чисто маркетинговых факторах, оно не имело бы смысла и не было бы столь стремительным в отсутствии реальной востребованности. Ключевым параметров вычислительной системы является её производительность. Собственно, наличие вычислительных задач, принципиально не решаемых без использования ЭВМ, и было причиной их появления. Соотнести ту или иную прикладную или научную задачу с производительностью вычислительной системы, необходимой для её решения, достаточно сложно. Однако очевидно что любой прогресс в производительности доступных для использования вычислительных систем расширяет горизонт решаемых задач. Поэтому вычислительные системы с максимальными параметрами всегда были и остаются предметом особого интереса. В середине 80-х годов основными для этой области были суперкомпьютерные технологии, успешность которых во многом определялась стремительным прогрессом микропроцессорной техники. В 1985 году в США была принята – и в последующее десятилетие реализована – общенациональная программа по созданию суперкомпьютерных центров, финансируемая государством. Полученный опыт оказался не только положительным: появилось понимание, что при высокой цене разработки и производства суперкомпьютеров, построенные архитектуры имеют ограниченную масштабируемость и не успевают за развитием элементной базы. В то же время, проведенные прикладные исследования показали, что для решения ряда насущных и наиболее приоритетных задач методами математического моделирования (прогнозирование природных явлений, обработка данных высокоэнергетических ядерных реакций, эволюция звезд) необходимы вычислительные мощности принципиально нового уровня производительности и быстродействия. Почему суперкомпьютеры считают быстро? Основных вариантов ответа всего два: развитие элементной базы и использование новых решений в архитектуре компьютеров. На одном из первых компьютеров мира - EDSAC, появившемся в 1949 году в Кембридже время такта составляло 2 микросекунды, в современных процессорах время такта приблизительно 0,5 наносекунды. Следовательно выигрыш в быстродействии, связанный с уменьшением времени такта составляет всего около 4000 раз. При этом производительность EDSAC составляла всего 100 операций в секунду. Сегодня производительность более-менее серьезных систем измеряется триллионами операций в секунду. За счет чего достигнут такой прогресс? Рост производительности обеспечивает использование новых решений в архитектуре компьютеров. Важнейшим среди них занимает принцип параллельной обработки данных, воплощающий идею одновременного (параллельного) выполнения нескольких действий. Рассмотрим базовые принципы использования параллелизма при построении вычислительных систем. Параллельная обработка данных, воплощая идею одновременного выполнения нескольких действий, имеет две разновидности: конвейерность и собственно параллельность. Смысл конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Если такие элементарные операции выполнять не последовательно а одновременно, получаем очевидный выигрыш в скорости. Конвеерность организуется на уровне архитектуры процессора. Собственно параллельность организуется на более высоких уровнях архитектуры системы. 1.Векторно-конвейерные компьютеры. Конвейерные функциональные устройства и набор векторных команд - это две особенности таких машин. В отличие от традиционного подхода, векторные команды оперируют целыми массивами независимых данных, что позволяет эффективно загружать доступные конвейеры, т.е. команда вида A=B+C может означать сложение двух массивов, а не двух чисел. Характерным представителем данного направления являлось семейство векторно-конвейерных компьютеров. 2. Параллельные компьютеры с общей памятью. Вся оперативная память таких компьютеров разделяется несколькими одинаковыми процессорами. Основная проблема таких систем заключается в том, что число процессоров, имеющих доступ к общей памяти, по чисто техническим причинам нельзя сделать очень большим. Сегодня это весьма распространенное решение даже для серверов начального уровня. По этой схеме строятся и современные серийные серверы верхнего ценового сегмента. Массовый переход производителей на многоядерные процессоры также лежит в этом русле. 3. Массивно-параллельные компьютеры с распределенной памятью. Идея построения компьютеров этого класса тривиальна: возьмем серийные микропроцессоры, снабдим каждый своей локальной памятью, соединим посредством некоторой коммуникационной среды - вот и все. Достоинств у такой архитектуры масса: если нужна высокая производительность, то можно добавить еще процессоров, если ограничены финансы или заранее известна требуемая вычислительная мощность, то легко подобрать оптимальную конфигурацию и т.п. Однако есть и "минус", сводящий многие "плюсы" на нет. Дело в том, что межпроцессорное взаимодействие в компьютерах этого класса идет намного медленнее, чем происходит локальная обработка данных самими процессорами. Именно поэтому написать эффективную программу для таких компьютеров очень сложно, а для некоторых алгоритмов иногда просто невозможно. 4. Кластерные компьютеры. Данное направление не является самостоятельным, а скорее представляет собой комбинации предыдущих трех. Из нескольких процессоров (традиционных или векторно-конвейерных) и общей для них памяти формируется вычислительный узел. Если полученной вычислительной мощности не достаточно, то объединяются несколько узлов высокоскоростными каналами.
|