SciML/diffeqpy

Solving differential equations in Python using DifferentialEquations.jl and the SciML Scientific Machine Learning organization

해결하는 문제

diffeqpy는 Python 내에서 다양한 종류의 미분방정식을 직접 해결하기 위한 고성능 인터페이스를 제공합니다. Python의 사용 편의성과 Julia 언어의 DifferentialEquations.jl 생태계에 포함된 고급 고성능 수치 해법기 간의 격차를 메웁니다.

작동 방식

이 패키지는 DifferentialEquations.jl을 래핑한 것입니다. 사용자는 Python에서 문제(예: ODE, SDE, DAE 등)를 정의하고 Julia의 핵심 루틴을 사용하여 실행할 수 있습니다. 성능을 극대화하기 위해 de.jit 함수를 포함하여 Python의 도함수 함수를 효율적인 네이티브 코드로 컴파일할 수 있으며, seval을 통해 Julia 구문으로 함수를 직접 정의할 수도 있습니다. 또한 juliacall과 통합되어 질량 행렬 및 희소 행렬과 같은 복잡한 타입을 처리할 수 있습니다.

대상 사용자

Python에서 복잡한 미분방정식을 해결해야 하지만, GPU 가속 및 앙상블 해법과 같은 고성능 컴퓨팅 언어에서 일반적으로 제공되는 속도와 특수한 해법 옵션이 필요한 연구자, 과학자, 엔지니어.

주요 특징

  • 광범위한 방정식 지원: 상미분방정식(ODE), 확률미분방정식(SDE), 지연미분방정식(DDE), 미분대수방정식(DAE)뿐만 아니라 이산 및 하이브리드 방정식도 해결 가능.
  • GPU 가속: DiffEqGPU를 통해 GPU에서 대규모 ODE 앙상블을 병렬로 해결할 수 있음.
  • 성능 최적화: 문제의 JIT 컴파일을 통해 내부 루프 오버헤드를 줄임.
  • 코어 및 병렬 처리: 시리얼, 스레드, 분산, SplitThreads 등의 다양한 앙상블 해법 전략을 통해 다중 CPU 코어를 지원.
  • 유연한 통합: 최대 효율을 위해 함수를 Python 또는 Julia로 정의할 수 있음.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트