2.1 GPSS/PC(tm): Персональное путешествие (Спрингер Кокс)
 
Ключевым моментом моего вхождения в GPSS стала наша программная компания - Minuteman Software, наш первый продукт GPSS/PC и его успех. На протяжении всей работы мы направили все свои усилия на усовершенствование интерфейса при имитационном моделировании на языке GPSS. История всех наших работ показала, что на дискретное моделирование большее влияние оказывало развитие компьютеров, чем сама эволюция языка GPSS. После работы в IBM и XEROX в качестве аналитика по оценке производительности вычислительных систем, в 1977 году я начал работать в группе исследований и разработок Digital Equipment Corporation. Целью работы была оценка эффективности организации виртуальной памяти операционных систем с помощью имитационных моделей. В течении нескольких последующих лет я создал две имитационные системы в SIMULA, первом серьезном объектно-ориентированном языке. В обоих случаях я приобрел профессиональный опыт имитационного моделирования при поддержке систем у различных клиентов. Как пользователь имитационного моделирования оценивающий производительность вычислительных систем, я испытывал неудовлетворенность во всех инструментах моделирования, которые использовал. На мэйнфреймах минусом было то, что фактически вы осуществляли имитационный прогон в пакетном режиме (офлайн), т.е. могли получить отчет с результатами не сразу, а позднее и только потом могли понять какие попытки при моделировании надо еще предпринять. Стиль моделирования на мэйнфреймах был не эффективен. В пакетном режиме вы могли скорректировать только несколько ошибок за один раз в каждом повторном результате выполнения пакетного задания. Я сам лично убедился в неэффективности этой длительной и изнурительной работы и был разочарован. Поэтому очень важно это было знать, что может случится внутри процесса моделирования, как будет вести себя процесс правильно или плохо и очень сложно было определить куда еше идти дальше. Также было ясно, что пользователи работающие с имитационными моделями на мэйнфреймах (вроде меня) были лишены драгоценного времени, которое они могли лучше использовать при разработке имитационной модели и анализа результатов. Я разработал небольшую пользовательскую базу внутри DEC для моих "SIMNET" программ и имел в конечном счете более половины правильного кода на SIMULA, помогая пользователям получать спецификации моделирования прямо в компьютере. В 1978 году я имел большой список средств, которые я хотел бы иметь. Вверху списка было желание иметь интерактивное окружение имитационного моделирования, чтобы защитить меня от моих собственных ошибок. В идеале я должен иметь возможность видеть, как протекает моделирование внутри. Я нуждался в интерактивных способах при моделировании, чтобы мог оформить мои интуитивные соображения о цели системы. Диалоговые игры появились на примитивных микропроцессорных системах, например, Астероиды и Звездные войны. Они ясно показали, как внутренняя динамика имитационных моделей должна визуализироваться. Следующим шагом стало применение интерактивности и визуализации в коммерческом имитационном пакете, как они сказали на рынке конъюнктура которого очевидна, и не требует анализа. В то время появились 8 битовые персональные компьютеры, такие как Apple II. Это было интересно, но оперативная память их была 64 килобайта или ниже, а это явно фатальные ограничения для промышленных имитационных прогонов. Даже хуже, когда они появились, большинство людей подумало, что дискретно событийные модели могут быть перенесены на них, хотя еще, по сути, не было языков программирования способных настроится на роботу с такой игрушкой.

Затем в конце 1979 года появился Visicalc. Цены на Apple II снижались и IBM, как доминирующая компьютерная компания, своими эмоциональными действиями вынуждая закрыть "Окна Apple", настолько быстро насколько это возможно (мое мнение). Они облекли полномочиями "Быстрый и сырой" проект РС. Они хотели уложиться в один год. Что означало, что они должны были обойти стандартную процедуру разработки продукта IBM и использовать имеющееся в IBM готовое программное обеспечение и аппаратуру. Они начали выпуск IBM PC в 1981 году. Это был настоящий хит, продажи превышали 10000 устройств в месяц.

В IBM PC была одна характеристика, благодаря которой можно было начинать работы по моделированию: это 20-ти битовая адресная шина памяти. Как я тогда был уверен, что 1МВ адресного пространства достаточно для коммерческого имитационного пакета. Ну а как быть со скоростью работы микропроцессора. Мы нуждались в разработке прототипов с необходимыми характеристиками.

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

Выбор был легок. Язык GPSS имел историю в 20 лет с тысячами пользователей и рядом прекрасных книг. В апреле 1982 года я определил, что процессор 6502 на Atari 800 , мог осуществить прогон моделей со скоростью 300 блоков в секунду. Это чрезвычайно низкий на сегодняшний день стандарт. Но это означало, что многие имитационные модели с мэйнфрейм компьютеров, могли быть запущены на персональном компьютере. Также в то время стало ясно, что персональные компьютеры будут использовать миллионы пользователей. Не растрачивая впустую время, я создал Minuteman Software, и приступил к разработке программ на IBM PC. Я не нашел хорошо поддерживаемого компилятора языка С в 1982 году, поэтому начал программировать на языке BASIC. Но так как производительность программ была очень важна, я создавал часть программ на языке Ассемблер для процессора Intel 8088. 

Обеспечить полную совместимость со всеми существующими GPSS продуктами не представлялось возможным, но общие возможности для проведения экспериментов в GPSS/PC были лучше. Я выбрал как стандарт GPSS V фирмы IBM. Спецификации языка базировались на руководстве по GPSS V фирмы IBM (IBM 1977). Красная книги Тома Шрайбера (Schriber 1974) и книга по GPSS Бобильера Кахана и Пробста (Bobillier 1976) оказали большую помощь. Также я консультировался по последним руководствам по GPSS/H (Wolverine 1978) и по книге Гордона (Gordon 1975). Без существующего продукта и пользовательской базы я смог разработать спецификацию продукта для микропроцессора с диалоговым монитором.
Даже в 4.77-Megahertz Intel 8088 процессоре были длительные циклы (реакция) после нажатия клавиш, и пользователь мог использовать это для другого представления (например, для других нажатий). В GPSS/PC я ввел средство, которое назвал "Предотвращение ошибок нажатий". Поддерживая внутреннее представление грамматики GPSS, каждый ввод с клавиатуры мог быть проверен на корректность. Полученный результат был в том, что в GPSS/PC пользователь мог сделать синтаксические ошибки. Другими средствами были прямой контроль и визуализация имитационного прогона. Система GPSS/PC также, как и GPSS V использовал для системных часов целые числа. Хотя эмуляция вещественных чисел была возможна, но даже специальные сопроцессоры (Intel 8087) чисел с плавающей точкой работали значительно медленнее, чем с целыми. Представление возможности не ограниченного представление целого времени было достигнуто и помогло решить несколько других проблем. Во-первых, получение 32 битного генератора псевдослучайного числа требовало 64 битного числа, но это не поддерживалось аппаратурой. Даже с плавающей арифметикой это было возможно лишь для времени разделенного пополам, что уменьшает наблюдаемые значения и делает непригодными статистические отчеты и даже само время. Неограниченное время в GPSS/PC решает все эти проблемы. Пользователю необходимо объявить только предел, наименьшее изменение, единицу времени для достижения всеобъемлющей точности. В то время я думал, что это самое серьезное улучшение и поэтому хотел назвать систему "Точный GPSS". 

GPSS/PC еще не пришел на рынок, а на него уже появился спрос (Minuteman 1984). Тестирование, документирование и выпуск требовало времени. На первом месте в списке новых средств была визуализация. Эта разработка объективно была сильнейшим результатом для имитационных пакетов на PC. Система GPSS/PC имел окна для основных GPSS объектов, построенных в родном для IBM PC графическом режиме. С каждым окном было связано четыре микро окна, которые при открытии содержали значения переопределенных внутренних значений переменных (СЧА). Все данные на экране соответствовали текущим значениям в имитационном прогоне. В окне таблиц можно было наблюдать плотности распределений. В окне блоков можно было управлять условиями останова моделирования и вводить команду останов с клавиатуры, используя мышь и даже световое перо. Пользователь мог установить останов и ввести продолжение, касаясь соответствующей иконки блока на экране. Когда моделирование начинается, графическое изображение движения транзактов по блокам появляется, и выделяются или подчеркиванием, или красным местом, где наблюдается скопление транзактов.

Продукт, который мы разработали, неплохо продавался, но не все, что я хотел, было реализовано. Форматирование отчета было отдельной программой хранимой в памяти компьютера, и было неуклюже. Загрузка сохраняемых моделей в память была медленной. Это происходило из-за работы модуля "Предотвращение ошибок нажатий". Хотя цикл "редактирование - трансляция - загрузка-прогон" был устранен, все это было не так серьезно. Было большое желание сделать так, чтобы пользователь осуществлял загрузку однажды. Последние модификации были интерактивны, поэтому не было необходимости в перезагрузке. Это была не очень большая плата за защиту от синтаксических ошибок. В версии 2 GPSS/PC я заменил транслятор с языка Basic на язык C. 

Затем на работу в компанию пришла Алиса Кокс и осуществила разработку учебного пособия по GPSS/PC, при выходе новой версии оно было включено в состав продукта. Новое учебное пособие по GPSS/PC вводит в процесс моделирования начинающего пользователя шаг за шагом (нажатие за нажатием). Оно также включает расширенный набор очень поучительных практических имитационных моделей разработанных профессором Геральдом Ф. Гуммингсом из Дублинского университета (Minuteman 1986). 

Так как число наших пользователей возрастало, мы решили получить от них предложения и замечания. В 1988 году появился GPSS/PC Animator (Minuteman 1988). Это был трассировочный постпроцессор, реализованный в языке Autolisp. С использованием его моделирование на GPSS/PC может быть "оживлено" (анимировано) в 1/2 D пространстве созданном средствами AutoCAD. Пакет Autoflix, также разработанный фирмой Autodesk, мог быть использован для создания движения при моделировании. В конце 80-х годов производители IBM совместимых компьютеров сменили графический интерфейс на близкий к тому, который еще с 1984 года был на компьютерах Apple Macintosh. Так как конкуренция среди программных продуктов имитационного моделирования для PC усилилась, Minuteman Software начала работать на новой операционной системе официально одобренной и санкционированной и Microsoft и IBM - OS/2. Наш новый продукт был назван GPSS Worldtm (Minuteman 1994) и потребовал переписать GPSS/PC в C++. Он имел много новых функций, но особенным отличием было то, что это была единственная система имитации распространяемая на компьютерах с архитектурой клент/сервер. Пользователь мог осуществлять имитационный прогон на удаленном LAN сервере, а наблюдать и управлять процессом моделирования на своем собственном PC. К сожалению для пользователей, Microsoft решила, что Windows, а не OS/2 должна быть основной операционной системой на персональных компьютерах. В ответ IBM безуспешно потратила миллионы долларов на то, чтобы восстановить контроль в этом сегменте рынка. После неудачи OS/2 мы адаптировали GPSS World к операционной системе Microsoft's Windows. В течение этого процесса пользовательский интерфейс был переписан и основывался на Microsoft's Document/View Architecture. Результатом стал объектно-ориентированный пользовательский интерфейс с унаследованными свойствами. Некоторые технологические разработки для OS/2 GPSS World, такие как трансляция адресов и мультизадачность были непосредственно применены в Windows ориентированном продукте. Даже внедренный язык программирования PLUS, который был разработан для повышения мощности вычислений GPSS, был расширен новой возможностью программируемым управлением экспериментами. Также команда CONDUCT была добавлена в список команд GPSS World для Windows, который был запущен летом 2000 года. С того времени разработка новых функций продолжалась. В апреле 2001 года мы ввели в GPSS World новый автоматический генератор экспериментов. Дополнительно, была разработана многокритериальная программа ANOVA, которая помогала анализировать эксперименты созданные пользователем, генераторы просмотра и оптимизации экспериментов был добавлены в пакет. Вышеупомянутая оптимизация экспериментов проводится на поверхности отклика разбитой на части при подъеме вверх на 5 факторов. PLUS-эксперименты проводят исследование автоматически, создавая при этом диалоговые окна.

Все эти средства поддерживаются студенческой версией. Подобно студенческой версии системы GPSS/PC, студенческая версия GPSS World такая же быстрая как и коммерческая версия и выполняется в тысячу раз быстрее на сегодняшних персональных компьютерах, чем работала оригинальная версия GPSS/PC в 1984 году. Обе студенческие версии могут быть свободно переписаны в сети Интернет с сайта фирмы www.minutemansoftware.com.

Прошу извинения за коммерческую рекламу. Но не могу не сказать про тот факт, что GPSS находится в хорошем состоянии в новом тысячелетии, и что он, после продуктивных 40 лет развития, востребован человечеством.

 
назад

вперед