С первого раза и десятой попытки
В конце 80-х в наш ВЦ в хорошем, крепком НИИ пришёл молодой чел в костюме, и, о боги, при галстухе. Потребовал аудиенции у начальника машины. Конклав начальников четырёх машин во главе с главным технологом почесал под белыми халатам на голое тело и поинтересовался:
— Какой именно машины?
— Самой мощной.
Начальник ПС-2000 скромно улыбнулся и поинтересовался: какого, собственно, нужно от суперкомпьютера?
— У вас есть Фортран?
— Фортран у нас есть, но чтоб получить к нему доступ, надо иметь веские основания. Машина не простаивает, и очередь жаждущих высоких вычислений расписана вперёд.
— Вот, — сказал чел и показал какую-то папочку.
Ознакомившись с папочкой, конклав почесал под халатами ещё раз и отправил чела к начальнику всея ВЦ.
Через час меня, скромного техника первой категории, оторвали от приятного занятия — ремонта армянской станции по подготовке данных на ГМД — и вызвали пред высокие очи.
— Вот, — сказали высокие очи, — это краснодипломник мехмата. Решающий при написании диплома Очень Важную Задачу. Ну, во всяком случае, так выходит по его бумагам — писаны деканом, подписаны ректором. Разрешение на машинное время я ему дам. А ты, разгвоздяй, будешь ему ассистировать. И ещё раз предупреждаю: шорты не носить! А то волосатые ноги из-под халата…
— Окэ, босс.
— И не босс я тебе! А начальник. И этта: ПС-2000 я ему не дам. Ковыряйтесь на ЕСке.
В машинном зале ЕС-1055 чел сразу раскрыл дипломат с перфокартами, ринулся к ридеру и, загрузив на удивление невеликую колоду, жмякнул красную кнопку. Кнопка «Сброс», обрадованная таким вниманием, загорелась. Чел завопил нечленораздельно и кинулся к резервному ридеру…
— Стоять, Зорька!
— Вы не понимаете! Очень! Надо срочно посчитать! Очень! Колоссальные ресурсы нужны. Вам же начальник сказал. Только у вас в ВЦ. Потому что это очень! Самые мощные в городе ЭВМ. Нужно для народного хозяйства. Математическая модель…
Я внимательно слушал поток шизофазии. Через полчаса мне надоело.
— Так. Чувак. Тут такое дело. Нельзя в машину сувать всяку каку. Ручонки от аппаратуры убери. Карты свои спрячь.
— Но ведь чрезвычайно…
— У тебя это что на картах?
— Программа!
— Зашибись. Уже странслированная? А для какой машины и какой системы?
— ???
— В объектном коде?
— ???
— Исходник?
— Да-да! Я сам написал.
— А на чём?
— На Фортране.
— На каком?
— ???
Остаток дня прошёл в трудной беседе о том, что Фортраны разные. Архитектуры разные. А ещё есть ленты, диски и терминалы. На следующий день чел принёс книжицу.
— Вот. Этим трудом я руководствовался…
— Ага. Фортран-77. Только у нас его в системе нету. Не пишет у нас в НИИ на нём никто. Надо собрать сначала.
На следующий день собираю из объектников компилятор 77-го Фортрана. Гоняю предписанные тесты. Врывается чел.
— Я все понял! Я выбрал не тот язык реализации. Вот! Я всё переписал. На Си. И на всякий случай на Паскале.
— Э-э-э? Си у нас тоже нету. То есть совсем нету. Не пишет у нас никто на Си. И на Паскале, Бейсике, Алголе, Аде, кстати, тоже. Вот PL/1 есть. Фортран 66. Ассемблер/370. Давай свои давешние карточки. Сейчас будем компилять твой Фортран-77.
— Эээ… А я их выкинул. Но у меня есть блок-схема (достаёт тетрадку) и исходный текст (достаёт большую тетрадку). Вы же мне их пробьёте?
— Нет, дружок. Я отведу тебя к общаковым перфораторам. И ты пробьёшь это сам.
— Но я никогда…
— Пробьёшь-пробьёшь.
Через два дня чел принёс восстановленную колоду. Выяснилось, что о фирменных фортрановских шести пробелах в начале строки он не знал. Ещё через два дня он принёс переделанную колоду. На следующей неделе он догадался подписывать карты. Перфораторы у нас были без надпечатки. Ещё через пару дней компилятор перестал ругаться на прохлопанные запятые.
— Ну вот, дорогой друг. Теперь ты готов к запуску программы. Клади карты в ридер. Оператор запустит считывание. А я пойду покурю пока.
Так вышло, что задержался я после перекура. Прихожу через пару часов, а в машзале истерика. Чел бегает за оператором с криками:
— Ещё! Ещё раз! У меня всё правильно! Мне компилятор сказал!
А операторша от него улепётывает с визгом:
— Уберите! Уберите! Буйный!
И только тут выяснилось, что чел вместо задания на выполнение с соответствующими JCL-операторами, запускающими задание в нужном классе и от нужной учётки, с нужным компилятором, линковщиком, библиотеками, данными, файлами и т. п. просто пихал в машину исходник на Фортране. И так два часа.
После лекции о JCL и нескольких походов к перфоратору чел наконец приготовил свою задачу к счету. Задачу всех времён и народов. Задачу с народно-хозяйственным значением. Задачу его красного диплома, отворяющую врата в аспирантуру и кандидатство.
Успокоенный оператор набрал на консоли START RDR UNIT=00E. Я приготовился понизить приоритет всем остальным задачам для освобождения всех восьми мегабайт ОЗУ. Ридер 00E сделал шшшшшварк и сожрал колоду. И сразу затарахтело АЦПУ, выдав какой-то непонятный график длиной метров тридцать.
— Э-э-э? — спросил я.
— Всё. — упавшим голосом сказал будущий аспирант. — Всё посчиталось… Уже…
Оторвал распечатку и ушёл. Больше в нашем ВЦ он не появлялся. Хотя красный диплом он, наверное, не совсем зря получил. Всё ж его программа, написанная на бумаге, после чистки опечаток правильно сработала с первого раза.