Сеймур Крей рядом с Cray-1
Если кратко,
Cray-1 — легендарный
суперкомпьютер спроектированный
Сеймуром Крэйем и созданный компанией Cray Research Inc. в 1976 году. Пиковая производительность машины — 133 Мфлопса.
Суперкомпьютеры давно стали незаменимым инструментом в научном мире. Сложные вычислительные задачи требуют невероятных затрат, которые под силу лишь «колоссам» компьютерного мира.
Одними из наиболее известных представителей по праву являются суперкомпьютеры производства Cray Research (ныне – Cray Inc.). Они позволили человеку совершить множество удивительных научных достижений, приоткрыть завесы тайн и секретов природы. Cray ознаменовал начало суперкомпьютерной эры, стал символом успешности заполучивших его компаний и примером для подражания среди производителей-конкурентов.
Он творил историю
Рассказ о создании Cray-1 не может быть полным без небольшого экскурса в историю жизни его создателя – Сеймура Крэя. Увлечение электроникой будущего разработчика суперкомпьютеров началось в молодости. Крэй родился 28 сентября 1925 года в американском городе Чиппева-Фолс, штат Висконсин. С детства он погрузился в мир науки и техники. Родители всячески способствовали развитию интересов сына, и, ещё будучи юношей, Сеймур разработал свою первую
электрическую схему, сигнализировавшую, когда кто-нибудь хотел зайти в его комнату.
Пройдя через Вторую мировую войну радистом, а также взломщиком японских шифровальных кодов, он поступил в Университет Миннесоты (University of Minnesota) и спустя пять лет получил ученую степень бакалавра по электротехнике и степень магистра по прикладной математике.
В 1950 году Крэй устроился на работу в компанию Engineering Research Associates (ERA), основанную бывшими сотрудниками научно-исследовательской лаборатории военно-морских сил США, которая занималась разработкой устройств для взлома шифровальных кодов. Со временем ERA переориентировалась на выпуск компьютеров. Именно тогда руководство компании обратило внимание на Крэя, быстро ставшего экспертом по электронно-вычислительным машинам.
Сеймур проработал разработчиком компьютерных систем в Engineering Research Associates до 1958 года. Спустя несколько лет после закрытия ее компьютерного подразделения он перешел в компанию Control Data Corporation (CDC), которую создали бывшие сотрудники ERA, покинувшие компанию годом раньше.
На протяжении двух лет Сеймур Крэй трудился над разработкой новой вычислительной системы, получившей название CDC 1604. Выпущенный в 1960 году, CDC 1604 стал первым коммерчески успешным компьютером, построенным на базе полупроводниковых транзисторов.
Не желая останавливаться на достигнутом, Крэй сразу же переключился на разработку нового компьютера, поставив перед собой цель: повысить производительность по сравнению со скоростью работы CDC 1604 в 50 раз.
«Каждому под силу создать быстрый
процессор, – говорил он в то время. – Загвоздка же заключается в создании быстродействующей системы». В своей новой разработке кроме использования только появившихся на рынке
транзисторов на основе кремния Крэй уделил большое внимание пропускной способности внутренних шин данных компьютера, дабы избавиться от простоев процессора из-за недостаточной скорости заполнения данными для их обработки. Спустя четыре года свет увидела система CDC 6600, значительно опередившая своего ближайшего конкурента, мейнфрейм 7030 корпорации
IBM. Именно тогда возник термин «суперкомпьютер», которым была названа новая разработка Сеймура Крэя.
Новинке сразу же нашли применение в лабораториях ядерных исследований, также она «поселилась» в некоторых университетах США. Всего Control Data Corporation было построено более ста систем 6600.
На пути к Cray Research
Практически сразу же после выхода
CDC 6600 Крэй, не теряя набранного темпа, взялся за создание следующего суперкомпьютера. В новом CDC 7600 была впервые применена параллельно-конвейерная организация вычислений. Кроме того, в связке с суперкомпьютером работали дополнительные «периферийные процессоры» в виде десяти мини-компьютеров CDC 160A, занимавшиеся непрерывным заполнением оперативной памяти данными, которые впоследствии обрабатывал ЦП суперкомпьютера.
В результате CDC 7600 действительно работал на порядок быстрее, хотя из-за изменившегося набора инструкций был аппаратно и программно несовместим с предыдущей моделью. Впрочем, гораздо больше неприятностей доставили постоянные аппаратные проблемы, возникавшие у новинки. Для достижения эффективной работы конвейера каждый из его «этапов» был реализован в виде отдельного электронного блока, содержавшего несколько (вплоть до шести) печатных плат с компонентами, расположенных одна над другой.
Процесс сборки Cray-1
Такая архитектурная организация позволяла сделать систему компактной, но недостаточно надежной, так как при выходе одной платы из строя весь блок приходил в негодность. Согласно отзывам сотрудников Ливерморской национальной лаборатории им. Э. Лоуренса (Lawrence Livermore National Laboratory) и Национального центра атмосферных исследований (National Center за Atmospheric Research), неисправности в CDC 7600 возникали ежедневно, доходя до 4-5 поломок в день.
Целью стартовавшего в 1968 году проекта по разработке CDC 8600 являлся очередной десятикратный скачок в производительности, планировавшийся Крэем. Иначе говоря, новый суперкомпьютер представлял собой четыре CDC 7600, объединенных в одну систему. Впрочем, без новшеств не обошлось: благодаря использованию микросхем, построенных на базе ЭСЛ (Эмиттерно-связанной логики), четыре процессора CDC 8600 работали на частоте 125 МГц. Все они имели общий доступ к оперативной памяти объемом 2 Мб. Для улучшения общей пропускной способности суперкомпьютер мог работать в специальном режиме (ныне известном как SIMD – Single Instruction, Multiple Data – одиночный поток команд, множественный поток данных), в котором одна инструкция отправлялась на каждый процессор с различным набором данных. Каждый процессор новой системы работал в 2,5 раза быстрее CDC 7600, что в итоге давало приблизительно десятикратный прирост производительности по сравнению с предшественником.
Впрочем, если с дизайнерской точки зрения у CDC 8600 все выглядело отлично, то на практике у Крея возникли серьезные проблемы. Являясь дальнейшим развитием архитектуры CDC 7600, новый суперкомпьютер унаследовал и его ошибки. Несмотря на то что каждая печатная плата отныне обладала собственным радиатором в виде медной пластины, надежность системы была очень низкой: то тут, то там компоненты выходили из строя, и вся система переставала быть работоспособной.
В это же время другим инженером CDC, Джимом Торнтоном (Jim Thornton), была начата разработка нового суперкомпьютера. Базовая архитектура STAR-100 напоминала предыдущие системы компании: центральный процессор занимался непосредственно вычислениями, тогда как остальные обязанности были возложены на мощности периферийных мини-ЭВМ. Главной же отличительной особенностью нового суперкомпьютера стало добавление в ЦП команд для векторных вычислений, позволявших значительно ускорить обработку сложных математических расчетов. В итоге при оптимизации программы можно было добиться пиковой производительности в 100 MFLOPS (Million Floating-point Operations Per Second – миллион операций с плавающей запятой в секунду), что в три раза превосходило показатель CDC 7600.
На фоне успешной разработки STAR-100 Крей понимал, что его CDC 8600 приносит все больше проблем. К 1972 году разработчик окончательно осознал, что создание нового суперкомпьютера зашло в тупик. Надежность работы всей системы была настолько низкой, что выход из строя хотя бы одного компонента приводил к неработоспособности всего комплекса.
ПоэтомуКрей начал проектировку нового компьютера с нуля, отбросив все недостатки его предшественника. С настоятельной просьбой он обратился к Уильяму Норрису (William Norris), исполнительному директору Control Data Corporation. Однако тот ответил отказом, мотивируя свое решение тяжелым финансовым положением компании, а также концентрацией всех усилий на более перспективной разработке – STAR-100. Поставленный в тупик, но не желавший мириться со сложившейся ситуацией, Крей с группой инженеров покинул CDC и основал свою собственную фирму – Cray Research. Офис новой компании был открыт всего в нескольких десятках метров от его прежнего места работы.
Генератор идей
Отныне подвластный лишь самому себе, Сеймур Крэй мог воплощать свои грандиозные планы в жизнь. Мешало ему в этом лишь одно – отсутствие средств. Впрочем, выход из ситуации не заставил себя ждать: обратившись на Нью-Йоркскую фондовую биржу с предложением о финансировании разработок новых вычислительных систем, Крей сразу же получил необходимые средства для старта. Причиной этому послужила известность разработчика среди различных организаций и компаний, являвшихся клиентами CDC, а также стремительно увеличивающийся спрос на высокопроизводительные компьютеры.
Новый суперкомпьютер Крэя являлся «губкой», впитавшей все его идеи, родившиеся еще на этапе разработки CDC 8600. В процессе разработки гениальный ум создателя воплощал в чертежах и схемах машину с новой архитектурой, возможностями и технологиями производства. Итогом этого стало появление на свет компьютера Cray-1 – отправной точки и катализатора роста рынка сверхбыстродействующих мэйнфреймов. Даже само слово «суперкомпьютер» стало широко распространенным как раз с появлением новой разработки Крэя, впоследствии длительное время являвшейся «королем производительности».
Архитектурно Cray-1 представлял векторно-конвейерную вычислительную систему, работавшую на частоте 80 МГц. Обязательными к подключению в качестве внешних устройств являлись «управляющий блок сопряжения» (мини-компьютер, отвечавший за включение Cray-1 и запуск операционной системы), а также периферийные пользовательские компьютеры, посредством которых в суперкомпьютер вводились программы и данные. При оснащении ЭВМ опциональной подсистемой ввода/вывода к нему могли быть подключены дисковые массивы для длительного хранения данных.
Подсистема памяти Cray-1 была разделена на главную и регистровую. Главная память (в просторечье именуемая оперативной) разрядностью 64 бита была организована в виде 16 независимых блоков объемом 64 Кб слов каждый. Общий ее объем достигал 1,048,576 машинных слова (8 Мб). Регистровая память была разделена на пять групп регистров (суммарно – 152 шт.), предназначавшихся для хранения и преобразования адресов, а также хранения и обработки скалярных и векторных величин. Кроме того, система была оснащена специальной буферной памятью для промежуточного храпения команд исполняемой программы, организованной в виде четырех секций по 16 машинных слов в каждой.
Система охлаждения Cray-1. Из-за огромного количества тепла, выделяемого системой, сотрудники Cray Research нередко использовали суперкомпьютер в качестве «обогревателя» в своих офисах в зимнее время
Главной особенностью Cray-1, как и в случае со STAR-100, стала поддержка векторных вычислений наряду со стандартными скалярными. Если быть точнее, все инструкции суперкомпьютера, за исключением 24-битных арифметических операций с целыми числами, могли быть обработаны в двух режимах – как в скалярном, так и в векторном. Векторные вычисления позволяют значительно ускорить выполнение сложных арифметических расчетов над большими массивами данных, порой в несколько раз увеличивая быстродействие системы.
Микропроцессор Cray-1 обладал 12 конвейерными функциональными модулями, разделенными на четыре группы: адресную, скалярную, векторную и группу по обработке чисел с плавающей запятой. Модули могли работать параллельно, образуя некое подобие «конвейерного» процесса. В случае векторных вычислений для ускорения работы мог быть использован так называемый метод цепочки, когда регистр результата одной векторной команды является входным регистром другой команды. Благодаря его использованию центральный процессор системы мог быстро передавать данные от одного модуля к другому, минуя необходимость обращения к «медленной» оперативной памяти.
Подсистема ввода/вывода состояла в общей сложности из 24 каналов в/вб, разделенных поровну на ввод и вывод. Максимальная пропускная способность каждого из них составляла 500 Кб слов/сек.
Вместе с Cray-1 поставлялись макроассемблер CAL (Cray Assembler Language) и Cray FORTRAN, представлявший собой компилятор FORTRAN – наиболее распространенного в то время языка программирования для проведения научных расчетов.
С целью облегчения потребителю перехода на использование векторных вычислений на помощь к Cray Research пришла молодая компания Massachusetts Computer Associates, Inc. (Compass). Разработанное ею программное обеспечение, названное «векторизатором» (vectorizer), оптимизировало стандартный программный код, написанный на языке
FORTRAN, с учетом возможностей Cray-1 по обработке векторных операций.
В качестве примера использования «векторизатора» производства Compass можно привести программный комплекс, использовавшийся авиакомпанией Continental Airlines. Данное ПО занималось анализом, расчетом и составлением списков экипажей пассажирских авиалайнеров с учетом максимальной экономии. Во внимание принимались такие факторы, как графики полетов, стоимость остановок в населенных пунктах, отели, пища и прочее. Каждый год компания тратила несколько десятков тысяч долларов компьютерного времени для составления наиболее оптимального графика. По словам аналитика Compass Боба Броде (Bob Brode), курировавшего этот проект, оптимизированная при помощи «векторизатора» программа работала на Cray-1 в 2,5 раза быстрее, нежели на других компьютерах, позволяя тем самым сократить расходы до 60%.
Анатомия первого суперкомпьютера
Одной из инженерных задумок Крэя на стадии проектирования являлось использование в Cray-1 всего трех типов интегральных схем: элементов логики, чипов оперативной памяти и регистров, что позволяло значительно повысить надежность и отказоустойчивость системы. Впрочем, общее количество микросхем в системе в итоге достигло 350 тысяч штук, и, чтобы упаковать такое количество в сравнительно небольшой корпус, Крею и его инженерам пришлось изрядно потрудиться.
В итоге они решили объединить индивидуальные двухсторонние печатные платы в модули с размерами 15х23 см. Каждый модуль содержал пять слоев: на двух внешних с обеих сторон располагались микросхемы, общее количество которых доходило до 288 штук, тогда как три внутренние платы предназначались исключительно для обеспечения электрических соединений между ними. Еще на этапе проектирования суперкомпьютера создатели подразумевали, что модуль будет «одноразовым»: при выходе из строя хотя бы одной микросхемы его заменяли работоспособным, ремонт вышедшего из строя компонента системы не предусматривался. Всего в Cray-1 было использовано 113 различных комбинаций модулей общей численностью 1662 штук.
Крей прекрасно понимал, что одним из главных лимитирующих факторов в компьютерных системах является скорость, с которой электрический сигнал перемещается посредством соединительных проводов: чем они длиннее, тем больше время задержки. Решение проблемы конструктор видел в придании новому компьютеру многогранной формы, благодаря чему сокращалась длина проводов, а также увеличивалась плотность расположения компонентов системы. В довершение к этому центральный процессор Cray-1 был со всех сторон окружен чипами оперативной памяти, в результате чего время доступа к каждому из них было одинаковым.
Для соединения электронных модулей были применены провода трех типов – 30, 60 и 120 см длины, время прохождения электрического сигнала в которых составляло, соответственно, одну, две и четыре наносекунды. Трудности пайки проводов в собиравшейся системе заключались в том, что провода практически не маркировались: присутствовало всего два цвета – синий и серый. По словам инженера Cray Research Ли Хибги (Lee Higbie), процедуру пайки немного облегчало то, что кабели разной длины припаивались по очереди: «Вначале мы разбирались с проводами длиной 30 см, затем – 60 и 120 см. Последних в системе всего пара штук».
Большинство сотрудников, занимавшихся сборкой первого суперкомпьютера Cray Research, составляли женщины, которых Крэй нанимал при наличии у них опыта работы ткачихами. Их дисциплина и стремление к совершенству оказались незаменимыми при точном припаивании сотен километров проводов.
Из-за сверхплотной интеграции компонентов внутри суперкомпьютера Cray-1 выделял огромное количество тепла, поэтому ему необходима была серьезная система охлаждения. Инженеры Cray Research разработали соответствующую установку, использовавшую в качестве охладителя жидкий фреон. Между модулями с электронными компонентами были установлены медные пластины с тефлоновым покрытием, собиравшие тепло и отводившие его к краям стойки. Они крепились к основной «охлаждающей магистрали», состоявшей из идущих вдоль каждой из 12 панелей алюминиевых «кожухов», внутри которых располагались стальные трубки. По ним протекал жидкий фреон, охлаждавшийся в нижней части системы, где и находилась холодильная установка. Температура «магистрали» составляла 12 градусов Цельсия, тогда как в центральной части модулей с электронными компонентами она доходила до 54 градусов. В целом температура суперкомпьютера была ниже комнатной, что позволяло установить его даже в помещение, не оборудованное системой воздушного кондиционирования.
Трудности с системой охлаждения заставили сдвинуть срок изготовления первого Cray-1 на полгода: смазочное вещество, которое обычно смешивается с фреоном для обеспечения нормальной работы компрессора, протекало сквозь микроскопические щели в сварочных швах и покрывало платы слоем масла, выводя их из строя. Лишь благодаря использованию новых технологий в сварке металлоконструкций удалось должным образом загерметизировать стыковочные места трубок системы охлаждения.
Корпус находившихся в нижней части суперкомпьютера блоков питания и холодильной установки с внешней стороны был покрыт слоем мягкого наполнителя, напоминавшего своеобразные сиденья, на которых техники и программисты любили сидеть и спать по ночам. Поэтому Cray-1 в былые времена шутливо прозвали «самым дорогим в мире креслом».
Вся электроника суперкомпьютера была упакована в многогранник с шестнадцатью гранями (четыре из которых отсутствовали для доступа к внутренностям системы) высотой 195 см и диаметром 150 см. Как и для всех последующих суперкомпьютеров Сеймура Крея, покупатель был волен самостоятельно выбрать цвет окраски граней своего Cray-1. Вес всей системы составлял 5,25 тонны, энергопотребление – 115 кВт. Суммарная же потребляемая мощность Cray-1 вместе с системой хранения данных и охлаждающей установкой составляла 250 кВт! Неудивительно, что за одну только подачу питания на суперкомпьютер отвечал отдельный агрегат под названием «Устройство распределения энергии» (Power Distribution Unit) высотой в два метра, работавший от собственного дизельного генератора.
Архитектурное превосходство Cray-1 сделало из него непревзойденного чемпиона по быстродействию. Средняя производительность суперкомпьютера составляла 80 MFLOPS. При выполнении некоторых операций скорость работы Cray-1 повышалась до 150 MFLOPS. Пиковая же производительность составляла 250 MFLOPS. Для сравнения: популярные в то время мейнфреймы Cyber 176 и IBM 360/195 были способны лишь на 4-7 MFLOPS.
По словам Джека Лоренца (Jack Lorenz), президента компании United Computer Systems, ставшей одним из первых коммерческих клиентов на Cray-1: «Если на CDC 6600 одна задача могла выполняться на протяжении 24 часов, то при использовании Cray-1 это время сокращалось в 12 раз».
Все только начинается
Презентация суперкомпьютера Cray-1 состоялась в 1975 году. Градус ожидания нового суперкомпьютера был настолько высок, что за право приобрести первую готовую систему под номером 001 боролись сразу два учреждения – Ливерморская национальная лаборатория и Лос-Аламосская национальная лаборатория (Los Alamos National Laboratory), которая в результате и стала победительницей. Первый Cray-1 был установлен в ней год спустя, дав шестимесячную фору в использовании доселе невиданной вычислительной мощности, пока инженеры компании Крея занимались производством второй системы.
Первым коммерческим клиентом Cray Research стал Национальный центр атмосферных исследований (National Center for Atmospheric Research), заплативший в 1977 году за Cray-1, а также жесткие диски к нему 8,86 млн долларов. Впоследствии каждый суперкомпьютер обходился покупателю в сумму от 5 до 8 млн долл. в зависимости от конфигурации. По словам самого Крея, стоимость будущей системы была наименьшей из заботивших его проблем во время разработки. «Для всех машин, которые я разработал, цена была вторым вопросом на повестке дня, – говорил он во время одного из своих выступлений в 1974 году. – Я стремлюсь сделать их максимально производительными в угоду стоимости изготовления».
После того как Крей ушел из Control Data Corporation, компания все же продолжила разработку суперкомпьютера 8600, однако так и не смогла довести его до конца. Когда система STAR-100 добралась до потребителя, стало ясно, что ее реальная производительность гораздо ниже предполагавшейся и лишь немного превосходит «старичка» 7600. В итоге CDC, ослабленная продолжительным судебным разбирательством с IBM, отсутствием клиентов на свои «отсталые» машины, а также стремительно растущей конкуренцией с Cray Research, постепенно сдала свои позиции, уступив лидирующее место в секторе суперкомпьютеров компании Сеймура Крэя.
К началу 1979 года было изготовлено восемь Cray-1, и еще четыре были на подходе. За все время компания продала 85 систем Cray-1, на долгие годы став лидером в выпуске самых производительных вычислительных систем на планете. Что же касается Сеймура Крея, он продолжил создавать все новые «самые быстрые» компьютеры вплоть до 1996 года, когда автомобильная авария и последовавшие за ней осложнения прервали его жизнь. Однако его имя живет по сей день, а вместе с ним и Cray-1.
Актерская деятельность
Помимо прочих достижений Cray-1 удостоился чести попасть в кинематограф. В фильме «Трон» (Tron), выпущенном студией Walt Disney в 1982 году, несколько сцен были сняты в Ливерморской национальной лаборатории, в которой в то время были установлены два суперкомпьютера Cray-1 под номерами 6 и 33. В одной из сцен, когда главные герои проходят через комнату, битком набитую компьютерной техникой, на переднем плане возникает Cray-1, временно закрывающий актеров. Кроме стандартной красно-сине-зеленой окраски хорошо заметна и одна прозрачная панель, позволяющая мельком увидеть внутренности системы.
Программная часть
Операционная система для Cray-1 под незамысловатым названием Cray Operating System (COS) являлась прямой наследницей ОС SCOPE, разработанной для суперкомпьютеров семейств CDC 3000 (наследника CDC 1604) и CDC 6000.
Пользовательские задачи передавались в COS посредством периферийных мини-компьютеров через высокоскоростной внешний интерфейс. Постоянно хранящиеся на диске данные, используемые программой пользователя, являлись локальными для каждой индивидуальной задачи. После ее выполнения локальные данные возвращались назад на коммуникационный компьютер, освобождая дисковое пространство суперкомпьютера для следующей задачи. Для того чтобы данные могли быть использованы несколькими задачами, им необходимо было присвоить статус постоянных. Если Cray-1 был оборудован подсистемой ввода/вывода, загрузка данных также могла быть произведена посредством привода для считывания
магнитной ленты.
Эта операционная система поддерживала планирование заданий, а также средства для перезагрузки программных задач и их выполнение по контрольным точкам, снижая риск потери данных во время аварийной остановки работы суперкомпьютера. В многопользовательском режиме ОС могла обрабатывать до 63 задач.
Кроме Cray-1 COS управляла работой многопроцессорных суперкомпьютеров серии X-MP. В 1985 году она уступила дорогу основанной на
UNIX операционной системе UNICOS.
© Дмитрий Мороз
для Samag.Ru
В начало