Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

к.п.и

.docx
Скачиваний:
4
Добавлен:
31.05.2015
Размер:
1.87 Mб
Скачать

титульный лист

Содержание

1 Введение 1

1.1 .. 1

1.2 … 1

1.3 Абзац 1

1.4 Колонки 1

1.5 Формулы 2

1.6 Таблицы 2

1.7 Рисунки 2

содержание

вывод

рисунки

таблицу

иллюстрации

Введение

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

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

Что же такое суперкомпьютеры, и зачем они нужны? Суперкомпьютер, по мнению Википедии, это «вычислительная машина, значительно превосходящая по своим техническим параметрам большинство существующих компьютеров». В принципе, суперкомпьютер - это обычная вычислительная система, позволяющая производить сложные расчеты за более короткие промежутки времени. Поэтому наиболее важным показателем производительности компьютера является степень его быстродействия. Она измеряется так называемыми флопсами - от английского сокращения, обозначающего количество операций с числами, представленными в форме с плавающей запятой, в секунду. На сегодняшний день в этом смысле производителями преодолен значительный рубеж– петафлопс. Самый мощный суперкомпьютер в мире – Cray Titan - показывает производительность в 17,59 петафлоп/с, что больше, чем у предыдущего «чемпиона», Sequoia от IBM. Экс-лидер показывает результат в 16,32 петафлоп/с. Пиковая производительность Cray Titan - теоретическая - составляет 27,11 петафлоп/сек.

Развитие шло, идет и будет продолжаться далее. О том, как именно – поговорим ниже.

Часть 1. Суперкомпьютеры.

Что такое суперкомпьютер?

Первое время производители суперкомпьютеров не стеснялись использовать в своих детищах дорогостоящие комплектующие самого высокого класса. Обеспечить необходимый для обеспечения конкурентоспособности прирост производительности в каждой новой модели было важнее, чем низкую стоимость устройства. Так работала корпорация IBM, так работали другие участники «гонки быстродействий». Выражалось «использование новых комплектующих» в применении процессоров с более высокой тактовой частотой. Сеймур Крей со своей небольшой командой разработчиков, однако, сумел со своим CDC 6600 обойти главного конкурента – IBM – не в последнюю очередь за счет «интенсивных» методов увеличения производительности – векторной \ SIMD обработки данных, и т. п. CDC 6600 был в 3 раза быстрее своего главного конкурента - компьютера IBM «Stretch» - при гораздо более низкой цене. «Старожилы», видевшие эту гонку своими глазами, вспоминают, что это «было захватывающе».

Постепенно экономическая рациональность взяла верх над исследовательским порывом. В начале эпохи развития суперкомпьютеров эти машины покупались в основном или крупными университетами, или военно-космическими ведомствами. И те, и другие обеспечивались средствами из бюджетов, на все это накладывалось перманентное противостояние держав, на которое деньги выбрасывались практически без счета – «холодная война» была в разгаре – стоимость устройств была, вероятно, небольшой в масштабе общих трат. На сегодняшний день суперкомпьютеры используются в гораздо большем количестве сфер (такое громкое наименование дано даже ряду игровых компьютеров). Компания-производитель компьютерных комплектующих NVIDIA, например, предлагает собрать персональный суперкомпьютер за скромные 10-20 тысяч долларов – с производительностью более 3, 5 ТФлопс.

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

Относительно узкий спектр (по сравнению с ПК) применения суперкомпьютеров определяет сугубую ассоциативность знаний о них большинства обычных пользователей. Огромные размеры, большие задачи, крупные фирмы и компании, невероятные скорости работы или что-то иное, что обязательно будет "на грани", для чего "обычного" явно мало, а подойдет только "супер", - суперкомпьютер или супер-ЭВМ. В этом интуитивном восприятии есть изрядная доля истины, поскольку к классу супер-ЭВМ принадлежат лишь те компьютеры, которые имеют максимальную производительность в настоящее время. Быстрое развитие компьютерной индустрии определяет относительность данного понятия - то, что десять лет назад можно было назвать суперкомпьютером, сегодня под это определение уже не попадает. Например, производительность персональных компьютеров, использующих Intel i5/3.2 ГГц, в 10 раз превышает производительность суперкомпьютеров начала 70-х годов, а производительность iPad 2 сопоставима с четырехъядерным суперкомпьютером Cray 2, 8-ядерная версия которого в 1985 году стала самым быстрым суперкомпьютером в мире (максимальная производительность Cray 2 равняется 1,9 Гфлопс, тестирование iPad 2 в обычном режиме показал производительность от 1,5 до 1,65 Гфлопс). Однако по сегодняшним меркам суперкомпьютерами не являются ни те, ни другие.

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

Определение суперкомпьютера

Суперкомпьютерам за время их существования много раз пытались дать определение, иногда серьезно, иногда с иронией. Например, шутливая классификация Гордона Белла и Дона Нельсона, разработанная около 1989 года, предлагала считать суперкомпьютером любой компьютер, весящий более тонны. А уже около десяти лет назад, во время обсуждения суперкомпьютеров в конференции comp.parallel, Кен Батчер (Ken Batcher) предложил такой вариант: суперкомпьютер - это устройство, сводящее проблему вычислений к проблеме ввода/вывода. Все верно, в каждой шутке есть доля шутки: что раньше долго вычислялось, временами сбрасывая нечто на диск, на супер-ЭВМ может выполниться мгновенно, переводя стрелки неэффективности на относительно медленные устройства ввода/вывода. Самым используемым на данный момент определением является следующее: суперкомпьютер - вычислительная машина, значительно превосходящая по своим техническим параметрам большинство существующих компьютеров. Но здесь есть свои подводные камни. По определению Оксфордского словаря вычислительной техники 1986 года, для того, чтобы получить это гордое название, нужно было иметь производительность в 10 мегафлоп (миллионов операций с плавающей запятой в секунду). В начале 90-х была преодолена отметка 200 мегафлоп, затем 1 гигафлоп, в середине 2000-х – 1 петафлоп, и развитие не останавливается. Планка необходимой производительности определения для машин, претендующих на право иметь в названии приставку «супер», постоянно корректируется.

 Архитектура (концептуальная структура вычислительной машины, определяющая проведение обработки информации и включающая методы преобразования информации в данные и принципы взаимодействия технических средств и программного обеспечения) также не может считаться признаком принадлежности к классу суперкомпьютеров. Ранние компьютеры CDC были обычными машинами, всего лишь оснащёнными быстрыми для своего времени скалярными процессорами, скорость работы которых была в несколько десятков раз выше, чем у компьютеров, предлагаемых другими компаниями.      Большинство суперкомпьютеров 70-х оснащались векторными процессорами, а к началу и середине 80-х небольшое число (от 4 до 16) параллельно работающих векторных процессоров практически стало стандартным суперкомпьютерным решением. Конец 80-х и начало 90-х годов охарактеризовались сменой магистрального направления развития суперкомпьютеров от векторно-конвейерной обработки к большому и сверхбольшому числу параллельно соединённых скалярных процессоров.      Массивно-параллельные системы стали объединять в себе сотни и даже тысячи отдельных процессорных элементов. Большинство массивно-параллельных компьютеров создавалось на основе мощных процессоров с архитектурой RISC (Reduced Instruction Set Computer), наподобие PowerPC или PA-RISC. Множество процессоров объединялось на процессорных платах, выглядевших в большинстве своем примерно так:

Рисунок - Процессорная плата векторного компьютера Cray YMP

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

С начала нулевых годов и до настоящего времени разработки продолжаются по обоим направлениям – сложным вопросом для кластерных компьютерных системы систем являются средства коммуникаций, эта проблема постепенно решается. В суперкомпьютерах, представляющих собой единый блок (из таких, в свою очередь состоят кластеры), специфические комплектующие были заменены на серийные, и в данный момент развитие таких системы идет в направлении увеличения количества процессоров. За изменениями в этой области следит специальный рейтинг «Топ-500» (top500.org), созданный Джеком Донгарра (Jack Dongarra).

Краткая история развития суперЭВМ

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

  В общеупотребительный лексикон термин "суперкомпьютер" вошёл благодаря распространённости компьютерных систем Сеймура Крея, таких как, CDC 6600, CDC 7600, Cray-1, Cray-2, Cray-3 и Cray-4. Сеймур Крей разрабатывал вычислительные машины, которые, по сути, становились основными вычислительными средствами правительственных, промышленных и академических научно-технических проектов США с середины 60-х годов до 1996 года, когда Cray перестала существовать как самостоятельная компания - её купила Silicon Graphic. Не случайно в то время одним из популярных определений суперкомпьютера было следующее: - "любой компьютер, который создал Сеймур Крей". Сам Крей никогда не называл свои детища суперкомпьютерами, предпочитая использовать вместо этого обычное название "компьютер".

Рисунок Х – Сеймур Крей рядом с Cray-1

Для повышения производительности практически с самого начала эпохи суперкомпьютеров (начало 1950-х) использовались и совершенствовались параллельные архитектуры.

1953 г. Первым коммерчески доступным компьютером, использующим разрядно-параллельную память (на CRT) и разрядно-параллельную арифметику, стал компьютер IBM 701. К слову будет сказано, наибольшую популярность в то время получила модель IBM 704 (1955 г.), проданная в количестве 150 экземпляров, в которой, помимо упомянутых особенностей, была впервые применена память на ферритовых сердечниках и аппаратное арифметическое устройство с плавающей точкой.

1958г. Процессоры первых компьютеров сами управляли вводом/выводом. Однако скорость работы самого быстрого внешнего устройства, а по тем временам это магнитная лента, была в 1000 раз меньше скорости процессора, поэтому во время операций ввода/вывода процессор фактически простаивал. В 1958г. к компьютеру IBM 704 присоединили 6 независимых процессоров ввода/вывода, которые после получения команд могли работать параллельно с основным процессором, а сам компьютер переименовали в IBM 709. Данная модель получилась удивительно удачной, так как вместе с модификациями было продано около 400 экземпляров, причем последний был выключен в 1975 году - почти 20 лет существования!

1961г. Создается компьютер IBM «Stretch», имеющий две принципиально важные особенности: опережающий просмотр вперед для выборки команд и расслоение памяти на два банка для согласования низкой скорости выборки из памяти и скорости выполнения операций.

1963г. В Манчестерском университете разработан компьютер ATLAS, использующий конвейерный принцип выполнения команд. Выполнение команд разбито на 4 стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции, позволившие уменьшить время выполнения команд в среднем с 6 мкс до 1,6 мкс. Справедливости ради надо отметить, что данный компьютер вообще оставил заметный след в истории развития вычислительной техники: помимо сказанного, в нем впервые была использована мультипрограммная операционная система, основанная на использовании виртуальной памяти и системы прерываний.

1964г. Фирма Control Data Corporation (CDC) при непосредственном участии Сеймура Крэя выпускает компьютер CDC-6600 - первый компьютер, в котором использовалось несколько независимых функциональных устройств. Для сравнения с сегодняшним днем приведем некоторые параметры компьютера: время такта 100нс, производительность 2-3 млн. операций в секунду, оперативная память разбита на 32 банка по 4096 60-ти разрядных слов, цикл памяти 1мкс, 10 независимых функциональных устройств. Машина имела громадный успех на научном рынке, активно вытесняя машины фирмы IBM.

Рисунок Х – Консоль и основные блоки суперкомпьютера CDC-6600

1969г. CDC выпускает компьютер CDC-7600 с восемью независимыми конвейерными функциональными устройствами - сочетание параллельной и конвейерной обработки.

В 1967 году были начаты работы над проектом ILLIAC IV, первым матричным процессором, объединяющим 256 синхронно работающих процессорных элементов. К концу 1971 года изготовлена система из 64-х процессоров, в 1974г. она введена в эксплуатацию, однако доводка шла до 1975 года. Несмотря на то, что построили в 4 раза меньше задуманного, да и то лишь в одном экземпляре, а денег в результате затратили в 4 раза больше, данный проект оказал огромное влияние на архитектуру последующих машин подобного класса таких, как PEPE, BSP, ICL DAP и ряда других.

В 1972 году С. Крэй покидает CDC и основывает свою компанию Cray Research, которая в 1976г. выпускает первый векторно-конвейерный компьютер: время такта 12.5нс, 12 конвейерных функциональных устройств, пиковая производительность 160 миллионов операций в секунду, оперативная память до 1Мслова (слово - 64 разряда), цикл памяти 50нс. Главным новшеством является введение векторных команд, работающих с целыми массивами независимых данных и позволяющих эффективно использовать конвейерные функциональные устройства.

Рисунок Х – Суперкомпьютер Cray-1

     Компьютерные системы Крея удерживались на вершине рынка в течение 5 лет с 1985 по 1990 годы. 80-е годы XX века охарактеризовались появлением множества небольших конкурирующих компаний, занимающихся созданием высокопроизводительных компьютеров, однако к середине 90-х большинство из них оставили эту сферу деятельности, что даже заставило обозревателей заговорить о "крахе рынка суперкомпьютеров". На сегодняшний день суперкомпьютеры являются уникальными системами, создаваемыми "традиционными" игроками компьютерного рынка, такими как IBM, Hewlett-Packard, NEC и другими, которые приобрели множество ранних компаний, вместе с их опытом и технологиями.

Современные направления развития суперкомпьютерной техники

Архитектуры современных суперЭВМ

1. Векторно-конвейерные компьютеры. Особенностью таких машин являются, во-первых, конвейерные функциональные устройства и, во-вторых, набор векторных инструкций в системе команд. В отличие от традиционного подхода, векторные команды оперируют целыми массивами независимых данных, что позволяет эффективно загружать доступные конвейеры. Типичным представителем данного направления является линия векторно-конвейерных компьютеров CRAY компании Cray Research, или, к примеру, од­но­про­цес­сор­ный век­тор­ый су­пер­ком­пью­те­р FACOM VP-200 (Fujitsu).

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

Однако есть и решающий "минус", сводящий многие "плюсы" на нет. Дело в том, что межпроцессорное взаимодействие в компьютерах этого класса идет намного медленнее, чем происходит локальная обработка данных самими процессорами. Именно поэтому написать эффективную программу для таких компьютеров очень сложно, а для некоторых алгоритмов иногда просто невозможно. К данному классу можно отнести компьютеры Intel Paragon, IBM SP1, Parsytec, в какой-то степени IBM SP2 и CRAY T3D/T3E, хотя в этих компьютерах влияние указанного недостатка значительно ослаблено.

3. Параллельные компьютеры с общей памятью. Вся оперативная память таких компьютеров разделяется несколькими одинаковыми процессорами. Это снимает проблемы предыдущего класса, но добавляет новые - число процессоров, имеющих доступ к общей памяти по чисто техническим причинам нельзя сделать большим. В данное направление входят многие современные многопроцессорные SMP-компьютеры, например, сервер HP T600 или Sun Ultra Enterprise 5000.

4. Кластеры. Последнее направление, строго говоря, не является самостоятельным, а скорее представляет собой комбинации предыдущих трех. Из нескольких процессоров, традиционных или векторно-конвейерных, и общей для них памяти формируется вычислительный узел. Если вычислительной мощности полученного узла не достаточно, то объединяется несколько узлов высокоскоростными каналами. Подобную архитектуру, естественно, называют кластерной, и по такому принципу построены CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, последние модели IBM SP2 и другие. Именно это направление является наиболее перспективным в настоящее время.

Рассмотрим подробнее специфику каждого класса.

Векторно-конвейерные компьютеры.

Исторически к этому типу принадлежал компьютер Cray-1, который появился в 1976 году. Архитектура его оказалась настолько удачной, что он положил начало целому семейству компьютеров. Название этому семейству компьютеров дали два принципа, заложенные в архитектуре процессоров:

  1. конвейерная организация обработки потока команд.

  2. введение в систему команд набора векторных операций, которые позволяют оперировать с целыми массивами данных.

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

Исторически это были первые компьютеры, к которым в полной мере было применимо понятие суперкомпьютер. Как правило, несколько векторно-конвейерных процессоров (2-16) работают в режиме с общей памятью (SMP), образуя вычислительный узел, а несколько таких узлов объединяются с помощью коммутаторов, образуя либо (Non-Uniform Memory Access — «неравномерный доступ к памяти», гибридная, совмещает в себе удобства SMP и дешевизну MMP), либо MPP систему. Типичными представителями такой архитектуры являются компьютеры CRAY J90/T90, CRAY SV1, NEC SX-4/SX-5. Начиная с середины 90-х годов, когда появились достаточно мощные суперскалярные микропроцессоры, интерес к этому направлению был в значительной степени ослаблен из-за высокой стоимости производства. Суперкомпьютеры с векторно-конвейерной архитектурой стали проигрывать системам с массовым параллелизмом.

Рисунок 1 – Архитектура NUMA

Параллельные компьютеры

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

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

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

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

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

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