Они были первыми
Кетков Ю.Л.
В сентябре 2006 года исполнилось ровно 50 лет с того дня, когда я впервые не только уви-дел настоящую ЭВМ, но и начал на практике осваивать свою будущую профессию про-граммиста. Произошло это в результате договоренности между сотрудниками Горьков-ского государственного университета (ГГУ) и Московского государственного университе-та (МГУ). Шесть студентов 5-го курса физико-математического факультета — Бебихов В.А., Бочкарева Т.Е., Виткина И.А., Кетков Ю.Л., Корнилова В.М. и Первин Ю.А., кото-рые рискнули специализироваться по новой для ГГУ специальности «вычислительная ма-тематика», были направлены на годичную стажировку в Москву.
Этому предшествовали следующие события. Начиная с 1954 года по приглашению со стороны ведущих учёных Горьковского исследовательского физико-технического института (ГИФТИ), физико-математического и радиофизического факультетов ГГУ в наш город начали приезжать московские учёные, закладывавшие основы новой науки — кибернетики. Самым известным среди гостей был профессор Алексей Андреевич Ляпунов. Он работал на кафедре вычислительной математики на мехмате МГУ и по совместительству заведовал отделом программирования в Отделении Прикладной Математики (ОПМ) при Математическом институте АН СССР имени акад. В.А. Стеклова. А.А. Ляпунов был достаточно известным исследователем в области теории множеств. Начав в новой для себя роли работу на одной из первых отечественных ЭВМ «Стрела- 1» , Алексей Андреевич сумел предугадать влияние вычислительной техники (ВТ) на развитие различных научных направлений. Он активно отстаивал позиции гонимых наук, и ему удалось сплотить многих учёных — генетиков, физиологов, лингвистов, математиков. Под его руководством с 1955 года при кафедре вычислительной математики на мехмате МГУ работал научный семинар по смежным вопросам кибернетики и физиологии. Часть семинаров проходили на квартире А.А. Ляпунова, и сопровождались они непременным чаепитием с пирожками, что дополнительно привлекало молодых слушателей. В 1955 году в журнале «Природа» была опубликована первая статья А.А. Ляпунова об использовании вычислительных машин для перевода с одного языка на другой (в соавторстве с О.С. Кулагиной). Вскоре журнал «Вопросы философии» опубликовал статью «Основные черты кибернетики» (авторы А.И. Китов, А.А. Ляпунов и С.Л. Соболев). Вместе с А.А. Ляпуновым к нам приезжали его коллеги из ОПМ, аспиранты и преподаватели МГУ. Среди них — С.В. Яблонский, заложивший основы многозначной логики, А.Г. Витушкин, занимавшийся исследованием сложности задачи табуляции функций, М.Л. Цетлин, разрабатывавший биопротез руки, О.С. Кулагина, трудившаяся над программами автоматического перевода с французского языка, и многие другие. А.А. Ляпунов познакомил нас с Игорем Андреевичем Полетаевым, автором первой отечественной книги по кибернетике «Сигнал», изданной с большим опозданием в 1958 году. Семинары, которые обычно проходили в 52-ой аудитории старого здания ГГУ (ул. Свердлова 37), привлекали не только преподавательский состав физмата и радиофака. Среди слушателей было довольно много студентов. На одном из семинаров А.А. Ляпунов рассказал о придуманных им операторных схемах программ — предвестниках будущих трансляторов. А вскоре он привез своего ученика Ю.И. Янова, который продолжил рассказ об операторных схемах и их преобразованиях. Иногда на этих семинарах появлялись и одиозные биологи, которые в лице профессора Е.М. Воронцова не менее яростно отстаивали признанные властями позиции академика Т.Д. Лысенко. Упоминание о генетике и кибернетике приводило их в бешенство.
Эти семинары оказали своё влияние на решение указанной шестерки студентов физмата специализироваться в области вычислительной математики. На четвёртом курсе для знакомства с этим предметом вполне хватало допотопных арифмометров с ручным приводом (типа «Феликс») и более современных электромеханических калькуляторов немецкого производства ( Reinmetall , Mersedes ). Знакомству с этой техникой, с практическими методами решения уравнений, с учётом распространения погрешности вычислений мы обязаны Юрию Исааковичу Неймарку. Но электронных вычислительных машин в то время не только в ГГУ, но и в городе Горьком ещё не было. Поэтому и было принято решение отправить первую группу «вычислителей» в Москву. Благо расходы со стороны ГГУ были минимальными — проезд и суточные нам не оплачивались. Основная материальная помощь заключалась в переводе студенческой стипендии на почтовое отделение МГУ. Правда, руководство мехмата позаботилось о предоставлении нам мест в студенческом общежитии в Черёмушках. Лекции за пятый курс мы посещали вместе со студентами мехмата МГУ, а производственная и дипломная практика проходила в разных организациях — ВЦ АН СССР, ВЦ МГУ, лаборатории управляющих машин и ОПМ МИ АН СССР. Мы с Первиным попали в ОПМ и проходили практику в 9-ом отделе. А.А. Ляпунов был официальным руководителем наших дипломных работ.
Тема дипломной работы Ю. Первина была открытой — ему предстояло написать первую в СССР игровую программу «Морской козёл» (разновидность игры в домино). В те времена сотрудники ОПМ в обеденный перерыв сражались не только в шахматы и пинг-понг, но и «забивали козла». А моя дипломная работа оказалась закрытой. Мне поручили написать программу для решения обратной задачи Штурма-Лиувилля. Однако исходные данные для неё были связаны с секретной тематикой (в те времена ОПМ был головной организацией по разработке методов и программ для решения задач ядерной физики). По ходу выполнения дипломной работы мне пришлось познакомиться с численными методами решения систем обыкновенных дифференциальных уравнений и запрограммировать в машинных кодах «Стрелы- 1» метод Рунге-Кутта. Но гораздо более интересной оказалась возможность воспользоваться первыми средствами автоматизации программирования, разработанными в 9-ом отделе — программирующей программой ПП-2 [1] и программой автоматического присвоения адресов ПАПА [2]. Эти средства были разработаны в 1955-56 гг и находились ещё в стадии начального и не очень активного освоения программистами других отделов. Поэтому появление в 9-ом отделе своего подопытного кролика было встречено очень доброжелательно. ПАПА позволяла автоматизировать процесс замены условных (символических) адресов в машинных командах на автоматически вычисляемые физические адреса. В определенном смысле, текст программы походил на строки автокодов (ассемблеров) за тем исключением, что в машинных командах указывались числовые коды операций. ПП-2 позволяла автоматизировать и сам процесс написания программы по соответствующей операторной схеме. По сути дела, она явилась прообразом трансляторов с алгоритмических языков, появившихся в нашей стране спустя пять лет.
Во время пребывания в Москве я познакомился с некоторыми однокурсниками моего старшего брата. Большинство из них тогда учились в аспирантуре, совмещая учёбу с проведением учебных занятий и работой. Именно они заложили базу профессионального программирования в нашей стране.
Среди них аспирант А.А. Ляпунова — Андрей Петрович Ершов, который уже читал лекции по программированию для студентов мехмата МГУ. Впоследствии А.П. Ершов превзошёл своего учителя и стал академиком, возглавившим клан советских программистов. Под его руководством в ВЦ АН СССР была создана одна из первых программирующих программ для ЭВМ типа БЭСМ, разработаны расширения алгоритмического языка АЛГОЛ-60 и созданы соответствующие АЛЬФА-трансляторы для БЭСМ-6. Он очень много сделал для становления информатики как предмета обучения в школе. До конца дней своих А.П. Ершов возглавлял отдел программирования в Вычислительном центре Сибирского отделения АН СССР.
Анатолий Георгиевич Витушкин, аспирант А.Н. Колмогорова, до поступления в МГУ был выпускником суворовского училища. На одном из занятий у него в руках взорвался запал боевой гранаты. В результате будущий офицер лишился зрения и двух пальцев на левой руке. А советская математика в его лице приобрела блестящего учёного — одного из самых молодых член-корреспондентов АН СССР. Будучи слепым, А.Г. Витушкин неплохо играл в шахматы, на слух изучал и исполнял классические музыкальные произведения — фортепьянные концерты Грига, Рахманинова, Чайковского. Одним из его хобби была разработка читающего автомата для слепых. На входе автомата предполагалось установить миниатюрную телевизионную камеру, которая считывала страницу текста. Оптическая система должна была выделять в поле зрения отдельную букву, в образе которой логическим дешифратором распознавались такие графические элементы как горизонтальный, вертикальный или наклонный отрезок прямой, дуга окружности с той или иной ориентацией (выпуклость влево/вправо, вверх/вниз). Совокупность графических признаков выделенной буквы сравнивалась с эталонными образцами, и полученный таким образом двоичный код управлял шестеркой соленоидов со штырями-сердечниками, формировавших на выходе тактильный узор опознанного символа в системе Брайля. К разработке проекта этого автомата А.Г. Витушкин привлёк и меня. Какое-то время меня даже зачислили в штат ОПМ в качестве лаборанта по совместительству.
Большую роль в моем профессиональном становлении сыграл Эдуард Зиновьевич Любимский, который в то время работал научным сотрудником 9-го отдела и назывался просто Сашей. Он был моим непосредственным опекуном как в освоении программирования на ЭВМ «Стрела- 1» , так и в использовании средств автоматизации программирования. Именно он вместе с Сергеем Сергеевичем Камыниным и Михаилом Романовичем Шурой-Бурой разработал программирующие программы ПП-1 и ПП-2 для ЭВМ «Стрела». Спустя несколько лет Э.З. Любимский возглавил коллектив, разработавший один из первых отечественных трансляторов ТА-2 с языка АЛГОЛ-60 для ЭВМ М-20. Именно ему вместе с С.С. Камыниным принадлежит идея создания алгоритмического машинно-ориентированного языка АЛМО и серии трансляторов, использовавших АЛМО в качестве языка-посредника. В 1966 году он был одним из оппонентов на защите моей кандидатской диссертации. А через пару лет он пригласил меня в сборную команду программистов СССР, которая в 1968-69 гг разработала операционную систему ОС ИПМ для БЭСМ-6. Многие идеи этой системы были положены в основу докторской диссертации Э.З. Любимского, который до настоящего времени является ведущим профессором кафедры математического обеспечения МГУ и одновременно заведует отделом в Институте Прикладной Математики РАН им. акад. М.В. Келдыша.
Многое я почерпнул из общения с другим научным сотрудником 9-го отдела Всеволодом Серафимовичем Штаркманом. Этому человеку были подвластны не только нюансы программирования в машинных кодах, но и детали инженерной реализации узлов и блоков ЭВМ. Он принимал активное участие в проектировании системы команд на первых отечественных ЭВМ «Стрела» и М-20. Его перу принадлежит одна из моих первых книг по программированию «Система команд быстродействующей электронной вычислительной машины Стрела- 1» . Он был руководителем группы, разработавшей отечественный транслятор языка машинных команд для ЭВМ БЭСМ-6. Автокод БЕМШ (Бочкова — Езерова — Морозова — Штаркман) был одним из главных средств разработки различных программных систем для флагмана нашей вычислительной техники. В руках В.С. Штаркмана я увидел первые фотографии обратной стороны Луны, которые были обработаны на БЭСМ-6 и только спустя несколько дней появились на страницах газет.
В 1956 году нас очень удивил приказ по ОПМ, в котором сообщалось о награждении орденами группы учёных ОПМ, среди которых находились и сотрудники 9-го отдела. В их число входили и такие корифеи как зам. зав. отделом д.ф.-м.н., профессор М.Р. Шура-Бура, и почти наши ровесники Э.З. Любимский и В.С. Штаркман, которым тогда было по 24-25 лет. Позже мы узнали, что эти правительственные награды наши знакомые получили за успешное завершение одного из этапов ядерной программы СССР.
В то время штатная численность сотрудников ОПМ примерно в 7-8 раз превышала количество сотрудников МИ АН СССР, к которому было приписано отделение. Инженерно-технические подразделения, возглавляемые А.Н. Мямлиным, насчитывали до 300 сотрудников, обслуживавших первую серийную ЭВМ «Стрела- 1» . Они обеспечивали круглосуточную работу перфораторных, холодильных и энергетических установок, профилактику, ремонт и эксплуатацию ЭВМ и её периферийных устройств. Все это хозяйство располагалось в отдельном двухэтажном корпусе, находившемся под бдительным оком вооруженной охраны, подчинявшейся генералу КГБ. Ничего удивительного в этом нет. ОПМ был ведущим разработчиком математического и программного обеспечения систем, использовавшихся в ядерных центрах Сарова и Челябинска. Здесь же создавались программы управления полетами будущих космических аппаратов. Руководителями научных отделов ОПМ были академики Я.Б. Зельдович, А.Н. Тихонов, А.А. Самарский, член-корреспондент И.М. Гельфанд, доктора наук А.А. Ляпунов, Д.Е. Охоцимский, М.Р. Шура-Бура. А возглавлял отделение академик Мстислав Всеволодович Келдыш, избранный впоследствии Президентом АН СССР.
Таким образом, мы в нужное время оказались в нужном месте.
После окончания ГГУ пять из шести вычислителей были распределены на работу в ГИФТИ. Инна Виткина получила приглашение от А.П. Ершова и уехала на работу в только что созданный Вычислительный центр СО АН СССР. Я, Ю. Первин и В. Максимова были приписаны к инженерной группе, занимавшейся разработкой первой в Горьком ЭВМ, получившей название «Машины ГИФТИ». Т.Е Бочкарева и В.А. Бебихов попали в группу, занимавшуюся эксплуатацией серийной аналоговой вычислительной машины МН-8, которую институт приобрел для исследования сложных динамических систем. Спонсором, обеспечившим покупку этого дорогостоящего оборудования, было Особое Конструкторское Бюро Машиностроения (ОКБМ), возглавляемое И.И. Африкантовым.
Проект первой в СССР вузовской цифровой вычислительной машины был задуман в 1955-56 гг. сотрудниками кафедры теории колебаний радиофизического факультета ГГУ и активно поддержан её новым заведующим Николаем Александровичем Железцовым. Задолго до этого интерес к работам в новом направлении был проявлен его предшественником — академиком Александром Александровичем Андроновым. Ему довелось участвовать в работе одной серьезной комиссии, проверявшей целесообразность расходования довольно больших средств в лаборатории управляющих машин. Выводы комиссия сделала правильные, и впоследствии на базе лаборатории, возглавляемой чл.-корр. АН СССР И. С. Бруком и разработанной там ЭВМ М-2, был создан Институт электронных управляющих машин (ИНЭУМ).
Первый период был более характерен работами теоретического направления. К ним относятся блестящая дипломная работа Марка Исааковича Фейгина, связанная с исследованием динамики поведения триггера ( 1952 г .), проект арифметического устройства ЭВМ последовательного действия (Михаил Яковлевич Эйнгорин, 1954 г .), система команд и архитектура ЭВМ с двухуровневой памятью (Аркадий Моисеевич Гильман, 1955 г .). Две последние работы были представлены на Всесоюзной конференции «Пути развития советского математического машиностроения и приборостроения», состоявшейся в 1956 г .
Воплощение двоичной логики в железо началось с цифровой лабораторной работы — специализированной машины со странным названием «7 Є 7». Автором этого проекта был М. Фейгин, который довёл свой замысел до ума в 1953 г . вместе с бригадой студентов младшего курса в составе И. Клибановой, Е. Сабаева и А. Сергиевского. Машина «7 Є 7» умела вычислять произведение трёхразрядных двоичных чисел, и с её помощью ассистент В.А. Дозоров наводил страх на студентов физмата и радиофака. Он подменял исправные элементы схемы на неисправные, а задача обучающихся состояла в локализации ошибочного диода по таблице получающихся результатов.
Наряду с учебными макетами подобного рода и глубокими теоретическими изысканиями на кафедре началась и более кропотливая экспериментальная работа по созданию отдельных узлов и блоков цифровой техники. В 1954-55 гг. довольно много дипломных работ (С. Буторин, А. Гончаров, Б. Караулов, Б. Кожинская и др.) было посвящено решению этих практических задач. Исторически сложилось так, что выпускники кафедры, посвятившие себя новой тематике, группировались вокруг Аркадия Степановича Тарантовича (выпускника 1953 г ). В составе группы инженеров-разработчиков, включённой в штат ГИФТИ и активно поддерживаемой её директором Яковом Никитичем Николаевым, появились Александр Михайлович Гончаров (выпускник 1955 г . ), Марк Давыдович Брейдо, Нина Всеволодовна Жеглова, Григорий Дмитриевич Зарницын и Рафек Хасьянович Садеков (выпускники 1956 г ). Основной объём работ по изготовлению блоков машины ГИФТИ выпал на группу, опекаемую Зоей Семеновной Кечиевой. В её составе работали техники и монтажники Леша Алексеев, Саша Аралов, Валя Блинничева, Лева Маркин, Вена Монахов, Толя Рожков и чертежница Дина Мануилова. В разработке силовых компонент (блоки питания, сетевые фильтры) принимал активное участие Виктор Иванович Королев. Дизайн пульта ЭВМ и разработка электронной схемы управления встроенным растровым дисплеем выполнены Григорием Григорьевичем Денисовым.
В 1957 г общее руководство работами по созданию, монтажу и вводу машины ГИФТИ в эксплуатацию было поручено к.ф.-м.н. Артемию Сергеевичу Алексееву, который возглавил образованный к концу года Вычислительный центр ГИФТИ и руководил им, практически, до конца своей жизни. На фото 1 представлены сотрудники ГИФТИ, так или иначе причастные к разработке проекта машины ГИФТИ.
Фото 1. Слева направо: Г.Д. Зарницын, А. Аралов, Р.Х. Садеков, Н.А. Железцов, Н.В. Жеглова, А.М. Гильман, М.Я. Эйнгорин, А.М. Гончаров, В.А. Дозоров
В основу машины ГИФТИ был положен проект А. М. Гильмана, однако в процессе его реализации многие функциональные узлы подверглись серьёзным изменениям. Машина ГИФТИ представляла собой универсальную ЦВМ последовательного действия с оперативной памятью из 2016 слов длиной по 32 бита. Специально для неё в ОКБМ был изготовлен магнитный барабан, вращавшийся со скоростью 6000 об./мин. На этом барабане помимо ячеек оперативной памяти были реализованы сверхбыстрые рециркуляционные регистры, позволившие довести скорость работы арифметического устройства до 6000 сложений в сек.
Фото 2. «Память» машины ГИФТИ — А.М. Гончаров и А.С. Тарантович
Замечу, что ранее разработанные отечественные ЭВМ обладали быстродействием 100 оп/сек (Урал-1), 2000 оп/сек (Стрела-1) и 7000 оп/сек (БЭСМ). Причём в двух последних компьютерах была реализована более дорогостоящая параллельная арифметика. В арифметическом устройстве машины ГИФТИ была реализована схема ускоренного умножения и смоделирована оригинальная схема ускоренного деления двоичных чисел. К разработке последней приложил руку и я [3]. Моя тяга к изучению «железа» ЭВМ, наверное, была инициирована общением с В.С. Штаркманом. Упомяну в связи с этим ещё одну публикацию, направленную на оптимизацию конструкции дешифратора памяти [4].
Общая производительность машины ГИФТИ сдерживалась медленной оперативной памятью. Однако система её команд предусматривала довольно много операций типа регистр-регистр или память-регистр. Впоследствии такой подход стал основным в архитектуре машин третьего поколения — ЕС ЭВМ и СМ ЭВМ. Одной из интересных особенностей логики выполнения команд машины ГИФТИ была система автоматической модификации исполнительного адреса и управления приращением в индексном регистре. На пульте машины находилась электронно-лучевая трубка, предназначенная для просмотра содержимого регистров и ячеек оперативной памяти, используемая как своеобразный растровый дисплей. Ввод данных и программ производился с перфоленты со скоростью 300 знаков в сек, тогда как электромеханический трансмиттер фототелеграфного аппарата выжимал всего 7 знаков в сек. Для вывода результатов вычислений использовался обычный рулонный телетайп РТА-51.
По сравнению с ЭВМ «Стрела», занимавшей тогда машинный зал площадью в 300 кв.м. и потреблявшей более 300 кВт электроэнергии, машина ГИФТИ поражала своими скромными параметрами (комната в 25 кв.м, 560 ламп, потребляемая мощность — порядка 11 кВт).
Фото 3. М .Д. Брейдо и Г.Д. Зарницын за отладкой арифметического устройства
Фото 4. Пульт машины ГИФТИ. Справа — телетайп РТА-50.
Фото 5. Одна из трёх стоек машины ГИФТИ. Справа — типовые блоки.
Машина ГИФТИ оказалась пятой (шестой, поскольку была ещё малоизвестная машина Курчатовского института — прим. ред. ) в стране универсальной цифровой вычислительной машиной вслед за ЭВМ БЭСМ (разработчик — ИТМ и ВТ, главный конструктор акад. С.А. Лебедев, кстати, нижегородец по происхождению), «Стрела- 1» (разработчик — СКБ-245, главный конструктор Ю.Я. Базилевский), М-2 (разработчик — лаборатория управляющих машин АН СССР, научный руководитель чл.-корр. И.С. Брук), «Урал- 1» (разработчик — Пензенский завод САМ, главный конструктор Б.И. Рамеев). И она была первым компьютером, разработанным вузовскими учёными.
Первый коллектив пользователей машины ГИФТИ состоял из трёх выпускников физмата — Ю.Л. Кеткова, В.М. Корниловой и Ю.А. Первина. Мы помогали инженерам доводить конструкцию ЭВМ, составляли первые тесты, занимались разработкой программ нулевого цикла — подпрограмм ввода/вывода числовой информации, вычисления элементарных функций, реализации численных методов интегрирования, решения задач линейной алгебры, систем обыкновенных дифференциальных уравнений. К новому 1958 году на экране нашего дисплея появилась первая цифровая мультипликация: на фоне ёлочки, контуры которых были образованы неподвижными битовыми комбинациями, опускались снежинки — перемещающиеся ярко светящиеся точки (двоичные «единицы»). Электронная докладная, сопровождающая этот графический шедевр и адресованная начальнику Вычислительного центра, содержала требование повысить зарплату (зарплата программистов, зачисленных на должности и.о. старших научных сотрудников, составляла 880 руб. и не так уж и намного превосходила их студенческую стипендию).
Первые инженерно-технические задачи, которые решались на машине ГИФТИ, были связаны с исследованиями систем обыкновенных дифференциальных уравнений высокого порядка. Главным поставщиком задач такого рода была лаборатория, возглавляемая Н.А. Железцовым, которая по заданию ОКБМ разрабатывала и исследовала схемы управления ядерными реакторами. В силу закрытости этих работ лаборатория именовалась как «п/я 88» . Поначалу такие задачи решались на большой аналоговой вычислительной машине МН-8, многочисленные блоки которой соединялись в соответствии с математической моделью исследуемого объекта. Коммутация блоков осуществлялась вручную с помощью проводников на специальной панели, занимала много времени, требовала тщательной проверки и настройки параметров интегрирующих усилителей. Затраты на операции такого рода занимали несколько дней, и до тех пор, пока исследовалось поведение одной системы, коммутационную панель МН-8 нельзя было занимать для набора другой схемы. Погрешности аналоговых блоков и нестабильность их параметров не всегда гарантировали требуемую точность решения.
На машине ГИФТИ ввод программы решения аналогичной задачи занимал считанные секунды и после получения многометровых распечаток с таблицами исследуемых функций пользователь мог неспешно их анализировать, освобождая компьютер для решения других задач. Первым моим клиентом был сотрудник «секретного ящика» Андрей Владимирович Сергиевский. Впоследствии он стал директором ГИФТИ и несколько лет проработал директором НИИ ПМК.
Следующую группу исследователей, вкусивших прелести численных методов решения дифференциальных уравнений, составили сотрудники Людмилы Николаевны Беллюстиной, занимавшиеся качественным исследованием динамических систем. Вскоре появились и первые внешние заказчики — проф. С.А. Жевакин (НИРФИ), проф. И.И. Трянин (ГИИВТ), молодые аспиранты проф. А.Г. Угодчикова (ГИСИ) и др. К 1960 г группа программистов в ВЦ ГИФТИ насчитывала в своих рядах уже более 20 человек, для которых я был неформальным начальником.
До 1961 года машина ГИФТИ была в Вычислительном центре единственной цифровой ЭВМ, на которой успешно решались многие научно-технические задачи и воспитывались первые кадры горьковских программистов.
Статья помещена в музей, с разрешения автора 01.04.2009 г.
Об авторе: Профессор кафедры МО ЭВМ, д.т.н., лауреат премии СМ СССР в области кибернетики