본문 바로가기
KERD
논문

고성능 파이썬 라이브러리를 이용한 3차원 시간 영역 파동 전파 모델링

3D Time-Domain Wave Propagation Modeling Using High-Performance Python Libraries

0

조회

0

다운로드

1

인용

0

참고문헌

키워드

주제분류자원공학

초록

본 연구에서는 3차원 시간 영역 파동 전파 모델링을 이용하여 고성능 라이브러리를 이용한 파이썬과 C언어 의 성능 및 생산성을 비교하였다. 수치 모델링 결과 고성능 파이썬 라이브러리인 Numba 또는 Cython을 사용하는 경 우와 C 언어를 사용하는 경우 순수 파이썬에 비해 각각 1844배, 2049배, 2305배 빨라졌다. Numba와 Cython 라이브러 리를 사용한 모델링의 경우 C언어보다 각각 23.3%, 16.2% 느렸다. 그러나 소스 코드 줄 수는 C언어보다 각각 45.1%, 40.7% 적었다. SEG/EAGE 3차원 암염돔 모델에 적용한 결과, Numba와 Cython을 사용한 경우 C언어에 비해 계산 속 도가 각각 22.9%, 13.3% 느렸다. 따라서 20%의 성능 차이를 받아들일 수 있는 경우 C와 같은 정적 자료형 언어 대신 고성능 파이썬 라이브러리를 이용하는 것이 더욱 생산적일 것이다.

Abstract

In this study, we compared performance and productivity of C and Python with high-performance libraries using 3D time-domain wave propagation modeling. As a result of numerical modeling, Numba, Cython and C attained speed-ups of 1884, 2049, and 2305 times, respectively, compared with a reference Python implementation. Python programs using Numba and Cython were slower than the C program by 23.3% and 16.2%, respectively. However, the numbers of source code lines for Python programs using Numba and Cython were 45.1% and 40.7% shorter than that of C, respectively. Modeling experiments using Numba and Cython for the SEG/EAGE 3D salt dome model were 22.9% and 13.3% slower than that of the C program. Therefore, if performance difference of 20% is acceptable, it will be more productive to use Python with high-performance libraries instead of static-typing languages such as C.

참고문헌 (17)

  1. Aminzadeh, F., "SEG", EAGE 3-D modeling project: 2nd update, 1994, pp.13(9), 949~952
  2. Beazley, D.M., "Python essential reference", pp.5~24 (2009), Addison-Weasley Professional
  3. Choi, J., "Numerical Analysis, Textbooks", pp.237~277 (2010)
  4. "Cython"[URL]
  5. 하완수, "파이썬을 이용한 생산적인 소규모 자료처리", 한국자원공학회지, 51(5), pp.705~714 (2014), 한국자원공학회
  6. 하완수, "대화식 탄성파 자료 처리 수업을 위한 파이썬 패키지 개발", 한국자원공학회지, 52(4), pp.414~421 (2015), 한국자원공학회
  7. Keys, R.G., "Absorbing boundary conditions for acoustic media", Geophysics, 50(6), pp.892~902 (1985)[DOI]
  8. Kreyszig, E., "Advanced engineering mathematics", pp.919~941 (2011), John Wiley & Sons, Inc.
  9. Lanaro, G., "Python high performance programming", pp.49~70 (2013), Packt Publishing
  10. "LLVM"[URL]
  11. McKinney, W., "Python for data analysis", pp.3~6 (2012), O'Reily Media
  12. Min. D.-J., "Numerical Analysis for Geophysics", pp.37~52 (2016)
  13. "Numba"[URL]
  14. Prechelt, L., "An empirical comparison of seven programming languages", IEEE Computer, 33(10), pp.23~29 (2000)[DOI]
  15. "PyPl" (2018)[URL]
  16. "Python"[URL]
  17. "Redmonk" (2018)[URL]

관련 논문AI추천

이 간행물의 다른 논문 (7건)