- Спасибо, вы нам очень помогли!
- А перфокарты-то тебе пригодились?
- Завтра попробую найти устройство ввода с перфокарт, - поделился планами Лёха.
- Удачи! Потом расскажешь, что получилось.
4
На следующий день Лёха пошёл устраиваться на летнюю практику. В здании советских времён по адресу, который ему дал декан, порядки тоже сохранялись советские. Лёха позвонил по местному телефону, и через пять минут к нему спустился парень ненамного старше его.
- Михаил, - представился он. – Я тут вроде начальника ВЦ – это если по-старому. А по-новому – сисадмин. Давай паспорт, пойдём в бюро пропусков пропуск тебе делать.
По дороге Михаил стал вводить нового практиканта в курс дела.
- Я сам тут второй год работаю. Представляешь, у них математические модели до сих пор на ЕСке крутятся. А я взялся перевести это дело на персоналки. А то у ЕСки производительность меньше, чем у смартфона.
- А чего раньше это не сделали? – спросил Лёха.
- Да никто за это браться не хотел, им проще было ЕСку поддерживать в рабочем состоянии. Ведь эти модели годами совершенствовались. Изделие полетело, параметры сняли – в модели подправили. А если перенести модель на другую платформу, ещё неизвестно – будет ли она корректно работать, надо заново поверять.
- И как же это на персоналки переводить? – не понял Лёха.
- Вот это как раз самое простое, - объяснил Михаил. – Модель написана на языке высокого уровня, на Фортране. Для персоналок существуют эмуляторы OS/360 и трансляторы Фортрана. Так что перенести – вообще никаких проблем. Самое трудоёмкое – поверить получившуюся модель. То есть поступаем так – переносим софт на персоналки, а ЕСку сохраняем, а потом сравниваем работу модели на персоналке и ЕСке. Если совпадают – хорошо, не совпадают – корректируем.
- Скажите, а у вас тут есть устройство ввода с перфокарт? – наконец Лёха задал мучивший его вопрос.
- Конечно, есть! – обрадовал его Михаил. – И давай на «ты» - вроде почти ровесники.
Наконец все формальности были улажены, и Михаил повёл Лёху в машинный зал. Лёха с уважением смотрел на обшарпанную консоль управления ЕСки – машину явно сделали ещё до его рождения.
- Так чего ты там про перфокарты спрашивал? – окликнул его Михаил.
- Да мне там надо программу с перфокарт считать, - объяснил Лёха.
- Какие проблемы? Неси – считаем.
- Вот в этом-то и проблема. Там этих перфокарт примерно полтонны.
- Да, действительно проблема, - Михаил задумался. – Давай вот так попробуем.
Он вышел в соседнюю комнату и вернулся с небольшим металлическим ящиком.
- Это портативный считыватель. Подключается к последовательному порту, вот тут на дискетке программа, которая с ним работает. Тебе недели хватит?
- Не знаю, - смутился Лёха. – Как пойдёт.
- Короче – забирай, введёшь – принесёшь назад.
- А вахта?
- Если у них будут вопросы – пусть мне позвонят.
Ближе к вечеру Лёха взял портативный считыватель под мышку и отправился к проходной. Вахтёр лениво выглянул из-за стекла.
- Что несём?
- Прибор на полевые испытания.
- А разрешение на вынос есть?
- Конечно же! – уверенно заявил Лёха.
- Тогда проходи.
Звонить Михаилу не потребовалось.
Всю ночь Лёха подключал считыватель к компу. Заработало только к утру, но уже было пора уходить. Зато на практике Михаил показал, как на персоналке работает эмулятор среды OS/360.
- То есть один персональный компьютер, помещающийся на столе, может заменить весь этот машинный зал? – пришёл в восторг Лёха.
- А вот это нам ещё предстоит доказать, - дал осторожный ответ Михаил. – Понимаешь, вот мы берём математическую модель на языке высокого уровня, транслируем её в машинные коды, потом эти машинные коды будут исполняться не на реальном железе, а на программном эмуляторе. Формально всё должно работать – есть стандарты языка высокого уровня, программисты должны были их соблюдать. А на практике то, что нормально проходит на ЕСке, на эмуляторе выдаёт ошибку деления на ноль. Вот поэтому-то до сих пор было проще поддерживать в рабочем состоянии ЕСку, чем фактически заново переписывать математическую модель.
- Так поддерживали бы её и дальше, в чём проблема?
- А проблема в том, что уже весь запас запчастей к ЕСке закончился. Меня уже на радиорынке все в лицо знают – я у них там всё скупил, что у них к ЕСке было. Теперь приходится на свалку ездить.
- Что, серьёзно? – удивился Лёха. – Да, это не Америка!
- Думаешь, там у них по-другому? – просветил его Михаил. – Ты разве не слышал эту историю с их Шаттлом? Его проектировали ещё в начале 70-х, и многие вещи были сделаны на микропроцессоре Моторола-6800, причём, естественно, в милитари-исполнении, то есть в керамическом корпусе. И вот на дворе уже 21-й век, процессоры 6800 давным-давно не выпускаются, а весь софт написан именно под них, переделывать – это время и деньги. И пришлось инженерам НАСА шариться по помойкам и искать там старую мед.аппаратуру – туда в 70-е тоже ставили эти процессоры в керамических корпусах. А в каждом Шаттле таких процессоров много. Так что если хочешь – в выходные поехали со мной на свалку.
- Нет, у меня дела, - отказался Лёха. Только сейчас до него дошла серьёзность положения. Просто запустить программу от ЕСки на персоналке – это ещё полдела. Главное – надо быть уверенным в том, что она всё сосчитает правильно. Поэтому придётся действовать так, как говорит Михаил – запустить программу на ЕСке и на персоналке, а потом сравнивать результаты. Но его практика заканчивается через полтора месяца, а потом его уже сюда не пустят. А может, вообще ЭВМ к тому времени разберут. Надо торопиться!
Поэтому все выходные Лёха с утра до ночи занимался тем, что скармливал перфокарты портативному считывателю. Даже когда пришла Светка, он не оторвался от своего занятия, а заставил подругу аккуратно раскладывать стопки перфокарт по всей комнате. За этим занятием их застала Лёхина мать, заглянувшая в комнату.
- Вы чего тут затихли?
- Мы заняты, - ответил Лёха, засовывая в считыватель очередную колоду перфокарт. – Не мешай, а то мы всё перепутаем.
- У вас тут прямо целый вычислительный центр! – покачала головой мать.
Лёха не обратил на эти слова внимания, но Светка тут же проявила свою журналистскую хватку.
- Мария Тимофеевна, а вы работали в вычислительном центре?
- Так, имею общее представление, - смутилась мать. – Вы не голодные? Может, вам бутербродов сделать?
- Мам, давай потом, - отмахнулся Лёха.
К вечеру выходных они со Светкой перелопатили все коробки с перфокартами, в результате получилось пять мегабайт текста программы. Лёха скинул их на флешку, потом подумал и сделал ещё одну копию. Когда он убирал флешку в карман, Светка поразилась:
- И что, вся информация с этой кучи перфокарт уместилась на одну флешку?
Лёха покрутил в руках флешку.
- На самом деле сюда в тысячу раз больше может поместиться.
5
В понедельник с утра Лёха с флешкой в руках подошёл к Михаилу.
- У меня тут одна программа для ЕСки есть. Можно её прогнать и посмотреть, что получится?
- На ЕСке только ночью – днём она занята, - ответил Михаил. – А на эмуляторе – сколько угодно. У тебя в каком виде – Фортран, Ассемблер?
- Если честно – я не разбираюсь, - признался Лёха. – Но в виде исходного текста.
Михаил подключил флешку и стал листать файлы.
- Вот это? Похоже на классический Фортран. Давно писали, последние годы подпрограммы по-другому оформляли. Это кто писал-то?
Лёха не хотел посвящать его во все подробности, надо было придумать какое-то объяснение.
- А это у меня мать раньше в вычислительном центре работала, вот её ностальгия замучила. Попробуй, говорит, запустить – может, заработает.
- Так она у тебя программист? – уважительно спросил Михаил.
- Да не… - растерялся Лёха. – Она это… Ну неважно, давно это было.
- Точно, давно, - согласился Михаил, продолжая листать на экране текст программы. – Тут вон в заголовке дата стоит – март 1969 года.
- Где?! – через его плечо Лёха заглянул в монитор. – Вот это? «CONT PROGLIB ####»? Это что такое?
- Управляющая перфокарта, - коротко пояснил Михаил. – Сейчас попробую скормить твою программу транслятору.
По экрану персонального компьютера побежали строки сообщений транслятора. Ждать пришлось минут пять.
- Ничего себе! – удивился Михаил. – Могучая программа! Обычно за несколько секунд проскакивает. Но вроде оттранслировалось без ошибок. Попробовать запустить?
- Попробуй! – Лёха облизал пересохшие от волнения губы.
Михаил пробежался пальцами по клавиатуре и присвистнул от удивления.
- Ожидаемое время выполнения программы – пять часов!
- Это много? – не понял Лёха.
- Это очень много! У меня тут восьмиядерной проц и памяти 32 гига. А ЕСка это будет молотить двое-трое суток.
- И что делать?
- Персоналка к вечеру досчитает. А если хочешь на ЕСке прогнать – то надо на все выходные запускать. Но тогда надо здесь оставаться дежурить. Ты готов?
- Да не вопрос! Домой только позвоню, чтобы не волновались.
Михаил улыбнулся его энтузиазму.
- Я же сказал – в выходные, а сейчас только понедельник.
Весь день Лёха постоянно бегал к персональному компьютеру, на котором был установлен эмулятор ЕСки и работала программа с перфокарт. Наконец, вечером он увидел долгожданное сообщение «Работа программы завершена».
- Ну что, случилось чудо? – подошёл Михаил.
- Чего она тут насчитала? – спросил Лёха.
- Так, вот получился результат, который скинут в текстовый файл. В оригинале он должен распечатываться. Смотрим этот файл. Тут заголовок и какая-то таблица. И чего – эту таблицу он вычислял весь день?!
- А что в заголовке? – Лёха дрожал от нетерпения.
- Погоди, кодировку переключу, а то русские буквы не видно. Вот, теперь видно. «Исходная точка – 12 марта 1969, конечная точка – 12 марта 1999». Дальше список каких-то параметров, и пошла таблица. Ты знаешь, что всё это значит?