Научная статья на тему 'Моделирование систем с существенными нелинейностями на основе параллельных вычислений с асинхронным обменом'

Моделирование систем с существенными нелинейностями на основе параллельных вычислений с асинхронным обменом Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
132
38
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОДЕЛИРОВАНИЕ / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / EDA-СИСТЕМЫ / MODELING / PARALLEL CALCULATIONS / EDA SYSTEMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Богданов Константин Валерьевич, Ловчиков Анатолий Николаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Systems modelling with essential nonlinear elementson the basis of parallel calculations with the asynchronous exchange

The article offers the anew approach to modeling of the systems containing some elements which functioning is connected witha sharp change of parameters and at the mathematical description it leads to essential increase of derivative variables phase that at traditional modeling conducts to the failure of the computing process.

Текст научной работы на тему «Моделирование систем с существенными нелинейностями на основе параллельных вычислений с асинхронным обменом»

9. Грищенко, А. И. Экология. Нефть и газ / А. И. Гри- 10. Басниев, К. С. Подземная гидромеханика / К. С. Бас-

щенко, Г. С. Акопова, В. М. Максимов; ВНИИЭГазпром. ниев, И. Н. Кочина, В. М. Максимов. М.: Недра, 1993.

М., 1995.

N. V. Molokova

COMPUTATIONAL INVESTIGATION AND THE PROCESS OF THE POROUS MEDIUM CONTAMINATION ANALYSIS

It is covered a two-dimensional model of filtering, taking into account the movement ofair and hydrocarbon pollutants into the porous soil. The model includes a system of partial differential equations with additional conditions. Among the differential equations balance equation element in a porous medium - inseparability equation, and differential equations of motion are included. For circuit system the equations of the considered pollutant state and environment. The are entered initial and boundary conditions correspond to the filtration process, beginning with the ground surface and initial stage of oil products ladling. A comparative analysis of the results of mathematical modeling with experiments is carries out.

Keywords: two-dimensional model of filtering, geofiltration, mathematical modeling, porous medium, hydrocarbon pollutants

УДК519.688

К. В. Богданов, А. Н. Ловчиков

МОДЕЛИРОВАНИЕ СИСТЕМ С СУЩЕСТВЕННЫМИ НЕЛИНЕЙНОСТЯМИ НА ОСНОВЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ С АСИНХРОННЫМ ОБМЕНОМ

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

Ключевые слова: моделирование, параллельные вычисления, EDA-системы.

Современные EDA-системы развивались в течение длительного времени. Но это развитие было экстенсивным и во многом консервативным, это обусловлено следующими причинами: во-первых, необходимость сохранения обратной совместимости, т. к. объем накопленной информации для EDA- и CAE-систем весьма велик, и по сей день используются различные версии систем; во-вто-рых, на момент зарождения наиболее известных систем, таких как MATLab, Spice и т. п., средства разработки и существующее аппаратное обеспечение диктовали классический подход к проектированию программных систем, при котором имеется единственный вычислительный поток, в котором и производится расчет по заданной математической модели.

Рассмотрим одну из типичных задач, ставящихся перед специализированными ED A-системами, проведение анализа переходных процессов для электронной схемы. Обычная EDA-система, такая как, к примеру, Microcap, организует этот процесс в несколько этапов (рис. 1).

Прежде всего необходимо получить от пользователя представление о модели. Эго один из самых простых этапов, реализуемых с помощью пользовательского интерфейса. Пользователь размещает в рабочей области программы необходимые элементы (точнее, их графичес-

кие представления) и соединяет соответствующие входы и выходы элементов, формируя тем самым основу для математического описания всей моделируемой системы.

По информации о взаимосвязях между элементами и типами элементов строится система дифференциальных уравнений для всей системы в целом.

Основной этап - решение системы обыкновенных линейных дифференциальных уравнений (ОДУ) численным методом. Начальные условия берутся из параметров, задаваемых пользователем перед проведением процедуры анализа. На этом этапе для упрощения вычислений зачастую проводится процедура линеаризации.

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

изменяются очень быстро, поэтому при численном интегрировании необходимо уменьшать его шаг. Если такой блок в моделируемой схеме единственный, то в лучшем случае это приведет лишь к незначительному замедлению процесса моделирования. Однако если в схеме таких (или аналогичных) нелинейных блоков несколько и разность времен их срабатывания имеет тот же порядок, что и шаг интегрирования, то широко распространённые в ЕБ А-системах алгоритмы численного интегрирования могут давать значительные погрешности или даже расходиться, что делает компьютерное моделирование в этом случае невозможным.

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

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

* Матрица связей

Ш

Система ОДУ

Л-

Вычислительный процесс *

Решение ОДУ Результаты

Рис. 1. Моделирование и анализ в EDA-системах

основных требований, так как в реальной физической системе изменения состояний отдельных блоков не могут быть синхронизированы иначе, чем через предусмотренные входы и выходы.

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

Выигрыш по сравнению с классическим подходом заключается в том, что обработка нелинейного блока (причем любого количества нелинейных блоков) происходит независимо и параллельно с работой всех остальных блоков - компонентов системы, т. е. наращивания сложности вычислений внутри вычислительного процесса не происходит. За исключением накладных расходов системы, количество блоков ограничивается лишь быстродействием и мощностью вычислительной машины, в которой исполняется данная среда.

Наиболее подходящей для реализации средой на данный момент является среда Erlang - функциональный язык программирования, разработанный и поддерживающий компанией «Ericsson», который позволяет писать программы для разного рода распределённых систем. Этот язык включает средства порождения параллельных процессов и их коммуникации с помощью посылки асинхронных сообщений. Программа транслируется в байт-

Таблица

*

Рис. 2. Параллельное моделирование с асинхронным обменом

код, исполняемый виртуальной машиной, что обеспечивает переносимость. Функциональная парадигма позволяет Erlang избежать таких традиционных для императивных языков проблем распределенных приложений, как необходимость синхронизации, опасность возникновения тупиков и гонок [ 1].

Запущенный экземпляр эмулятора Erlang называется узлом. Узел имеет имя и знает о существовании других узлов на данной машине или в сети. Создание и взаимодействие процессов разных узлов не отличается от взаимодействия процессов внутри узла. Для создания процесса на другом узле процессу достаточно знать его имя, и, без особых на то оснований, он может не интересоваться физическим расположением взаимодействующего с ним процесса. Этим обусловлена высокая масштабируемость и способность почти линейного повышения производительности с ростом мощности системы (кластера).

Процессы, моделирующие каждый отдельный элемент схемы, будут обмениваться сообщениями (кортежами) вида:

{<имя корневого процессам, <номер элементам, <номер вывода>, <сигнал1>, <сигнал2>}, где <сигнал1>, <сигнал2> - моделируемые величины (они могут иметь, например, физический смысл тока или напряжения).

Отвечать за маршрутизацию будет основной (серверный) процесс, которому все остальные процессы, реализующие функциональность элементов схемы, будут пересылать сообщение. Это, с одной стороны, упростит масштабирование модели, а с другой - позволит достаточно просто производить измерение параметров в узлах. Тогда в общем случае процесс, моделирующий элемент схемы, будет выглядеть так [2]:

element(Server Node) -> receive stop -> exit(normal);

{pinnumber, signall, signal2} ->

% здесь производится преобразование сигнала в соответствии с принципом работы элемента %,

{modeling, Server_Node}\{self(), element numb er, pinnumber, signall, signal2} end,

где Server_Node - заранее определенное имя сервера; modeling - имя исполняемой программы. При этом глав-

ный серверный процесс будет аналогичен Element_List - списку всех элементов:

server(Element_List) -> receive

{element numb er, pinnumber, signall,

signal2} ->

% здесь производится определение элемента, с которым соединен элемент с номером elementnumber с помощью вывода pin number %

elementnumb er ! {pinnumber,

signall, signal2}

end

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

После запуска все элементы начнут передавать сообщения маршрутизирующему процессу (серверу), который будет их распределять, опираясь на заданную топологию моделируемой системы. Вне зависимости от количества блоков, каждый из них, получив сигнал, незамедлительно вернет ответ, в котором будут содержаться только моментальные значения сигналов. Следовательно, с ростом системы сложность вычислений не увеличивается. И даже если какой-либо из процессов, моделирующих элемент схемы, не сможет вернуть ответ и аварийно завершит работу, виртуальная машина Erlang сможет его перезапустить отдельно, не прерывая процесс моделирования всей схемы [1].

Таким образом, в случае реализации представленной в данной статье системы становится возможным моделирование систем с существенными нелинейностями практически неограниченных размеров и сложности.

Библиографический список

1. Open Source Erlang [Electronic resource]. Electronic data. Cop. 2008. Access mode: http://www.erlang.org/. Tifle from display.

2. Купаев, М. Начала работы с Erlang / М. Купаев, О. Токайло, Д. Димандт // RSDN Magazine. 2006. № 3.

K. V Bogdanov, A. N. Lovchikov

SYSTEMS MODELLING WITH ESSENTIAL NONLINEAR ELEMENTSON THE BASIS OF PARALLEL CALCULATIONS WITH THE ASYNCHRONOUS EXCHANGE

The article offers the anew approach to modeling of the systems containing some elements which functioning is connected witha sharp change of parameters and at the mathematical description it leads to essential increase of derivative variables phase that at traditional modeling conducts to the failure of the computing process.

Keywords: modeling, parallel calculations, EDA systems.

i Надоели баннеры? Вы всегда можете отключить рекламу.