Полная версия

Главная arrow Информатика arrow Имитационное моделирование

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

Некоторые пути сокращения требуемых объемов памяти и времени при реализации имитационных алгоритмов

Требуемые объемы памяти моделирующей ЭВМ и затраты машинного времени на работу моделирующей программы всегда были и остаются факторами, ограничивающими ее допустимую сложность.

Требования к объему памяти можно представить в виде двух составляющих: статический объем и динамический объем. Статический объем памяти Ус требуется для хранения исходной моделирующей программы (вместе с необходимыми исходными данными) и вспомогательных блоков системы моделирования — монитора и интерпретатора. Обозначим требуемые объемы памяти Уп, Ум, Уи соответственно, тогда

В свою очередь, память для программы Уп складывается из объемов:

  • а) занимаемого операторами языка, составляющими программу, после их компиляции на промежуточный или машинный язык У0;
  • б) резервированного под рабочее поле для интерпретации в ходе моделирования Ур;
  • в) отведенного для хранения исходных данных Уид — глобальных переменных.

Таким образом, статическая составляющая объема памяти, выделенная для работы моделирующей программы:

где N — количество процессов в программе моделирования; i — номер процесса.

Объемы памяти Ум и Уи обычно указываются в техническом описании системы моделирования, и пользователь практически не имеет возможностей их изменить. Чтобы уменьшить величину Ус, учитывая, что параметр N и все составляющие третьего слагаемого суммы (3.1) зависят от сложности исследуемой модели, прежде всего необходимо выбирать из иерархической системы моделей наиболее простые модели, содержащие минимум элементов и параметров, достаточный для достижения цели исследования. Кроме того, следует выбирать такие операторы (блоки) языка моделирования, которые требуют наименьших объемов памяти У0 и Ур.

Динамический объем памяти Уд существенно зависит от максимального числа параллельно работающих процессов Nmax, количества формируемых в ходе моделирования копий процессов, числа и типов формируемых в ходе моделирования локальных переменных:

где Vnni — объем памяти, отводимый для хранения локальных переменных; К{ — число копий ?-го процесса (X, = 1, 2, ...).

Следует подчеркнуть, что указанные объемы рассчитываются с учетом работы блока сбора статистики.

Сокращение величины Уд обеспечивается упрощением модели, сокращением числа параллельно работающих процессов и уменьшением объема собираемых статистических данных. В настоящее время разработаны системы моделирования, позволяющие уменьшить ограничения на величины Ус и Уд путем использования виртуальной памяти.

Однако такие системы требуют существенно больших затрат времени.

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

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

В случае фиксированного шага при моделировании т элементов на интервале времени kAt требуется выполнить тк проверок необходимости изменения состояния системы (при условии, что интервал At выбран так, чтобы за At изменялось состояние не более одного элемента). Если среднее время нахождения каждого элемента в одном состоянии равно ZAt, то число изменений состояния системы на интервале kAt равно тк / I.

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

Метод фиксированного At экономичнее по затратам времени, если тк < тк(т - 1) / I, т. е. если т - 1 > I.

Ввиду особой эффективности (с точки зрения сокращения числа команд в программе и, следовательно, затрат машинного времени) такой меры, как увеличение At, следует искать пути для упрощения модели:

  • — исключение из рассмотрения второстепенных событий, не оказывающих существенного влияния на выбранный критерий интерпретации результатов моделирования;
  • — уменьшение временной разномасштабности объединенных в одной модели процессов.

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

Если программирование ведется на универсальном языке и монитор программируется разработчиком модели, целесообразно уделять особое внимание работе с очередями (например, используя аппарат списков) и таблицами (например, применяя для поиска прямую адресацию).

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

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

  • 1) уменьшение в программе количества операторов, требующих для своей реализации выполнения операций поиска, перебора и постоянной проверки каких-либо условий (типа «ЖДАТЬ, ПОКА < условие >»);
  • 2) уменьшение числа обращений к датчикам случайных чисел или замена программных датчиков таблицами;
  • 3) сокращение количества циклов, порождающих новые сообщения;
  • 4) своевременное уничтожение «отработавшего» сообщения.

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

  • — тщательный анализ состава и формы представления результатов моделирования с целью упрощения процедур статистической обработки, сокращения времени вывода и облегчения содержательного анализа;
  • — предварительная оценка требуемой точности представления исходных данных (в частности, выбор метода интерполяции) с позиций баланса точностей для упрощения вычислительных и логических функций программы;

— предварительный расчет длины tc - t0 отрезка времени нестационарности моделируемого процесса и включение в работу блоков обработки статистики только после момента tc (для случая вычисления стационарных критериев).

Рассмотрим вопросы рационального выбора количества прогонов модели. При использовании обычного метода определения момента окончания моделирования заданная точность вычисления оценки критерия интерпретации результатов g[Q] сравнивается с достигнутой в результате моделирования оценкой g[Q ].

Если выполнено условие g[Q] > g[Q"],to принимают решение о прекращении моделирования. В противном случае проводятся дополнительные реализации. Трудность заключается в том, что количество прогонов N, требуемое для обеспечения заданной точности o[Q], не может быть точно определено до начала моделирования и должно вычисляться непосредственно при выполнении моделирующей программы. При этом можно идти разными путями.

  • 1. На каждом прогоне проверять выполнение условия ct[Q] = = a[Q"] и прекращать моделирование точно после N прогонов.
  • 2. Проверку условия выполнять с шагом АN.
  • 3. Провести пробную серию из N0 прогонов, после чего проверить выполнение условия — если o[Q] > a[Q*], закончить моделирование; в противном случае продолжить до N прогонов.

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

 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>