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

Deterministic Parallelism for Symbolic Execution Programs based on a Name-Freshness Monad Library  

Ahn, Ki Yung (Dept. of Computer Engineering, Hannam University)
Abstract
In this paper, we extend a generic library framework based on the state monad to exploit deterministic parallelism in a purely functional language Haskell and provide benchmarks for the extended features on a multicore machine. Although purely functional programs are known to be well-suited to exploit parallelism, unintended squential data dependencies could prohibit effective parallelism. Symbolic execution programs usually implement fresh name generation in order to prevent confusion between variables in different scope with the same name. Such implementations are often based on squential state management, working against parallelism. We provide reusable primitives to help developing parallel symbolic execution programs with unbound-genercis, a generic name-binding library for Haskell, avoiding sequential dependencies in fresh name generation. Our parallel extension does not modify the internal implementation of the unbound-generics library, having zero possibility of degrading existing serial implementations of symbolic execution based on unbound-genecrics. Therefore, our extension can be applied only to the parts of source code that need parallel speedup.
Keywords
Multicore; Deterministic Parallelism; Symbolic Execution; Name Binding; Haskell;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Unbound-generics: Support for programming with names and binders using GHC Generics. https://hackage.haskell.org/package/unbound-generics
2 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.
3 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.
4 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
5 T. Moto-oka. "Overview of the Fifth Generation Computer System Project," Proceedings of 10th Annual International Symposium on Computer Architecture, (10th ISCA'83), SIGARCH Newsletter, pp. 417-422, June 1983. DOI: 10.1145/800046.801682   DOI
6 J. Arora, S. Westrick, U. A. Acar. "Provably Space-efficient Parallel Functional Programming," Proceedings of the ACM on Programming Languages, Volume 5, POPL, Article No.: 18, pp 1-33, ACM, January 2021. DOI: 10.1145/3434299   DOI
7 L. B. van den Haak, T. L. McDonell, G. K. Keller, and I. G. de Wolff. "Accelerating Nested Data Parallelism: Preserving Regularity," Euro-Par 2020: Parallel Processing - 26th International Conference on Parallel and Distributed Computing, LNCS 12247, pp. 426-442, Springer, August 2020. DOI: 10.1007/978-3-030-57675-2_27   DOI
8 Y. Kim, J. Cheon1, T. Hur, S, Byun, and G. Woo. "SSAM: A Haskell Parallel Programming STM Based Simple Actor Model," Journal of Physics: Conference Series 1566 (ICCAI 2019), IOP Publishing, 2020. DOI: 10.1088/1742-6596/1566/1/012040   DOI
9 E. Albert, N. Bezirgiannis, F. D. Boer, and E. Martin-Martin. "A Formal, Resource Consumption-Preserving Translation from Actors with Cooperative Scheduling to Haskell," Fundamenta Informaticae, 177(3-4), pp. 203-234. DOI: 10.3233/FI-2020-1988   DOI
10 H. Kim, H. An, S. Byun, and G. Woo. "Tuning the Performance of Haskell Parallel Programs Using GC-Tune," KIISE Transactions on Computing Practices, 23(8), pp. 459-465, August 2017. DOI: 10.5626/KTCP.2017.23.8.459   DOI
11 K.Y. Ahn. "Parallelization of a Purely Functional Bisimulation Algorithm," Journal of KSCI, 26(1), January 2021. DOI: 10.9708/jksci.2021.26.01.011   DOI
12 S. Weirich, B. A. Yorgey, and Tim Sheard. "Binders unbound," Proceeding of the 16th ACM SIGPLAN international conference on Functional Programming, ICFP 2011, Tokyo, Japan, September 19-21, 2011, pp. 333-345, ACM, 2011. DOI: 10.1145/2034574.2034818   DOI
13 Unbound-kind-generics: Support for programming with names and binders using kind-generics. https://hackage.haskell.org/package/unbound-kind-generics
14 E. Sebastian, A. Justus, N. A Rink, A. Goens, and J. Castrillon. "STCLang: state thread composition as a foundation for monadic dataflow parallelism," Haskell 2019: Proceedings of the 12th ACM SIGPLAN International Symposium on Haskell, pp 146-161, August 2019. DOI: 10.1145/3331545.3342600   DOI
15 A. Rodriguez, Alexey and J. Jeuring, P. Jansson, A Gerdes, O. Kiselyov, and B. C. d. S. Oliveira. "Comparing Libraries for Generic Programming in Haskell," ACM SIGPLAN Notices 44(2), pp. 111-122, January 2009. DOI: 10.1145/1411286.1411301   DOI