DOI QR코드

DOI QR Code

Proposal For Improving Data Processing Performance Using Python

파이썬 활용한 데이터 처리 성능 향상방법 제안

  • Received : 2020.07.16
  • Accepted : 2020.08.05
  • Published : 2020.08.30

Abstract

This paper deals with how to improve the performance of Python language with various libraries when developing a model using big data. The Python language uses the Pandas library for processing spreadsheet-format data such as Excel. In processing data, Python operates on an in-memory basis. There is no performance issue when processing small scale of data. However, performance issues occur when processing large scale of data. Therefore, this paper introduces a method for distributed processing of execution tasks in a single cluster and multiple clusters by using a Dask library that can be used with Pandas when processing data. The experiment compares the speed of processing a simple exponential model using only Pandas on the same specification hardware and the speed of processing using a dask together. This paper presents a method to develop a model by distributing a large scale of data by CPU cores in terms of performance while maintaining that python's advantage of using various libraries is easy.

본 논문은 대량의 데이터를 활용한 모델 개발 시 다양한 라이브러리를 갖춘 파이썬 언의의 성능 향상방법을 다룬다. 파이썬 언어는 엑셀과 같은 스프레드시트 형태 데이터 처리 시 Pandas 라이브러리를 사용한다. 데이터 처리 시파이썬은 기가단위 이하 데이터 처리 시에는 인-메모리로 연산하여 성능 측면에서 크게 이슈가 없다. 하지만 기가단위 이상 데이터 처리 시 성능 이슈가 발생한다. 이에 본 논문은 데이터 처리 시 Pandas와 같이 사용할 수 있는 Dask 라이브러리를 활용하여 단일 클러스터 및 다중 클러스터에서 실행 작업을 분산처리 가능한 방법을 소개한다. 실험은 동일 사양의 하드웨어에서 간단한 지수산출 모델을 Pandas만 사용해서 처리하는 속도와 Dask를 같이 사용해서 처리하는 속도를 비교한다. 본 논문은 파이썬의 장점인 다양한 라이브러리를 쉽게 사용할 수 있다는 점을 유지하면서 성능측면에서도 대량의 데이터를 CPU 코어들이 분산 처리하여 모델을 개발할 수 있는 방법을 제시한다.

Keywords

References

  1. https://www.kaggle.com/kaggle/kaggle-survey-2018, 2018
  2. Matei Zaharia, Mosharaf Chowdhury, Michae l J. Franklin, Scott Shenker, and Ion Stoica, "Spark:Cluster Computing with Working Set", Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing, pp. 10-10, May 2010.
  3. Wes McKinney, "Python for Data Analysis", O'Reilly, pp. 52-58, Oct, 2017.
  4. Dask, https://dask.org, 2019
  5. Rafizul Islam M, Fahmida Kanij, "SPATIALITY, SEASONALITY AND INDEX ANALYSIS OF HEAVY METALS IN SOIL OF WASTE DISPOSAL SITE IN KHULNA OF BANGLADESH, Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing, pp. 234-256, May 2017.
  6. Jason Brownlee, "Deep Learning for Time Series Forecasting: Predict the Future with NLPs, CNNs and LSTMs in Python", Machine Learning Mastery, pp. 161-164, Aug 2018.
  7. Lisandro D.Dalcin, Rodrigo R.Paz, Pablo A.Kler, "Parallel distributed computing using Python", Advances in Water Resources Volume 34, pp. 1124-1128, Sep 2011 https://doi.org/10.1016/j.advwatres.2011.04.013
  8. Micha Gorelick, Ian Ozsvald, "High Performance Python", O'Reilly, pp. 20-25, May 2020

Cited by

  1. 아마추어 풋살 데이터 분석을 위한 공 추적 알고리즘 연구 vol.21, pp.4, 2020, https://doi.org/10.7236/jiibc.2021.21.4.189