Реализация

Стратегия динамического переноса нагрузки RCL была разработана для SPEEDES с целью повышения её производительности. Были проведены эксперименты для выявления конкретных параметров, которые влияют на скорость выполнения имитационного эксперимента. В качестве такого параметра может быть рассмотрен интервал между переносами нагрузки (между процедурами Migrate()). SPEEDES поддерживает несколько синхронизирующих алгоритмов для выполнения распределённого моделирования: Breathing Time Warp (BTW), который совмещает черты алгоритма деформации времени Time Warp и протокола Breathing Time Buckets.

В результате исследований было обнаружено, что процедуру Migrate() следует выполнять в конце цикла GVT (Global Virtual Time). Действительно, события удаляются из системы во время вычисления GVT. Поэтому нет опасности, что возникнет необходимость в откате, который затронет только что перенесённую нагрузку. Более того, необходимо перенести только события и переменные мигрирующих объектов, а данные, связанные с откатом, не надо переносить, поскольку очередь откатов очищается в конце цикла GVT.

Каждый из алгоритмов был протестирован на трёх наборах входных данных. При этом варьировалась внешняя нагрузка. Результаты экспериментов показали, что процедуры миграции могут дать положительный эффект в различных условиях моделирования – при различных нагрузках.

Результаты можно интерпретировать следующим образом:

- Для всех трёх стратегий время выполнения сокращается, если интервал между процедурами Migrate() невелик.

- Частота выполнения процедуры Migrate() влияет на время моделирования существенным образом.

- При сравнении параллельного выполнения с переносом нагрузки и без него видно, что процедура переноса существенно влияет на скорость выполнения эксперимента.