Details

Title Система дискретно-событийного имитационного моделирования на языке программирования Go: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Discrete-event simulation system in the Go programming language
Creators Гуляев Илья Владиславович
Scientific adviser Никифоров Игорь Валерьевич
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2026
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects имитационное моделирование ; дискретно-событийное моделирование ; облачная платформа ; язык программирования Go ; кодогенерация ; DSL ; микросервисная архитектура ; параллельные эксперименты ; simulation modeling ; discrete-event simulation ; cloud platform ; Go programming language ; code generation ; microservice architecture ; parallel experiments
Document type Bachelor graduation qualification work
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.04
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-3499
Rights Доступ по паролю из сети Интернет (чтение, печать)
Additionally New arrival
Record key ru\spstu\vkr\42692
Record create date 8/21/2026

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Group Anonymous
Network Internet

Данная работа посвящена разработке облачной платформы дискретнособытийного моделирования на языке программирования Go. Отличительной особенностью платформы служит распределённое исполнение экспериментов в облачной инфраструктуре с генерацией специализированного исполняемого кода вместо интерпретации модели во время выполнения. Платформа реализована как набор взаимодействующих микросервисов и собрана в виде набора Docker-образов, разворачиваемых единым стендом вместе с PostgreSQL, NATS и объектным хранилищем S3. Описание модели выполняется на разработанном предметно-ориентированном языке и транслируется в специализированный Go-код, который компилируется в самостоятельный исполняемый файл и выполняется без интерпретации. Изоляция процессов моделей по ресурсам реализована средствами контрольных групп ядра Linux версии cgroups v2. В результате работы реализована облачная платформа и проведены экспериментальные исследования её производительности. Сгенерированный движок выполнил одиночную модель в 4.8 раза быстрее ближайшего по скорости открытого решения и в 67 раз быстрее интерпретируемой реализации, потребляя при этом около 10 Мбайт памяти против десятков и сотен мегабайт у сравниваемых систем. Параллельное выполнение серии независимых экспериментов дало ускорение до 3.92 раза на четырёх слотах при эффективности параллелизма около 0.98, причём масштабирование достигается как добавлением слотов одного узла, так и подключением новых узлов исполнения. В работе использованы язык программирования Go, PostgreSQL, NATS, MinIO с интерфейсом S3, gRPC, Protocol Buffers, Docker, Docker Compose, cgroups v2, Visual Studio Code, Git и GitHub. Разработаны предметноориентированный язык описания дискретно-событийных моделей и облачная платформа дискретно-событийного моделирования.

This work is devoted to the development of a cloud platform for discrete-event simulation in the Go programming language. The distinctive feature of the platform is distributed execution of experiments in a cloud infrastructure with generation of specialized executable code instead of model interpretation at runtime. The platform is implemented as a set of interacting microservices and packaged as a set of Docker images that are deployed together with PostgreSQL, NATS and S3-compatible object storage as a single environment. The model description is written in a dedicated domain-specific language and translated into specialized Go code, which is compiled into a standalone executable file and runs without interpretation. Resource isolation of model processes is implemented by means of Linux kernel control groups version cgroups v2. As a result of the work, a cloud platform has been implemented and experimental studies of its performance have been carried out. The generated engine executed a single model 4.8 times faster than the nearest open-source solution by speed and 67 times faster than an interpreted implementation, while consuming about 10 MB of memory against tens and hundreds of megabytes for the compared systems. Parallel execution of a series of independent experiments yielded a speedup of up to 3.92 times on four slots at a parallel efficiency of about 0.98, with scaling achieved both by adding slots on a single node and by attaching additional execution nodes. The work uses the Go programming language, PostgreSQL, NATS, MinIO with an S3 interface, gRPC, Protocol Buffers, Docker, Docker Compose, cgroups v2, Visual Studio Code, Git and GitHub. A domain-specific language for describing discrete-event simulation models and a cloud platform for discrete-event simulation have been developed.

Network User group Action
ILC SPbPU Local Network All
Read Print
Internet Authorized users SPbPU
Read Print
Internet Anonymous
...