CliMA/Oceananigans.jl
🌊 Julia software for fast, friendly, flexible, ocean-flavored fluid dynamics on CPUs and GPUs
Oceananigans.jl – Julia를 통한 빠르고 유연한 해양 규모의 유체 역학 시뮬레이션
개요 – Oceananigans는 Cartesian 또는 spherical-shell 격자에서 비압축성 Boussinesq 방정식을 (비정역학 및 정역학 모두) 푸는 오픈 소스 Julia 패키지입니다. 유한체적법 이산화를 사용하며 CPU 및 CUDA가 활성화된 GPU에서 실행되므로, 연구자들은 단 몇 줄의 코드만으로 고해상도 해양 시뮬레이션을 프로토타입하고 실행할 수 있습니다.
주요 기능
- 모델:
NonhydrostaticModel,HydrostaticFreeSurfaceModel및 관련 변체. - 격자:직교 좌표계, 곡선 좌표계 및 설정 가능한 토폴로지(주기적, 평면 등)를 가진 spherical-shell 격자.
- 수치 계산:다양한 이류(advection) 스킴(예: WENO, WENOVectorInvariant), Runge-Kutta 시간 단계 진행기, 그리고
CATKEVerticalDiffusivity및TKEDissipationVerticalDiffusivity와 같은 난류 폐쇄 모델. - GPU 가속:
using CUDA.jl을 로드한 후CPU()를GPU()로 전환하면 동일한 코드를 Nvidia GPU에서 실행하여, 대규모(~10M 셀) 문제에 대해 수십 배의 속도 향상을 달성할 수 있습니다. - 미분 가능한 워크플로우:
Enzyme.jl및Reactant.jl과의 통합을 통해 데이터 동화 또는 머신러닝 루프 내 연구를 위한 모델 구성 요소의 자동 미분 기능을 지원합니다. - 성능 추적:많은 모델 구성에 대해 타임스텝당 벽시계 시간을 기록하는 공개 대시보드를 갖춘 지속적인 벤치마크 스위트.
시작하기
using Pkg; Pkg.add("Oceananigans.jl") # install
using Oceananigans
# a 2-D periodic turbulence test on the CPU
grid = RectilinearGrid(CPU(), size=(128,128), x=(0,2π), y=(0,2π), topology=(Periodic,Periodic,Flat))
model = NonhydrostaticModel(grid; advection=WENO())
set!(model, u = x->2rand()-1, v = x->2rand()-1)
sim = Simulation(model; Δt=0.01, stop_time=4)
run!(sim)
using CUDA를 사용한 후 CPU()를 GPU()로 교체하면 동일한 실험을 GPU에서 실행할 수 있습니다.
문서 및 학습 리소스
- 안정판 및 개발판 문서: https://clima.github.io/OceananigansDocumentation/stable
- 예제 스크립트, 튜토리얼, 그리고 전체 API 레퍼런스는 문서에 포함되어 있습니다.
- 토론, Q&A, 커뮤니티 팁은 GitHub Discussions 페이지와 NumericalEarth Slack에서 확인할 수 있습니다.
- 위키에는 설치, GPU 사용법, 및 워크플로우 베스트 프랙티스 가이드가 포함되어 있습니다.
사용자 Oceananigans는 학계 및 산업계 그룹에서 연구, 교육, 및 프로토타입 기후 시스템 모델링을 위해 사용됩니다. 패키지를 사용하는 논문 목록은 문서에 유지 관리됩니다.
인용 방법 Oceananigans에 의존하는 연구를 발표할 경우, 개요 논문(Wagner et al., 2025, arXiv:2502.14148)과 사용한 기능과 관련된 특정 모델 개발 논문(예: Runge-Kutta에 관한 Silvestri 2026, 미분 가능한 모델링에 관한 Moses 2026 등)을 인용하십시오.
커뮤니티 & 기여
- Climate Modeling Alliance (CliMA) 산하의 개방형, 커뮤니티 주도 개발.
- 기여자 가이드, 행동 강령, 및 ColPrac 베스트 프랙티스 배지 제공.
- Pull requests를 통한 기여를 환영합니다. 새로운 기능이나 버그에 대한 토론은 GitHub에서 시작할 수 있습니다 있습니다.
라이선스 – MIT (허용적, 상업적 이용 가능).
결론 – Oceananigans는 해양학자 및 유체 역학 연구자들에게 단순한 테스트 케이스부터 대규모, GPU 가속 해양 시뮬레이션 구축 및 실행을 위한 고성능, 사용하기 쉬운 Julia 환경을을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트