Skip to main content

Parallel Computation Skeletons with Premature Termination Property

  • Conference paper
Functional and Logic Programming (FLOPS 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7294))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. In: Research Monographs in Parallel and Distributed Computing. Pitman (1989)

    Google Scholar 

  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)

    Article  MATH  Google Scholar 

  3. Lobachev, O.: Implementation and Evaluation of Algorithmic Skeletons: Parallelisation of Computer Algebra Algorithms. PhD thesis, Philipps-Universität Marburg (2011)

    Google Scholar 

  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. Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press (2003)

    Google Scholar 

  6. Trinder, P.W., Barry Jr., E., et al.: GPH: an architecture-independent functional language. IEEE Trans. Software Engineering (1999)

    Google Scholar 

  7. Marlow, S., Peyton Jones, S., Singh, S.: Runtime support for multicore Haskell. ACM SIGPLAN Notices 44(9), 65–78 (2009)

    Article  Google Scholar 

  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. Eden Group: Eden skeleton library. Software package (2012) (retrieved February 13, 2012)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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. 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)

    Chapter  Google Scholar 

  14. Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science 196(1-2), 71–107 (1998)

    Article  MATH  Google Scholar 

  15. Michaelson, G., Scaife, N., Bristow, P., King, P.: Nested Algorithmic Skeletons from Higher Order Functions. Parallel Algorithms and Appl. 16, 181–206 (2001)

    Article  MATH  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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. Hey, A.J.G.: Experiments in MIMD parallelism. Future Generation Computer Systems 6(3), 185–196 (1990)

    Article  Google Scholar 

  20. Foster, I.: Designing and building parallel programs: concepts and tools for parallel software engineering. Addison–Wesley (1995)

    Google Scholar 

  21. Grama, A.Y., Kumar, V., Gupta, A., Karypis, G.: Introduction to parallel computing. Addison–Wesley (2003)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  24. Dieterle, M.: Parallele funktionale Implementierung von Master-Worker-Skeletten. Diplomarbeit, Philipps-Universität Marburg (2007) (in German)

    Google Scholar 

  25. Reinders, J.: Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O’Reilly Media, Inc. (2007)

    Google Scholar 

  26. Lämmel, R.: Google’s mapreduce programming model — revisited. Science of Computer Programming 70(1), 1–30 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  27. Dean, J., Ghemawat, S.: MapReduce: a flexible data processing tool. Communications of the ACM 53, 72–77 (2010)

    Article  Google Scholar 

  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. Wray, S.C., Fairbairn, J.: Non-strict languages — programming and implementation. Computer Journal 32(2), 142–151 (1989)

    Article  Google Scholar 

  30. Stephens, R.: A survey of stream processing. Acta Inform. 34(7), 491–541 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  31. Conery, J.S., Kibler, D.F.: Parallel interpretation of logic programs. In: FPCA 1981, pp. 163–170. ACM (1981)

    Google Scholar 

  32. Cohen, H.: A Course in Computational Algebraic Number Theory. Springer (2000)

    Google Scholar 

  33. Miller, G.L.: Riemann’s hypothesis and tests for primality. Journal of Computer and System Sciences 13(3), 300–317 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  34. Rabin, M.O.: Probabilistic algorithm for testing primality. Journal of Number Theory 12(1), 128–138 (1980)

    Article  MathSciNet  MATH  Google Scholar 

  35. Adleman, L.M., Pomerance, C., Rumely, R.S.: On distinguishing prime numbers from composite numbers. Annals of Mathematics 117(1), 173–206 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  36. Cohen, H., Lenstra Jr., H.W.: Primality testing and Jacobi sums. Mathematics of Computation 42(165), 297–330 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  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. 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. Brown, N.C.C.: Communicating Haskell processes: Composable explicit concurrency using monads. In: Communicating Process Architectures, pp. 67–84 (2008)

    Google Scholar 

  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. 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. Schmidt, B., Schimmler, M., Schroeder, H.: High-Speed Cryptography. In: Embedded Cryptographic Hardware: Methodologies & Architectures. Nova Science Publishers (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lobachev, O. (2012). Parallel Computation Skeletons with Premature Termination Property. In: Schrijvers, T., Thiemann, P. (eds) Functional and Logic Programming. FLOPS 2012. Lecture Notes in Computer Science, vol 7294. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29822-6_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-29822-6_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-29821-9

  • Online ISBN: 978-3-642-29822-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics