이 콘텐츠를 보려면 JoVE 구독이 필요합니다. 로그인하거나 오늘 무료 평가판을 시작하세요.

방법 논문

메타버스 가상 실험을 위한 자동화된 시뮬레이션 워크플로우와 3D 시각화 통합

523 조회수

DOI:

10.3791/71833

2026년 7월 21일

이 논문에서

요약

3D 가상 실험의 자동화된 워크플로우에 시뮬레이션 및 데이터 처리 도구를 통합하려는 분야 전문가 연구자들을 위한 일반화되고 FAIR 준수 방법을 제시합니다. 중성자 예시로는 로컬 갤럭시 인스턴스 설정, OpenMC 및 파일 변환 도구 래핑, Omniverse에서 워크플로우 실행, 변환된 3D 출력 시각화 등이 있습니다.

초록

많은 가상 실험에서는 다양한 시뮬레이션 유형, 전처리 및 후처리 도구, 실험 결과를 시각화하는 도구와 함께 여러 소프트웨어 패키지가 사용되며, 종종 이 모든 것이 결합된 경우가 많습니다. 이들을 통합하는 일반적인 방법은 수작업으로, 각 응용 분야에 맞춘 맞춤형 솔루션이 만들어지는데, 이는 확장성이 떨어지고 공유와 재현성을 저해합니다.

이 프로토콜은 로컬 컨테이너화된 워크플로우 시스템의 배포 및 사용을 보여줍니다. 그 후 사용자는 Docker를 사용해 로컬 갤럭시 인스턴스를 실행하고, OpenMC 중성자 시뮬레이션 워크플로우를 생성 및 실행하며, 출력 데이터를 여러 포맷 변환 도구를 통해 전달하고, 결과를 ParaView와 NVIDIA Omniverse에 불러와 시각화할 수 있습니다. 컨테이너화된 배포는 1절에서 설명한 하드웨어 요구사항을 충족하는 모든 기계에서 재현성과 이식성을 촉진합니다.

시스템이 실행되면 워크플로우를 새로운 입력에 대해 수동 재구성 없이도 재실행할 수 있고, 추가 시뮬레이션 코드를 적당한 노력으로 새로운 도구로 포장할 수 있으며, 여러 워크플로우와 응용 분야에서 툴을 사용할 수 있습니다. 이 접근법은 검색 가능, 접근 가능, 상호운용 가능, 재사용(FAIR) 데이터 원칙을 지원합니다: 실행 기록은 전체 출처 메타데이터를 캡처하고, 워크플로우는 휴대용 파일로 내보낼 수 있으며 갤럭시 인스턴스 간에 직접 공유할 수 있으며, 도구는 버전 관리 컨테이너에 패키지되어 공개 저장소에 게시됩니다. 갤럭시의 펄서 시스템을 통해 고성능 컴퓨팅(HPC)이나 클라우드 자원으로의 확장성은 여기서 설명한 아키텍처의 자연스러운 확장입니다.

이 방법은 핵융합 중성자 사례 연구를 통해 입증됩니다. OpenMC는 직접 가속 기하학 몬테카를로(DAGMC) 컴퓨터 지원 설계(CAD) 기하학에서 중성자 수송을 시뮬레이션하는 데 사용되며, 삼중수소 번식비(TBR) 결과와 중성자 추적 데이터셋을 생성합니다. 시뮬레이션 워크플로우는 이후 메타버스 플랫폼인 NVIDIA Omniverse와 연결되어 호출과 시각화를 지원합니다.

서론

산업용 메타버스는 디지털 세계와 물리적 세계를 결합하여 설계, 시뮬레이션, 협업 3D 시각화를 지원합니다. 일반적으로 여러 개의 상호 연결된 디지털 트윈 구성 요소로 구성되어 전체 시스템 뷰를 제공합니다. 보잉, BMW, 아마존 등 대형 기업들이 메타버스를 만들기 위해 다양한 접근법을 취하고 있습니다. 여러 연쇄 시뮬레이션 및 처리 도구를 지원하는 시스템이 개발되어 사용 중입니다. 하지만 이러한 예시들은 일반적으로 애플리케이션분야 2에 맞게 맞춤 제작되거나, 상업용 옵션 3,4에 일부 독점 시스템에 잠기면서 사용됩니다. 디지털 트윈 구축을 위한 일부 오픈 소스 대안들은 Python Flask와 같이 내장 시뮬레이션 기능을 갖춘 시스템을 만드는 데 사용되었습니다. 그럼에도 불구하고, 이들은 특정 모델5와 관련된 특정 작업을 수행하기 위해 맞춤형 코드 조각으로 구성되어 있습니다. 이 프로토콜의 맥락에서 메타버스 플랫폼(NVIDIA Omniverse)은 3D 시각화 및 워크플로우 상호작용의 프론트엔드 역할을 합니다: 워크플로우 실행이 완료된 후 시뮬레이션 출력이 공유 씬에 로드되고, 동일한 환경 내에서 새로운 실행을 트리거할 수 있습니다. 이는 실시간 센서 피드가 모델을 지속적으로 업데이트하는 실시간 디지털 트윈 시스템과는 다릅니다; 여기서 시연된 방법은 배치 워크플로우 실행과 실행 후 결과 탐색을 지원합니다. 하지만 이는 향후 더 많은 시스템을 메타버스 플랫폼에 통합하여 워크플로우 엔진을 계산 백엔드로 삼은 디지털 트윈 생성 작업을 지원하도록 설계되었습니다.

워크플로우는 소프트웨어 도구들의 체인으로 정의할 수 있으며, 이들 간의 데이터 흐름을 명시적으로 지정합니다. 기존 시뮬레이션 코드, 처리 스크립트 및 기타 단계를 일반적인 분석 파이프라인 내에서 래핑할 수 있게 하며, 이들의 기능을 변경하지 않고, 도구 무관성을 가진 표준화된 입력과 출력으로 구성하고 재구성할 수 있게 합니다. 워크플로우는 도구 공유를 통해 결과를 쉽게 복제할 수 있게 하며, 어떤 버전의 도구, 어떤 순서로, 어떤 입력과 함께 사용되었는지에 대한 메타데이터와 출처도 제공합니다. 도구 자체는 여러 시뮬레이션 파이프라인에서 재사용할 수 있어, 연구자들이 시뮬레이션 설정에 드는 시간을 줄이고 실험 설계와 결과 탐색에 더 많은 시간을 쓸 수 있습니다. 워크플로우 시스템도 확장 가능하며, 다양한 로컬 컴퓨팅, 클라우드 및 HPC 자원에 연결하는 방법을 통해 대규모 워크플로우를 특정 하드웨어에서 자동화된 방식으로 실행할 수 있습니다.

일반적인 수동 접근법은 본질적으로 느리고 오류가 잦으며 재현이 어렵기 때문에, 연구자가 각 시뮬레이션 또는 후처리 도구를 직접 실행하고, 중간 파일을 환경 간 이동하며, 개별 실행 입력과 출력을 문서화해야 합니다. 반면, 워크플로우 관리자는 데이터 흐름을 한 번 형식화하고 결정론적으로 재실행합니다. 이는 수동 파이프라인에 비해 많은 이점을 가져옵니다: 동일한 워크플로우를 서로 다른 입력에 동일하게 실행할 수 있어 맞춤형 스크립팅 없이도 파라미터 연구를 지원할 수 있습니다; 모든 실행은 자동으로 전체 출처 메타데이터를 캡처하여 재현성 격차를 해소합니다; 도구가 랩핑되면, 이후 워크플로우에서 재사용 비용이 거의 0에 가깝게 감소하며, 계산 시간을 제외하고는 그렇지 않습니다. 이러한 이점은 Wratten 등7에 의해 생물정보학에, Perez-Riverol과 Moreno8 , Verhoeven 등 9에 의해 단백질체학/대사체학에 대해 정량화되었습니다.

역사적으로 워크플로우는 주로 생물정보학 분야에서 사용되었으며, 2022년까지 5만 명 이상의 사용자, 2,500만 개의 도구, 4,700만 건 이상의 작업, 26만 건의 워크플로우 실행을 수행한 유럽 갤럭시 서버10,11과 같은 대규모 공개 인스턴스에서 큰 성공을 거두었습니다. 동일한 워크플로우 엔진 스택은 Pulsar 분산 작업 실행 시스템 6,11을 통해 HPC 및 클라우드 자원 확장을 지원하며, 10개 유럽 국가의 13개 Pulsar 엔드포인트에 걸쳐 운영 배포를 진행하고 있습니다. Snakemake, Nextflow, Toil, CWL 호환 엔진 등 다양한 워크플로우 관리자 중에서 Galaxy 워크플로우엔진 11이 몇 가지 이유로 선택되었습니다. 주요 이유 중 하나는 주로 명령줄로 일하지 않는 도메인 전문가들의 진입 장벽을 낮춘 성숙한 브라우저 기반 인터페이스입니다; 완전한 표현 상태 전송(REST) 애플리케이션 프로그래밍 인터페이스(API)를 노출하며(현재 작업에서 메타버스 프론트엔드로 연결되는 데 사용됨), 그 역사와 직업 모델은 비전문 협력자에게도 쉽게 드러날 수 있는 형태로 출처를 포착합니다; 그리고 앞서 언급한 Pulsar 시스템을 통한 투명한 HPC 오프로드를 지원합니다(이 부분은 이 논문의 프로토콜 섹션에서는 다루지 않습니다). 그러나 이 논문에서 설명한 접근법은 원칙적으로 워크플로우-엔진에 구애받지 않으며, 동등한 통합은 대체 엔진 위에 구축할 수 있습니다. 이 작업의 기여는 워크플로우 관리자 자체가 아니라, 원래 생물정보학을 위해 개발된 범용 워크플로우 관리자를 다른 분야로 옮기고(여기에는 핵융합 중성자학의 구체적 예시), 산업용 메타버스 플랫폼(NVIDIA Omniverse)과의 통합, 완전 컨테이너화된 로컬 배포 가능한 스택 내에서 3D 가상 실험에 적용된 점에 있습니다.

마지막으로, 컨테이너화는 코드를 운영체제와 실행에 필요한 모든 의존성을 패키지화하여 많은 소프트웨어를 공유할 수 있게 합니다. 이러한 환경은 의존성 누락 문제와 일부 시뮬레이션 코드 설치 번거로움을 피합니다. 가상 머신과 목적이 비슷하지만 훨씬 가볍고 휴대성이 뛰어납니다. 이들은 소프트웨어 패키지의 공유 가능성과 재현성을 획기적으로 높여줍니다. 이 방법에서는 워크플로우 관리자와 개별 도구가 Docker12 컨테이너에서 실행되어, 사용자가 컨테이너를 실행할 수 있는 한 다양한 운영체제와의 호환성이 향상됩니다.

이 프로토콜은 융합 중성자 엔지니어, 계산 유체역학 분석가, 유한 요소 전문가 등 자신의 분야의 시뮬레이션 도구에 능숙하지만 워크플로우 관리자나 컨테이너 기반 배포를 사용해본 적 없는 분야 전문가 연구자를 위한 것입니다. 단일 시뮬레이션 코드와 기본 명령줄 연산에 익숙함을 가정하며; 갤럭시나 옴니버스에 대한 친숙함은 그렇지 않습니다. 컨테이너화에 익숙하지 않은 독자는 공식 Docker 문서(https://docs.docker.com/) 또는 입문 교육을 참고해야 합니다: 섹션 1을 따르기 전에 https://uomresearchit.github.io/docker-introduction/ ; 소프트웨어를 실행하는 데 필요한 기본 명령어는 모두 프로토콜 내에 포함되어 있습니다.

이 보고서의 나머지 부분은 로컬 배포 가능한 시스템의 설정과 사용에 대해 다룰 것입니다. 그 후 시스템을 위한 새로운 도구 개발과 메타버스 플랫폼과 같은 외부 패키지를 워크플로우 엔진에 연결하는 방법을 개발하는 단계가 진행됩니다. 보고서 전반에 걸쳐 OpenMC13 을 이용한 중성자 시뮬레이션이 사례 연구로 사용되고 있습니다. OpenMC가 선택된 이유는 워크플로우 아키텍처를 동기부여하는 CAD-시뮬레이션-출력 시각화 파이프라인을 완성하기 때문입니다. 기하학 파일과 구성 파일이 구조화된 입력 역할을 하며; 몬테카를로 중성자 수송 시뮬레이션은 알려진 값 범위와 비교할 수 있는 스칼라 지표(삼중수소 번식비, TBR)와 공간적으로 해석된 중성자 추적 데이터셋을 생성하며, 이를 처리하여 메타버스 응용 분야에서 3D 렌더링을 위해 시각화 가능한 형식으로 제시할 수 있습니다.

액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.

프로토콜

참고: 로컬 워크플로우 엔진 설정, 워크플로우 구축, 실행 및 시각화 출력에 대한 개요는 그림 1, 그림 2, 그림 3, 그림 4, 그림 5, 그림 6, 그림 7, 그림 8 나와 있습니다. 프로토콜 실행에 필요한 저장소 파일은 보충 파일 1에 제공됩니다.

1. 설정

  1. 요구 사항
    참고: 이 방법은 최신 장기 지원(LTS) 버전의 Ubuntu 22.04.1 LTS에서 테스트되었습니다. 다른 우분투 버전이나 다른 배포판도 작동할 수 있지만, 아직 여기서 테스트된 적은 없습니다. 또한 Windows 시스템에서도 작동하며, Docker 백엔드로 Windows Subsystem for Linux(WSL)를 활용합니다.
    1. Windows 사용자분들: WSL을 다운로드하고 설정하세요. Docker는 필수 사항입니다.
    2. Docker를 다운로드한 후 다음 실행을 통해 검증합니다:
      `도커 런 헬로-월드'
      환영 메시지가 표시되어야 합니다.
    3. 런처를 통해 NVIDIA Omniverse 런처와 Omniverse 앱 중 하나를 다운로드하세요.
      참고: NVIDIA Omniverse의 실시간 레이 트레이싱 렌더링은 RTX급 GPU가 필요합니다. 이 하드웨어가 없는 사용자도 섹션 2를 통해 전체 워크플로우를 실행하고 ParaView에서 중간 .vtk / .vtp 출력을 검사할 수 있습니다(토론 참조). 이 사용자는 섹션 3을 건너뛸 수 있는데, 섹션 3은 메타버스 플랫폼에만 해당하기 때문입니다; 여기서 워크플로우 엔진을 통합하는 방법들은 다른 메타버스 플랫폼과 연결할 때 유용할 수 있습니다.
      이 프로토콜은 Omniverse Code라는 앱을 사용하지만, 다른 Omniverse 앱들도 대체로 비슷할 것입니다. 필수는 아니지만, ParaView는 이 프로토콜에서 도구들이 생성하는 중간 파일 일부를 시각화하는 데 사용할 수 있습니다.
  2. 저장소
    1. 로컬 워크플로우 엔진 인스턴스와 이 논문에 설명된 도구에 필요한 모든 파일과 스크립트를 담은 저장소를 복제합니다:
      '복제 https://github.com/williamjsmith15/galaxy-omniverse-example.git 해라'
    2. 관리자 이메일 주소를 관리자 사용자 목록에 추가하세요.
      참고: 이 기능은 일부 워크플로우 엔진 기능에 필요한 관리자 권한을 부여하며, galaxy-config/galaxy.yml 파일의 admin_users 섹션에서 찾을 수 있습니다(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에 위치해 있습니다.
      참고: 이 기능을 통해 메타버스 플랫폼의 확장 기능이 읽히고, 개인 설정을 추가하거나 로드 간에 유지할 수 있습니다—갤럭시 인스턴스를 설정한 후 추가 변경이 있을 예정입니다.
  3. 로컬 워크플로우 엔진 서버 실행
    1. 저장소 최상위 레벨에서 start-galaxy.sh 파일을 실행하여 워크플로우 엔진 인스턴스를 실행하세요:
      './start-galaxy.sh'
      만약 파일이 여기서 실행되지 않는다면, 저장소 클론에서 권한이 변경된 경우 실행 파일로 만들어야 할 수도 있습니다. 이는 다음과 같은 실행 방식으로 할 수 있습니다:
      'chmod a+x start-galaxy.sh'
      참고: 윈도우 사용자는 반드시 WSL 터미널을 통해 이를 완료해야 합니다. 이 과정에서 관련 파일을 다운로드하고 워크플로우 엔진 인스턴스가 실행되며, 같은 기기에서 http://localhost:8080 브라우저에서 볼 수 있습니다. 이 경우 그림 1에 보이는 페이지를 표시해야 합니다; 그렇지 않다면 기다렸다가 새로고침하세요—워크플로우 엔진 인스턴스가 실행되는 데 시간이 걸릴 수 있습니다(특히 첫 번째 시도).
      1. 일반적으로 워크플로우 엔진 인스턴스의 저장소에서 변경된 내용을 보려면 './restart-galaxy.sh' 또는 './stop-galaxy.sh'를 실행한 후 스크립트를 다시 실행하세요.
  4. 메타버스 플랫폼 구성
    1. 런처와 앱(예시: Omniverse Code)을 다운로드한 후 앱을 실행하세요.
    2. 창 왼쪽 상단에서 확장 탭을 클릭하세요(다른 앱에서는 창 | 연장).
    3. 확장 프로그램 창에서 회색 설정 버튼을 클릭하세요; 이미 채워진 디렉터리 몇 개가 있는 창이 나타납니다. 녹색 플러스 버튼을 눌러 omni_exts 폴더를 가리키는 또 다른 경로를 추가하고, '/galaxy-omniverse-example/omni_exts' 형식을 가진 경로를 추가하세요; 자세한 내용은 그림 2를 참조하세요.
    4. THIRD PARTY 탭 왼쪽 열에 'OMNI GALAXY EXAMPLE'이라는 새 항목을 찾아보세요. 이 확장 프로그램의 슬라이더를 켜기로 바꾸고, 확장 창이 나타날 때까지 기다리세요.
    5. 앱이 실행될 때마다 자동으로 확장 프로그램을 불러오도록 자동 로드 체크박스를 선택하세요.
      참고: 확장 파일에 변경된 사항은 저장 시 자동으로 보존되어야 하며, Omniverse는 확장자의 핫 리로드를 허용합니다
  5. 워크플로우 엔진 계정 생성과 메타버스와의 연결
    1. 워크플로우 엔진 인스턴스에서는 상단 바의 로그인 또는 등록 버튼을 클릭한 후 여기 등록 버튼을 클릭한 후 1.2.2단계에서 추가한 이메일 주소로 세부 정보를 입력해 관리자 권한이 있는 계정을 생성하세요.
    2. API가 워크플로우 엔진과 통신할 수 있도록 API 키를 생성하세요. 상단 바의 사용자 드롭다운으로 가세요 | 선호도 | API 키를 관리하세요. 키를 만들어서 복사하세요.
    3. 키가 생성되면, 빈 인용 부호의 'galaxy_api_key' 필드 아래 Step 1.2.3에서 생성된 default.json 파일에 추가하세요.
      주의: 이 파일은 이제 API 키를 보유하게 됩니다. 이 API 키는 작업을 실행하고 관련 계정의 데이터에 접근할 수 있습니다. 공개 도메인이나 IP 주소가 없는 로컬 배포에서는 문제가 되지 않아야 합니다; 이 파일은 여전히 비밀로 취급되어야 하므로 공개 저장소에 공유되거나 커밋되지 않아야 합니다(이 문제를 해결하기 위해 .gitignore에 기본적으로 해당 파일이 나열되어 있습니다).
    4. 메타버스 플랫폼 앱을 재실행하여 기본 파일에 반영된 변경 사항을 새로고침하세요.
      참고: API 키는 확장 창의 서버 설정 드롭다운에 직접 추가할 수도 있지만, 세션 간에 지속되지는 않습니다.

2. 워크플로우 엔진에서 작업 실행

  1. 단일 도구
    참고: 단일 도구는 개별 처리 또는 시뮬레이션 단계를 개별적으로 실행하고 점검할 수 있게 해주며, 입력이 올바르게 포맷되어 있고 도구가 기대에 맞게 작동하는지 확인한 후 워크플로우에 통합하는 데 유용합니다. 아래에 언급된 테스트 파일인 dagmc.h5m(DAGMC CAD 기하학)과 openmc_config.json(시뮬레이션 구성)는 복제된 저장소의 test_files 디렉터리에 있습니다.
    1. 왼쪽 열의 Upload Data 아이콘을 클릭해 필요한 입력 파일을 업로드하고, 로컬 파일 선택 을 선택하거나 파일 탐색기에서 이 창으로 드래그 앤 드롭하세요. dagmc.h5m (CAD 파일)과 openmc_config.json (설정 파일)을 업로드한 후, 시작 버튼을 눌러 현재 기록으로 업로드하세요. 업로드가 완료되면 두 파일 모두 오른쪽 히스토리 패널에 초록색으로 표시됩니다.
    2. 랜딩 페이지 왼쪽 열에서 복잡한 도구 드롭다운을 선택한 후 OpenMC 중성자 시뮬레이션 도구를 선택하세요.
    3. 이제 도구 전용 페이지에서 Step 2.1.1에 업로드된 파일에서 입력을 선택하고 CAD 파일을 dagmc.h5m 데이터셋으로, 설정 파일을 openmc_config.json 데이터셋으로 선택하세요.
    4. 실행 버튼을 클릭하세요. 두 개의 새로운 파일(TBR과 트랙)이 화면 오른쪽의 히스토리 패널에 나타납니다. 작동 중에는 주황색, 완료되고 성공하면 초록색으로 변하며, 빨간색은 도구 고장을 나타냅니다. 디버깅 단계에 대해서는 4절을 참조하세요.
    5. TBR(삼중수소 번식 비율) 값을 시각화하여 테스트 케이스가 성공적으로 실행되었는지 확인할 수 있습니다. TBR 출력을 클릭해 확장하고, 그래프 아이콘을 클릭한 다음, 에디터를 클릭하세요. 이렇게 하면 TBR 결과가 나오는데, 약 0.76 정도가 되어야 합니다(이 방법은 통계적 방법이며, 시뮬레이션 속도를 위해 작은 표본 크기를 사용하기 때문에 결과에 따라 달라질 수 있습니다).
      참고: TBR 값은 확률적입니다; 0.76 값은 ±0.01 정도 변동할 수 있으며, 이는 빠른 예제 워크플로우를 위해 의도적으로 적은 입자 수(1,000개 입자 5배치)를 반영합니다. 값 범위를 줄이려면, openmc_config.json 파일의 설정 필드에서 배치와 입자 수를 늘리고 다시 실행하세요. 여기서 제시된 단순 기하학적 경우의 지침으로, 10,000개의 입자를 50번 배치하면 이후 실행에서 TBR 값의 산란을 줄이지만, 그 대신 더 긴 실행 시간을 감수해야 합니다.
    6. 워크플로우의 Tracks 출력에서 결과를 후처리하기 위해 다른 도구들을 실행할 수도 있습니다. Tracks 출력에서 Tracks h5 to vtp 툴을 실행하고, dagmc.h5m 입력 파일에 CAD h5m to vtk 툴을 실행하세요. 이 두 파일 모두 하나의 출력물인 tracks_0.vtp dagmc.vtk를 생성하여 더 쉽게 시각화할 수 있는 형식으로 변환합니다.
    7. 이전 단계에서 생성된 출력은 인스턴스에서 다운로드할 수 있습니다( 출력 아이콘을 클릭한 후 저장 아이콘을 클릭하면) ParaView14 에서 시뮬레이션된 중성자 트랙을 시각화할 수 있습니다.
    8. ParaView에서 결과를 시각화하려면 다운로드한 tracks_0.vtp dagmc.vtk 출력을 가져오세요. 이 글들은 창의 왼쪽에 나타납니다. 가져온 파일 옆의 눈 아이콘을 클릭하거나, 속성 창의 아래 적용 버튼을 눌러 출력을 시각화하세요. 이는 그림 7에서 볼 수 있는 것과 유사할 것입니다.
  2. 워크플로우
    참고: 워크플로우는 완전한 처리 파이프라인을 선언된 입력과 출력이 있는 도구들의 방향 그래프로 인코딩합니다. 정의가 완료되면 동일한 워크플로우를 각 도구를 수동으로 재구성하지 않고도 어떤 입력 파일 집합에 대해서도 다시 실행할 수 있으며, 모든 실행 이력과 출처 메타데이터가 자동으로 캡처됩니다.
    1. 상단 내비게이션 바에서 워크플로우 를 클릭한 후 오른쪽 상단에서 생성 버튼을 누르세요. 워크플로우의 이름과 설명을 입력한 후(아무 말이면 괜찮습니다), 다시 만들기 를 클릭하세요.
    2. 워크플로우에 세 가지 도구를 추가하고, 도구 메뉴에서 관련 섹션을 확장하며, 섹션 2.1에서 사용하는 도구들인 OpenMC 중성자 시뮬레이션, CAD h5m을 vtk로 , Tracks h5를 vtp로 추가하세요.
    3. 도구 간 데이터 흐름을 정의하세요. 작업 공간 내에서 도구들을 드래그하려면 각 도구의 짙은 파란색 상단 바를 클릭하고 드래그하세요. 중성자 시뮬레이션 도구의 Tracks(h5) 출력을 h5 to vtp 도구의 tracks.h5 입력에 연결합니다. 출력의 화살표에서 입력의 화살표로 클릭하고 드래그하여 진행하세요.
    4. 워크플로우 수준의 입력 데이터셋을 정의하세요. 도구의 입력 섹션에서 입력 데이터셋 을 두 번 클릭하면 두 개의 입력 노드를 생성하세요. 한 단계는 설정 파일용으로, 다른 하나는 CAD 입력용으로 이름을 바꾸고, 오른쪽 속성 메뉴의 라벨 필드를 변경하면 됩니다.
    5. 구성 파일과 CAD 파일을 중성자 시뮬레이션 도구의 입력에 연결하고, CAD 파일을 h5m to vtk 도구에 연결하여 그림 3의 패턴을 따릅니다.
    6. 오른쪽 상단의 저장 아이콘을 사용해 워크플로우를 저장하세요.
    7. 워크플로우를 실행하려면 앞서 말한 것처럼 상단 바의 워크플로우 탭을 클릭한 후, 실행할 워크플로우의 재생 아이콘을 클릭하세요. 그 다음 Step 2.1.2처럼 입력을 선택하고, 도구를 실행할 때와 같이, 워크플로우 실행을 클릭하세요.
    8. 워크플로우가 실행될 때까지 기다린 후, 출력을 2.1.5 및 2.1.8 단계와 비교할 수 있습니다; 이 단계들은 매우 유사해야 합니다(다시 말하지만, 이 단계들에서 통계적 변동이 있음을 주목하세요). 히스토리 의 모든 출력이 초록색으로 바뀌었을 때 워크플로우가 성공적으로 실행된 것입니다. 여기에는 입력 데이터셋과 함께 TBR, Tracks, dagmc.vtk, tracks_0.vtp 네 개의 데이터셋이 있어야 합니다.
    9. 워크플로우가 실행된 후, 일부 사용자는 워크플로우 호출(실행)의 출처와 메타데이터를 볼 수 있기를 원할 수 있습니다. 이는 상단 바의 사용자 | 워크플로우 호출 항목을 탐색 하면 가능합니다. 이렇게 하면 사용자가 실행한 모든 워크플로우 목록이 나타나고, 관심 있는 워크플로우의 아래 화살표를 클릭한 후 BioCompute Object 다운로드 버튼을 클릭하여 메타데이터 JSON 파일을 다운로드할 수 있습니다. 여기에는 사용된 도구/워크플로우, 사용된 입력 등에 대한 출처 정보가 포함되어 있습니다.
      참고: 워크플로우 엔진은 입력 파일 체크섬, 도구 버전, 매개변수 값 등 모든 워크플로우 실행에 대한 완전한 실행 기록도 기록합니다. 런행의 출처 기록을 다운로드하려면 히스토리 패널을 열고 오른쪽 상단의 메뉴(아래쪽 화살표)를 클릭한 후 '히스토리 내보내기'를 선택하세요. 내보내진 아카이브에는 모든 데이터셋과 이를 생성한 단계에 대한 기계 판독 기록이 포함되어 있습니다.
      워크플로우 엔진이 생성한 출처나 이력의 저장은 5.1절에서 논의된 API를 통해 자동화할 수 있습니다; 하지만 이 프로토콜에는 자세히 다루지 않을 것입니다.
  3. 더 복잡한 워크플로우
    참고: 이 워크플로우는 섹션 2.2를 확장하여 메타버스 플랫폼에서 시각화에 필요한 범용 장면 설명(USD) 파일을 생성하는 후처리 단계를 추가합니다. DAGMC(.h5m)나 VTK(vtp)에서 USD로 직접 변환하는 단일 도구는 없기 때문에, 파이프라인은 두 개의 다단계 변환 체인을 통해 데이터를 라우팅합니다: CAD 기하학은 H5M, STL, OBJ, USD를 따르고, 중성자 트랙은 H5, VTP, OBJ, USD를 따릅니다.
    1. 그림 4에 표시된 워크플로우를 따라 2.2절에 표시된 워크플로우를 설정하는 단계를 따라가세요.
    2. Step 2.2.4에서 사용하는 두 워크플로우 수준의 입력을 정의하고, 이를 CAD DAGMC Config File으로 명명합니다.
    3. OpenMC 중성자 시뮬레이션 도구를 추가하고, 2.2.3단계에 따라 CAD DAGMC 설정 파일 입력을 해당 입력에 연결하세요.
    4. 중성자 변환 사슬을 만들어. Tracks h5를 vtp에, vtp에서 obj로, obj를 USD 툴에 추가한 후, 각 도구의 출력을 다음 도구의 입력에 연결하세요. 그림 4 하단 분기의 레이아웃에 따라 합니다.
    5. CAD 변환 체인을 만드세요. h5m을 STL로, STL에서 OBJ, OBJ에서 USD 툴을 추가한 후, 각 도구의 출력을 다음 입력에 다시 연결 하는데, 이는 그림 4의 상단 분기의 레이아웃에 따라 수행됩니다.
    6. 워크플로우를 저장하세요. 이제 섹션 3의 확장을 통해 메타버스 플랫폼에서 사용할 준비가 되었습니다.
      참고: 이 추가 단계들은 워크플로우와 도구가 어떻게 공유될 수 있는지 사용자에게 보여주어, 결과 생성에 사용되는 데이터와 방법에 대한 재현성과 접근성을 가능하게 합니다.
    7. 상단 바의 워크플로우 로 이동해 메뉴(아래쪽 화살표)를 클릭한 후 다운로드를 선택해 작업 흐름을 휴대용 파일로 내보내세요. 워크플로우 관리자는 .ga JSON 파일을 저장하여, 동일한 도구를 사용하는 누구나 자신의 워크플로우 엔진 인스턴스에서 공유할 수 있습니다. 이 기능은 상단 바의 워크플로우 를 통해 가져올 수 있습니다 | 가져오기.
    8. 복제된 저장소의 galaxy-tools/ 폴더를 공개 버전 관리 호스트에 커밋하여 도구를 공유하세요. 협력자들에게 이 기능을 복제해 모든 컨테이너화된 도구에 접근하도록 요청하고, 퍼블리셔의 로컬 기기에서 실행하는 것과 동일하게 작동시키세요.
      참고: 공개 워크플로우 관리자 인스턴스를 구성할 수 있어, 로컬 배포 간 워크플로우 및 도구 파일을 수동으로 공유하는 것을 우회할 수 있습니다. 이 경우 도구는 모든 사용자가 접근할 수 있으며, 워크플로우와 기록이 다른 모든 사용자에게 공개될 수 있습니다. 이 프로토콜의 범위를 벗어난 것이지만, 영구 배포에 관한 공식 Galaxy Training 네트워크에서 더 많은 정보를 찾을 수 있습니다: 저장소에 제공된 https://training.galaxyproject.org/training-material/topics/admin/tutorials/ansible-galaxy/tutorial.html 또는 도커 컴포스 스택을 서버에 그대로 배포한 후 프록시 등 유사한 경로를 통해 공개적으로 접근 가능하게 할 수 있습니다.

3. 메타버스 플랫폼에서 워크플로우를 실행하기

  1. 워크플로우 시작
    1. 메타버스 플랫폼 확장 창에서 워크플로우 가져오기 (주석 2, 그림 5)를 클릭하세요. default.json에 저장된 API 키와 연관된 워크플로우 엔진 계정에서 사용 가능한 모든 워크플로우가 드롭다운에 표시됩니다. 만약 그렇지 않다면, API 키가 JSON 파일에 올바르게 저장되었는지 확인하고, 메타버스 플랫폼 앱을 재실행하여 키가 제대로 인식되는지 확인하세요.
    2. 목록의 복잡한 워크플로우를 선택한 후 입력 받기(Figure 5, 주석 4)를 클릭하세요. 워크플로우(Step 2.3.2)에서 정의된 입력 필드가 나타나고 이름도 동일하게 유지되어야 합니다.
    3. 각 파일 기반 입력에 대해 파일 선택을 클릭한 후 파일 탐색기 팝업을 사용해 해당 로컬 파일을 선택하세요: CAD DAGMC 입력은 dagmc.h5m, 설정 파일 입력은 openmc_config.json.
    4. 실행 워크플로우(주석 6, 그림 5)를 클릭하세요. 발사 확인 메시지는 정보 섹션(주석 7)에 표시됩니다. 워크플로우가 완료되면 추가 메시지가 출력 파일이 저장되었고 실행이 완료되었음을 확인합니다.
      참고: 워크플로우 작업 진행 상황은 관리자 | 작업 항목을 탐색하여 워크플로우 엔진의 웹 인터페이스에서 http://localhost:8080 모니터링할 수 있습니다. 관리자 권한이 필요합니다(1.2.2단계 참조).
  2. 결과 시각화
    참고: 각 워크플로우 실행이 완료되면, 시스템은 워크플로우 엔진에서 출력 파일을 로컬 출력 디렉터리로 자동으로 다운로드합니다. 저장 경로는 확장 프로그램의 default.json 파일의 output_dir 키로 제어됩니다. 각 실행은 타임스탬프가 찍힌 폴더에 저장되어 확장자로 출력을 구분할 수 있습니다. 메타버스 플랫폼에서 시각화에 문제가 있다면, 이 파일들을 이 안에 접근해 수동으로 확인하여 문제가 워크플로우 엔진에 있는지 확인할 수 있습니다.
    1. 메타버스 플랫폼에서 파일 관리자 섹션(주석 1, 그림 6)을 펼친 후 새로고침 (주석 2)을 클릭하세요. 이 과정은 로컬 디렉터리에 저장된 완료된 워크플로우 실행 목록을 가져옵니다.
    2. 폴더 드롭다운(주석 3, 그림 6)에서 현재 작업 흐름 실행 폴더를 선택하고(현재 이 목록만 있는지 확인) 다시 새로고침을 눌러 파일 드롭다운에 해당 실행 결과물이 채워집니다.
    3. 파일 드롭다운(주석 4, 그림 6; 현재 지원되는 파일은 .usd, .txt, .json, .out 파일)에서 파일을 선택한 후 파일 가져오기(주석 5)를 클릭하세요. 텍스트 기반 파일은 정보 패널에 표시되고, USD 파일은 현재 장면에 추가되며, 메인 뷰포트에서 시각화되어야 합니다.
    4. Omniverse의 좌표 규칙에 맞게 가져오기 지오메트리를 맞추려면, 오른쪽에 있는 스테이지 패널을 열고 두 개의 가져오기 워크플로우 객체를 선택한 뒤, 바로 아래 속성 패널에서 Rotate X 를 −90°로 설정하세요. 이로써 USD 수출 도구에서 사용하는 z-up 관습과 Omniverse의 y-up 관례 간의 불일치를 보완합니다. 이 회전을 CAD USD와 트랙 USD 파일 모두에 적용하세요; 정렬 후 예상되는 뷰포트 상태는 그림 8에 나타난다.
    5. 마지막으로, 부품 간 대비를 높이기 위해 재질을 할당할 수 있습니다. 이는 앱 하단의 Materials 탭을 열고 재질을 선택한 후 오른쪽 열의 스테이지 뷰에서 지오메트리로 드래그 앤 드롭하면 가능합니다. 두 가지 가져오기 기하학 모두 이 작업을 하면 대비가 더 커집니다.

4. 새로운 도구 추가

참고: 이 섹션은 새로운 워크플로우 도구를 생성하고 배포하는 개발자 프로세스를 설명합니다. 저장소의 파일 시스템에 대한 접근과 디버깅을 위한 워크플로우 엔진에 대한 관리자 권한이 필요합니다. 기존 도구와 워크플로우만 실행하거나 워크플로우를 생성하는 사용자는 이 섹션을 따를 필요가 없습니다.

  1. 일반 과정
    1. 랩핑하기 전에 워크플로우 엔진과 독립적으로 시뮬레이션 또는 처리 스크립트를 개발하고 테스트하세요. 도구 래퍼는 기존 작업 스크립트를 호출하므로, 도구를 개발하면서 새로운 로직을 구현하는 것은 권장되지 않습니다.
    2. 스크립트에 필요한 모든 런타임 의존성(라이브러리, 바이너리, 데이터 파일 등)을 포함하는 Docker 이미지를 생성하여 실행 환경을 준비하세요.
      참고: 이 프로토콜의 모든 예시 도구는 실행 환경으로 Docker 컨테이너를 사용합니다. Conda 환경도 워크플로우 엔진에서 지원하지만 여기서 시연되지는 않습니다. Docker에 대한 추가 정보는 공식 문서를 통해 확인할 수 있으며, 좋은 입문 강좌는 여기에서 찾을 수 있습니다: https://uomresearchit.github.io/docker-introduction/ .
    3. 실행 환경(이 경우 Docker), 스크립트 호출 명령, 그리고 워크플로우 엔진 인터페이스에 표시할 도구의 입력, 출력, 메타데이터를 선언하는 XML 도구 정의 파일을 만듭니다.
    4. 래퍼가 생성되면, XML과 스크립트를 저장소의 새 폴더 galaxy-tools/ /에 넣으세요. galaxy-tools/tool_conf.xml 에 해당
      태그 아래 도구에 대한 새 항목을 추가하고, 새로 생성된 XML 파일의 상대적 경로 주소를 가리키세요.
      참고: 새 도구를 배포할 때 흔히 발생하는 오류이므로 이 파일 이름이 정확히 복사되었는지 확인하세요. tool_conf.xml 항목에 잘못된 경로가 있거나 XML 파일에 문법 오류가 있으면 워크플로우 엔진 인스턴스가 시작되지 않습니다. 워크플로우 컨테이너 로그에서 오류 메시지를 확인하려면 저장소 루트에서 다음 실행을 실행하세요:
      '도커 컴포지스 로그스 갤럭시'
      XML 파싱 오류는 ERROR loading tool
    5. 리포 루트에서 restart 스크립트를 실행하여 워크플로우 엔진을 재배포하여 새 도구를 불러오세요: ./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 파일을 보세요. 요구사항 요소는 리눅스 실행 환경을 지정합니다. 명령 요소에는 실행을 위한 에코 명령어가 포함되어 있습니다.
    2. 워크플로우 엔진 인터페이스에서 입력 파일 없이 툴 1을 실행하세요. 출력 파일도 정의되어 있지 않으니, 관리자 입장에서는 Admin, Jobs 페이지로 이동한 후 정보 아이콘을 클릭하면 stdout과 stderr 스트림을 볼 수 있는데, 이는 Step 4.1.8에서 사용하는 것과 동일합니다. stdout 스트림은 XML 파일 내 명령어의 'hello world' 문자열만 포함해야 합니다.
      도구 2 – 텍스트 기반 입력 사용
    3. galaxy-tools/simple/2/2.xml 파일을 보세요. 입력 필드에는 type="text"param 요소가 있는 항목이 생기고, 명령어 섹션은 이름 태그로 입력 변수를 참조합니다.
    4. Tool 2를 이전과 같이 실행하세요; 이번에는 도구에 문자열 입력을 주세요. 사용자가 원하는 어떤 것도 될 수 있습니다. 4.2.2단계에서 출력을 보고, 표준 출력은 사용자가 도구 입력에서 제공한 문자열이어야 합니다.
      도구 3 – 파일 기반 입력 사용
    5. 다시 한 번 툴 파일을 보세요; 이제 입력 매개변수는 문자열 입력 대신 type="data" 태그를 사용하여 파일 사용을 가능하게 합니다. 명령 어 섹션 에서 파일 경로로 참조되며, 역시 입력 매개변수 이름을 사용합니다.
    6. 로컬 텍스트 편집기를 사용해 .txt 파일을 생성하세요. 그렇지 않으면 실행하세요:
      '에코 "파일에서 온 세상" > test_files/input.txt'
      저장소 루트 폴더에서 예제 입력을 생성하세요.
    7. 2.1.1 단계에서 생성된 .txt 파일을 업로드한 후, 이전처럼 Tool 3을 실행하여 업로드된 .txt 파일을 입력으로 선택하세요. 역시 같은 방식으로 stdout을 보면 .txt 파일의 내용이 표시됩니다. 위 명령어를 사용할 경우, 출력은 "파일에서 온 hello world"여야 합니다.
      도구 4 – 출력을 파일에 쓰기
    8. 갤럭시 툴/심플/4/4.xml를 살펴보세요. 출력 섹션은 명령어 섹션에서 참조할 수 있는 이름 있는 출력 파일을 선언합니다.
    9. .txt 입력으로 이전처럼 도구를 실행하되, 이제는 출력을 관리자 모드로 보는 대신 일반 사용자가 이 히스토리 패널에서 볼 수 있으며, 성공적으로 실행되면 녹색으로 바뀌어 앞서 설명한 워크플로우 엔진에서 다운로드 및 조회할 수 있습니다.
      도구 5 – 도구 내 스크립트 실행
    10. galaxy-tools/simple/5/5.xml와 함께 제공되는 파이썬 스크립트인 galaxy-tools/simple/5/5.py 을 살펴보세요. XML에서는 명령어가 도구 디렉터리의 Python 스크립트를 참조하며, 요구사항 섹션은 스크립트를 실행하려면 파이썬이 필요하므로 Python 이미지를 참조합니다.
    11. 배포 및 툴을 같은 방식으로 실행하면, 툴 4(4.2.9단계)와 같은 방식으로 동작해야 하지만, 이번에는 명령어가 아닌 스크립트를 실행합니다.
  3. 복잡한 공구 예시
    참고: 이 절은 4.1절에 설명된 패턴의 작동 예제로서 중성자 도구 개발을 문서화합니다. 관련 파일들은 galaxy-tools/complex/openmc/ 에 있습니다. 이 패턴은 모든 시뮬레이션 또는 처리 코드에도 일반화됩니다.
    1. 시뮬레이션용 실행 스크립트를 개발하세요. 이 예시에서 run 스크립트 galaxy-tools/complex/openmc/openmc_run.py 설정(openmc_config.json)을 파싱하고, 중성자학 설정 파일을 작성한 후 시뮬레이션을 실행합니다. 스크립트를 Docker 이미지로 패키징하기 전에 명령줄에서 직접 테스트하세요.
    2. galaxy-tools/complex/openmc/Dockerfile 의 Dockerfile을 사용해 Docker 실행 환경을 구축하세요.이로 인해 대중 이미지가 확장되어 몇 가지 추가 패키지가 추가됩니다. 로컬에서 빌드하고 태그를 붙이거나 컨테이너 레지스트리에서 참조하세요.
    3. xml 래퍼를 만들어 galaxy-tools/complex/openmc/openmc.xml을 만들고, 요구 사항 섹션에서 4.3.2 단계의 Docker 이미지를 선언하세요. 입력 및 출력 파일과 함께 실행하는 명령(4.2절 예시처럼)도 정의되어야 합니다.
    4. 4.1.4-4.1.7 단계에 따라 도구를 배포한 후, 섹션 2에서 사용한 테스트 입력을 사용하여 도구가 올바르게 작동하는지 확인하세요.
      참고: 인스턴스 내 나머지 도구들(트랙 h5에서 vtp, CAD h5m에서 vtk, h5m에서 stl, STL에서 obj, vtp에서 obj, obj에서 USD로)는 동일한 개발 패턴을 따르는 파일 포맷 변환기입니다. 그들의 XML 파일은 galaxy-tools/complex/ 디렉터리에 있으며, 추가 참고 예시로 활용될 수 있습니다.

5. 워크플로우를 메타버스와 연결

참고: 이 섹션은 워크플로우 엔진의 API 통합과 메타버스 플랫폼 확장 아키텍처를 설명하는 개발자 참고 자료를 제공합니다. 메타버스 플랫폼에서만 워크플로우를 실행해야 하는 사용자는 섹션 3을 따라야 하며, 이 섹션을 읽을 필요는 없습니다. 다른 프론트엔드 애플리케이션을 워크플로우 엔진에 연결하고자 하는 개발자는 섹션 5.1부터 시작해야 합니다.

  1. 워크플로우 엔진 API
    참고: 갤럭시는 RESTful API를 제공합니다. Bioblend Python 라이브러리는 이 API를 더 고수준으로 래퍼링하며, 이 프로토콜에서 사용되는 모든 헬퍼 스크립트의 기반이 됩니다. Bioblend는 저장소에 제공되는 관련 Docker 실행 환경에 자동으로 설치됩니다.
    1. Bioblend를 불러와서 Server 주소와 Step 1.5.2의 API 키로 GalaxyInstance 객체를 인스턴스화하여 실행 중인 워크플로우 엔진과 연결을 설정합니다. Bioblend가 설치된 환경에서 파이썬에서:
      `bioblend.galaxy 가져오기 GalaxyInstance에서
      gi = GalaxyInstance(url='http://localhost:8080', key=)'
      참고: 이 방법은 로컬 배포에만 적용되며, 워크플로우 엔진이 원격 기기에 배포될 경우, localhost를 구성 인스턴스의 주소와 포트로 대체하세요.
    2. galaxy-api/helper_functs.py의 헬퍼 기능을 사용하여 일반적인 작업을 수행하세요: 사용 가능한 워크플로우 목록 나열(get_workflows), 워크플로우 입력 정의 조회(get_inputs), 지정된 입력 파일로 워크플로우 실행(launch_workflow). 함수 서명과 기대되는 반환 유형은 해당 파일의 인라인 문서문자열을 참고하세요.
    3. 필요에 따라 helper_functs.py 다른 기능들도 확장하세요. 전체 참고 API는 https://bioblend.readthedocs.io 에서 확인할 수 있습니다.
  2. 워크플로우를 메타버스와 연결
    참고: 이 섹션은 메타버스 플랫폼 확장 확장의 아키텍처만을 설명하므로, 개발자는 다양한 워크플로우 출력, 추가 파일 형식 또는 대체 메타버스 플랫폼에 맞게 조정할 수 있습니다.
    1. omni_exts/omni.galaxy.example/에서 메인 확장 진입 지점을 열어보세요. 이 확장은 옴니버스의 기본 확장15를 출발점으로 사용합니다. 그 후 5.1.2단계에서 설명한 API 파일 보조 기능의 모든 기능을 추가하고, 워크플로우와 상호작용할 수 있는 GUI를 제공합니다.
    2. 워크플로우가 실행되면 생성된 데이터는 자동으로 워크플로우 엔진에서 다운로드되어 로컬에 저장되어, 메타버스 플랫폼에서 시각화할 수 있습니다. 또한 워크플로우 실행 중 생성된 메타데이터를 저장하고 접근 가능하게 하여 시뮬레이션 데이터의 출처를 확인할 수 있습니다.
    3. 이 구현은 인터페이스를 구축하기 위해 Omniverse 네이티브 omni.ui 라이브러리를 사용합니다. 주요 확장 프로그램은 확장 폴더에 있으며, 인터페이스의 주요 구현은 omni_exts/omni.galaxy.example/omni/galaxy/example/window.py 파일에 있습니다.

액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.

결과

git 저장소에서 제공된 입력으로 시뮬레이션을 실행하면 다음과 같은 결과를 얻을 수 있습니다:

Step 2.1.3을 성공적으로 완료하면 TBR Tracks 출력 데이터셋이 모두 History 패널에 녹색으로 표시되어 성공적인 실행을 나타냅니다. 제공된 구성 파일을 사용한 대표적인 TBR 값(1,000개의 입자 5배치)은 약 0.76이며, 실행 간 변동은 약 ±0.01입니다. 따라서 0.74–0.78 범위의 TBR 값은 성공으로 간주되어야 합니다. 넓은 범위는 몬테카를로 중성자학의 확률적 특성을 반영합니다; 이 구성은 속도를 위해 일부러 작은 입자 수를 사용합니다. 중성자 수를 늘리면(현재는 1,000개의 입자 5배치로 진행 중), 실행 간 TBR 값이 더 일관되게 유지될 것입니다. 2.1.5단계 이후의 노트를 참고하여 중성자 ...

액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.

토론

프로토콜 내에는 몇 가지 중요한 단계가 있습니다. 대부분은 워크플로우 엔진 인스턴스의 초기 설정과 관련이 있습니다. 예를 들어, 관리자 이메일 추가(프로토콜 단계 1.2.2)는 도구 및 작업 패널에 대한 관리자 접근을 위해 필요합니다; 메타버스 플랫폼 확장 기능(프로토콜 단계 1.5.3)의 API 키를 올바르게 생성하고 이를 기본값 파일에 올바르게 붙여넣는 것; 도구를 추가할 때, 시작 시 로드되는 재시작 전에 재시작 전에 도구 설정 파일(프로토콜 단계 4.1.6)에 추가되도록 할 때, 워크플로우 로그에서 오류가 명확하지 않을 수도 있습니다. 프로토콜 1.5.3 이후 API 키를 보유한 default.json 있으므로 이 파일은 비밀로 간주되어야 합니다. . gitignore 에 포함되어 있는지 확인하고(기본값입니다), 공개 저장소에 커밋하지 마세요. 워크플로우 엔진의 랜딩 페이지가 처음에 http://localhost:8080 에 나타...

액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.

공개 사항

저자들은 공개할 이해 상충이 없습니다.

감사의 글

이 프로젝트는 영국 원자력청의 핵융합 산업 프로그램을 통해 지원받았습니다. 핵융합 산업 프로그램은 영국 핵융합 생태계의 성장을 촉진하고 미래 글로벌 핵융합 발전소 시장에 대비하고 있습니다. 퓨전 산업 프로그램에 대한 자세한 정보는 온라인에서 확인할 수 있습니다: https://ccfe.ukaea.uk/programmes/fusion-industry-programme/

이 프로토콜에 수반된 예제 저장소는 https://github.com/williamjsmith15/galaxy-omniverse-example(https://github.com/UoMResearchIT/omniverse-workflows-fusion 의 공개 포크)에서 제공됩니다.

액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.

재료

```html
이 논문에 사용된 재료 목록
이름회사카탈로그 번호댓글
BioblendGalaxy Projectv1.2+Python 라이브러리로 Galaxy REST API를 고수준으로 래핑합니다. 이것은 Omniverse 확장 헬퍼 스크립트에서 워크플로를 나열하고, 입력 정의를 검색하고, 작업을 시작하는 데 사용됩니다. 관련 Docker 이미지 내에서 자동으로 설치됩니다. 호스트 설치가 필요하지 않습니다.
Docker ContainersDockerv24.0.5각 시뮬레이션 및 후처리 도구를 모든 종속성과 함께 패키징하여 휴대성과 재현성을 보장하는 데 사용되는 컨테이너화 런타임입니다.
GalaxyGalaxy Projectv22.05체인 시뮬레이션 및 처리 도구를 오케스트레이션하고 REST API를 통해 노출하는 데 사용되는 오픈 소스 워크플로 엔진입니다.
GitGit SCMv2+프로토콜을 따르기 위해 저장소를 복제하는 데 필요합니다
NVIDIA RTX GPUNVIDIA-Omniverse(3절)에서 실시간 레이 트레이스 렌더링에 필요합니다. RTX 하드웨어가 없는 사용자는 2절까지 모든 단계를 완료할 수 있으며 시각화에는 ParaView를 사용할 수 있습니다(논의 참조).
OmniverseNVIDIACode 2022.3.3NVIDIA의 협업 3D 플랫폼입니다. 이는 워크플로 출력의 시각화 및 상호작용 프런트엔드로 사용되며, 사용자 정의 Kit 확장을 통해 제공됩니다.
ParaViewKitwarev5.11중간.vtk/.vtp 출력을 검사하기 위한 비 RTX 대체 툴로 사용되는 오픈 소스 과학 시각화 애플리케이션입니다.
Protocol RepositoryCustomv1.0Galaxy 구성과 모든 도구 XML 래퍼, 실행 스크립트, Dockerfiles, 테스트 데이터, 그리고 Omniverse 확장을 포함합니다. 1.2.1 단계에서 클론됩니다. 주요 파일은 직접 보조 업로드로도 제공됩니다(I.2 참조).
PythonPythonv3.10+OpenMC 실행 스크립트 및 Omniverse 확장 헬퍼 스크립트에 필요한 런타임입니다. 관련 Docker 이미지 또는 Omniverse 다운로드에 포함되어 있으며, 별도의 호스트 설치가 필요하지 않습니다.
The OpenMC Monte Carlo CodeOpenMCv0.13.3여기서 융합 중성자학 시뮬레이션을 위해 사용되는 오픈 소스 Monte Carlo 입자 수송 코드입니다. 이것은 삼중수소 육성 비율(TBR)과 중성자 트랙 출력을 제공합니다.
Windows Subsystem for Linux (WSL)Microsoftv2Windows 호스트에서 Docker를 실행하는 데 필요합니다(Powershell에서 `wsl --install`을 통해 설치). Linux 및 Mac 사용자는 이것이 필요하지 않습니다.
```

재인쇄 및 허가

태그

233233GalaxyOmniverseFusionNeutronics