ВВЕДЕНИЕ


     В последнее время специалистами вычислительной техники все настойчивее муссируется тема отхода от фон-неймановской концепции машинного счета, концепции давно не приносящей ожидаемых дивидендов. Многие обоснованно считают, что дальнейшее совершенствование вычислительных машин старой технической ориентации приведет лишь к ухудшению отношения производительности этих машин к их коммерческой стоимости, и жизнь чаще всего подтверждает эти опасения. Выход видится в разработке новых механизмов реализации вычислимости, обладающих внутренне присущим им естественным параллелизмом счета. Первым значительным шагом в этом направлении является абстрактная сетевая машина (АМС), разработанная сотрудниками Института точной механики и вычислительной техники (ИТМ и ВТ) под руководством А.М. Степанова, о котором речь пойдет чуть ниже. Развитие идеи естественного параллелизма видится и в предлагаемом мною проекте самоуправляемой вычислительной системы (СВС), охватывающем вычислительные возможности АМС и идущем дальше, по пути полного отказа от управления вычислительным процессом и перехода к самоуправлению. Но прежде немного истории.


МАШИНЫ БЭСМ-6 и 5Э92б — ВЕРШИНА РАЗВИТИЯ ОТЕЧЕСТВЕННЫХ ЭВМ


     В 1950 году в Москве в составе Института точной механики и вычислительной техники АН ССР была создана Лаборатория N1, которую возглавил академик АН УССР С.А. Лебедев. А уже в 1952 году усилиями коллектива этой лаборатории была введена в эксплуатацию первая советская быстродействующая электронная счетная машина Академии наук СССР (БЭСМ АН СССР). По архитектурному типу эта машина принадлежала к классу вычислительных машин, характеризующихся триадой:
(1)

     Этот класс машин и принято называть машинами фон-Неймана по имени известного американского ученого, впервые сформулировавшего и реализовавшего основные принципы организации машинного счета. Последующие годы — это время бурного развития в нашем Институте вычислительной техники фон-неймановского направления, породившее к концу 60-х годов пару исключительно удачных отечественных машин — БЭСМ-6 и 5Э92б с быстродействием порядка 1 млн. одноадресных операций в секунду и 500 тыс. двухадресных операций в секунду соответственно. Первая была предназначена для использования в гражданских целях, вторая разработана по заказу Министерства обороны СССР. В этих машинах были прекрасно сбалансированы все основные технические показатели (простоты, устойчивости быстродействия и надежности), что и предопределило их сравнительно невысокую коммерческую стоимость.
     Дальнейшее развитие вычислительной техники в России шло в основном по двум направлениям — в ширь и в глубь. Развитие в ширь сопровождалось наплывом на отечественный рынок «персоналок», в основном иностранного происхождения и в целом эта тенденция оценивается специалистами положительно. Развитие же в глубь предполагало создание суперкомпьютеров, то есть сверхпроизводительных вычислительных систем на базе так называемых новых принципов фон-Неймана. Вот на этой тенденции и хотелось бы остановиться.


О СУПЕРКОМПЬЮТЕРЕ


     Сначала о фактах. Новый виток развития вычислительной техники породил в нашем Институте серию супермашин с общим названием «Эльбрус» и аналогичных им машин БЭСМ-10 и МКП. Партия «Эльбрус»-ов порядка ста вычислительных комплексов одно-, двух- и четырехпроцессорной комплектации с маркой «Эльбрус-1» (1973 — 1979 гг.) разошлась по оборонным объектам страны согласно ранее подписанным государственным документам и к настоящему времени почти полностью демонтированных. По два-три многопроцессорных комплекса типа «Эльбрус-2» (1977 — 1984 гг.) были установлены лишь в особо ответственных местах (ЦУП, Арзамас-16, Челябинск-70, Софрино, Полигон и т.п.). А вычислительная система Эльбрус-3 и вовсе осталась лишь на бумаге и не нашла своего полезного продолжения (по крайней мере для отечественной вычислительной техники). Приблизительно та же участь постигла и супермашины БЭСМ-10 и МКП.
     Для нас стало ясно, что дальнейшее совершенствование машин фон-неймановской архитектуры по пути увеличения их производительности влечет лишь дисбаланс основных технических показателей этих машин в сторону увеличения сложности управления вычислительным процессом и, как следствие, потерю надежности в целом. Кроме того это потребует резкого увеличения затрат на разработку, производство и эксплуатацию супермашин, к которым наше общество не готово. Уже сам этот факт должен был насторожить идеологов «перспективной вычислительной техники и заставить сделать для себя какие-то выводы, но этого по теперь уже понятным причинам не получилось.
     Надо сказать, что в аналогичной ситуации сегодня находится и вся вычислительная техника Запада, включая США и Японию. Однако они еще могут позволить себе разработку столь дорогих «игрушек», как супер-ЭВМ. Кстати о Японии. Вспоминаются события начала 80-х годов, когда было широко объявлено о создании японского национального проекта машины 5-го поколения, претендующего сказать новое слово в мире вычислительной техники. И вот, как реакция на этот «возмутительный» факт в конце 80-ых в нашем Институте собирается НТС с целью выработать в сложившейся ситуации собственные предпочтения и, если нужно, скорректировать свою научно-техническую политику. Один за другим к трибуне выходят уважаемые люди, их выступления сводятся в основном к двум полярным позициям: Сторонники «Эльбрус»-ов во главе с Бабаяном Б.А. требуют продолжать традиционную линию развития вычислительной техники с опорой на «новые принципы фон-Неймана»: тегированная аппаратная защита, динамическая проверка типов, блочная структура и т.п., а их немногочисленные противники в лице Степанова А.М. и др. уверяют собравшихся, что именно фон-неймановский принцип вычислений сегодня считается тем самым «узким местом», которое тормозит дальнейшее развитие вычислительной техники и программирования. К сожалению, всеобщую поддержку тогда получило первое направление, и Институт пошел по ложному пути. Ну а результаты японского «проекта века» мы тоже знаем: им так и не удалось выйти за концептуальные рамки модели фон-Неймана, в песок ушли огромные деньги нации и нешуточные амбиции разработчиков некогда нашумевшего проекта.
     Итак, суперкомпьютер, призванный указать направление развития вычислительной техники в России на долгие годы вперёд, не оправдал возлагаемых на него специалистами надежд, так как изначально не нес в себе того нового качества, которое стимулирует длительное эволюционное развитие теории и практики вычислительных машин.
     Естественно встает вопрос: что же делать дальше? Как быть? И выход здесь может быть только один: продолжая и углубляя идею параллелизма вычислений, следует полностью отказаться от архитектуры фон-Неймана (1), а значит и от всяких попыток управлять вычислительным процессом извне, и тем самым совершить переход к прямо противоположному архитектурному типу ЭВМ, с триадой:
(2)

     предлагающей альтернативную модель машинного счета — самоуправляемую вычислительную систему естественного и массового параллелизма со сверхбольшим числом совместно работающих элементарных вычислителей.
     Однако прежде необходимо задаться тремя вопросами:


СВС — ЭТО МАШИНА БЛИЖАЙШЕГО БУДУЩЕГО


     К настоящему времени в мире вычислительной техники произошли два весьма примечательных и, как оказалось, тесно связанных друг с другом события. Во-первых, в 1961 году Профессор Массачусетского технологического института Джон Маккарти осуществил разработку языка функционального программирования Лисп для решения задач искусственного интеллекта. Естественный и очень ясный в своих выражениях стиль программирования на Лиспе, помогающий программисту отслеживать правильность создаваемой им программы, поначалу привлек к себе внимание огромного числа почитателей и пользователей. К тому же программы, которые на традиционных языках выглядели бы длинными и сложными, в функциональной форме становятся короткими и логически прозрачными. Однако скоро стало ясно, что дотянуть Лисп до строго логических кондиций в ближайшее время не удастся, да и по эффективности реализации на существующих машинах программы на Лиспе не могут конкурировать с программами, написанными на традиционных языках высокого уровня, непосредственно отражающими структуру этих машин. И интерес к ним стал падать.
     Второе событие связано с зарождением на российской почве теории однородных вычислительных сред, о чем в 1962 году возвестила появившаяся в Новосибирске публикация Э.В. Евреинова под названием «О микроструктуре элементарных машин вычислительной системы». Разработчикам ЭВМ предлагалась весьма технологичная в изготовлении и довольно простая в эксплуатации вычислительная база, содержащая активные элементы в виде простейших логических вычислителей, размещенных в узлах ортогональной решетки межэлементных связей и настраиваемых на выполнение той или иной логической функции или функции коммутации, согласно заданной программе. По стране прошла волна научных семинаров, школ, конференций, посвященных тематике вычислительных сред, но и этот бум скоро сошел на нет, не дав вразумительного ответа на вопрос, как найти однородным вычислительным средам свое место в аппаратном конструировании ЭВМ.
     Сложилась парадоксальная ситуация: с одной стороны, система функционального программирования (Лисп), которая доставляет пользователю для общения с машиной доказательные средства высочайшего уровня, не может найти для себя подходящей вычислительной базы, а с другой однородная вычислительная среда как многообещающая вычислительная база не используется из-за отсутствия эксклюзивной (созданной специально для нее) системы программирования. Свое разрешение эта ситуация и нашла в проекте самоуправляемой вычислительной системы (СВС), органично соединившей в себе обе эти замечательные разработки.


О ПРОЕКТЕ СВС


     Проект самоуправляемой вычислительной системы естественного и массового параллелизма разрабатывался в ИТМ и ВТ им С.А.Лебедева РАН. Он состоит из четырех взаимосвязанных частей («Логика естествознания», «Декларативное программирование», «Однородная вычислительная база», «Самоуправляемая вычислительная система»), «Введения» и «Заключения». Кратко о каждой части:
     Логика естествознания стала консолидирующим фактором всего проекта. Она строилась взамен математической логики, которая не устраивала нас по ряду причин, связанных прежде всего с ее бессистемностью и, как следствие, неспособностью ответить на ряд очень важных вопросов: 1) Как появились на свет элементарные функции математической логики и почему они определены именно так, а не как-то иначе? 2) Есть ли различия между логическими союзами и соответствующими им функциями математической логики и каковы эти различия? 3) Почему в математической логике отсутствует союз «тогда когда», двойственный союзу «если то», на подобии союзов «и» и «или». К тому же оказалось, что математическая логика не умеет работать с противоречиями и неопределенностями — неизбежными спутниками любой формальной системы, а значит и не в состоянии решать задачи, которые сегодня стоят в центре проблемы организации высоко параллельного вычислительного процесса. Поэтому нам и пришлось отказаться от услуг математической логики и строить новую символическую логику, лишенную указанных недостатков.
     Построение логики естествознания проводилось путем последовательного определения логических связок по схеме: целое-отношение-связь-функция. В результате был получен полный набор элементарных логических функций, состоящий из двух групп — четырех арифметических и четырех семиотических функций. Первая группа нашла свое применение при разработке активных элементов однородной вычислительной среды, при построении алгоритмов синтеза дискретных автоматов, а функции второй группы стали основой для создания в СВС системы декларативного (строго логического) программирования.
     Система декларативного программирования это та же логика естествознания, но приспособленная для эффективной работы пользователя с числовыми и символьными данными сложной структуры. Обработку этих данных выполняют схемы автоматов суммирования и сравнения чисел, синтезированные формальными методами теории автоматов /1/, а за управление процессом обработки отвечают программные конструкции «присваивание», «разветвление», «повторение» и «следование», созданные на базе семиотических функций логики естествознания. В итоге вся программа на языке системы декларативного программирования приобретает строго логический вид, а значит и строго функциональный характер. Именно в этом новизна проекта СВС!
     Однородная вычислительная среда представляет собой трехуровневую вычислительную базу СВС. Первый уровень — логический. Активные элементы этого уровня среды настраиваются на выполнение той или иной функции логики естествознания или функции коммутации, заданные рабочей программой. Они же играют роль пассивной памяти машины. Единое, логическое основание — логика естествознания, на которой строится программа и вычислительная база СВС, указывают на их полную семантическую совместимость. Второй уровень — арифметический. Активными элементами этого уровня являются автоматы обработки данных. Третий же уровень вычислительной среды — семиотический (системный), он настраивается на исполнение управляющих конструкции, образующих рабочую программу.
     При настройке среды на заданное функционирование, оказалось достаточным указать лишь взаимное расположение её программных конструкций, остальные же уровни вычислительной среды подстраиваются автоматически, образуя в конце концов необходимое размещение программы в вычислительной среде.
     Вычислительный процесс фокусирует в себе все возможности, позволяющие системе осуществить переход от искусственного, очень ограниченного распараллеливания вычислений к естественному и массовому параллелизму счета. Механизм этого процесса впервые был предложен А.М. Степановым /2/, и суть его состоит в моделировании аналоговых вычислений (со свойственными им переходными процессами) на цифровой машине. Надо сказать, что этот вычислительный механизм представляет собой третью составную часть платформы, на которой вместе с вычислительной средой Э.В. Евреинова и функциональным программированием Дж. Маккарти строится проект СВС. А скрепой для них служит логика естествознания.
     Чтобы наладить работу механизма естественного и массового параллелизма, утверждает А.М. Степанов, необходимо:

     Все эти условия в той или иной мере учтены автором публикации /2/ в его абстрактной сетевой машине (АМС), позволяющей получить управляемый высоко параллельный вычислительный процесс. Несколько обобщенно он выглядит так: В ходе функционирования АМС осуществляет процесс преобразования своей активной памяти, куда помещено задание на вычисления в виде сети взаимосвязанных объектов разного назначения. Каждый активный элемент представляет собой процессор, к которому выстраивается очередь заявок на исполнение, порожденных специальными директивами и/или предыдущими вычислениями. Процесс конечен и организован таким образом, что эти заявки могут исполняться в произвольном порядке и одновременно на нескольких процессорах. Образуя множество различных путей решения задачи (нелинейность), а система по некоторым критериям выбирает лишь один из них, оптимальный по времени.
     Этой работой А.М. Степанов показал, что отход от принципов фон-Неймана (реляционный язык программирования, работа с не полностью определенной информацией) в вычислительной технике может быть весьма продуктивен. Это главное достоинство проделанной им работы, однако этот отход не может быть частичным, что имело место в АМС (система-то осталась управляемой извне) и породило ряд недостатков. Выделю из них только два основных: 1) С увеличением числа процессоров растет и производительность АМС, но растет лишь до тех пор, пока сложность управления параллельным процессом счета не достигнет некоторой критической величины, за которой кривая этого роста начинает падать. Для борьбы с указанным явлением приходится поднимать уровень структурности, изначально принятый в машине, то есть укрупнять атомарные объекты сети и стало быть уменьшать их число, отчего система в целом начинает терять ряд своих полезных свойств. 2) Из-за отсутствия в АМС собственной вычислительной базы, семантически совместимой с языком программирования, работа АМС осуществляется интерпретационно все на той же машине фон-Неймана, а в результате возникают сложности с программированием и отладкой программ на машине. Отсюда вывод, который частично уже был сформулирован выше: Единственным способом радикального решения проблемы естественного и массового параллелизма счета может стать только полный отказ от модели фон-Неймана и, значит, окончательный переход к архитектуре СВС, поддерживаемой триадой (2). Для этого случая найдется и вычислительная база — однородная вычислительная среда, и декларативный язык программирования — укрупненный язык логики естествознания, а указанные выше требования к организации вычислительного процесса естественного и массового параллелизма, будут выполнены не частично, как в АМС, а полностью, благодаря тому, что:

     Самоуправление сложной системы в первом приближении означает, что система в процессе своего функционирования правильно реагирует на всевозможные ситуации, возникающие на её входах, то есть и на ситуацию наличия данных (значения «истина», «ложь»), и на ситуацию отсутствия таковых (значение «неопределенно») и на ситуацию их одновременного присутствия (значение «противоречие»). Этого вполне достаточно, чтобы в системе пошел самоуправляемый вычислительный процесс естественного и массового параллелизма, как он описан выше. Но есть и другие, более глубокие смыслы этого термина, которые изучает синергетика — наука о самоорганизации и самоуправлении сложных систем. Эта междисциплинарная наука позволяет в отдельных случаях целиком переносить результаты, полученные при работе в других активных средах (горючих, химических, лазерных, гидравлических и т.п.) на вычислительную среду. Это могло бы означать, что в ходе вычислительного процесса естественного и массового параллелизма, протекающего в СВС, могут появиться особые формы поведения сложной системы, когда рабочая точка процесса движется по множеству путей решения задачи, перескакивая с одного пути на более короткий, и тем самым минимизируя весь путь движения к цели, и/или когда в ответ на увеличение сложности задачи кривая роста производительности системы резко уходит вверх, минимизируя по времени прохождение только этого участка задачи. Но изучение этих особенностей поведения сложной вычислительной системы есть дело ближайшего будущего, к чему я и призываю всех Вас.
     В заключение нужно сказать, что логика естествознания — это личное достижение автора проекта, а все остальные компоненты CВC (функциональная система программирования Дж. Маккарти, однородная вычислительная среда Э. Евреинова, вычислительный процесс естественного и массового параллелизма А. Степанова) — «ниспосланы свыше» и без особого труда укладываются на базе этой логики в целое под названием самоуправляемая вычислительная система.



ЛИТЕРАТУРА