Parallel Computation Skeletons with Premature Termination Property

  • Oleg Lobachev
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7294)

Abstract

A parallel computation with early termination property is a special form of a parallel for loop. This paper devises a generic highlevel approach for such computation which is expressed as a scheme for algorithmic skeletons. We call this scheme map+reduce, in similarity with the map-reduce paradigm. The implementation is concise and relies heavily on laziness. Two case studies from computational number theory support our presentation.

Keywords

Premature Termination Task Balance Absolute Speedup Miller Test Multicore Machine 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. In: Research Monographs in Parallel and Distributed Computing. Pitman (1989)Google Scholar
  2. 2.
    Loogen, R., Ortega-Mallén, Y., Peña-Marí, R.: Parallel Functional Programming in Eden. Journal of Functional Programming 15(3), 431–475 (2005)MATHCrossRefGoogle Scholar
  3. 3.
    Lobachev, O.: Implementation and Evaluation of Algorithmic Skeletons: Parallelisation of Computer Algebra Algorithms. PhD thesis, Philipps-Universität Marburg (2011)Google Scholar
  4. 4.
    Brown, C., Hammond, K.: Ever-decreasing circles: a skeleton for parallel orbit calculations in Eden. In: Draft Proceedings, TFP 2010 (2010)Google Scholar
  5. 5.
    Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press (2003)Google Scholar
  6. 6.
    Trinder, P.W., Barry Jr., E., et al.: GPH: an architecture-independent functional language. IEEE Trans. Software Engineering (1999)Google Scholar
  7. 7.
    Marlow, S., Peyton Jones, S., Singh, S.: Runtime support for multicore Haskell. ACM SIGPLAN Notices 44(9), 65–78 (2009)CrossRefGoogle Scholar
  8. 8.
    Marlow, S., Maier, P., Loidl, H.W., Aswad, M.K., Trinder, P.: Seq no more: better strategies for parallel Haskell. In: Haskell 2010, pp. 91–102. ACM (2010)Google Scholar
  9. 9.
    Eden Group: Eden skeleton library. Software package (2012) (retrieved February 13, 2012)Google Scholar
  10. 10.
    Galán, L.A., Pareja, C., Peña, R.: Functional Skeletons Generate Process Topologies in Eden. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 289–303. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  11. 11.
    Peña, R., Rubio, F.: Parallel Functional Programming at Two Levels of Abstraction. In: PPDP 2001, pp. 187–198. ACM (2001)Google Scholar
  12. 12.
    Loogen, R., Ortega-Mallén, Y., Peña, R., Priebe, S., Rubio, F.: Parallelism abstractions in Eden. In: Rabhi, F.A., Gorlatch, S. (eds.) Patterns and Skeletons for Parallel and Distributed Computing, pp. 71–88. Springer (2003)Google Scholar
  13. 13.
    Darlington, J., Field, A.J., Harrison, P.G., Kelly, P.H.J., Sharp, D.W.N., Wu, Q., et al.: Parallel Programming Using Skeleton Functions. In: Reeve, M., Bode, A., Wolf, G. (eds.) PARLE 1993. LNCS, vol. 694, pp. 146–160. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  14. 14.
    Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science 196(1-2), 71–107 (1998)MATHCrossRefGoogle Scholar
  15. 15.
    Michaelson, G., Scaife, N., Bristow, P., King, P.: Nested Algorithmic Skeletons from Higher Order Functions. Parallel Algorithms and Appl. 16, 181–206 (2001)MATHCrossRefGoogle Scholar
  16. 16.
    Bischof, H., Gorlatch, S., Leshchinskiy, R.: Generic Parallel Programming Using C++ Templates and Skeletons. In: Lengauer, C., Batory, D., Blum, A., Vetta, A. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 107–126. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  17. 17.
    Bacci, B., Danelutto, M., Orlando, S., Pelagatti, S., Vanneschi, M.: P3L: A structured high-level parallel language, and its structured support. Concurrency: Practice and Experience 7(3), 225–255 (1995)CrossRefGoogle Scholar
  18. 18.
    Leyton, M., Piquer, J.M.: Skandium: Multi-core programming with algorithmic skeletons. In: 18th Euromicro Conference on Parallel, Distributed and Network-based Processing, pp. 289–296. IEEE (2010)Google Scholar
  19. 19.
    Hey, A.J.G.: Experiments in MIMD parallelism. Future Generation Computer Systems 6(3), 185–196 (1990)CrossRefGoogle Scholar
  20. 20.
    Foster, I.: Designing and building parallel programs: concepts and tools for parallel software engineering. Addison–Wesley (1995)Google Scholar
  21. 21.
    Grama, A.Y., Kumar, V., Gupta, A., Karypis, G.: Introduction to parallel computing. Addison–Wesley (2003)Google Scholar
  22. 22.
    Priebe, S.: Dynamic Task Generation and Transformation Within a Nestable Workpool Skeleton. In: Nagel, W.E., Walter, W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 615–624. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  23. 23.
    Dieterle, M., Berthold, J., Loogen, R.: A Skeleton for Distributed Work Pools in Eden. In: Blume, M., Kobayashi, N., Vidal, G. (eds.) FLOPS 2010. LNCS, vol. 6009, pp. 337–353. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  24. 24.
    Dieterle, M.: Parallele funktionale Implementierung von Master-Worker-Skeletten. Diplomarbeit, Philipps-Universität Marburg (2007) (in German)Google Scholar
  25. 25.
    Reinders, J.: Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O’Reilly Media, Inc. (2007)Google Scholar
  26. 26.
    Lämmel, R.: Google’s mapreduce programming model — revisited. Science of Computer Programming 70(1), 1–30 (2008)MathSciNetMATHCrossRefGoogle Scholar
  27. 27.
    Dean, J., Ghemawat, S.: MapReduce: a flexible data processing tool. Communications of the ACM 53, 72–77 (2010)CrossRefGoogle Scholar
  28. 28.
    Friedman, D.P., Wise, D.S.: CONS should not evaluate its arguments. In: Automata, Languages, and Programming, pp. 257–281 (1976)Google Scholar
  29. 29.
    Wray, S.C., Fairbairn, J.: Non-strict languages — programming and implementation. Computer Journal 32(2), 142–151 (1989)CrossRefGoogle Scholar
  30. 30.
    Stephens, R.: A survey of stream processing. Acta Inform. 34(7), 491–541 (1997)MathSciNetMATHCrossRefGoogle Scholar
  31. 31.
    Conery, J.S., Kibler, D.F.: Parallel interpretation of logic programs. In: FPCA 1981, pp. 163–170. ACM (1981)Google Scholar
  32. 32.
    Cohen, H.: A Course in Computational Algebraic Number Theory. Springer (2000)Google Scholar
  33. 33.
    Miller, G.L.: Riemann’s hypothesis and tests for primality. Journal of Computer and System Sciences 13(3), 300–317 (1976)MathSciNetMATHCrossRefGoogle Scholar
  34. 34.
    Rabin, M.O.: Probabilistic algorithm for testing primality. Journal of Number Theory 12(1), 128–138 (1980)MathSciNetMATHCrossRefGoogle Scholar
  35. 35.
    Adleman, L.M., Pomerance, C., Rumely, R.S.: On distinguishing prime numbers from composite numbers. Annals of Mathematics 117(1), 173–206 (1983)MathSciNetMATHCrossRefGoogle Scholar
  36. 36.
    Cohen, H., Lenstra Jr., H.W.: Primality testing and Jacobi sums. Mathematics of Computation 42(165), 297–330 (1984)MathSciNetMATHCrossRefGoogle Scholar
  37. 37.
    Berthold, J., Loogen, R.: Visualizing Parallel Functional Program Executions: Case Studies with the Eden Trace Viewer. In: Parallel Computing: Architectures, Algorithms and Applications, ParCo 2007. IOS Press (2007)Google Scholar
  38. 38.
    Welch, P.H.: Graceful termination–graceful resetting. In: Bakker, A.W.P. (ed.) Applying Transputer-Based Parallel Machines, pp. 310–317. IOS Press (1989)Google Scholar
  39. 39.
    Brown, N.C.C.: Communicating Haskell processes: Composable explicit concurrency using monads. In: Communicating Process Architectures, pp. 67–84 (2008)Google Scholar
  40. 40.
    Hahnel, T.: The Rabin–Miller Prime Number Test on Systola 1024 on the Background of Cryptography. Master’s thesis, University of Karlsruhe (1998)Google Scholar
  41. 41.
    Cheung, R.C.C., Brown, A., Luk, W., Cheung, P.Y.K.: A scalable hardware architecture for prime number validation. In: FPT 2004, pp. 177–184 (2004)Google Scholar
  42. 42.
    Schmidt, B., Schimmler, M., Schroeder, H.: High-Speed Cryptography. In: Embedded Cryptographic Hardware: Methodologies & Architectures. Nova Science Publishers (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Oleg Lobachev
    • 1
  1. 1.Fachbereich Mathematik und InformatikPhilipps-Universität MarburgMarburgGermany

Personalised recommendations