PType System: A Featherweight Parallelizability Detector

  • Dana N. Xu
  • Siau-Cheng Khoo
  • Zhenjiang Hu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3302)


Parallel programming is becoming an important cornerstone of general computing. In addition, type systems have significant impact on program analysis. In this paper, we demonstrate an automated type-based system that soundly detects parallelizability of sequential functional programs. Our type inference system discovers the parallelizability property of a sequential program in a modular fashion, by exploring a ring structure among the program’s operators. It handles self-recursive functions with accumulating parameters, as well as a class of non-linear mutual-recursive functions. Programs whose types are inferred to be parallelizable can be automatically transformed to parallel code in a mutumorphic form – a succint model for parallel computation. Transforming into such a form is an important step towards constructing efficient data parallel programs.


Parallel Programming Recursive Function Recursive Call Sequential Program Parallel Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anand, S., Chin, W.N., Khoo, S.C.: Charting patterns on price history. In: ACM SIGPLAN International Conference on Functional Programming, pp. 134–145. ACM Press, New York (2001)Google Scholar
  2. 2.
    Berardi, S.: Pruning simply-typed lambda-terms. Journal of Logic and Computation 6(5), 663–681 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Chin, W.N.: Synthesizing parallel lemma. In: Proc. of a JSPS Seminar on Parallel Programming Systems, May 1992, pp. 201–217. World Scientific Publishing, Tokyo (1992)Google Scholar
  4. 4.
    Chin, W.N.: Towards an automated tupling strategy. In: Proc. Conference on Partial Evaluation and Program Manipulation, Copenhagen, Denmark, June 1993, pp. 119–132 (1993)Google Scholar
  5. 5.
    Chin, W.N., Darlington, J., Guo, Y.: Parallelizing conditional recurrences. In: Fraigniaud, P., Mignotte, A., Bougé, L., Robert, Y. (eds.) Euro-Par 1996. LNCS, vol. 1123. Springer, Heidelberg (1996)Google Scholar
  6. 6.
    Chin, W.N., Khoo, S.C., Hu, Z., Takeichi, M.: Deriving parallel codes via invariants. In: Palsberg, J. (ed.) SAS 2000. LNCS, vol. 1824, pp. 75–94. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  7. 7.
    Chin, W.N., Khoo, S.C., Lee, T.W.: Synchronisation analyses to stop tupling. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 75–89. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  8. 8.
    Chin, W.N., Takano, A., Hu, Z.: Parallelization via context preservation. In: IEEE Intl. Conference on Computer Languages, Chicago, U.S.A., May 2008. IEEE CS Press, Los Alamitos (1998), Google Scholar
  9. 9.
    Cole, M.: Parallel programming with list homomorphisms. Parallel Processing Letters 5(2) (1995)Google Scholar
  10. 10.
    Fischer, A.L., Ghuloum, A.M.: Parallelizing complex scans and reductions. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, Orlando, Florida, pp. 135–136. ACM Press, New York (1994)Google Scholar
  11. 11.
    Ghuloum, A.M., Fischer, A.L.: Flattening and parallelizing irregular applications, recurrent loop nests. In: 3rd ACM Principles and Practice of Parallel Programming, Santa Barbara, California, pp. 58–67. ACM Press, New York (1995)Google Scholar
  12. 12.
    Grant-Duff, Z.N., Harrison, P.: Parallelism via homomorphism. Parallel Processing Letters 6(2), 279–295 (1996)MathSciNetCrossRefGoogle Scholar
  13. 13.
    Hu, Z., Iwasaki, H., Takeichi, M.: Tupling calculation eliminates multiple data traversals. In: ACM SIGPLAN International Conference on Functional Programming, Amsterdam, The Netherlands, June 1997, pp. 164–175. ACM Press, New York (1997)Google Scholar
  14. 14.
    Hu, Z., Takeichi, M., Chin, W.N.: Parallelization in calculational forms. In: 25th Annual ACM Symposium on Principles of Programming Languages, San Diego, California, January 1998, pp. 316–328. ACM Press, New York (1998)Google Scholar
  15. 15.
    Jones, S.P., Hughes, J., et al.: Report on the programming language Haskell 98, a non-strict, purely functional languageGoogle Scholar
  16. 16.
    Kobayashi, N.: Type-based useless variable elimination. In: ACM Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Boston, Massachusett, January 2000, pp. 84–93 (2000)Google Scholar
  17. 17.
    Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (1999)CrossRefzbMATHGoogle Scholar
  18. 18.
    Pinter, S.S., Pinter, R.Y.: Program optimization and parallelization using idioms. In: ACM Principles of Programming Languages, Orlando, Florida, pp. 79–92. ACM Press, New York (1991)Google Scholar
  19. 19.
    Roe, P.: Parallel Programming using Functional Languages (Report CSC 91/R3). PhD thesis, University of Glasgow (1991)Google Scholar
  20. 20.
    Skillicorn, D.: Architecture-independent parallel computation. IEEE Computer 23(12), 38–50 (1990)CrossRefGoogle Scholar
  21. 21.
    Skillicorn, D.: Foundations of parallel programming. Cambridge International Series on Parallel Computation:6 (1994)Google Scholar
  22. 22.
    Stone, H.S.: Parallel tridiagonal equation solvers. ACM Transactions on Mathematical Software 1(4), 287–307 (1975)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Xu, N.: A type-based approach to parallelization. MSc thesis, School of Computing, National University of Singapore (July 2003),

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Dana N. Xu
    • 1
  • Siau-Cheng Khoo
    • 1
  • Zhenjiang Hu
    • 2
    • 3
  1. 1.School of ComputingNational University of SingaporeSingapore
  2. 2.University of TokyoJapan
  3. 3.PRESTO 21, Japan Science and Technology CorporationJapan

Personalised recommendations