This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Распределенная генерация и консольный режим

Внимание
Функционал, описанный в этой статье, недоступен в Community редакции SDK.
Чтобы использовать этот функционал вам необходимо получить лицензию на Engineering / Sim SDK.

See AlsoСмотрите также#

Посмотрите это видео из серии видеоуроков по генерации ландшафта в Sandworm:

Terrain generation is a complex task and may require substantial time depending on the area size and data resolution. Sandworm allows using distributed computing to generate terrain.Генерация ландшафта является сложной задачей и может потребовать значительного времени в зависимости от размера территории и разрешения данных. Sandworm позволяет использовать распределенные вычисления для создания ландшафта.

Примечание
Distributed computing makes sense when used for speeding up terrain generation that takes more than an hour. Applying distributed computing to generate a small terrain area with low-detail data (10 meters or more per pixel) may be unprofitable at all.Распределенные вычисления имеют смысл для ускорения генерации ландшафта, которая занимает более часа. Применение распределенных вычислений для создания небольшой области ландшафта с данными низкой детализации (10 метров или более на пиксель) может оказаться вообще невыгодным.

The concept is to use several computers united into a network, one of which is Master and assigns tasks, and the other are Workers that perform portions of work (processing of source data) assigned to them. UnigineEditor with the Sandworm tool and a terrain project should be open on Master, while Workers run the console application. Source files (geodata) and common cache shall be stored in a shared folder. If a Worker still has available resources, additional processes may be run on it and participate in terrain generation immediately, i.e., without restarting the generation process. Master creates the asset based on the result.Концепция заключается в использовании нескольких компьютеров, объединенных в сеть, один из которых, Master, назначает задачи, а другие - Worker, которые выполняют часть работы (обработка исходных данных), возложенную на них. UnigineEditor с инструментом Sandworm и проектом, в который будет добавлен ландшафт, должен быть открыт на Master, в то время как на Worker-ах запускается консольное приложение. Исходные файлы (геоданные) и общий кэш должны храниться в общей папке. Если у Worker-а все еще есть доступные ресурсы, на нем могут быть запущены дополнительные процессы, которые немедленно участвуют в генерации ландшафта, т.е. без перезапуска процесса генерации. Master создает ресурс на основе результата.

Примечание
All workstations performing computations for a certain terrain generation job must be running on the same operating system (Windows or Linux). UNIGINE SDK version should also be the same.Все рабочие станции, выполняющие вычисления для определенного задания генерации ландшафта, должны быть запущены в одной и той же операционной системе (Windows или Linux). Версия UNIGINE SDK также должна быть такой же.

Participants of the process:Участники процесса:

Master

Computer that manages the whole generation process, forms the task pool, and distributes tasks between Workers. Master tracks all connected Workers and assigns tasks to them. Master itself also performs calculations. Master is run via Sandworm.Компьютер, который управляет всем процессом генерации, формирует пул задач и распределяет задачи между Worker-ами. Master отслеживает все подключенные Worker-ы и назначает им задачи. Сам Master также выполняет вычисления. Master запускается через Sandworm.

Worker

Computer connected over the network to Master and performing specific tasks assigned by Master. Worker is enabled by running bin/SandwormNode_x64.exe.Компьютер, подключенный по сети к Master и выполняющий определенные задачи, назначенные Master. Worker включается при запуске bin/SandwormNode_x64.exe.

Примечание
The number of Workers connected to one Master is not limited (as long as the network bandwidth allows that).Количество Worker-ов, подключенных к одному Master-у, не ограничено (до тех пор, пока пропускная способность сети позволяет это).

Launching OrderПорядок запуска#

Внимание

Before launching any of the network participants, disable Microprofile for it — in \data\configs\default.user, set:Перед запуском любого из участников сети отключите для него Microprofile — в \data\configs\default.user укажите:

Исходный код
<microprofile_enabled>0</microprofile_enabled>

Otherwise, every instance would run Microprofile, causing memory waste.В противном случае каждый экземпляр будет запускать Microprofile, что приведет к расходу памяти.

You can launch Master and Workers in any sequence.Вы можете запустить Master и Worker-ы в любой последовательности.

You can run additional Workers after the terrain generation process has started, and Master will distribute jobs for them.Вы можете запустить дополнительные Worker-ы после запуска процесса генерации ландшафта, и Master распределит задания для них.

One machine can have several Workers running. A Worker can have several processes (forks) that are activated via the menu on Master.На одной машине может быть запущено несколько Worker-ов. У Worker-а может быть несколько процессов (форков), которые активируются через меню на Master-е.

Using Distributed GenerationИспользование распределенной генерации#

Workflow:Процесс работы:

  1. Prepare your environment. Подготовьте окружение.

    Connect all computers to the network. It is recommended to use a network with at least 1 Gb bandwidth. Otherwise, you may experience network lags (see the Troubleshooting section). Check that your network doesn't block broadcasting, otherwise distributed computation will be unavailable.Подключите все компьютеры к сети. Рекомендуется использовать сеть с пропускной способностью не менее 1 Гб. В противном случае могут возникнуть сетевые задержки (см. раздел Устранение неполадок). Убедитесь, что ваша сеть не блокирует широковещательную передачу, в противном случае распределенные вычисления будут недоступны.

    Примечание
    It is recommended to use an SSD drive to store the generation cache and output files. If an HDD is used, the generation performance is significantly lower due to multiple read/write and head positioning operations.Рекомендуется использовать SSD-накопитель для хранения кэша генерации и выходных файлов. При использовании жесткого диска производительность генерации значительно снижается из-за многократных операций чтения/записи и позиционирования головки.
  2. On each Worker computer, run the Worker console application. На каждом компьютере Worker запустите консольное приложение Worker.

    Примечание
    The versions of binary executable files must be the same on all computers.Версии двоичных исполняемых файлов должны быть одинаковыми на всех компьютерах.
  3. On the Master computer: На компьютере Master:

    • Run UnigineEditor and open the Sandworm tool (Tools -> Sandworm).Запустите UnigineEditor и откройте инструмент Sandworm (Tools -> Sandworm).
    • Open the *.sworm asset you are going to generate and configure the generation settings.Откройте ассет *.sworm, который вы собираетесь сгенерировать, и настройте параметры генерации.
    • Enable the Distributed option and specify the Master's settings. Save the project configuration.Включите опцию Distributed и укажите настройки мастера. Сохраните конфигурацию проекта.
    • Click the Generate button. The window with the list of available Workers will open:Нажмите кнопку Generate. Откроется окно со списком доступных Worker-ов:

      Окно распределенной генерации

      Примечание
      If you regenerate the project, this window will appear after the warning on losing any manual modifications.Если вы повторно создадите проект, это окно появится после предупреждения о потере любых изменений вручную.

      As soon as this window is open, Workers start parsing the shared source data and generating cache. In the end of this process, the console message Worker: Ready To Import is displayed.Как только это окно откроется, Worker-ы начнут анализировать общие исходные данные и генерировать кэш. В конце этого процесса отображается консольное сообщение Worker: Ready To Import.

    • Clicking the right mouse button on a Worker makes the following options available:Щелчок правой кнопкой мыши на Worker-е делает доступными следующие параметры:

      Настройки Worker-а

      Worker OptionsНастройки Worker-а
      Create Fork Creates one more process on the same Worker.
      Лучшая практика
      We estimate a reasonable number of forks as 4 to 6. Higher values reduce the Worker's performance.We estimate a reasonable number of forks as 4 to 6. Higher values reduce the Worker's performance.
      We estimate a reasonable number of forks as 4 to 6. Higher values reduce the Worker's performance.
      Создает еще один процесс на том же Worker-е.
      Лучшая практика
      We estimate a reasonable number of forks as 4 to 6. Higher values reduce the Worker's performance.Мы оцениваем разумное количество форков от 4 до 6. Более высокие значения снижают производительность Worker-а.
      Shutdown Removes the fork or Worker from the list.Удаляет форк или Worker из списка.
      Clear Cache Clears the Worker's local cache.Очищает локальный кэш Worker-а.

      Set the number of forks you need and click Generate.Установите нужное вам количество форков и нажмите Generate.

  4. During the generation process, you can connect more Workers, if necessary: run the console application on a Worker (even if this Worker is already running one or several). This console application will automatically connect to Master, and Master will assign a process to this Worker.В процессе генерации вы можете подключить больше Worker-ов, если это необходимо: запустите консольное приложение на Worker-е (даже если на этом Worker-е уже запущен один или несколько процессов). Это консольное приложение автоматически подключится к Master-у, и Master назначит процесс этому Worker-у.

  5. When the terrain generation is completed, disable all Worker processes.Когда генерация ландшафта будет завершена, отключите все процессы на Worker-е.

Setting Up the MasterНастройка Master-а#

To set up Master, enable Distributed Generation in Generation Settings: toggle on the Enabled option.Чтобы настроить Master, включите Distributed Generation в Generation Settings: включите опцию Enabled.

Master settings:Настройки Master-а:

Enabled If toggled on, distributed computing is enabled for the terrain generation, and the machine running the Editor with Sandworm is Master.Если переключатель включен, распределенные вычисления включены для генерации ландшафта, и машина, на которой запущен редактор с Sandworm, становится Master-ом.
Broadcast Port Port for listening to Sandworm by Workers.Порт для прослушивания Sandworm с помощью Worker-ов.
Server Port Port used for information exchange.Порт, используемый для обмена информацией.
Workload on Master Percentage of terrain generation performed by Master.Процент генерации ландшафта, выполняемый Master-ом.
Примечание
All sources and project cache should be stored in a shared location accessible by both Master and all Workers. The path to this location should be identical on Master and Workers.Все исходные тексты и кэш проекта должны храниться в общем расположении, доступном как для Master-а, так и для всех Worker-ов. Путь к этому местоположению должен быть идентичным для Master-а и Worker-ов.

Setting Up a WorkerНастройка Worker-а#

Примечание
Worker should have the same version of OS and UNIGINE SDK as Master.Worker должен иметь ту же версию ОС и UNIGINE SDK, что и Master.

To set up a Worker:Чтобы настроить Worker:

  1. Create a new UNIGINE project on a Worker computer with the corresponding project feature enabled: Создайте новый проект UNIGINE на компьютере Worker, включив соответствующую функцию:

    Создание приложения для Worker-а

  2. Run the SandwormNode_x64.exe console application stored in the bin/ folder of your project. The message that Worker is ready should appear in console:Запустите консольное приложение SandwormNode_x64.exe, хранящееся в папке bin/ вашего проекта. В консоли должно появиться сообщение о том, что Worker готов:

    Worker готов для генерации

  3. Set the path for storing the local cache using the --sw_local_cache_path console command.Задайте путь для хранения локального кэша с помощью консольной команды --sw_local_cache_path.
  4. Use --sw_broadcast_port, if you want to change the default broadcast port.Используйте --sw_broadcast_port, если вы хотите изменить широковещательный порт по умолчанию.
  5. Worker detects Master on the network, connects to it, downloads the scene, prepares all layers (checks their accessibility), and is ready for terrain generation.Worker обнаруживает Master в сети, подключается к нему, загружает сцену, подготавливает все слои (проверяет их доступность) и готов к генерации ландшафта.

Приложение Worker запущено и готово для генерации ландшафта

Worker application is running and ready for terrain generationРабочее приложение запущено и готово для генерации ландшафта

You can run multiple console applications on one machine and/or fork one Worker via Master to create more processes.Вы можете запустить несколько консольных приложений на одном компьютере и / или разветвить один Worker через Master, чтобы создать больше процессов.

Примечание
  • Operating System versions on Master and Workers should be identical.Версии операционной системы на Master-е и Worker-ах должны быть идентичны.
  • The SDK version of the Editor run on Master should be the same as the version of the console app (including precision).Версия SDK редактора, запущенного на Master-е, должна совпадать с версией консольного приложения (включая точность).
  • Development/Release version of SDK does not matter.версия SDK Development/Release не имеет значения.

When the terrain generation is completed and you don't need Workers anymore, close the console application on Workers or shut down processes via Master.Когда генерация ландшафта завершена и вам больше не нужны Worker-ы, закройте консольное приложение на Worker-ах или завершите процессы через Master.

Generating Landscape in Headless ModeГенерация ландшафта в консольном режиме#

A landscape created in Sandworm project can also be generated in the Headless mode, without running UNIGINE Editor.Ландшафт, созданный в проекте Sandworm, также может быть сгенерирован в консольном режиме (Headless), без запуска UNIGINE Editor.

To do that:Для этого:

  1. Configure a UNIGINE project to enable the corresponding feature:Настройте проект UNIGINE для включения соответствующей функции:

  2. Create and configure a Sandworm project in the Editor, then close the Editor.Создайте и настройте проект Sandworm в Редакторе, затем закройте Редактор.

  3. Execute the following command from the command line to start the generation process:Выполните следующую команду из командной строки:

    Shell-команды
    PS D:\projects_location\unigine_project\bin> .\SandwormNode_double_x64.exe --sw_generate project_name.sworm

    where project_name.sworm is your Sandworm project name as shown in the Editor.где project_name.sworm — имя вашего проекта Sandworm, как отображается в UNIGINE Editor.

The landscape is generated into the world that has been set as the export world in the output settings. Any TMS sources used in the project are also downloaded before starting the generation process.Ландшафт генерируется в мире, который был установлен как export world в настройках вывода. Все источники TMS, используемые в проекте, также загружаются перед началом процесса генерации.

Внимание
The Headless mode doesn't work with distributed computing.Режим Headless не работает с распределенными вычислениями.

TroubleshootingДиагностика#

  • If the network latency is too large despite 1Gb bandwidth or higher, this can be caused by a 100 Mb or 10 Mb device connected to the network. Data exchange rate drops down to the maximum rate supported by such device, slowing down the generation speed.Если задержка в сети слишком велика, несмотря на пропускную способность 1 Гб или выше, это может быть вызвано подключенным к сети устройством объемом 100 Мб или 10 Мб. Скорость обмена данными падает до максимальной скорости, поддерживаемой таким устройством, что замедляет скорость генерации.
  • Check that your projects on Master and Workers use the same precision (double or float), the same engine versions, and the same GDAL versions, otherwise the Workers would display the Different Builds error.Убедитесь, что ваши проекты на Master и Worker-ах используют одинаковую точность (double или float), одни и те же версии движка и одни и те же версии GDAL, в противном случае Worker-ы отобразят ошибку Разные сборки.
  • Use SSD to store shared source data and cache.Используйте SSD для хранения общих исходных данных и кэша.
  • Add the application to the antivirus exclusions, as it may reduce performance.Добавьте приложение в список исключений антивируса, так как это может снизить производительность.
  • Check that network ports used by Master and Workers are allowed by the firewall.Убедитесь, что сетевые порты, используемые Master-ом и Worker-ами, разрешены брандмауэром.
Последнее обновление: 13.04.2023
Build: ()