Альтернативные подходы к созданию имитационных моделей

 

Разработчики моделирования изначально направляли свои усилия на поиск новых и более совершенных способов моделирования систем, используя при этом сущест­вующее компьютерное оборудование и программное обеспечение.

 

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

 

Большинство моделей действуют приблизительно одинаково. Часы модельного времени взаи­модействуют со списком событий, в результате чего определяется, какое событие будет обрабатываться следующим. Часы переводятся на время возникновения этого события, а компьютер выполняет логику события, которая может потребо­вать: обновить переменные, обработать списки очередей и событий, сгенерировать случайные числа и величины, собрать статистику. Данная логика выполняется в соответствии с модельным временем возникновения событий, то есть в этих слу­чаях моделирование является последовательным.

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

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

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

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