CUDA 프레임워크 상에서 스카이라인 질의처리 알고리즘 최적화

Optimizing Skyline Query Processing Algorithms on CUDA Framework

  • 민준 (성균관대학교 임베디드 소프트웨어학과) ;
  • 한환수 (성균관대학교 정보통신공학부) ;
  • 이상원 (성균관대학교 정보통신공학부)
  • 투고 : 2010.08.23
  • 심사 : 2010.09.10
  • 발행 : 2010.10.15

초록

GPU는 대용량 데이터 처리를 위해 특화된 멀티 코어 기반의 스트림 프로세서로서 빠른 데이터 처리 속도 및 높은 메모리 대역 동의 장점을 가지며, CPU에 비해 가격이 저렴하다. 최근 이러한 GPU의 특성용 활용하여 범용 컴퓨팅 분야에 활용하고자 하는 시도가 계속되고 있다. 엔비디아에서 발표한 범용 병렬 컴퓨팅 아키텍처인 쿠다(CUDA) 프로그래밍 모델의 경우 프로그래머가 GPU 상에서 동작하는 범용 어플리케이션을 보다 손쉽게 개발할 수 있도록 지원한다. 본 논문에서는 쿠다 프로그래밍 모델을 이용하여 기본적인 중첩-반복 스카이라인 알고리즘을 병렬화시킨다. 그리고 스카이라인 알고리즘의 특성을 고려하여 GPU 자원용 효율적으로 사용할 수 있도록 GPU의 메모리 및 명령어 처리율에 중점을 두고 단계적인 최적화를 진행한다. 최적화 단계에 따라 각각 다른 성능 개선이 나타나는 것을 확인하였으며, 그 결과 기본 병렬 중첩-반복 알고리즘에 비해 평균 80%의 성능이 향상됨을 확인하였다.

GPUs are stream processors based on multi-cores, which can process large data with a high speed and a large memory bandwidth. Furthermore, GPUs are less expensive than multi-core CPUs. Recently, usage of GPUs in general purpose computing has been wide spread. The CUDA architecture from Nvidia is one of efforts to help developers use GPUs in their application domains. In this paper, we propose techniques to parallelize a skyline algorithm which uses a simple nested loop structure. In order to employ the CUDA programming model, we apply our optimization techniques to make our skyline algorithm fit into the performance restrictions of the CUDA architecture. According to our experimental results, we improve the original skyline algorithm by 80% with our optimization techniques.

키워드

참고문헌

  1. NVIDIA Corporation, http://www.nvidia.com
  2. J. Krueger, R. Westermann, Linear, "Linear algebra operators for GPU implementation of numerical algorithms," In Proceedings of SIGGRAPH, pp.908-916, 2003.
  3. J. Bolz, I. Farmer, E. Grinspun, P. Schroeder, "Sparse matrix solvers on the GPU: Conjugate gradients and multigrid," In Proceedings of SIGGRAPH, pp.917-924, 2003.
  4. Mark J. Harris, Greg Coombe, Thorsten Scheuermann, and Anselmo Lastra, "Physically-Based Visual Simulation on Graphics Hardware," Proc. 2002 SIGGRAPH.
  5. John D. Owens, David Luebke, Naga Govindaraju, Mark Harris, Jens Kruuger, Aaron E. Lefohn, and Timoty J. Purcell, "A Survey of General-Purpose Computation on Graphics Hardware," In Eurographics 2005, State of the Art Reports, pp.21-51, August 2005.
  6. GPGPU, http://gpgpu.org
  7. Mark D. Hill, Michael R. Marty, "Amdahl's Law in the Multicore Era," IEEE Computer Society, 2008.
  8. K. Asanovic et al., "The Landscape of Parallel Computing Research: A View from Berkeley," report UCB/EECS 2006, p.183, 2006.
  9. DevNote, "멀티프로세서 프로그래밍 시대의 개막," http://devnote.net/wiki/index.php/Main_Page
  10. NVIDIA CUDATM Programming Guide Version 3.0, NVIDIA Corporation, Santa Clara, CA, USA, 2010.
  11. David Kirk and Wen-mei Hwu, CUDA Textbook, Draft Version, 2009.
  12. R. Rost, OpenGL Shading Language Second Edition, Addison-Wesley, 2006.
  13. J.-M. Frahm, M. Pollefeys, and M. Shah, Proc. of CVPR Workshop on Visual Computer Vision on GPU's, June, 2008.
  14. A. Gopalakrishnan and A. Sekmen, "Vision-based Mobile Robot Learnig an Navigation," ROMAN, IEEE International Workshop on Robots and Human Interactive Communication, pp.28-53, 2005.
  15. Stephan Borzsonyi, Donald Kossamann, and Konrad Stocker, "The Skyline Operator," in ICDE, pp. 421-430, 2001.
  16. Sungwoo Park, Taekyung Kim, Johghyun Park, Jinha Kim, and Hyeonseung Im, "Parallel Skyline Computation on Multicore Architectures," in ICDE, pp.760-771, 2009.
  17. P. Wu, C. Zhang, Y. Feng, B. Y. Zhao, D. Agrawal, and A. E. Abbadi, "Parallelizing skyline queries for scalable distribution," in EDBT, pp.112-130, 2006.
  18. A. Cosgaya-Lozano, A. Rau-Chaplin, and N. Zeh, "Parallel computation of skyline queries," in HPCS, p.12, 2007.
  19. D. Kossmann, F. Ramsak, and S. Rost, "Shooting stars in the sky: an online algorithm for skyline queries," in VLDB, pp.275-286, 2002.
  20. D. Papadias, Y. Tao, G. Fu, and B. Seeger, "Progressive skyline computation in database systems," ACM Transactions on Database Systems, vol.30, no.1, pp.41-82, 2005. https://doi.org/10.1145/1061318.1061320
  21. Joachim Selke, Christoph Lofi, and Wolf-Tilo Balke, "Highly Scalable Multiprocessing Algorithms for Preference-Based Database Retrieval," 15th International Conference on Database Systems for Advanced Applications (DASFAA), Tsukuba, Japan, 04/2010.
  22. S.-R. Cho, H. Han, S.-W. Lee, "Multi-Dimensional Record Scan with SIMD Vector Instructions," Journal of KIISE : Computing Practices and Letters, vol.16, no.6, pp.732-736, June. 2010. (in Korean)
  23. J. Chhugani, W. Macy, A. Baransi, A. Nguyen, M. Hagog, S. Kumar, V.W. Lee, Y. K. Chen, and P. Dubey, "Efficient Implementation of Sorting on Multi-core SIMD CPU Architecture," Proc. of the Very Large Data Base Endowment, vol.1 issue2, August 2008, pp.1313-1324, 2008.
  24. 민준, 한환수, 이상원, "Multi-core 환경에서 입력 데이터 크기에 따른 skyline 알고리즘 병렬화 고찰", 한국정보과학회 가을 학술발표논문집 , 제 36권 제 2호 pp. 22-23, 2009.