СПИСОК ЛИТЕРАТУРЫ
1. Колтунов М.А., Васильев Ю.Н., Черных В.А. Упругость и прочность цилиндрических тел. — М.: Высшая школа, 1975. — 528 с.
2. Заруцкий В.А. Равновесие ребристых цилиндрических оболочек // Прикладная механика. — 1965. — Том 1, вып. 11. — С. 28—35.
3. Оганесян Л.А. Численный расчет плит // Решение инженерных задач на электронно-вычислительных машинах: Матер. к конф. по механизации и автоматизации инж. и управл. работ.
— Ленинград, июнь 1963 г. — Л., 1963. — С. 84—97.
4. Кармишин А.В., Мяченков В.И., Репин А.А. Вариационный метод получения конечно-разностных уравнений ортотроп-ных пластин // Некоторые вопросы прочности конструкций: Сб. статей. — Б. м., 1967. — Вып. 3. — С. 63—67.
5. Вайнберг Д.В., Синявский А.Л. Дискретный анализ в теории пластин и оболочек // Труды VI Всес. конф. по теории оболочек и пластинок, 1966 г. — М., 1966. — С. 209—214.
6. Гриффин Д.С., Келлог Р.Б. Численное решение осесимметричных и плоских задач упругости // Механика: Сб. переводов. — М., 1968. — № 2 (108). — С. 111—125.
7. Барашков В.Н., Люкшин Б.А. Алгоритм реализации трехмерной задачи теории упругости и пластичности // Моделирова-
ние в механике: Сб. науч. тр. / РАН. Сиб. отд-ние. Ин-т теор. и прикл. мех. - Новосибирск, 1993. - Т. 7 (24), № 4. - С. 10-25.
8. Нох В.Ф. СЭЛ - совместный эйлерово-лагранжев метод для расчета нестационарных двумерных задач // Вычислительные методы в гидродинамике. - М., 1967. - С. 128-184.
9. Самарский А.А. Теория разностных схем. - М.: Наука, 1977. -656 с.
10. Frankel S.P. Convergence rate of iterative treatments of partial differential equations // Math. Tables Aids Comput. - 1950. - Vol. 4.
- P. 65-75.
11. Young D.M. Iterative methods for solving partial difference equations of elliptic type // Trans. Amer. Math. Soc. - 1954. - Vol. 76.
- P. 92-111.
12. Varga R.S. Matrix iterative analysis. Prentice Hall, Englewood Cliffs.
- New Jersy: S. n., 1962.
13. Бабушка И., Витасек Э., Прагер М. Численные процессы решения дифференциальных уравнений. - М.: Мир, 1969. -368 с.
14. Деруга А.П., Ларионов А.А. Об одном способе определения оптимального коэффициента сверхрелаксации // Пространственные конструкции в Красноярском крае: Сб. статей. -Красноярск, 1978. - Вып. 11. - С. 175-178.
УДК 529.58
КВАНТОДЕТЕРМИНИРОВАННАЯ ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
Е.Г. Брындин
ИЦ "ЕСТЕСТВОИНФОРМАТИКА", г. Новосибирск E-mail: [email protected]
Рассматривается квантодетерминированная информационная технология, решающая проблему непрерывной автоматизированной обработки больших объемов информации без задержки получения результатов из-за обменов.
Введение
Вести непрерывную обработку данных с помощью больших программ без задержки получения результата из-за обменов можно, если упреждающе замещать использованные модули программы в сегментах оперативной памяти последующими модулями, находящимися во внешней памяти. Этого можно добиться с помощью разработанного формализма операторных схем, позволяющего решить проблему построения программ с детерминированными обращениями к их модулям, и квантодетерминированной ЭВМ с многоканальным параллельным обменом и упреждающим замещением модулей. Описание квантодетерминированной технологии включает определение модульных канонически связанных программ, квантодетерминированных вычислительных процессов с упреждающим методом управления памятью, принципов организации, а также рассмотрение функциональной структуры квантодетерминированной ЭВМ,
непрерывно обрабатывающей модульные канонически связанные программы, и ее функционирование, примеров модульных канонически связанных программ различных алгоритмов.
1. Модульные канонически связанные программы
Рассмотрим программы, состоящие из модулей с детерминированными обращениями к модулям, так называемые модульные канонически связанные программы. Модули — это форматированные структуры программы, содержащие обрабатываемую и управляющую информацию. Совокупность модулей, связанных по данным, алгоритмически и по поиску назовем модульно-связанной программой.
Пусть задана модульно-связанная программа Р
р=т, ;=1,...,п,
где Р1; — операционный (исполнительный) модуль программы, либо данных, либо ввода-вывода.
Р1;= {VI,, ОЦ, Щ, Р, SPPj, БР1},
где Ш) — управляющая информация, ОБ, — общие данные, ЬБ, — локальные данные, Р, — программа обработки, SPPj — связь по поиску, SPIj — связь по исполнению.
Связи по данным (информационные) задают отношения модулей по перемещению значений общих данных. Перемещения значений общих данных определяются указателями мест в модулях и моментами перемещения. Моменты показывают начало перемещения значений, а указатели мест в модулях показывают, откуда и куда перемещаются значения общих данных. Указатели и моменты перемещения могут быть статические и динамические. Информационные связи модулей программы указывают маршрут перемещения значений общих данных по их используемым модулям. Связи поиска модулей определяют направление их обработки. Они могут быть статические и динамические. Динамические связи задаются условиями, зависящими от свойств алгоритмов, значений данных, влияния данных на исполнение алгоритма.
Программы поиска SPPj обрабатывают значения переменных, которые определяют связность модулей по алгоритмической обработке. Связи поиска модулей определяют связность каждого модуля с последующими модулями. Эти связи используются при поиске последующих по обработке модулей для упреждающего перемещения их между устройствами внешней и оперативной памяти. Программы связи по передаче исполнения SPIj, определяющие алгоритмические отношения модулей программы, задаются либо как статические, либо альтернативой, зависящей от порядка использования модуля, либо условием, зависящим от значений данных. Эти связи определяют вход в следующий по обработке модуль.
Управляющая информация Ш; определяет тип модуля, области локальных и общих данных, адреса программ динамических связей SPPj и SPIj, константы статических связей SPPj и SPIj. Так же она определяет асинхронное, параллельное, бесконфликтное обращение к модулю процессов обработки, перемещения значений общих данных, анализа связей между модулями, перемещения модулей в памяти и процессов ввода-вывода, соответственно их приоритетам активности.
Определение 1. Последовательность модулей PI1...PIj...PIk, связанных через программы поиска SPP1...SPPj...SPPk назовем модульным исполнением PPI программы P, если последовательность программ обработки P1...Pj...Pk определяет результат программы P по ее данным.
Пусть программа P имеет множество {PPI} модульных исполнений, где /=1...т.
Определение 2. Структура связей по поиску модулей программы Р детерминирована, если по ее данным можно выполнить последовательности {(SPP1...SPPj...SPPky} программ поиска модулей для всех модульных исполнений {PPI} программы P.
Определение 3. Модульно-связанная программа Р с определенным размером всех модулей называется модульной канонически связанной, если структура связей по поиску ее модулей детерминирована.
В монографии [1] введен формализм операторных схем с естественной интерпретацией для доказательства разрешимости проблемы построения модульной канонически связанной программы для любого класса равносильных алгоритмов.
2. Квантодетерминированные вычислительные процессы
Вычислительные процессы с упреждающим методом управления памятью, обрабатывающие модульные канонически связанные программы, называются квантодетерминированными. Эти процессы организуются и реализуются по пяти основным принципам.
Принцип 1. Упреждающие акты анализа связности модулей модульной канонически связанной программы.
Принцип 2. Упреждающие акты поиска модулей на неоднородной памяти модульной канонически связанной программы.
Принцип 3. Потоковое упреждающее перемещение значений общих данных между модулями модульной канонически связанной программы на оперативных сегментах памяти.
Принцип 4. Модули исполнения модульной канонически связанной программы обрабатываются последовательно непрерывно, обработка каждого модуля параллельная.
Принцип 5. Упреждающий метод управления памятью:
— детерминированный метод динамического распределения сегментов оперативной памяти,
— упреждающий параллельный метод замещения модулей программы на сегментах оперативной памяти.
Квантодетерминированный вычислительный процесс с упреждающим методом управления памятью непрерывно обрабатывает последовательность модулей {PI} исполнения модульной канонически связанной программы Р.
3. Квантодетерминированные ЭВМ
ЭВМ с квантодетерминированными вычислительными процессами будем называть квантодетерминированными. Квантодетерминированные ЭВМ реализуют параллельно-асинхронное взаимодействие актов использования ресурсов ЭВМ под управлением модульных канонически связанных программ.
Квантодетерминированные ЭВМ (рис. 1) содержат: процессор управления — 8, процессоры обработки — 5, оперативные сегменты для общих дан-
ных - 1 и модулей программы - 2, аппаратуру коммутации оперативных сегментов с устройствами -6, блок прерываний - 15, устройства внешней памяти - 17, ввода - 11 и вывода - 12, процессор анализа связей между модулями - 7, процессор перемещения модулей программы на неоднородной памяти - 13, счетчик использования сегментов оперативной памяти модулями - 14, процессор перемещения значений общих данных - 4 по модулям, находящихся на сегментах оперативной памяти, аппаратуру контроля перемещения модулей - 16, шины коммутации - 3, 9, функциональную шину - 10. Квантодетерминированная ЭВМ содержит новые устройства: процессор анализа связей между модулями программы, счетчики использования сегментов оперативной памяти модулями, процессор перемещения модулей по неоднородной памяти, процессор перемещения общих данных модулей.
Процессор анализа проводит упреждающий анализ связей модулей модульных канонически связанных программ. Процессор анализа реализует процесс вычисления номера внешнего модуля перемещения на оперативную память по программе связи 8РР! модуля Р1, процесс корректировки значения счетчика использования сегментов оперативной памяти модулями программы, процесс запуска процессора перемещения модулей программы с внешней памяти на сегменты оперативной памяти.
Процессор перемещения модулей реализует процессы перемещения модулей между устройствами внешней и оперативной памяти, обеспечивая наличие необходимых модулей на оперативной памяти по заявке процессора анализа связей. Процессор перемещения модулей реализует: процесс коммутации сегментов оперативной памяти с сегментами накопителя, процессы передачи и контроля информации модулей программы, процессы
прерываний по передаче информации.
Процессор перемещения общих данных реализует перемещение общих данных между модулями. Общие переменные имеют последовательности адресов перемещения из текущих значений. По последовательности адресов перемещения организуются потоки значений общих данных с доставкой их на место использования в модулях на оперативных сегментах. Обращение к модулям происходит по их номерам. Для модулей внешней памяти значения общих переменных переносятся в резидент общих данных при замещении модуля, содержащего общие данные.
Активизация устройств квантодетерминрован-ной ЭВМ определяется модульной канонически связанной программой пользователя. Квантодетерминированный вычислительный процесс начинается с загрузки начальных модулей программы с внешней памяти на сегменты оперативной памяти с перемещением общих данных и анализом связей между модулями. При загрузке модулей устанавливаются значения на счетчиках использования оперативных сегментов модулями. Для модулей данных, ввода, вывода значение счетчика равно единице. При загрузке модуля на сегмент оперативной памяти в управляющую информацию предшествующего по поиску модуля заносится номер оперативного сегмента. Затем процессор управления запускает процессоры обработки на обработку первого модуля. После обработки каждого операционного модуля из значения соответствующего счетчика использования памяти вычитается единица и проверяется его значение на нуль. Для модулей данных значение счетчика обнуляется из операционного модуля по команде обнулить счетчик. Когда значение счетчика становится равным нулю и определен указатель на внешний модуль, тогда инициируется процессор перемещения модулей
Процессор перемещения значений данных (4)
Процессоры-вычислители (5)
Аппаратура комму- ■ никации сегментов л с устройством (6)
Устройство ввода(11)
Устройство выода (12)
Шина коммутации (9)
Процессор перемещения модулей(13)
Функциональная шина (10)
Аппаратура контроля перемещения модулей (16)
Счетчики использования оперативных сегментов модулями (14)
Устройства внешней памяти (17)
Блок (15) прерываний
Рис. 1. Структура квантодетерминированной ЭВМ
для замещения использованного модуля на оперативной памяти внешним модулем по указателю. После замещения указатель на внешний модуль обнуляется. Если в модуль в оперативной памяти не было записи, то он не переносится на внешнюю память. Процессор перемещения общих данных по адресным последовательностям переносит накопившиеся значения общих данных с резидента общих данных в заместивший модуль. Процессор анализа корректирует счетчик использования оперативной памяти заместившим модулем и определяет по программе связи заместившего модуля указатель на внешний модуль. Процессоры обработки, перемещения общих данных, анализа связей и перемещения модулей совмещают работу над одним модулем за разные циклы обращений к оперативному сегменту. Непрерывное присутствие текущей информации в оперативной памяти достигается при определенных соотношениях размеров модулей, технических характеристик устройств памяти и процессоров, путем баланса скорости упреждающего обработку многоканального параллельного притока информации с внешней памяти в оперативную со скоростью обработки информации в оперативной памяти с учетом бесконфликтной работы устройств ЭВМ.
4. Квантодетерминированное программирование
Технику квантодетерминированного программирования продемонстрируем на нескольких примерах.
Сортировка данных. Пусть имеются данные а1, ... , ат. Эти данные нужно пересортировать в неубывающей последовательности. Разместим последовательно исходные данные в к модулях. Программа сортировки перебором сравнений исходных данных следующая:
г:= 0;/= 0; ^:= 1; ^= 1;
цикл пока ^ = к цикл пока]^е цикл пока ¡¿¿к
цикл пока &е установить < (а,ц аа+); г:= г+1 конец
сохранить (¿2); ¿¡:= Ь + 1; г:= 0 конец]:=] + 1; ¿¡:= ^;
г:=] конец сохранить (?1); ^: = ^+1; ?2: = А; г: = 0;
/= 0;
г: = ] конец сохранить (?1); К t+1; ; г:= 0; ] :+0 конец
^, ^ - счетчики модулей.
Оператор установить < (а,м, ай,Н1) размещает значения указанной пары согласно отношению <. По адресу аа^ размещается меньшее значение, а по адресу а(2,г+1 большее значение.
Оператор сохранить (^) отказывается от модуля с номером ^ с сохранением его.
Структура модульной канонически связной программы после компиляции, определяющая ис-
пользование операционного модуля и модулей данных, изображена на рис. 2.
Структура связи модуля Р1+ с остальными модулями
Р11 Р11 РЪ
Рис. 2. Структура программы сортировки
Вывод модулей данных назначается в операционном модуле. Программа сортировки размещается в первом модуле, в остальных модулях размещаются данные. Модули модульной канонически связной программы связаны по номерам, кроме модуля с номером к + 1. Структура связи модуля к +1 с остальными модулями с возвратами. Она определяется программой SPPk+l: если ^ = 1 то Р1 если ^ = 2 то Р1... если ^ = (к - 2) то Р1.
Номера связи модуля и адрес программы связи модуля к+1 хранятся в управляющей информации.
На один час сортировки на суперЭВМ с обменами тратится 30 ч обменов. Результаты пользователь на суперЭВМ получает через 31 ч. На квантодетерминированной ЭВМ пользователь получает результат через один час.
Обработка банков данных. Пусть в банке данных имеются анкеты пяти миллиардов людей, в которых сообщены следующие данные: вес, рост, возраст, национальность, пол, социальное положение, специальность, должность, адрес и т.д. Нужно из пяти миллиардов людей выбрать всех, кто отвечает по своим анкетным данным эталону. Анкетные данные последовательно размещены в к модулях. В каждом модуле размещается q анкет. Программа выбора анкет по эталону следующая:
г:= 0; ; ^:= РОБ ]:= 0; ^:= 1; п:= 0; ^:= к + 1; цикл пока &к М: цикл пока сравнить (эталон, ан-
кета (^, г)) если да то записать (¡и, /2,г); ]:= ] +1 если ] > % то сохранить (¿ь ^ ); К.= ^ + 1; п := п +1 если п = 2 то ^:= 1у2 иначе ^:= ^ + 1; у:= 0 на М
иначе г:=г+1 конец освободить (¡2); ¿2:=2+1 конец все
^, ?2, ^ - счетчики модулей.
Подпрограмма сравнить (эталон, анкета (Ъ,{) сравнивает анкету г из модуля ^ с эталоном.
Подпрограмма записать (^ /у) записывает анкету г из модуля ^ в модуль ^ по местуу.
Структура модульной канонически связной программы после компиляции, определяющая использование первого операционного модуля, к модулей анкет и с к+2 по к+р модулей эталонов изображена на рис. 3.
Модули исходных анкет
Модули эталонных анкет Рис. 3. Структура программы обработки банков данных
Программа обработки хранится в первом модуле. Далее идет последовательность модулей с анкетами. В модулях Р/2,...Р/к+1 хранятся исходные анкеты. В модулях Р1к+2,...Р1к+р хранятся эталонные анкеты. Модули связаны по номерам. Номера модулей хранятся в управляющей информации. В резидентном модуле общих данных накапливаются текущие исходные анкеты, совпадающие с эталоном.
Программа синтаксического разбора выражений. Нужно провести синтаксический контроль правильности записи выражения, находящегося в к модулях вводных данных, если понятие выражения определяется следующими синтаксическими правилами:
ВЫРАЖЕНИЕ::=ТЕРМ I ТЕРМ + ВЫРАЖЕНИЕ ТЕРМ::=МНОЖИТЕЛЬ I МНОЖИТЕЛЬ * ТЕРМ МНОЖИТЕЛЬ::=ИМЯ I ЧИСЛО I ВСКОБКАХ ИМЯ::=БУКВА I ИМЯБУКВА I ИМЯЦИФРА ЧИСЛО::=ЦИФРА I ЦИФРАЧИСЛО ВСКОБКАХ::= (ВЫРАЖЕНИЕ)
Программа контроля синтаксической правильности выражения составляется из подпрограмм: ВСКОБКАХ, ЧИСЛО, ИМЯ, МНОЖИТЕЛЬ, ТЕРМ, ВЫРАЖЕНИЕ.
Эти подпрограммы определяют правильность выражения соответствующей его части. Синтаксически правильные понятия выделяются из текста последовательно. Подпрограммы дают результат "да", если текст состоит из синтаксически правильных понятий. Анализ ведется до тех пор, когда счетчик модулей будет удовлетворять условию =к+1.
При анализе используется модуль общих данных.
Синтаксическому анализу легко поддаются тексты за один проход. Структура модульной кано-
СПИСОК ЛИТЕРАТУРЫ
1. Брындин Е.Г Квантодетерминированная информационная
нически связанной программы после компиляции, определяющая использование первого операционного модуля и остальных текстовых модулей, изображена на рис. 4.
Рис. 4. Структура программы синтаксического разбора выражений
Программа анализа располагается в первом модуле. Далее располагаются модули с входным текстом. Модули в последовательности связаны линейнообразно по номерам. Номера модулей хранятся в управляющей информации.
Заключение
Квантодетерминированная информационная технология универсального решения больших задач на квантодетерминированной ЭВМ экономически выгодна в сравнении с суперЭВМ с большой оперативной памятью. Квантодетерминированная ЭВМ имеет всего 220 слов по 64 бита оперативной памяти.
Производительность квантодетерминированной ЭВМ выше, чем суперЭВМ с большой оперативной памятью, из-за сложной коммутации у них процессоров обработки с большим количеством сегментов оперативной памяти. СуперЭВМ имеет время задержки получения результата из-за обменов. Время обменов равно Т = К-Тл,, где К - количество обменов, а Тоб - время обмена. Например, при Тл, = 1 мс и К = 864 млн, время задержки результатов из-за обменов будет равно 10 сут. Выигрыш по производительности был подтвержден на интерпретирующем комплексе при обработке программ с большим количеством обменов.
Теория квантодетерминированной информационной технологии позволяет приступить к созданию математического обеспечения и разрабатывать методы решения больших задач. Приступить к разработке проектной документации квантодетерминированных ЭВМ нового поколения для ее реализации, начать разрабатывать языки квантодетерминированного программирования высокого уровня, начать разрабатывать новые системы автоматизации для обработки больших объемов информации, развивать новое направление вычислительной техники, программирования и алгоритмов.
технология. - Новосибирск: Наука (ПК "Издатель") СО РАН, 1992.