Суперкомпьютерная грань компьютерного мира
- Суперкомпьютеры - что это? (Вместо введения)
- Суперкомпьютеры - зачем это?
- Суперкомпьютеры - как это?
- Все новое - это хорошо забытое старое
- А что же сейчас используют в мире?
- Если где-то прибудет, то где-то обязательно уменьшится
член-корреспондент РАН
д.ф.-м.н., заведующий лабораторией
Параллельных информационных технологий НИВЦ МГУ
(e-mail: voevodin@vvv.srcc.msu.su)
Все новое - это хорошо забытое старое
Для того чтобы убедиться, что все основные нововведения в архитектуре современных процессоров на самом деле использовались еще со времен, когда ни микропроцессоров, ни понятия суперкомпьютеров еще не было, совершим маленький экскурс в историю, начав практически с момента рождения первых ЭВМ.
Все самые первые компьютеры, например, EDSAC, EDVAC, UNIVAC, сначала считывали данные последовательно бит за битом из памяти, а затем их аналогично обрабатывали в арифметическом устройстве.
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) при непосредственном участии одного из ее основателей, Сеймура Р.Крэя (Seymour R.Cray) выпускает компьютер CDC-6600 - первый компьютер, в котором использовалось несколько независимых функциональных устройств. Для сравнения с сегодняшним днем приведем некоторые параметры компьютера: время такта 100 нс, производительность 2-3 млн. операций в секунду, оперативная память разбита на 32 банка по 4096 60-ти разрядных слов, цикл памяти 1 мкс, 10 независимых функциональных устройств. Машина имела громадный успех на научном рынке, активно вытесняя машины фирмы IBM.
1969 г. CDC выпускает компьютер CDC-7600 с восемью независимыми конвейерными функциональными устройствами - сочетание параллельной и конвейерной обработки.
В 1967 году были начаты работы над проектом ILLIAC IV, первым матричным процессором, объединяющим 256 синхронно работающих процессорных элементов. К концу 1971 года изготовлена система из 64-х процессоров, в 1974г. она введена в эксплуатацию, однако доводка шла до 1975 года. Несмотря на то, что построили в 4 раза меньше задуманного, да и то лишь в одном экземпляре, а денег в результате затратили в 4 раза больше, данный проект оказал огромное влияние на архитектуру последующих машин подобного класса таких, как PEPE, BSP, ICL DAP и ряда других.
В 1972 году С.Крэй покидает CDC и основывает свою компанию Cray Research, которая в 1976г. выпускает первый векторно-конвейерный компьютер CRAY-1: время такта 12.5нс, 12 конвейерных функциональных устройств, пиковая производительность 160 миллионов операций в секунду, оперативная память до 1Мслова (слово - 64 разряда), цикл памяти 50нс. Главным новшеством является введение векторных команд, работающих с целыми массивами независимых данных и позволяющих эффективно использовать конвейерные функциональные устройства.
На этом означенный экскурс в историю можно смело закончить, поскольку роль параллелизма и его влияние на развитие архитектуры компьютеров уже очевидна.
Попутно стоит заметить, что параллелизм это не только передовая технология, используемая во всех современных суперкомпьютерах, но и довольно страшная сила. Очередной пример тому появился совсем недавно. По сообщению Electronic Frontier Foundation, Джон Гилмор (John Gilmore) и Поль Кочер (Paul Kocher) смогли взломать 56-битный код, используемый банками и некоторыми военными организациями США, с помощью собранной в домашних условиях параллельной вычислительной системы.
Раскрытый алгоритм шифрования, известный как DES (Data Encryption Standard), использует 56-битные ключи, и это при том, что сейчас в реальных ситуациях во многих случаях используются лишь 40-битные. До настоящего момента правительственные органы США утверждали, что ни террористы, ни какие-либо другие криминальные структуры не в состоянии сделать компьютер, взламывающий DES.
Вся работа по расшифровке была проделана за 56 часов на компьютере, состоящем из более чем 1000 процессоров: 27 плат по 64 процессора в каждой. Каждая плата была подсоединена к обычной персоналке, которая и управляла всем процессом. Гилмор назвал свою систему Deep Crack - мягкий намек на шахматный компьютер Deep Blue от IBM. Вечером 17 июля этого года после проверки 17,902,806,669,197,312 ключей компьютер определил, что зашифрованным предложением было: "It's time for those 128-, 192-, and 256-bit keys."