[Список Лекций] [Мой путь в науке] [Вычисления, машины, программирование] [<<] [<] [^] [>] [>>]

Мой путь в науке

Вычисления, машины, программирование

Настольный калькулятор «Нева-3»

Еще в 1943 г., будучи в командировке в Москве, я попал, по приглашению Лазаря Ароновича Люстерника, на семинар, где обсуждались проблемы использования машин для больших вычислительных работ. В это время в Москве проводились некоторые такие расчеты. Сначала шла речь о при­митивных машинах — счетно-аналитических, которые были приобретены в связи с переписью населения 1939 г. и после этого практически не использо­вались. По-видимому, впервые эти машины были применены для некоторых численных расчетов проф. И. Н. Янжулом из Астрономического институ­та в Ленинграде 65. На семинаре обсуждались возможности использования этих машин для других расчетов. Они были очень медленными — табуля­тор делал сложение за полсекунды, умножение — в течение пяти-восьми секунд. Вскользь говорилось о начавшихся разработках по электронным машинам и счетно-аналитическим, построенным на тех же принципах (ти­па «Марк I», «Марк II» в США). Меня эти вопросы очень заинтересовали, и я тут же на семинаре предложил ряд вариантов их применения.

После возвращения в Ленинград мне была поручена сначала группа в ЛОМИ, а затем и отдел «Приближенных вычислений», который должен был заниматься разработкой численных методов и проводить большие кон­кретные вычислительные работы по заданию тех или иных организаций (как правило, связанных с физикой).

Нами была установлена связь с ленинградской машинно-счетной фаб­рикой, занятой простейшими бухгалтерскими вычислениями на машинах, оставшихся там после переписи населения. М. К. Гавурин и я предложи­ли некоторые новые схемы использования этих счетных машин. Основ­ной принцип их эффективного использования — это запараллеливание ана­логичных вычислений, благодаря чему появлялась возможность введения простейших программных изменений на коммутационной доске (конечно, вручную).

Так, были предложены способы скорой выборки из таблиц и способ рас­чета скалярного произведения не умножением, а сложением на табуляторе, при этом один из сомножителей формировался не в десятичной, а в двоич­ной системе [92].

Серьезным конкретным достижением было вычисление на этой прими­тивной технике таблиц Бесселевых функций до 120 порядка на большом интервале [93]. Наиболее интересным тут было запараллеливание вычис­лений66 при интегрировании на этих машинах дифференциального уравнения для Бесселевых функций. Запараллеливание достигалось тем, что промежуток интегрирования был разбит на несколько интервалов и функ­ции разных номеров на каждом из интервалов вычислялись одновременно, поэтому получались достаточно большие массивы одинаковых операций, которые эффективно осуществлялись на этих машинах.

Эта работа была сделана при моем участии М. К. Гавуриным и В. Н. Фаддеевой. Любопытно, что параллельно таблицы Бесселевых функций рассчитывались в США на машинах «Марк» и даже «ЭНИАК». Наша ра­бота началась двумя годами позже и была выполнена всего за полтора года, еще до того, как было закончено издание американских таблиц.

Мое внимание привлекла и сама вычислительная техника. Возникла идея — важную, часто встречающуюся операцию выборки значений функ­ции из таблиц осуществлять автоматически. Для этого было спроектирова­но специальное устройство — «функциональный преобразователь» на простейшей электромеханике, полупроводниках — купроксах и селенах, включавшее более 10 тысяч полупроводниковых элементов. По заказу Математического института и заинтересованных организаций это устройство было изготовлено в нескольких экземплярах на заводе счетно-аналитических ма­шин в Москве. Оно позволяло операцию расчета значения функции — вы­борки основного значения из таблицы и расчета поправки — делать за ко­роткое время. Для каждой функции требовалась своя система коммутации. Впрочем, как я уже говорил, была и доска с универсальной коммутацией, которая одновременно позволяла вычислять десять различных функций, но с меньшей точностью. В дальнейшем «функциональный преобразователь» был зарегистрирован как изобретение [94], некоторое время применялся, но это было уже время перехода на электронную вычислительную техни­ку. У нас появились первые ЭВМ — «Стрела» и БЭСМ, с которыми наше устройство конкурировать не могло. Но, вероятно, это была первая в мире вычислительная машина, в которой широко использовались полупроводни­ки.

Первые годы электронно-вычислительная техника была малопроизводи­тельна, дорога и доступна только некоторым приоритетным учреждениям. Между тем расчеты велись во многих организациях — научных, проектных, геодезических и других, в которых работали десятки и сотни вычислителей - операторов, и именно ими фактически выполнялись массовые вычисления. Эти операторы работали на счетных машинах механического типа — ариф­мометрах. Наиболее совершенными из настольных счетных машин были в то время «Мерседес-Эвклид» и «Рейнметалл», которые импортировались из-за границы.

Попытки собственного производства подобных автоматов встретили значительные трудности — нужны были высококачественные материалы и очень точная механическая обработка. Было произведено лишь несколько десятков или сотен таких машин, причем работали они неудовлетворитель­но. Между тем и зарубежные машины также имели недостатки — были не очень надежны, требовали частого и сложного ремонта, запасных частей, так что каждые пять работающих машин должен был опекать квалифици­рованный механик.

Здесь пригодился наш опыт в области составления элементов, вычис­лительных приемов и конструирования устройств, накопленный в процессе работы над «функциональным преобразователем» и некоторыми другими экспериментальными образцами. На основе этих элементов были сконструированы оригинальные образцы настольных счетных автоматов, причем была использована техника, которая не применялась ранее ни у нас, ни за рубежом. Это было зарегистрировано как изобретение [95]. Сконструирован­ные машины были несколько более производительными, чем механические автоматы, и очень простыми в эксплуатации и ремонте — достаточно было замены одного из нескольких типов элементов.

Внедрение их в практику оказалось делом довольно трудным. И в Москве, и в Ленинграде их отказались производить, но, к счастью, тогда было время совнархозов, и в Кирове нашелся завод и конструкторское бюро, которые были мало загружены и приняли это изобретение к реализации. Всё же в течение года или полутора лет они не приступали к работе, желая создать аналогичную машину, но собственной разработки. Однако работа вошла в план, сроки поджимали, и у нас запросили чертежи. В довольно короткий срок было начато изготовление этих машин на трех заводах, в том чис­ле в Кирове — машина «Вятка» — и в Вильнюсе — машина «Вильнюс» (практически они совпадали).

В течение десяти лет было выпущено около сорока тысяч машин, что в основном удовлетворило нужды страны и позволило по большей части освободиться от импорта. Несмотря на большой эффект от реализации нашего изобретения, авторское вознаграждение мы получили далеко не полностью и не сразу. Лишь около семидесятого года начали производить настольные электронно-счетные клавишные машины, которые первое время были на­много дороже и менее удобны в эксплуатации. Но прогресс неизбежен.

Почти сразу же после появления электронных машин началась рабо­та по упрощению и автоматизации программирования. Мы в Ленинграде также включились в эту работу. Основным недостатком существовавшей системы, на мой взгляд, было резкое различие языка для машины и мате­матического языка, на котором описывался алгоритм. В математическом описании использовались символы, крупные операции, различные матема­тические понятия, а в машинной программе все это надо было доводить до стандартных операций над числами. Конечно, большим достижением была система управления и пересылки, в создании которой большую роль сыграл Дж. фон Нейман.

Первым новшеством нашей системы было другое описание вычислитель­ной схемы, именно, в ней применялись не только простейшие арифметиче­ские операции, но и многие укрупненные математические операции. Дру­гим, конечно, было то, что элементами схемы были не отдельные числа, а целые их массивы с описаниями расположения и др. В результате схема расчета записывалась с вычислительного плана с логическими связями и переходами, довольно короткого и обозримого.

Для укрупненных операций — упорядочение, скалярное произведение, операции над матрицами и т. д. — были созданы подпрограммы, их ре­ализующие. Также выделялись и специальные операции, если они часто встречались в каком-то расчете. При этом вместо машинных адресов использовались инвентарные адреса, что можно назвать паспортом данных массива или операции. Эта система в соответствии с модным тогда терми­ном, применявшимся в строительстве, была названа «крупноблочным программированием».

Эти идеи имели и другое воплощение — благодаря использованию ло­гической схемы для записи процесса расчета появлялась возможность опе­рирования с этими схемами и их применения не только для численных, но и для аналитических выкладок. Скажем, программа позволяла произво­дить аналитическое дифференцирование любой функции, составленной из элементарных или специальных. Эти работы велись начиная с 1953 г., но возможность первых публикаций относится к 1956 г. [96 - 99].

Довести эту работу до конца и создать цельную систему автоматизиро­ванного программирования не удалось. Как известно, создание таких си­стем требует десятков и сотен разработчиков. Кроме того, в нашей систе­ме несколько большее место занимали операции управления, так что при тогдашнем голоде машинного времени ее было целесообразно применять только к массовым задачам. Схемная запись вычислительных планов на­шла использование в созданной в Киеве машине «Мир-3», а впоследующем использовалась физиками для проведения на машинах сложных аналити­ческих выкладок [97].

В это же время были составлены (в командном и автоматизированном исполнении) программы для решения задач линейного программирования, в частности, для транспортной задачи. В компактной и быстродействую­щей программе, опубликованной в 1958 г. М. А. Яковлевой, был реализован метод потенциала [98]. Разработкой этих программ и системы «крупноблоч­ного» программирования занимались мои сотрудники Л. Т. Петрова, В. А. Булавский, М. А. Яковлева, Р. А. Звягина.

[<<] [<] [^] [>] [>>]