Browse > Article
http://dx.doi.org/10.3745/KTCCS.2017.6.9.377

Improving Haskell GC-Tuning Time Using Divide-and-Conquer  

An, Hyungjun (부산대학교 전기전자컴퓨터공학과)
Kim, Hwamok (부산대학교 전기전자컴퓨터공학과)
Liu, Xiao (부산대학교 전기전자컴퓨터공학과)
Kim, Yeoneo (부산대학교 전기전자컴퓨터공학과)
Byun, Sugwoo (경성대학교 컴퓨터공학부)
Woo, Gyun (부산대학교 전기전자컴퓨터공학과)
Publication Information
KIPS Transactions on Computer and Communication Systems / v.6, no.9, 2017 , pp. 377-384 More about this Journal
Abstract
The performance improvement of a single core processor has reached its limit since the circuit density cannot be increased any longer due to overheating. Therefore, the multicore and manycore architectures have emerged as viable approaches and parallel programming becomes more important. Haskell, a purely functional language, is getting popular in this situation since it naturally supports parallel programming owing to its beneficial features including the implicit parallelism in evaluating expressions and the monadic tools supporting parallel constructs. However, the performance of Haskell parallel programs is strongly influenced by the performance of the run-time system including the garbage collector. Though a memory profiling tool namely GC-tune has been suggested, we need a more systematic way to use this tool. Since GC-tune finds the optimal memory size by executing the target program with all the different possible GC options, the GC-tuning time takes too long. This paper suggests a basic divide-and-conquer method to reduce the number of GC-tune executions by reducing the search area by one-quarter for every searching step. Applying this method to two parallel programs, a maximally independent set and a K-means programs, the memory tuning time is reduced by 7.78 times with accuracy 98% on average.
Keywords
Haskell; Parallel Programming; Generational GC; Divide-and-Conquer; GC-Tune;
Citations & Related Records
연도 인용수 순위
  • Reference
1 L. Chai, Q. Gao, and D. K. Panda. "Understanding the impact of multi-core architecture in cluster computing: A case study with intel dual-core system," Cluster Computing and the Grid 2007. Seventh IEEE International Symposium on. IEEE, pp.471-478, 2007.
2 Y. Kim and S. Kim, "Technology and Trends of High Performance Processors," Electronics and Telecommunications Trends, No.6, pp.123-136, 2014.
3 J. Kim, S. Byun, K. Kim, J. Jung, K. Koh, S. Cha, and S. Jung, "Technology Trends of Haskell Parallel Programming in the Manycore Era," Electronics and Telecommunications Trends, No.29, pp.167-175, 2014.
4 H. Kim, H. An, S. Byun, and G. Woo, "An Approach to Improve the Scalability of Parallel Haskell Programs," Proceedings of 2016 International Conference on Computing Convergence and Applications (ICCCA 2016), pp.175-178, 2016.
5 T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, "Introduction to algorithms," 3rd ed., MIT press, 2009.
6 G. Brassard and P. Bratley, "Fundamentals of algorithmics," Vol.33. Englewood Cliffs: Prentice Hall, 1996.
7 P. M. Sansom and S. L. Peyton Jones, "Generational garbage collection for Haskell," Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp.106-116, 1993.
8 The ghc-gc-tune package, Graph performance of Haskell programs with different GC flags [Internet], https://hackage.haskell.org/package/ghc-gc-tune, 2017.
9 G. Chris and R. Gordon, "Algebraic Graph Theory," Springer New York, 2001.
10 Marc Airhart. Hot Chips: Managing Moore's Law, 2015. [Online; accessed 22-may-2017]. URL: https://news.utexas.edu/2015/04/15/hot-chips-managing-moores-law.