Параллельное и распределенное моделирование

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

Непрерывное моделирование

Непрерывное моделирование — это моделирование системы по времени с помо­щью представления, в котором переменные состояния меняются непрерывно по отношению ко времени. Как правило, в непрерывных имитационных моделях ис­пользуются дифференциальные уравнения, которые устанавливают отношения для скоростей изменения переменных состояния во времени. Если дифференци­альные уравнения очень просты, их можно решать аналитически, чтобы предста­вить значения переменных состояния для всех значений времени как функцию значений переменных состояния в момент времени 0. При больших непрерывных моделях аналитическое решение невозможно, но для численного интегрирования дифференциальных уравнений в случае с заданными специальными значениями для переменных состояния в момент времени 0 используются технологии числен­ного анализа, например интегрирование Рунге-Кутта.

Комбинированное непрерывно-дискретное моделирование

Поскольку некоторые из систем невозможно отнести ни к полностью дискретным, ни к полностью непрерывным, может возникнуть необходимость в создании моде­ли, которая объединяет в себе аспекты как дискретно-событийного, так и непре­рывного моделирования, в результате чего получается комбинированное непрерыв­но- дискретное моделирование. Между дискретным и непрерывным изменениями переменных состояния могут происходить три основных типа взаимодействия: - дискретное событие может вызвать дискретное изменение в значении не­прерывной переменной состояния; - в определенный момент времени дискретное событие может вызвать изме­нение отношения, управляющего непрерывной переменной состояния; - непрерывная переменная состояния, достигшая порогового значения, мо­жет вызвать возникновение или планирование дискретного события.

Наши рекомендации