Архітектура розподіленого програмного застосунку для генерування ландшафтів планетоїдів

Abstract

Зростання популярності генерування ландшафтів планетоїдів у відеоіграх, фільмах, інструментах симуляції посилює вимоги до якості, унікальності, масштабованості результатів візуалізації, які, водночас, зумовлюють підвищення вимог до обчислювальних ресурсів апаратних засобів. Запропоновано рішення щодо архітектури програмного застосунку для генерування ландшафтів планетоїдів, яке базується на поєднанні розподіленої обчислювальної системи і застосуванні паралелізму на підставі алгоритму Morsel-Driven Query Execution для подолання обмежень апаратного забезпечення. Розроблено обчислювальну модель генерування ландшафтів планетоїдів, яка містить компоненти: основний сервер, який підтримує gRPC з’єднання; сервери-працівники, які паралельно виконують завдання процедур генерування ландшафтів планетоїдів; геопросторова база даних, яка містить векторні дані згенерованих планетоїдів; бінарне сховище тривимірних моделей, які накладаються на згенерований ландшафт планетоїдів; tileset-сховище для зберігання растрових даних, необхідних для генерування; користувачі. Застосовано програмні агенти для уніфікації набору алгоритмів як єдиної сутності, що дає змогу вирішити проблему розширюваності програмного засобу. Для надсилання та опрацювання запитів у логічні канали, створені для послідовності агентів, використано розподілену систему обміну повідомленнями – брокер. Він базується на підході балансування навантаження для доставки запитів на генерування ландшафту до фонових процесів. Проведено обчислювальні експерименти для аналізу швидкодії затосунку при різних кількостях фонових процесів (1, 2; 4; 8; 16) та розмірах сегменту 512, 2048 пікселів. Отримано найменшу середню тривалість генерування одного сегменту при його розмірі 512 пікселів та кількості сегментів 64. Зменшено витрати процесорного часу від 2 до 5 разів, порівняно із застосунком, який використовує підхід збереження запитів у базі даних, за рахунок комплексного архітектурного рішення. Проведено порівняння роботи розробленого програмного засобу із застосунком MapGen. Ефективність рішення особливо помітна при великих обсягах даних, що визначається кількістю сегментів та їх розміром у пікселах.
The procedural generation of planetoids finds its place in the field of visualization of virtual worlds in video games, movies, and simulation tools. Due to the growing popularity of the application, the requirements for the quality, uniqueness, and scalability of visualization results are increasing, which, in turn, leads to higher requirements for hardware computing resources. This paper proposes a solution for the architecture of a software system for generating planetoid landscapes, based on a combination of a distributed computing system and the use of parallelism based on the Morsel-Driven Query Execution algorithm to overcome hardware limitations. The computing model includes the following components: a main server that supports gRPC connections; worker servers that perform the task of generating planetoid landscapes in parallel; a geospatial database containing vector data of generated planetoids (rivers and reservoirs; geographic regions – biomes, forests, and other road segments) binary storage of three-dimensional models that are superimposed on the generated planetoid landscape; tileset-storage for storing raster data required for a generation; users who use the software system for generating planetoid landscapes to realize their own goals. The use of software agents in the built system allows unifying a set of algorithms as a single entity used for a particular stage of landscape generation and solving the problem of software system extensibility. A distributed messaging system, a broker, is used to send and process requests using a topic per software agent sequence position. The broker utilizes load balancing to deliver landscape generation requests to background workers. To analyze the system’s performance, experiments were conducted with different numbers of background workers (1, 2: 4, 8; 16) and segment sizes of 512, and 2048 pixels. The lowest average time for generating one segment was obtained when the segment size was 512 pixels and the number of segments was 64. The average segment generation time for the above experiments ranged from 0.33 to 9.32 seconds. The integrated architectural solution allowed to reduce the CPU time by 2 to 5 times compared to a system that uses the approach of storing queries in the database. The solution’s efficiency is especially noticeable with large amounts of data, which is determined by the number of segments and their size in pixels.

Description

Keywords

програмні агенти, обмін повідомленнями, технологія gRPC, брокер, швидкодія застосунку, обчислювальна модель, software agents, messaging, gRPC technology, broker, system performance, computational model

Citation

Архітектура розподіленого програмного застосунку для генерування ландшафтів планетоїдів / Є. В. Левус, П. Я. Пустельник, Р. О. Моравський, М. Ю. Морозов // Український журнал інформаційних технологій. — Львів : Видавництво Львівської політехніки, 2023. — Том 5. — № 1. — С. 1–8.

Endorsement

Review

Supplemented By

Referenced By