Browse > Article
http://dx.doi.org/10.9708/jksci.2021.26.01.011

Parallelization of a Purely Functional Bisimulation Algorithm  

Ahn, Ki Yung (Dept. of Computer Engineering, Hannam University)
Abstract
In this paper, we demonstrate a performance boost by parallelizing a purely functional bisimulation algorithm on a multicore processor machine. The key idea of this parallelization is exploiting the referential transparency of purely functional programs to minimize refactoring of the original implementation without any parallel constructs. Both original and parallel implementations are written in Haskell, a purely functional programming language. The change from the original program to the parallel program is minuscule, maintaining almost original structure of the program. Through benchmark, we show that the proposed parallelization doubles the performance of the bisimulation test compared to the original non-parallel implementation. We also shaw that similar performance boost is also possible for a memoized version of the bisimulation implementation.
Keywords
Multicore; Deterministic Parallelism; Labelled Transition Systems; Bisimulation; Behavioral Equivalence; Functional Programming;
Citations & Related Records
연도 인용수 순위
  • Reference
1 J. Huges. "Lazy Memo Functions," Functional Programming languages and Computer Architecture, pp. 129-148, Springer-Verlag, 1985, DOI: 10.1007/3-540-15975-4_34   DOI
2 P. W. Trinder, E. Barry Jr., M. K. Davis, K. Hammond, S. B. Junaidu, U. Klusik, H.-W. Loidl, and S. L. Peyton-Jones. "Low level Architecture-independence of Glasgow Parallel Haskell (GpH)". In Glasgow Workshop on Functional Programming, Pitlochry, Scotland, Sept. 1998.
3 S. Marlow, S. L. Peyton-Jones, and S. Singh. "Runtime Support for Multicore Haskell." In ICFP 2009, pp. 65-78, Aug. 2009. ACM Press. DOI: 10.1145/1596550.1596563   DOI
4 J. S. Conery and D. F. Kibler. "Parallel Interpretation of Logic Programs." In Proc. of the 1981 Conference on Functional Programming languages and Computer Architecture, pp. 163-170. 1981.
5 Y Kim, H. An, S. Byun and G. Woo. "Performance Comparison between Haskell Eval Monad and Cloud Haskell," Journal of KIISE, Vol 44, No. 8, pp. 791-802, August 2017, DOI: 10.5626/JOK.2017.44.8.791   DOI
6 R. Milner. "Communication and Concurrency". Prentice Hall. 1989. ISBN 0-13-114984-9
7 R. Clifton-Everest, T. L. McDonell, M. Chakravarty, and G. Keller. "Streaming Irregular Arrays." Haskell 2017: Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell. pp. 174-185, September 2017, DOI: 10.1145/3122955.3122971   DOI
8 D. Sangiorgi, "A theory of bisimulation for pi-calculus," Acta Informatica. Vol. 3, pp. 69-97, Springer, 1996   DOI
9 A. Tiu, N. Nguyen and R. Horne. "SPEC: an equivalence checker for security protocols," APLAS '16: Asian Symposium on Programming Languages and System, pp. 87-95, 2016
10 R. Horne, K.Y. Ahn, S-W Lin and A. Tiu. "Quasi-Open Bisimilarity with Mismatch is Intuitionistic," LICS '18: Proceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer Science, July 2018, pp. 26-35 DOI: 10.1145/3209108.3209125   DOI
11 K. Hammond and S. L. Peyton-Jones. "Profiling Scheduling Strategies on the GRIP Multiprocessor". In Intl. Workshop on the Parallel Implementation of Functional Languages, pages 73-98, Aachen, Germany, Sept. 1992.
12 D. Michie. Memo Functions: a Language Feature with "Rote-Learning" Properties. Edinburgh University, Dept. of Machine Intelligence and Perception, 1967.