사용자 친화적 프론트엔드를 갖춘 효율적인 시뮬레이션 백엔드를 위한 수동 바인딩 및 반자동 인터페이스 생성: 전염병 사용 사례 시연
요약
수학 모델링은 사용자 친화적인 스크립팅 언어와 고성능의 컴파일된 백엔드 간 성능 격차 문제를 안고 있습니다. 본 논문은 대규모 소프트웨어 프레임워크를 Python 같은 언어에 효율적으로 노출하는 방법을 제시합니다. 특히 추상 구문 트리(AST) 분석과 중간 표현(IR)을 활용하여 C++ 코드를 기반으로 인터페이스 코드를 반자동 생성하는 방식을 제안했습니다.
핵심 포인트
- 수학 모델링은 사용자 편의성(Python/R)과 성능(C/C++) 간 충돌이 존재함.
- 감염병 시뮬레이션 등 대규모 프레임워크는 C 또는 C++ 구현에 의존하는 경향이 있음.
- 본 논문은 컴파일된 백엔드를 Python 같은 언어에서 효율적으로 실행하는 방법을 제시함.
- AST 분석과 중간 표현(IR)을 활용하여 인터페이스 코드를 반자동으로 생성할 수 있음.
수학 소프트웨어의 과제와 기회는 사용되는 프로그래밍 언어와 직접적으로 얽혀 있습니다. 개발자와 사용자 배경에 따라 서로 다른 목표 간의 충돌이 발생할 수 있습니다. 예를 들어, 스크립팅 언어(scripting languages)는 수학적 모델링 및 시뮬레이션에 낮은 진입 장벽과 사용자 친화성을 제공하지만, 이에 상응하는 구현체는 상세한 시뮬레이션을 위한 적시한 결과를 보장하지 못할 가능성이 높습니다. 감염병 모델링의 경우, 여러 대규모 소프트웨어 프레임워크가 C 또는 C++ 구현에 의존하지만, 대부분의 모델은 Python이나 R로 구현됩니다. 후자는 빠른 프로토타이핑과 더 상호작용적인 개발을 허용하지만, 여러 애플리케이션에서 C 또는 C++ 구현이 순수 Python 또는 R 구현보다 한 개에서 세 개 정도의 크기 차이(orders of magnitude)로 성능이 우수한 것으로 나타났습니다. 특히 팬데믹 시기에는 시스템 역학에 대한 신속한 추정 필요성이 절실하기 때문에, 이러한 비컴파일 언어에서 대규모 모델을 사용하는 것은 어려움이 따릅니다.
시너지 효과를 창출하고 응용 분야의 과학자와 계산 영역 간의 격차를 좁히기 위해 바인딩 라이브러리(binding libraries)는 Python과 같은 언어로부터 전체 컴파일된 소프트웨어 프레임워크를 실행할 수 있게 합니다. 하지만 반복적인 모델 개발, 확장 또는 새로운 모델 추가가 이루어질 때, 바인딩을 구현하는 것은 C 또는 C++ 백엔드 개발자들에게 또 다른 중요한 장벽이 될 수 있습니다.
본 논문에서는 다수의 감염병 모델을 갖춘 대규모 소프트웨어 프레임워크를 Python에 효율적으로 노출시키는 방법을 보여줍니다. 나아가, 추상 구문 트리(abstract syntax trees)를 통해 일반적인 C++ 코드를 분석함으로써 인터페이스 코드를 생성하는 반자동 방식을 제안하며, 이는 중간 표현(intermediate representations)을 사용하여 모듈화된 접근 방식을 가능하게 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기