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