Для просмотра этого контента требуется подписка на JoVE. Войдите или начните свой бесплатный пробный период.

Методическая статья

Интеграция автоматизированных рабочих процессов симуляции с 3D-визуализацией для виртуальных экспериментов в метавселенной

523 просмотров

DOI:

10.3791/71833

21 июля 2026 г.

В этой статье

Краткое содержание

Представлен обобщённый, соответствующий стандартам FAIR метод, для исследователей-экспертов, стремящихся интегрировать инструменты моделирования и обработки данных в автоматизированные рабочие процессы для 3D-виртуальных экспериментов. Пример нейтроников демонстрирует настройку локального экземпляра Galaxy, обёртку OpenMC и инструментов конвертации файлов, запуск рабочих процессов из Omniverse и визуализацию конвертированных 3D-выходов.

Аннотация

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

Этот протокол демонстрирует развертывание и использование локально контейнеризированной системы рабочих процессов. После этого пользователи запустят локальный экземпляр Galaxy с помощью Docker, создадут и запустят рабочий процесс симуляции нейтроников на OpenMC, передают выходные данные через цепочку инструментов для преобразования форматов и загружают результаты в ParaView и NVIDIA Omniverse для визуализации. Контейнерное развертывание способствует воспроизводимости и портативности на любой машине, соответствующей аппаратным требованиям, описанным в разделе 1.

После запуска системы рабочие процессы можно повторно запускать с новыми входами без ручной перенастройки, дополнительные коды симуляции могут быть упакованы в новые инструменты с умеренными усилиями, а инструменты можно использовать в различных рабочих процессах и области применения. Этот подход поддерживает принципы находимых, доступных, совместимых и повторно используемых (FAIR): истории запусков фиксируют полный метаданные происхождения, рабочие процессы экспортируются в портативные файлы и могут быть напрямую обменены между экземплярами Galaxy, а инструменты упакованы в контейнеры с контролем версий, которые могут быть опубликованы в публичном репозитории. Масштабируемость для высокопроизводительных вычислений (HPC) или облачных ресурсов через систему Pulsar от Galaxy является естественным расширением описанной здесь архитектуры.

Метод продемонстрирован на примере по нейтронике термоядерного синтеза. OpenMC используется для моделирования переноса нейтронов в автоматизированной геометрии Монте-Карло (DAGMC) с автоматизированным проектированием (CAD), обеспечивая результат коэффициента размножения трития (TBR) и набор данных по нейтронным трекам. Рабочие процессы симуляции затем подключаются к NVIDIA Omniverse как метавселенной для вызова и визуализации.

Введение

Промышленная метавселенная объединяет цифровые и физические миры для поддержки проектирования, симуляции и совместной 3D-визуализации инженерных систем. Обычно он состоит из множества взаимосвязанных цифровых двойников компонентов для получения общего представления о системе. Крупные организации, такие как Boeing, BMW, Amazon и многие другие, используют различные подходы для созданияметавселенных. Разработаны и используются системы, позволяющие использовать несколько цепочек инструментов моделирования и обработки. Однако эти примеры обычно либо индивидуальны для областиприменения 2, либо являются коммерческими вариантами 3,4 с некоторой привязанностью к проприетарным системам. Некоторые открытые альтернативы для создания цифровых двойников использовались для создания некоторых систем, таких как Python Flask, с встроенными возможностями симуляции. Тем не менее, они настроены как индивидуальные фрагменты кода для выполнения конкретных задач, связанных с конкретноймоделью 5. В контексте этого протокола платформа метавселенной (NVIDIA Omniverse) функционирует как фронтенд для 3D-визуализации и взаимодействия с рабочими процессами: результаты симуляции загружаются в общую сцену после завершения запуска рабочего процесса, а новые запуски могут запускаться внутри той же среды. Это отличается от систем с живыми цифровыми двойниками, в которых датчики в реальном времени постоянно обновляют модель; Метод, приведённый здесь, поддерживает пакетное выполнение рабочих процессов и послезапусковое исследование результатов. Однако это делается таким образом, чтобы поддерживать будущие работы по интеграции большего числа систем в платформу метавселенной, чтобы создать цифровых двойников с движками рабочих процессов в качестве вычислительного бэкенда.

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

Типичный ручной подход по своей природе медленный, подвержен ошибкам и труден для воспроизведения: исследователь запускает каждый инструмент симуляции или постобработки вручную, перемещает промежуточные файлы между средами и должен документировать индивидуальные входные и выходные результаты. В отличие от этого, менеджер рабочих процессов формализует поток данных один раз и заново запускает его детерминированно. Это даёт множество преимуществ по сравнению с ручными конвейерами: один и тот же рабочий процесс может выполняться одинаково на разных входах, что поддерживает изучение параметров без специального скриптинга; Каждый запуск автоматически фиксирует полные метаданные происхождения, устраняя любой разрыв воспроизводимости; а после упаковки инструмента его стоимость повторного использования в последующих рабочих процессах падает почти до нуля, за исключением вычислительного времени. Эти преимущества были количественно оценены для биоинформатики Раттеном и др.7 , а для протеомики/метаболомики — Пересом-Риверолом иМорено-8 , а также Верховеном и др.9.

Исторически рабочие процессы использовались преимущественно в областибиоинформатики 8,9 с большим успехом в крупных публичных инстансах, таких как европейский Galaxy server10,11, который к 2022 году содержал более 50 000 пользователей, 2500 инструментов, выполнил более 47 миллионов задач и 260 000 запусков рабочих процессов. Тот же стек движка рабочих процессов поддерживает масштабирование на HPC и облачные ресурсы через распределённую систему выполнения задач Pulsar 6,11, при этом операционные развертывания охватывают 13 конечных точек Pulsar в 10 европейских странах. Среди множества доступных менеджеров рабочих процессов, включая Snakemake, Nextflow, Toil и совместимые с CWL движки, был выбран движок Galaxyworkflow 11 по нескольким причинам. Одной из основных причин является зрелый браузерный интерфейс, который снижает барьер доступа для экспертов в области, не работающих преимущественно в командной строке; он предоставляет полный интерфейс программирования с передачей представления состояния (REST) (API) (используемый в настоящей работе для перехода к интерфейсу метавселенной); Её модель истории и рабочих мест отражает происхождение в форме, которую легко показать неспециалистам; а также поддерживает прозрачный выгруз HPC через вышеупомянутую систему Pulsar (хотя это не обсуждается в разделе протокола в этой статье). Однако подход, описанный в этой статье, принципиально независим от движка рабочих процессов: эквивалентные интеграции можно строить поверх альтернативных движков. Вклад этой работы заключается не в самом менеджере рабочих процессов, а в переводе универсального менеджера рабочих процессов, изначально разработанного для биоинформатики, в другие области (с конкретным примером термоядерной нейтроники), и его интеграции с индустриальной метавселенной (NVIDIA Omniverse) внутри полностью контейнеризованного, локально развертываемого стека, применяемого к 3D-виртуальным экспериментам.

Наконец, контейнеризация позволяет обмениваться множеством программного обеспечения, упаковывая код с операционной системой и всеми необходимыми для её запуска зависимостями. Эти среды избегают проблем с отсутствующими зависимостями и хлопот с установкой некоторых кодов симуляции. Они похожи по назначению на виртуальные машины, но гораздо легче и портативнее. Они значительно повышают возможность совместного использования и воспроизводимость программных пакетов. В этом методе менеджер рабочих процессов и отдельные инструменты работают в контейнерахDocker 12 , что повышает совместимость с разными операционными системами, пока пользователь может запускать контейнеры.

Этот протокол предназначен для экспертов в области области, например, инженеров по термоядерной нейтронике, аналитиков по вычислительной гидродинамике или специалистов по конечным элементам, которые свободно владеют инструментами моделирования своей области, но ранее не использовали менеджер рабочих процессов или контейнерное развертывание. Предполагается знание одного симуляционного кода и базовой командной строки; знакомство с Галактикой или Омниверсом — нет. Читателям, новичкам в контейнеризации, следует ознакомиться с официальной документацией Docker (https://docs.docker.com/) или вводным обучением, доступным по адресу: https://uomresearchit.github.io/docker-introduction/ перед выполнением Раздела 1; Основные команды, необходимые для запуска программного обеспечения, все содержатся в протоколе.

Остальная часть этого отчёта будет посвящена настройке и использованию локально развертываемой системы. Затем будут выполнены этапы разработки новых инструментов для системы и метод связи других внешних пакетов с движком рабочего процесса, например, платформы метавселенной. На протяжении всего отчёта кейс-стади служит нейтронная симуляция с использованиемOpenMC 13 . OpenMC был выбран потому, что он демонстрирует полный конвейер CAD--симуляцию-выход-визуализацию, который мотивирует архитектуру рабочих процессов. Геометрический файл и конфигурационный файл служат структурированными входами; симуляция переноса нейтронов в Монте-Карло даёт скалярную метрику (коэффициент размножения трития, TBR), которую можно сравнить с известным диапазоном значений, а также пространственно разрешённый набор данных по нейтронным трекам, который можно обрабатывать и представлять в визуализируемом формате для 3D-рендеринга в приложении метавселенной.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Протокол

ПРИМЕЧАНИЕ: Обзор настройки локального движка рабочих процессов, их построения, запуска рабочих процессов и визуализации показан на рисунках 1, 2, 3, 4, 5, 6, 7 и 8. Файлы репозитория, необходимые для запуска протокола, приведены в Дополнительном файле 1.

1. Подготовка

  1. Требования
    ПРИМЕЧАНИЕ: Этот метод был протестирован на последней версии Long Term Support (LTS) Ubuntu, 22.04.1 LTS. Другие версии Ubuntu и другие дистрибутивы могут работать, но они здесь не протестированы. Он также работает на системах Windows, используя подсистему Windows for Linux (WSL) в качестве бэкенда Docker.
    1. Пользователи Windows: скачайте WSL и настройте его, так как это обязательно для Docker.
    2. Скачайте Docker и затем проверьте, запустив:
      `Docker run hello-world'
      которая должна показывать приветственное сообщение.
    3. Скачайте лаунчер NVIDIA Omniverse и одно из приложений Omniverse через лаунчер.
      ПРИМЕЧАНИЕ: Для трассировки лучей в реальном времени NVIDIA Omniverse требуется видеокарта класса RTX. Пользователи без такого оборудования всё ещё могут запускать весь рабочий процесс через Раздел 2 и проверять промежуточные выходы .vtk / .vtp в ParaView (см. обсуждение). Эти пользователи могут пропустить Раздел 3, так как он касается только платформы метавселенной; Методы интеграции движка рабочих процессов здесь могут быть полезны при подключении к другим платформам метавселенной.
      Этот протокол использует приложение Omniverse Code, но другие приложения Omniverse должны быть в целом похожими. Хотя ParaView не является обязательным, он может использоваться для визуализации некоторых промежуточных файлов, создаваемых инструментами этого протокола.
  2. Репозиторий
    1. Клонируйте репозиторий, содержащий все файлы и скрипты, необходимые для экземпляра локального движка рабочего процесса, а также инструменты, описанные в этой статье:
      «Иди клон https://github.com/williamjsmith15/galaxy-omniverse-example.git»
    2. Добавьте административное письмо в список пользователей администратора.
      ПРИМЕЧАНИЕ: Это даст администраторам права для некоторых функций движка рабочих процессов и доступно в разделе admin_users в файле galaxy-config/galaxy.yml (см. https://github.com/williamjsmith15/galaxy-omniverse-example/blob/master/galaxy-config/galaxy.yml).
    3. Переименуйте файл default.json.template в default.json. Этот файл находится по адресу omni_exts/omni.galaxy.example/omni/galaxy/example/default.json.template.
      ПРИМЕЧАНИЕ: Это позволит читать данные через расширение платформы метавселенной, а также добавлять и сохранять личные настройки между загрузками — дополнительные изменения будут внесены после настройки экземпляра Galaxy.
  3. Запуск сервера локального движка рабочих процессов
    1. Запустите экземпляр движка рабочего процесса, запустив start-galaxy.sh файл на верхнем уровне репозитория:
      './start-galaxy.sh'
      Если файл здесь не запускается, его может потребоваться сделать исполняемым, если разрешения в клоне репозитория изменились. Это можно сделать, запустив:
      'chmod a+x start-galaxy.sh'
      ПРИМЕЧАНИЕ: пользователи Windows должны делать это через свой терминал WSL. Это скачает соответствующие файлы и запускает экземпляр движка рабочего процесса, который можно просматривать на http://localhost:8080 в любом браузере, работающем на той же машине. Это должно отображать страницу, показанную на рисунке 1; Если нет — подождите и обновите процесс — инстанс Workflow Engine может запускаться с некоторым временем (особенно в первый раз).
      1. Обычно, чтобы увидеть изменения в репозитории на экземпляре движка рабочих процессов, запустите './restart-galaxy.sh' или './stop-galaxy.sh', а затем запустите скрипт заново.
  4. Конфигурация платформы Metaverse
    1. Откройте приложение после скачивания лаунчера и приложения (например, Omniverse Code).
    2. В левом верхнем углу окна нажмите на вкладку «Расширения » (в других приложениях это будет в разделе «Окно | Расширения).
    3. В окне расширений нажмите кнопку серых настроек ; Появится окно с несколькими уже заполненными каталогами. Добавьте ещё один, который указывает на папку omni_exts, нажав на зелёную кнопку плюс , и добавьте путь с форматом: '/galaxy-omniverse-example/omni_exts'; см. рисунок 2 для подробностей.
    4. Ищите новую запись под названием 'OMNI GALAXY EXAMPLE' в левой колонке под вкладкой THIRD PARTY . Переключите ползунок на этом расширении на включение и дождитесь, пока появится окно расширения.
    5. Выберите галочку автозагрузки, чтобы автоматически загружать расширение каждый раз при запуске приложения.
      ПРИМЕЧАНИЕ: Изменения, внесённые в файлы расширений, должны сохраняться автоматически при сохранении файла, так как Omniverse позволяет горячую перезагрузку расширений
  5. Создание учетной записи движка рабочих процессов и связь с Метавселенной
    1. В экземпляре движка рабочих процессов создайте аккаунт, нажав кнопку «Войти» или «Зарегистрироваться » в верхней панели, затем «Зарегистрироваться здесь » и затем заполните данные с помощью адреса электронной почты, добавленного в шаге 1.2.2, чтобы создать аккаунт с администраторским доступом.
    2. Сгенерируйте ключ API, который позволит API взаимодействовать с движком рабочего процесса. Перейдите в выпадающее меню пользователя в верхней панели | Предпочтения | Управление ключом API. Создайте ключ и скопируйте его.
    3. После генерации ключа добавьте его в default.json-файл, созданный на шаге 1.2.3, под полем 'galaxy_api_key' в пустых кавычках.
      ВНИМАНИЕ: Теперь этот файл будет содержать API-ключ. Этот API-ключ можно использовать для выполнения заданий и доступа к данным на связанной учетной записи. Это не должно быть проблемой при локальном развертывании, где нет публичного доступа или IP-адреса; Этот файл всё равно должен рассматриваться как секретный и, следовательно, не распространяться или фиксироваться в публичном репозитории (файл по умолчанию отображается в .gitignore для борьбы с этим).
    4. Запустите приложение платформы метавселенной, чтобы обновить изменения, внесённые в файл по умолчанию.
      ПРИМЕЧАНИЕ: Ключ API также можно добавить напрямую в окно расширения в выпадающем меню настроек сервера, хотя это не сохраняется между сессиями.

2. Выполнение заданий на движке рабочих процессов

  1. Одиночные инструменты
    ПРИМЕЧАНИЕ: Отдельные инструменты позволяют выполнять и проверять отдельные этапы обработки или симуляции в изоляции, что полезно для проверки правильного форматирования входных данных и того, что инструмент работает как ожидается, прежде чем включать его в рабочий процесс. Тестовые файлы, приведённые ниже, dagmc.h5m (геометрия DAGMC CAD) и openmc_config.json (конфигурация симуляции), находятся в test_files каталоге клонированного репозитория.
    1. Загрузите необходимые входные файлы, нажав «Загрузить данные » в левом столбце и выбрать «Выбрать локальные файлы » или перетаскивать из проводника в это окно. Загрузите dagmc.h5m (CAD-файл) и openmc_config.json (конфигурационный файл), затем нажмите кнопку Старт , чтобы загрузить в текущую историю. Оба файла появятся зелёным цветом в панели истории справа, когда загрузка будет завершена.
    2. Выберите выпадающее меню Complex Tools в левом столбце целевой страницы, а затем инструмент OpenMC Neutronics Simulation .
    3. Теперь на странице, посвящённой инструменту, выберите входные данные из файлов, загруженных на шаге 2.1.1, и выберите CAD файл как набор данных dagmc.h5m , а конфигурационный файл — как openmc_config.json набор данных.
    4. Нажмите кнопку «Выполнить ». Два новых файла (TBR и Tracks) появятся в панели истории справа на экране. Они станут оранжевыми при работе и зелёными, когда завершён и успешен, красный будет указывать на сбой инструмента. См. раздел 4 для шагов отладки.
    5. Значение TBR (коэффициент размножения трития) можно визуализировать, чтобы проверить, что тестовый случай был успешно проведён. Нажмите на выход TBR для расширения, затем на иконку графика, а затем на редактор. Это даст результат TBR, который должен быть около 0,76 (это статистический метод, и конфигурация здесь использует небольшой размер выборки для скорости моделирования, поэтому результаты будут различаться).
      ПРИМЕЧАНИЕ: Значение TBR стохастичное; Значение 0,76 может варьироваться на ±0,01, что отражает намеренно малое количество частиц (5 партий по 1 000 частиц), выбранное для быстрых рабочих процессов. Чтобы уменьшить диапазон значений, увеличьте количество партий и частиц в поле настроек в файле openmc_config.json перед повторным запуском. В качестве ориентира для простой геометрии, подобной приведённой здесь, 50 партий по 10 000 частиц должны уменьшить рассеяние значений TBR в последующих запусках за счёт увеличения времени выполнения.
    6. Другие инструменты можно запускать на выходе Tracks для постобработки результатов. Запустите инструмент Tracks h5 to vtp на выходе Tracks , а затем инструмент CAD h5m в vtk на входном файле dagmc.h5m . Оба они дают один выход — tracks_0.vtp и dagmc.vtk, которые преобразуют их в более легко визуализируемый формат.
    7. Выходы, полученные на предыдущем этапе, можно скачать с экземпляра (кликнув на выход и затем на значок сохранения), а затем визуализировать в ParaView14, чтобы увидеть имитированные нейтронные дорожки.
    8. Чтобы визуализировать результаты в ParaView, импортируйте загруженные выходы tracks_0.vtp и dagmc.vtk . Они будут отображаться слева от окна. Либо нажмите на значок Eye рядом с импортированными файлами, либо на кнопку Apply в окне свойств, чтобы визуализировать результат. Это должно быть похоже на то, что показано на рисунке 7.
  2. Рабочие процессы
    ПРИМЕЧАНИЕ: Рабочий процесс кодирует полный процессорный конвейер в виде направленного графика инструментов с заявленными входами и выходами. После определения один и тот же рабочий процесс можно повторять с любым набором входных файлов без ручной перенастройки каждого инструмента, и все метаданные истории запуска и происхождения фиксируются автоматически.
    1. Нажмите «Рабочий процесс » в верхней панели навигации, затем «Создать » в правом верхнем углу. Введите название и описание рабочего процесса (подойдёт любая функция), затем снова нажмите «Создать ».
    2. Добавьте в рабочий процесс три инструмента, расширите соответствующие разделы в меню Tools и добавьте инструменты, используемые в разделе 2.1: OpenMC Neutronics Simulation, CAD h5m в vtk и Tracks h5 в vtp.
    3. Определите поток данных между инструментами. Перетаскивайте инструменты по рабочему пространству, кликнув и перетаскивая тёмно-синюю верхнюю панель каждого из них. Подключите выход Tracks (h5) инструмента нейтронного моделирования с входом tracks.h5 инструмента h5 в vtp. Сделайте это, кликнув и перетаскивая стрелку на выходе на стрелку на входе.
    4. Определите входные наборы данных на уровне рабочих процессов. В разделе «Входные данные» инструментов дважды кликните на «Input Dataset », чтобы создать два входных узла. Переименуйте одну для конфигурационного файла, а другую — для CAD-входа, кликнув по шагу и затем изменив поле Label в правом меню свойств.
    5. Свяжите конфигурационный файл и CAD-файл с входами инструмента нейтронного моделирования, а CAD-файл — с инструментом h5m to vtk, следуя шаблону на рисунке 3.
    6. Сохраняйте рабочий процесс, используя значок сохранения в правом верхнем углу.
    7. Чтобы запустить рабочий процесс, как и раньше, нажмите на вкладку «Рабочий процесс » в верхней панели, затем нажмите на значок воспроизведения на нужном рабочем процессе. Затем выберите входные данные, как в шаге 2.1.2, как при запуске инструмента, и нажмите «Запустить рабочий процесс».
    8. Дождитесь, пока рабочий процесс запустится, и тогда выводы можно сравнить с шагами 2.1.5 и 2.1.8; Они должны быть очень похожи (опять же, обратите внимание на статистическую вариацию этих шагов). Рабочий процесс успешно работал, когда все выходные данные в истории стали зелёными. Здесь должно быть (вместе с входными наборами данных) четыре набора данных: TBR, Tracks, dagmc.vtk и tracks_0.vtp.
    9. После запуска рабочего процесса некоторые пользователи могут захотеть видеть происхождение и метаданные, зафиксированные при вызове рабочего процесса (run). Это можно сделать, перейдя в раздел «Пользователь » в верхней панели | Вызовы рабочих процессов. Это приводит к списку всех рабочих процессов, запускаемых пользователем, затем нажмите на стрелку вниз на интересуемом рабочем процессе, а затем можно скачать метаданные JSON, нажав кнопку Download BioCompute Object . В ней содержится происхождение используемых инструментов/рабочих процессов, используемых входных данных и т.д.
      ПРИМЕЧАНИЕ: Движок рабочих процессов также записывает полную историю выполнения каждого процесса, включая контрольные суммы входных файлов, версии инструментов и значения параметров. Чтобы скачать запись происхождения для запуска, откройте панель История , нажмите на меню (стрелка вниз) в правом верхнем углу и выберите Экспорт истории в файл. Экспортируемый архив содержит все наборы данных и машиночитаемую запись этапов, которые их создали.
      Сохранение происхождения или историй, генерируемых движком рабочих процессов, может быть автоматизировано через API, описанный в разделе 5.1; однако в этом протоколе это не будет подробно описано.
  3. Более сложный рабочий процесс
    ПРИМЕЧАНИЕ: Этот рабочий процесс расширяет раздел 2.2, добавляя этапы постобработки, которые создают универсальные файлы описания сцены (USD), необходимые для визуализации на платформе метавселенной. Поскольку ни один инструмент не конвертирует напрямую из DAGMC (.h5m) или VTK (vtp) в USD, конвейер маршрутизирует данные через две многоступенчатые цепочки преобразования: геометрия CAD следует конвейеру H5M, STL, OBJ, USD, а треки нейтронов — по H5, VTP, OBJ, USD.
    1. Следуйте шагам для настройки рабочего процесса, как показано в разделе 2.2, следуя рабочему процессу, показанному на рисунке 4.
    2. Определите два входа на уровне рабочего процесса, как в шаге 2.2.4, назвав их CAD DAGMC и Config File.
    3. Добавьте инструмент OpenMC Neutronics Simulation и подключите входы CAD DAGMC и Config File к соответствующим входам, как в шаге 2.2.3.
    4. Создайте цепочку нейтронного преобразования. Добавьте Tracks h5 в vtp, vtp в obj и obj в инструменты USD, а затем подключите выходы каждого к входам следующей, следуя расположению нижней ветви рисунка 4.
    5. Создайте цепочку преобразования CAD. Добавьте h5m в STL, STL в OBJ и OBJ в USD, а затем снова подключите выходы каждого к входам следующего, следуя расположению верхней ветви на рисунке 4.
    6. Сохраните рабочий процесс, который теперь готов к использованию на платформе метавселенной через расширение в разделе 3.
      ПРИМЕЧАНИЕ: Эти дополнительные шаги показывают пользователям, как можно делиться рабочими процессами и инструментами, обеспечивая воспроизводимость и доступ к данным и методам получения результатов.
    7. Экспортируйте рабочий процесс как портативный файл, перейдя в раздел «Рабочий процесс » в верхней панели, кликнув по меню (стрелка вниз) и выбрав «Скачать». Менеджер рабочих процессов сохраняет .ga JSON-файл, который затем может быть использован любым, у кого есть те же инструменты на своём экземпляре движка рабочих процессов. Это можно импортировать через Workflow в верхней панели | Импорт.
    8. Делитесь инструментами, фиксируя galaxy-tools/ папку клонированного репозитория на публичный хост контроля версий. Попросите сотрудников клонировать это, чтобы получить доступ ко всем контейнеризованным инструментам, запуская их так же, как на локальном устройстве издателя.
      ПРИМЕЧАНИЕ: Можно настроить публичные менеджеры рабочих процессов, что обходит ручное совместное использование файлов рабочих процессов и инструментов между локальными развертываниями. В таких случаях инструменты доступны всем пользователям, а рабочие процессы и истории могут быть открыты для всех остальных пользователей. Это выходит за рамки данного протокола, но более подробную информацию можно найти в официальной сети Galaxy Training о получении постоянного развертывания: https://training.galaxyproject.org/training-material/topics/admin/tutorials/ansible-galaxy/tutorial.html или docker compose стек, указанный в репозитории, могут быть развернуты как есть на сервере и затем маршрутизированы через прокси или аналогичный способ для общедоступного доступа.

3. Запуск рабочего процесса с платформы метавселенной

  1. Запуск рабочего процесса
    1. В окне расширения платформы метавселенной нажмите «Получить рабочие процессы » (аннотация 2, рисунок 5). В выпадающем меню появится все рабочие процессы, доступные в учетной записи движка рабочих процессов, связанные с API-ключом, хранящимся в default.json. Если это не так, проверьте, правильно ли сохранен ключ API в JSON-файле, и запустите приложение платформы метавселенной, чтобы убедиться, что оно получит ключ.
    2. Выберите Сложный рабочий процесс для списка и нажмите Получить входные данные (аннотация 4, рисунок 5). Поля ввода, определённые в рабочем процессе (шаг 2.3.2), будут отображаться и иметь одинаковое название.
    3. Для каждого файлового входа нажмите «Выбрать файл » и используйте всплывающее окно проводника файлов, чтобы выбрать соответствующий локальный файл: dagmc.h5m для входа CAD DAGMC и openmc_config.json для входа Config File .
    4. Нажмите «Запустить рабочий процесс» (аннотация 6, рисунок 5). В разделе «Информация» (аннотация 7) будет отображаться сообщение о подтверждении запуска. После завершения рабочего процесса дополнительные сообщения подтверждают, что выходные файлы сохранены и запуск завершён.
      ПРИМЕЧАНИЕ: Прогресс заданий можно отслеживать на веб-интерфейсе движка рабочих процессов в http://localhost:8080, перейдя в раздел Admin | Jobs. Требуется доступ администратора (см. шаг 1.2.2).
  2. Визуализация результатов
    ПРИМЕЧАНИЕ: После завершения каждого запуска процесса система автоматически загружает выходные файлы из движка рабочего процесса в локальную директорию вывода. Путь сохранения управляется клавишей output_dir в файле default.json расширения. Каждый запуск хранится в папке с меткой времени, поэтому выходные данные можно различать по расширению. Если на платформе метавселенной возникают проблемы с визуализацией, файлы можно получить доступ в этих папках и просмотреть вручную, чтобы понять, связана ли проблема с движком рабочего процесса.
    1. В платформе метавселенной расширите раздел Файлового менеджера (аннотация 1, рисунок 6) и нажмите Обновить (аннотация 2). Это получает список завершённых запусков рабочих процессов, сохранённый в локальной директории.
    2. В выпадающем меню «Папки» (аннотация 3, рисунок 6) выберите папку для текущего запуска рабочего процесса (убедитесь, что это единственная, которая сейчас там есть) и снова нажмите « Обновить », чтобы заполнить выпадающее меню « Файлы » результатами из этого запуска.
    3. Выберите файл из выпадающего списка «Файлы » (аннотация 4, рисунок 6; в настоящее время поддерживаются только файлы .usd, .txt, .json и .out ), затем нажмите «Pull File » (аннотация 5). Текстовые файлы отображаются в панели Info , USD-файлы добавляются в текущую сцену и должны визуализироваться в главном вью-окне.
    4. Чтобы выровнять импортированную геометрию с координатной конвенцией Omniverse, откройте панель Stage справа, выберите оба импортированных объекта рабочего процесса, а в панели Property чуть ниже установите Turn X на −90°. Это исправляет несоответствие между конвенцией z-up, используемой инструментами экспорта USD, и конвенцией y-up от Omniverse. Примените эту ротацию как к файлу CAD USD, так и к файлу треков USD; ожидаемое состояние обзора после выравнивания показано на рисунке 8.
    5. Наконец, чтобы получить больший контраст между деталями, можно назначить материалы. Это достигается открытием вкладки «Материалы » внизу приложения, выбором материала и перетаскиванием и перетаскиванием на геометрию в виде «Сцена » в правом столбце. Сделайте это для обеих импортированных геометрий, чтобы увеличить контраст между ними.

4. Добавление новых инструментов

ПРИМЕЧАНИЕ: В этом разделе описывается процесс разработчика по созданию и развертыванию новых инструментов для рабочих процессов. Для отладки требуется доступ к файловой системе репозитория и доступ администратора к движку рабочих процессов. Пользователям, которым нужно запускать только существующие инструменты и рабочие процессы или создавать рабочие процессы, не обязаны следовать этому разделу.

  1. Общий процесс
    1. Разрабатывайте и тестируйте симуляционный или обработочный скрипт независимо от движка рабочего процесса перед его завершением. Обёртка инструментов вызывает существующий рабочий скрипт, поэтому реализация новой логики при разработке инструмента не рекомендуется.
    2. Подготовьте среду выполнения скрипта, создав образ Docker, включающий все зависимости во время выполнения (библиотеки, бинарные файлы, файлы данных и т.д.), необходимые скрипту.
      ПРИМЕЧАНИЕ: Все примерные инструменты в этом протоколе используют контейнеры Docker в качестве среды выполнения. Среды Conda также поддерживаются движком рабочих процессов, но здесь не продемонстрированы. Дополнительную информацию о Docker можно найти в официальной документации, а хороший вводный курс можно найти здесь: https://uomresearchit.github.io/docker-introduction/ .
    3. Создать XML-файл определения инструмента, который объявляет среду выполнения (в данном случае Docker), команду для вызова скрипта, а также входы, выводы и метаданные инструментов для отображения в интерфейсе движка рабочего процесса.
    4. После создания оболочки поместите XML и все скрипты в новую папку galaxy-tools// в репозитории. Добавьте новую запись для инструмента в galaxy-tools/tool_conf.xml под соответствующими тегами <раздела> , указывающую на относительный путь файла для недавно созданного XML-файла.
      ПРИМЕЧАНИЕ: Убедитесь, что имя файла скопировано точно, так как это распространённая ошибка при попытке развернуть новые инструменты. Если запись tool_conf.xml содержит неправильный путь или в XML-файле есть синтаксическая ошибка, экземпляр движка рабочего процесса не запустится. Чтобы проверить журналы контейнеров рабочего процесса на наличие сообщений об ошибках, выполните следующее из корня репозитория:
      «Docker Compose Logs Galaxy»
      Ошибки разбора XML отображаются в виде строк инструмента загрузки ERROR
    5. Переразверните движок рабочего процесса для загрузки нового инструмента, запустив скрипт перезапуска из корня репозитория: ./restart-galaxy.sh.
    6. Убедитесь, что инструмент зарегистрирован правильно. Перейдите в http://localhost:8080, найдите инструмент в панели инструментов и нажмите на него, чтобы убедиться, что все входные данные отображаются как ожидается. Если инструмент отсутствует, следуйте примечанию выше для отладки, а если ошибки остаются — проверьте синтаксис самого XML инструмента, так как это также может привести к ошибкам развертывания.
    7. Запускайте новый инструмент как раньше, но с уже протестированными входами. Выходы должны стать зелёными в панели истории
    8. Если инструменты не работают, то как администратор кликните на неудачный (красный) вывод и нажмите на значок Информация . Там отображается подробная страница вывода и отображаются потоки stdout и stderr. Их можно расширить для получения дополнительной информации по отладке инструмента.
  2. Простые инструменты
    ПРИМЕЧАНИЕ: Инструменты 1–5 иллюстрируют постепенно более сложные узоры обёртки. XML-файл и любые скрипты для каждого инструмента находятся в соответствующем подкаталоге galaxy-tools/simple// репозитория. Развернуть и запустить каждый инструмент, следуя шагам 4.1.4–4.1.5 и разделу 2.1.
    Инструмент 1 – Запуск простой команды
    1. Посмотрите файл galaxy-tools/simple/1/1.xml . Элемент требований определяет среду выполнения Linux. Командный элемент содержит команду echo для запуска.
    2. Запускайте Tool 1 через интерфейс движка рабочих процессов без необходимости вводных файлов. Поскольку выходные файлы также не определены, как администратор перейдите на страницу Admin, Jobs , затем нажмите на значок Information , чтобы увидеть потоки stdout и stderr — это то же самое, что и в шаге 4.1.8. Поток stdout должен содержать только строку 'hello world' из команды в XML-файле.
      Инструмент 2 — Использование текстового ввода
    3. Посмотрите на файл galaxy-tools/simple/2/2.xml . Теперь в поле входа есть запись с параметром type="text ", а раздел команд ссылается на входную переменную по тегу имени.
    4. Запусти Tool 2 как раньше; На этот раз дайте инструменту ввод строки. Это может быть всё, что пожелает пользователь. Посмотрите выход как в шаге 4.2.2, и выход stdout должен быть строкой, которую пользователь ввел во входе инструмента.
      Инструмент 3 – Использование файлового ввода
    5. Опять же, посмотрите на файл инструментов; Теперь вместо входа строки входный параметр использует тег type="data", что позволяет использовать файл. В разделе команд это указывается как путь к файлу, снова с использованием имени входного параметра.
    6. Создайте .txt-файл с помощью локального текстового редактора, если нет запуска:
      'эхо "Привет, мир из файла" > test_files/input.txt'
      из корневой папки репозитория для генерации примерного входа.
    7. Загрузите созданный .txt файл, как в шаге 2.1.1, а затем запустите Tool 3 как раньше, выбрав загруженный .txt файл в качестве входа. Опять же, просмотрите stdout так же, и содержимое файла .txt должно отображаться там. Если использовать приведённую выше команду, результат должен быть «hello world from a file».
      Инструмент 4 – Запись вывода в файл
    8. Посмотрите galaxy-tools/simple/4/4.xml. Раздел выходов теперь объявляет именованный выходной файл, который можно использовать в разделе команд.
    9. Запустите инструмент как раньше с .txt входом, но теперь вместо просмотра вывода как администратора это будет видно обычному пользователю в этой панели истории , и при успешном запуске он станет зелёным и сможет быть скачано или просмотрено в движке рабочего процесса, как подробно описано в предыдущих разделах.
      Инструмент 5 – Запуск скриптов в инструментах
    10. Посмотрите galaxy-tools/simple/5/5.xml и сопутствующий python-скрипт galaxy-tools/simple/5/5.py. В XML команда ссылается на скрипт Python из каталога инструментов, а раздел требований теперь ссылается на образ Python, так как для запуска скрипта нужен Python.
    11. Если развернуть и запустить инструмент таким же образом, он должен вести себя так же, как Инструмент 4 (шаг 4.2.9), только на этот раз запускается скрипт, а не команда напрямую.
  3. Пример сложного инструмента
    ПРИМЕЧАНИЕ: В этом разделе документируется разработка нейтронного инструмента как проверенный пример схемы, описанной в разделе 4.1. Соответствующие файлы находятся в galaxy-tools/complex/openmc/ . Тот же паттерн обобщён для любого симуляционного или вычислительного кода.
    1. Разработайте скрипт запуска для симуляции. В этом примере скрипт запуска galaxy-tools/complex/openmc/openmc_run.py парсирует конфигурационный файл (openmc_config.json), записывает файл настроек нейтроники и запускает симуляцию. Тестируйте скрипт непосредственно из командной строки перед тем, как упаковать его в образ Docker.
    2. Постройте среду выполнения Docker с помощью Dockerfile по адресу galaxy-tools/complex/openmc/Dockerfile. Это расширяет публичный имидж за счёт нескольких дополнительных пакетов. Создайте и тегите локально или ссылайтесь на него из реестра контейнеров.
    3. Создайте XML-оболочку galaxy-tools/complex/openmc/openmc.xml, объявив образ Docker из шага 4.3.2 в разделе требований . Также должна быть определена команда для запуска вместе с входными и выходными файлами (как в примере в разделе 4.2).
    4. Развернуть инструмент как в шагах 4.1.4-4.1.7, а затем использовать тестовые входы, использованные в разделе 2, чтобы убедиться, что инструмент работает корректно.
      ПРИМЕЧАНИЕ: Оставшиеся инструменты в экземпляре (Tracks h5 to vtp, CAD h5m to vtk, h5m to stl, stl to obj, vtp to obj, obj to USD) — это конвертеры файлов форматов, следующие той же схеме разработки. Их XML-файлы находятся в каталоге galaxy-tools/complex/ и могут служить дополнительными справочными примерами.

5. Подключение рабочих процессов к Метавселенной

ПРИМЕЧАНИЕ: В этом разделе представлены справочные материалы для разработчиков, описывающие интеграцию API движка рабочих процессов и архитектуру расширения платформы метавселенной. Пользователям, которым нужно запускать рабочие процессы только с платформы метавселенной, следует следовать Разделу 3 и не читать этот раздел. Разработчикам, желающим подключить другое фронтенд-приложение к движку рабочих процессов, следует начинать с раздела 5.1.

  1. API движка рабочих процессов
    ПРИМЕЧАНИЕ: Galaxy предоставляет RESTful API. Библиотека Bioblend Python предоставляет более высокоуровневую обёртку вокруг этого API и служит основой для всех вспомогательных скриптов, используемых в этом протоколе. Bioblend устанавливается автоматически в соответствующих средах выполнения Docker, предоставленных в репозитории.
    1. Импортируйте Bioblend и установите соединение с движком рабочего процесса, создав объект GalaxyInstance с адресом сервера и ключом API из шага 1.5.2. В Python в среде с установленным Bioblend:
      `с bioblend.galaxy import GalaxyInstance
      gi = GalaxyInstance(url='http://localhost:8080', key=)'
      ПРИМЕЧАНИЕ: Это будет работать только для локальных развертываний, если движок рабочего процесса развернут на удалённой машине, замените локальный хост адресом и портом настроенного экземпляра.
    2. Используйте вспомогательные функции в galaxy-api/helper_functs.py для выполнения распространённых операций: перечисления доступных рабочих процессов (get_workflows), получения определений ввода рабочих процессов (get_inputs) и запуска рабочего процесса с заданными входными файлами (launch_workflow). Обратитесь к встроенным docstrings в этом файле для получения сигнатур функций и ожидаемых типов возврата.
    3. Расширяйте helper_functs.py другими функциями в зависимости от применения. Полный справочный API можно найти по адресу https://bioblend.readthedocs.io.
  2. Связывание рабочих процессов с метавселенной
    ПРИМЕЧАНИЕ: В этом разделе описывается только архитектура расширения платформы метавселенной, чтобы разработчики могли адаптировать его для различных выходов рабочих процессов, дополнительных типов файлов или альтернативных платформ метавселенной.
    1. Откройте основную точку входа расширения в omni_exts/omni.galaxy.example/. Это расширение использует базовое расширениеOmniverse 15 в качестве отправной точки. Затем добавляется вся функциональность из файла Python вспомогательных функций, описанного на шаге 5.1.2, и предоставляет интерфейс для взаимодействия с рабочими процессами.
    2. При запуске рабочих процессов данные, которые они создают, автоматически загружаются из движка рабочих процессов и хранятся локально, что позволяет визуализировать их в платформе метавселенной. Это также позволяет сохранить и сделать доступными метаданные, созданные во время запуска рабочего процесса, тем самым обеспечивая происхождение данных симуляции.
    3. Эта реализация использует нативную библиотеку Omniverse omni.ui для создания интерфейса. Основное расширение находится в папке расширений, а основная реализация интерфейса — в файле omni_exts/omni.galaxy.example/omni/galaxy/example/window.py .

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Результаты

Если симуляции запускаются с использованием предоставленных входных данных в репозитории git, следует получить следующие результаты:

После успешного завершения шага 2.1.3 как выходные наборы данных, так и для TBR и Tracks будут отображаться в панели истории зелёным цветом, что указывает на успешное выполнение. Репрезентативное значение TBR с использованием предоставленного конфигурационного файла (5 партий по ...

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Обсуждение

В протоколе есть несколько ключевых этапов. Большинство из них касается начальной настройки экземпляра движка рабочих процессов, таких как: добавление электронной почты администратора (шаг протокола 1.2.2), так как это необходимо для доступа администратора к панелям инструментов и заданий; правильная генерация ключа API для расширения платформы метавселенной (шаг протокола 1.5.3) и правильная вставка его в файл значений по умолчанию; А при добавлении инструментов, чтобы они были добавлен...

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Раскрытие информации

У авторов нет конфликтов интересов, которые нужно раскрывать.

Благодарности

Этот проект поддерживается Управлением по атомной энергии Великобритании в рамках программы термоядерной промышленности. Программа термоядерной индустрии стимулирует рост британской экосистемы термоядерного синтеза и готовит её к будущему глобальному рынку термоядерных электростанций. Более подробную информацию о Программе термоядерной индустрии можно найти онлайн: https://ccfe.ukaea.uk/programmes/fusion-industry-programme/

Пример репозитория, сопровождающего этот протокол, доступен на https://github.com/williamjsmith15/galaxy-omniverse-example (публичный форк https://github.com/UoMResearchIT/omniverse-workflows-fusion).

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Материалы

Список материалов, использованных в этой статье
ИмяКомпанияКаталожный номерКомментарии
BioblendGalaxy Projectv1.2+Python библиотека, обеспечивающая высокоуровневый обёртчик вокруг REST API Galaxy. Она используется в скриптах помощника Omniverse для перечисления рабочих процессов, получения определений входных данных и запуска задач. Устанавливается автоматически в рамках соответствующих Docker образов; установка на хосте не требуется.
Docker ContainersDockerv24.0.5Рантаيم контейнеризации, используемый для упаковки каждой симуляции и инструмента последующей обработки вместе со всеми его зависимостями, обеспечивая переносимость и воспроизводимость.
GalaxyGalaxy Projectv22.05Открытое программное обеспечение для рабочих процессов, используемое для организации цепочки инструментов симуляции и обработки и для их представления через REST API.
GitGit SCMv2+Требуется для клонирования репозитория для выполнения протокола
NVIDIA RTX GPUNVIDIA-Необходимо для рендеринга в реальном времени с лучепроследованием в Omniverse (Раздел 3). Пользователи без оборудования RTX могут выполнить все шаги до раздела 2 и использовать ParaView для визуализации (см. Обсуждение).
OmniverseNVIDIACode 2022.3.3Коллаборативная 3D платформа от NVIDIA. Она используется в качестве фронтенда визуализации и взаимодействия для выводов рабочих процессов через пользовательское расширение Kit.
ParaViewKitwarev5.11Открытое научное приложение для визуализации, используемое в качестве альтернативы для не-RTX при просмотре промежуточных выходов .vtk/.vtp.
Protocol RepositoryCustomv1.0Содержит конфигурацию Galaxy вместе со всеми XML обёртками инструментов, скриптами запуска, Dockerfiles, тестовыми данными и расширением Omniverse. Клонируется в Шаге 1.2.1. Ключевые файлы также предоставляются как прямые дополнительные загрузки (см. I.2).
PythonPythonv3.10+Рантайм, необходимый для скрипта запуска OpenMC и скриптов помощника Omniverse. Включён в соответствующие Docker образы или с загрузкой Omniverse; отдельная установка на хосте не требуется.
The OpenMC Monte Carlo CodeOpenMCv0.13.3Открытое программное обеспечение для симуляции транспорта частиц с помощью метода Монте-Карло, используемое здесь для симуляции нейтронной физики термоядерного синтеза. Это обеспечивает коэффициент образования трития (TBR) и выходы траекторий нейтронов.
Windows Subsystem for Linux (WSL)Microsoftv2Необходимо для запуска Docker на хостах Windows (установка через `wsl --install` в powershell). Пользователям Linux и Mac это не нужно.

Перепечатки и разрешения

Теги

233233GalaxyOmniverseFusion