Назад Оглавление Вперед
На головную страницу М.М.Горбунов-Посадов
 
РАСШИРЯЕМЫЕ ПРОГРАММЫ
 

 Г л а в а  4
МНОГОВАРИАНТНОСТЬ
 
4.3. Проект OLYMPUS
 

 

4.3. Проект OLYMPUS

      4.3.1. Каркасный подход к обеспечению многовариантности. В крупномасштабном вычислительном эксперименте число изменяемых факторов, подобных материалу из рассмотренного в предыдущем разделе примера, может оказаться довольно большим. Каждому из таких факторов в программе соответствует вариантное гнездо. С появлением нескольких вариантных гнезд постоянная часть расчетной программы превращается в каркас (см. разд. 3.6), заполняемый той или иной комбинацией сменных модулей в зависимости от требующегося сочетания значений изменяемых факторов.
      В этом случае создаваемый программный фонд, в свою очередь, превращается в пакет программ, основанный на каркасном подходе. Многолетняя практика показала, что такой пакет является весьма продуктивным конфигурационным ориентиром для многовариантных задач, и в частности для задач вычислительного эксперимента.

      4.3.2. Соглашения проекта OLYMPUS. Одной из первых крупных программных разработок, уделивших серьезное внимание проблемам многовариантности и решивших эти проблемы с помощью каркасного подхода, явился проект OLYMPUS [Робертс, 1974]. Авторам этого проекта удалось вычленить каркас, охватывающий широкий класс задач математической физики.
      Архитектура проекта OLYMPUS служит прекрасной иллюстрацией продуктивности применения каркасного подхода к задачам вычислительного эксперимента (см. разд. 4.1). Соглашениями проекта для каждого из выделенных вариантных гнезд каркаса определены его функциональное предназначение и интерфейс с окружением; гнездам присвоены имена. Для любого из гнезд пишется, вообще говоря, несколько различных сменных модулей, из которых в любом конкретном расчете будет участвовать лишь один.
      В результате очередной цикл вычислительного эксперимента сводится, с точки зрения программной реализации, к назначению другого сменного модуля (модулей), который вытесняет из вариантного гнезда (гнезд) своего предшественника, назначенного на предыдущем цикле. Если принятое на данном цикле решение реализуется впервые, сменный модуль пишется заново и помещается (безболезненно!) в программный фонд. Если же требуется применить уже принимавшееся ранее решение, то можно воспользоваться модулем, написанным для него в свое время и предусмотрительно сохраненным в программном фонде.

      4.3.3. Обмен программными материалами. Однако простота переключения с варианта на вариант и безболезненность развития программного фонда были не единственным, а возможно, и не самым важным результатом разработки соглашений проекта OLYMPUS. Эти соглашения позволили также сделать серьезный шаг в направлении многократного использования (см. разд. 2.4.3) программных материалов.
      Чем обычно обменивались программисты до появления проекта OLYMPUS? Наиболее характерным объектом обмена был законченный программный продукт, например выполняемая программа, обслуживающая конкретную практическую задачу или класс задач. Часто передавались библиотеки, составленные из подпрограмм, решающих типовые алгоритмические подзадачи и имеющих относительно широкую сферу применимости.
      Соглашения OLYMPUS открыли совершенно новую возможность: они позволили обмениваться узко специализированными фрагментами программ, конечно, при условии, что и производитель, и потребитель используют один и тот же каркас. Так, например, объектом обмена стали служить сменные модули, обеспечивающие ввод и предварительную обработку исходных данных, расчет уравнения энергии, и вообще реализующие любую часть алгоритма, предусмотренную вариантными гнездами каркаса.
      Разумеется, для обеспечения подобного обмена прилагаются и дополнительные усилия. Все программы, работающие в системе соглашений OLYMPUS, пишутся на диалекте Фортрана, воспринимаемом большинством существующих трансляторов. Кроме того, немобильные части программ, зависящие от особенностей конкретной операционной среды, фиксированным образом выделяются и документируются. Но все же главная опора интенсивного обмена программными материалами — применение всеми участниками единого каркаса расчетной программы.

      4.3.4. Опыт применения. Проект OLYMPUS получил широкое международное признание. Журнал Computer Physics Communication регулярно публиковал алгоритмы, разработанные в рамках этого проекта, которые использовались многими организациями не только за рубежом, но и в нашей стране.
      Для того чтобы в полной мере почувствовать преимущества соглашений OLYMPUS, требуются развитые средства системной поддержки. Однако авторы проекта применили для сборки конкретных конфигураций программы имевшийся в их распоряжении общецелевой текстовый процессор, способный выполнять множество разнообразных преобразований текста, но не самым удачным образом решавший специфические задачи сборки. В результате размер задания на сборку неоправданно увеличивался, нередко достигая нескольких сотен строк.
      В то же время имеется опыт реализации специализированных средств поддержки многовариантных программ [Горбунов-Посадов, 1983]. Благодаря таким средствам удается, в частности, достичь высоких показателей надежности и эффективности при эксплуатации программ, созданных в рамках соглашений OLYMPUS.

      Теперь, убедившись на примере проекта OLYMPUS в продуктивности каркасного подхода к построению многовариантных программ, перейдем к более детальному изучению технологических особенностей этого подхода.

Далее

Рейтинг@Mail.ru