DOI QR코드

DOI QR Code

Performance Comparison between Haskell Eval Monad and Cloud Haskell

Haskell Eval 모나드와 Cloud Haskell 간의 성능 비교

  • 김연어 (부산대학교 전기전자컴퓨터공학과) ;
  • 안형준 (부산대학교 전기전자컴퓨터공학과) ;
  • 변석우 (경성대학교 컴퓨터공학과) ;
  • 우균 (부산대학교 전기전자컴퓨터공학과)
  • Received : 2017.01.18
  • Accepted : 2017.05.31
  • Published : 2017.08.15

Abstract

Competition in the modern CPU market has shifted from speeding up the clock speed of a single core to increasing the number of cores. As such, there is a growing interest in parallel programming to maximize the use of resources of many core processors. In this paper, we propose parallel programming models in Haskell to find an advisable parallel programming model for many-core environments. Specifically, we used Eval monad and Cloud Haskell to develop two versions of parallel programs: plagiarism detection and K-means. Then, we evaluated the performance of the developed programs in 32-core and 120-core environments. The results of our experiment show that the Eval monad is highly efficient in an environment with a small number of cores. On the other hand, the Cloud Haskell runtime shows 37% improvement over Eval monad and the scalability shows a 134% improvement over Eval monad as the number of cores increases.

최근 CPU 시장은 단일 코어의 속도 상승에서 코어의 수를 늘려가는 방향으로 변하고 있다. 이러한 상황에서 매니코어 프로세서의 자원을 최대한 사용할 수 있는 병렬 프로그래밍에 관한 관심이 높아지고 있다. 이 논문에서는 병렬 프로그래밍에 적합한 Haskell을 이용하여 매니코어 환경에 적합한 병렬 프로그래밍 모델을 확인하고자 한다. 이를 위해 이 논문에서는 Eval 모나드와 Cloud Haskell을 이용하여 표절 검사 병렬 프로그램과 K-평균 병렬 프로그램을 개발하였다. 그리고 개발된 프로그램을 대상으로 32코어 환경, 120코어 환경에서 성능을 측정하였다. 측정 결과 적은 코어 수에서는 Eval 모나드가 유리한 것으로 나타났다. 하지만 코어 수가 늘어남에 따라 Cloud Haskell이 실행 시간 기준으로 37%, 확장성 기준으로 134% 더 우수한 것으로 나타났다.

Keywords

Acknowledgement

Grant : 매니코어 기반 초고성능 스케일러블 OS 기초연구

Supported by : 정보통신기술진흥센터

References

  1. S. Marlow, S.P. Jones, and S. Singh, "Runtime support for multicore Haskell," ACM Sigplan Notices, Vol. 44, No. 9, pp. 65-78, 2009. https://doi.org/10.1145/1631687.1596563
  2. C. Hewitt, P. Bishop and R. Steiger, "A universal modular actor formalism for artificial intelligence," Proc. of the 3rd international joint conference on Artificial intelligence, pp. 235-245, 1973.
  3. S. Marlow, Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming, 1st Ed., O'Reilly Media, 2013.
  4. J. Epstein, A. P. Black and S. Peyton-Jones, "Towards Haskell in the cloud," ACM SIGPLAN Notices, Vol. 46, No. 12, pp. 118-129, 2011. https://doi.org/10.1145/2096148.2034690
  5. J. Armstrong, R. Virding, C. Wikstrom, and M. Williams, Concurrent programming in ERLANG, Prentice Hall, second edition, 1996.
  6. J. Ji, G. Woo and H. Cho, "A Source Code Linearization Technique for Detecting Plagiarized Programs," ACM SIGCSE Bulletin, Vol. 39, No. 3, pp. 73-77, 2007. https://doi.org/10.1145/1269900.1268807
  7. V. Hanquez, Java parser and printer for Haskell, [Online]. Available: https://github.com/vincenthz/ language-java. (downloaded 2017, Jan. 13)
  8. P, Robin, The align package, [Online]. Available: https://hackage.haskell.org/package/align. (downloaded 2017, Jan. 13)
  9. T. Sheard, S. P. Jones, "Template meta-programming for Haskell," Proc. of the 2002 ACM SIGPLAN workshop on Haskell, pp. 1-16, 2002.
  10. H. Kim, H, An, S. Byun and G. Woo, "An Approach to Improve the Scalability of Parallel Haskell Programs," Proc. of the 2016 International Conference on Computing Convergence and Applications, pp. 175-178, 2016.
  11. S. Marlow and S. P. Jones, "Multicore garbage collection with local heaps," ACM SIGPLAN Notices, Vol. 46, No. 11, pp. 21-32, 2011. https://doi.org/10.1145/2076022.1993482