DOI QR코드

DOI QR Code

Improving Haskell GC-Tuning Time Using Divide and Conquer

분할 정복법을 이용한 Haskell GC 조정 시간 개선

  • An, Hyungjun (Dept. of Electrical and Computer Engineering, Pusan National University) ;
  • Byun, Sugwoo (School of Computer Science & Engineering, Kyungsung University) ;
  • Woo, Gyun (Dept. of Electrical and Computer Engineering, Pusan National University)
  • 안형준 (부산대학교 전기전자컴퓨터공학과) ;
  • 변석우 (경성대학교 컴퓨터공학과) ;
  • 우균 (부산대학교 전기전자컴퓨터공학과)
  • Published : 2017.04.27

Abstract

단일 코어 프로세스의 성능 향상은 전력 소모, 발열 등의 이유로 한계에 달했다. 이에 대한 대안으로 멀티 코어가 등장했으며 매니 코어 기술에 대한 연구가 활발히 진행 중에 있다. 이렇듯 멀티 코어 환경이 보편화됨에 따라 병렬 프로그래밍의 중요성이 더욱 커졌다. 한편, 순수 함수형 언어 Haskell은 부수효과가 없고 다양한 병렬화 도구를 지원함으로써 다가오는 병렬 프로그래밍 시대에 적합한 언어라 할 수 있다. 이때 Haskell 병렬 프로그램의 성능은 메모리 재사용(Garbage Collection) 시간에 큰 영향을 받는다. 그래서 Haskell 병렬 프로그램의 성능 향상, 분석을 위한 메모리 프로파일링 도구가 필요하다. 이미 Haskell이 제공하는 메모리 프로파일링 도구로 ghc-gc-tune이 있지만 실행 속도 측면에서 개선이 필요하다. 본 연구에서는 분할 정복법을 이용해서 매 단계마다 탐색 영역을 4분의 1로 줄이도록 ghc-gc-tune을 개선했다. 개선된 ghc-gc-tune을 극대 독립 집합 프로그램과 K-means 프로그램에 적용한 결과, 평균 98%의 정확도로 실행 시간을 평균 7.78배 단축했다.

Keywords