М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 32
Текст из файла (страница 32)
Это может потребоваться для более детальногоисследования отдельных подобластей пространства параметров, дляпересчета значений некоторых функционалов и т.д. Отсев ненужной части успешных испытанийвыполняет программа оболочки FILTER.Если конструктору требуется провести дополнительную обработкурезультатов испытаний, которая не предусмотрена сервисом пакета, то ондолжен создать соответствующую программу и поместить ее в гнездо USER.Обращение к этой программе производится после выполнения всехпринадлежащих ядру пакета программ обработки.Если конструктор проводит расчет и обработку результатов раздельно, тоон должен позаботиться о подключении к задаче устройства внешнейпамяти, поскольку пакет запоминает результаты испытаний в виде файла навнешней памяти. Номера каналов записи задаются в форме параметроврасчета.
Имеется возможность разбить расчет на несколько независимыхзапусков с последующим объединением результатов.При проведении обработки результатов пакет не использует программыинициализации (INITAL), расчета (MODELE), завершения расчета (POST),проверки ограничений (SIMPLE и COMPLX), но использует программупреобразования координат (REFLEX).Конкретные интерфейсные соглашения для отдельных гнезд каркасаздесь рассматриваться не будут; они подробно описаны в работе [130].Отметим только, что все программы ядра пакета КРИТ написаны на языкеФортран-4, и поэтому лучший язык для программ, заполняющих гнездаоболочки, - тоже Фортран-4. Тем не менее программы оболочки могут бытьнаписаны на любом языке, но тогда, вероятно, потребуется создать адаптер,связывающий соответствующие языковые среды.6.1.4.
Особенности реализации. Пакет КРИТ рассчитан на решениемногокритериальных оптимизационных задач, удовлетворяющих следующимограничениям:1) количество параметров не превосходит 30;2) количество вычисляемых функционалов не превосходит 30;3) отношение N-мерного объема множества допустимых решений,расположенного внутри заданного N-мерного параллелепипеда впространстве параметров, к N-мерному объему этого параллелепипеда недолжно быть чрезмерно малым.Ограничения 1 и 2 связаны с реализацией и могут быть легко сняты.Ограничение 3 может быть проверено в ходерасчета; оно исключает задачи с очень большим количествомфункциональных ограничений.Как уже упоминалось, программы ядра пакета написаны на языкеФортран-4.
Особое внимание уделялось мобильности ядра, благодаря чему внастоящее время пакет широко эксплуатируется на ЭВМ ЕС, БЭСМ-6, СМ-4,VAX, IBM PC и др. Суммарный объем программ ядра пакета - около 5000операторов Фортрана-4.Пакет передан в десятки организаций, где с его помощью решаютсявесьма разнообразные оптимизационные задачи.6.2. Пакет ОКСВ настоящее время данные о взаимодействии излучения с веществом(сечения взаимодействия), необходимые для расчета полей нейтронов игамма-квантов в реакторах .и радиационной защите, используются восновном в виде групповых макроскопических констант. Этимакроконстанты определяются специальными программами константногообеспечения для вещества каждой зоны реактора или защиты (с учетомсостава, температуры и агрегатного состояния) по данным заранеесоставленной библиотеки микроконстант взаимодействия излучения накаждом энергетическом интервале (группе) с каждым из изотопов.Получили распространение несколько систем нейтронных и гаммаконстант разного происхождения, ориентированных на нужды расчетареакторов различных спектральных классов и радиационной защиты.Пакет ОКС [132,133] - Объединенная Константная Система предназначен для объединения наиболее распространенных константныхпрограмм на базе проблемно-ориентированного языка.
В языке используетсяустоявшаяся физическая терминология; задание на нем содержит тольконеобходимую для расчета констант информацию и не зависит от конкретнойпрограммы, по которой будет вестись расчет констант. Пакет обеспечиваетунифицированный интерфейс между программами расчета полей излученияи различными константными программами.Функциональное наполнение пакета ОКС включает, в частности,константные системы APMAKO-2F [134], APMAKO-G [135], базирующиесяна микроданных библиотеки БНАБ-78, 49-групповую систему констант сбиблиотекой БНД-49 [136], программный комплекс TERMAC [137] длярасчетагрупповых констант нейтронов в области термализации с энергией 0-5 ЭВ, атакже программы ARVES [138] и JAST.6.2.1. Язык заданий. Задание для пакета ОКС представляет собойпоследовательность операторов.
По своему функциональному назначениюоператоры делятся на исполняемые и неисполняемые. Исполняемый операторзадает некоторое действие, например, вызов константной программы илипреобразование форматов. Неисполняемый оператор - это описание объектов,используемых при работе исполняемого оператора. Порядок выполненияоператоров определяется порядком их следования в задании. Следуетотметить, что исполняемый оператор может работать только снеисполняемыми операторами, расположенными в задании непосредственнопосле него до следующего исполняемого оператора; остальные объекты длянего недоступны. Оператор имеет вид<операция> : <операнды> ;В поле операции задается служебное слово, являющееся названием операции.Служебное слово - последовательность букв произвольной длины;различаются служебные слова по первым шести символам.
В поле операндовзадается список параметров операции (они называются также параметрамиоператора). Параметры в списке разделяются запятыми. В качестве параметраможет употребляться идентификатор или константа. Допускается умолчаниепараметра. В этом случае соответствующая позиция в поле операндовостается пустой. Запятая или несколько подряд идущих запятых,возникающих в результате умолчания параметров и стоящих перед символомточка с запятой (;), могут быть опущены.Константы, употребляемые в языке заданий пакета ОКС, записываютсяв соответствии с синтаксисом Фортрана. Идентификатор языка ОКС - этоначинающаяся с буквы последовательность (не более чем из шестисимволов), в которую могут входить буквы, цифры и знак минус (-).6.2.2.
Основные операторы. В данном разделе мы рассматриваемоператоры, наиболее часто используемые в заданиях для пакета ОКС.Следует отметить, что по мере эксплуатации пакета набор допустимыхоператоров постоянно пополняется.Оператор ZONE - неисполняемый оператор. Он описывает однуфизическую зону (вещество), характеризующуюся однородным сфизической точки зрения составом. Для того,чтобы учесть такие случаи, когда изотопы в зоне пространственно разделеныи имеют разные температуры, имеется возможность задавать температуру длякаждого изотопа отдельно.Оператор ZONE имеет видZONE : <номер зоны>, <общая температура зоны>{, <имя изотопа>, <ядерная концентрация>,[<температура изотопа>]} ... ;(Напомним, что в такой нотации квадратные скобки означаютнеобязательность наличия их содержимого.
Фигурные скобки с последующиммноготочием означают повторение их содержимого произвольное число раз.)Если температура изотопа не задана, то она по умолчанию считается равнойобщей температуре зоны. Температура и ядерная концентрация вещественные числа. Имя изотопа - идентификатор.Оператор CONST вычисляет константы по одной из константныхпрограмм, входящих в функциональное наполнение пакета ОКС.Полученному в результате массиву констант присваивается имя, котороезадается параметром оператора.Оператор CONST имеет видCONST : <имя массива>, <имя программы>, <режим> ;Имя массива - идентификатор, который будет использоваться при ссылке наполученный массив макроконстант.
Имя программы - идентификатор,определяющий версию константной системы, которую следует применитьдля расчета макроконстант требуемого типа. Режим определяет выборварианта работы константной программы и задается списком подпараметров,длина которого, а также смысл каждого из элементов зависят от конкретнойконстантной программы.
Допустимые значения параметров оператораCONST для тех константных систем, которые включены в пакет ОКС, содержатся в инструкции по эксплуатации пакета.Оператор DATA - неисполняемый оператор. Он применяет ся в техслучаях, когда параметр исполняемого оператора представляет собой массивконстант.Оператор DATA имеет видDATA : <имя массива> {, <константа>} ...
;Имя массива - идентификатор.164Пример.CONST: G, GAMMA, 1, NGCOM;ZONE: 1, 300., FE, .0847;ZONE: 2, 300., Н, .067, 0,, .0335;DATA: NGCOM, 0,0,0,0,0,0,1,1,2,2,2,3,3,0,0;Этот фрагмент задания требует рассчитать γ-константы с помощьюпрограммы GAMMA (вариант программы APMAKO-G). Четвертый параметроператора CONST - NGCOM - является именем массива, содержащегоописание свертки рассчитанных макроконстант по группам энергий уквантов.
Этот массив задается оператором DATA.Оператор FORM предназначен для перевода массива констант из одногоформата в другой. Под форматом в данном случае понимается структурамассива констант, т.е. порядок следования входящих в него значенийфизических величин. Перевод массива из одного формата в другой означаетизменение порядка следования значений величин и, может быть,перевычисление некоторых из значений.Оператор FORM имеет видFORM: <имя массива>, <формат>, <имя массива> ;Все три параметра - идентификаторы. Первый из них -имя массива,который вырабатывается оператором FORM. Второй - имя формата, вкоторый переводится массив (исходный формат задавать не требуется, таккак он является атрибутом исходного массива). Третий параметр - имяисходного массива.Преобразование форматов выполняется специальными программами преобразователями.Оператор ТАРЕ - неисполняемый оператор.
Он предназначен дляуказания места во внешней памяти, куда должен быть помещен массивконстант с данным именем. Этот массив вырабатывается одним изисполняемых операторов (CONST или FORM). Запись массива производитсяво время исполнения этих операторов.Оператор ТАРЕ имеет видТАРЕ: <имя массива>, <адрес>, <начало>, <длина>;Здесь <адрес> - либо номер канала (в этом случае последние два параметра неимеют смысла), либо математический номер внешнего устройства; <начало> номер зоны, начиная с которой будет размещен массив констант, а <длина> количество зон, отведенных на устройстве дляхранения массива. Все три рассмотренных параметра задаются в виде целыхдесятичных констант.Оператор END - это оператор конца задания.6.2.3.
Общая схема функционирования. Пакет ОКС предназначен дляпроведения расчетов групповых макроконстант на машине БЭСМ-6 в средеоперационной системы Диспак и мониторной системы Дубна.Задание для пакета помещается вместе с другими начальными даннымик задаче расчета полей излучения, для решения которой необходимымакроконстанты, получаемые в соответствии с этим заданием. Запуск пакетаОКС происходит во время выполнения программы расчета полей излученияи осуществляется с помощью операторов{ CALL / CALL LOADGO } ОКС (<список параметров>)В качестве параметров указываются начала и размеры областей оперативнойпамяти, в которых пакет может размещать исходный текст и внутреннеепредставление задания.К ОКС можно обратиться и отдельным запуском с помощьюуправляющего предложения *MA1N OKC1.На ресурсах внешней памяти пакета ОКС постоянно находитсяследующая информация:- библиотека паспортов операторов; паспорт оператора помимоинформации, описывающей этот оператор, содержит ссылку на процедуруадаптер; последняя обеспечивает интерфейс между пакетом ОКС исоответствующей константной системой;- библиотека объектных модулей процедур-адаптеров и других процедурсистемы ОКС;- библиотека объектных модулей константных программ;- библиотеки микроконстант.Основные программные компоненты системного наполнения пакетавыполняют следующие функции.Анализатор вводит исходный текст задания и с помощью процедурысинтаксического разбора переводит его на внутренний язык.Интерпретатор, просматривая внутреннее представление задания,последовательно реализует с помощью процедур-адаптеров всеисполняемые операторы.Вызов константных программ выполняется с помощью специальноразработанной процедуры LOADM.