DOI QR코드

DOI QR Code

스마트폰 엔터테인먼트 애플리케이션의 상호작용성 개선을 위한 코드 수준 병렬화 방법론

A Code-level Parallelization Methodology to Enhance Interactivity of Smartphone Entertainment Applications

  • 김병철 (서울대학교 정보문화학전공)
  • Kim, Byung-Cheol (Information and Culture Technology Studies, Seoul National University)
  • 투고 : 2015.10.24
  • 심사 : 2015.12.20
  • 발행 : 2015.12.28

초록

스마트폰과 같은 이동형 장치들은 계산 성능이나 메모리 크기, 배터리 전력량 등의 한계로 인해 엔터테인먼트 애플리케이션이 요구하는 상호작용성을 보장하기 어렵다. 이를 해결하기 위해 본 논문에서는 상호작용이 필수적인 애플리케이션의 응답 속도를 개선할 수 있는 코드 수준 병렬화 방법론을 제안한다. 이 방법을 적용하면, 스마트폰 등에서 제공하는 멀티코어 아키텍쳐를 바탕으로 기존 애플리케이션의 모노코어 알고리즘을 복잡한 재설계 없이 코드 수준에서 병렬화 할 수 있다. 특히 플랫폼 독립적인 표준 쓰레드 라이브러리인 POSIX 쓰레드를 활용하면 안드로이드나 iOS등의 다양한 스마트폰 플랫폼에서 본 방법론을 적용할 수 있다. 이의 효과적인 응용 사례로서 수백만개의 원소를 처리하는 행렬 연산 함수를 병렬화 해보았고 실사용 환경에서 약 3배가량의 성능 향상을 확인하였다.

One of the fundamental requirements of entertainment applications is interactivity with users. The mobile device such as the smartphone, however, does not guarantee it due to the limit of the application processor's computing power, memory size and available electric power of the battery. This paper proposes a methodology to boost responsiveness of interactive applications by taking advantage of the parallel architecture of mobile devices which, for instance, have dual-core, quad-core or octa-core. To harness the multi-core architecture, it exploits the POSIX thread, a platform-independent thread library to be able to be used in various mobile platforms such as Android, iOS, etc. As a useful application example of the methodology, a heavy matrix calculation function was transformed to a parallelized version which showed around 2.5 ~ 3 times faster than the original version in a real-world usage environment.

키워드

참고문헌

  1. G. Blake, R. G. Dreslinski and T. Mudge, "A Survey of Multicore Processors," IEEE Signal Processing, Vol. 26, No. 6, pp. 26-37, 2009.
  2. W. Wolf, "Multiprocessor System-on-Chip Technology", IEEE Signal Processing, Vol. 26, No. 6, pp. 50-54, 2009. https://doi.org/10.1109/MSP.2009.934138
  3. D. B. Skillicorn, "Architecture-Independent Parallel Computation," IEEE Computer, Vol. 23, No. 12, pp. 38-50, 1990.
  4. M. Cole, "Algorithmic Skeletons: structured management of parallel computations," MIT Press, 1989.
  5. J. Kepner and J. Lebak, "Software technologies for high-performance parallel signal processing," Lincoln Laboratory Journal, Vol. 14, no. 2, pp. 181-198, 2003.
  6. M. Leyton, J. M. Piquer. "Skandium: Multi-core Programming with algorithmic skeletons", IEEE Euro-micro PDP 2010.
  7. H. Gonzalez-Velez and M. Leyton, "A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers," Software-Practice & Experience, Vol. 40 No. 12, pp. 1135-1160, 2010. https://doi.org/10.1002/spe.1026
  8. N. Khammassi et al. "MHPM: Multi-Scale Hybrid Programming Model: A Flexible Parallelization Methodology," High Performance Computing and Communication, pp. 71-80, 2012.
  9. M. Steuwer et al., "Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code," Proc. of the 20th ACM SIGPLAN Int'l Conference on Functional Programming, pp. 205-217, 2015.
  10. Intel Corporation. Threading Building Blocks, Tutorial Rev. 1.6, http://www.threadingbuildingblocks.org(Nov. 2015)
  11. J. Chong et al., "Efficient Parallelization of H.264 Decoding with Macro Block Level Scheduling," Proceedings of 2007 IEEE International Conference on Multimedia and Expo, pp. 1874 - 1877, 2007.
  12. Rob Hess, "An Open-Source SIFT Library," Proceedings of the 18th ACM Int'l Conference on Multimedia (MM'10), pp. 1493-1496, 2010.
  13. E. Anderson et al., "LAPACK Users' Guide (3rd Ed.)," Philadelphia, PA: Society for Industrial and Applied Mathematics, 1999.
  14. OpenCV GEMM (GEneralized Matrix Mult.), https://github.com/Itseez/opencv/blob/master/modules/core/src/matmul.cpp
  15. A. Nicolau and A. Kejariwal, "How many threads to spawn during program multithreading?" Proc. of the 23rd international conference on Languages and compilers for parallel computing, pp. 166-183, 2010.