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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. In: Research Monographs in Parallel and Distributed Computing. Pitman (1989)
Loogen, R., Ortega-Mallén, Y., Peña-Marí, R.: Parallel Functional Programming in Eden. Journal of Functional Programming 15(3), 431–475 (2005)
Lobachev, O.: Implementation and Evaluation of Algorithmic Skeletons: Parallelisation of Computer Algebra Algorithms. PhD thesis, Philipps-Universität Marburg (2011)
Brown, C., Hammond, K.: Ever-decreasing circles: a skeleton for parallel orbit calculations in Eden. In: Draft Proceedings, TFP 2010 (2010)
Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press (2003)
Trinder, P.W., Barry Jr., E., et al.: GPH: an architecture-independent functional language. IEEE Trans. Software Engineering (1999)
Marlow, S., Peyton Jones, S., Singh, S.: Runtime support for multicore Haskell. ACM SIGPLAN Notices 44(9), 65–78 (2009)
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)
Eden Group: Eden skeleton library. Software package (2012) (retrieved February 13, 2012)
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)
Peña, R., Rubio, F.: Parallel Functional Programming at Two Levels of Abstraction. In: PPDP 2001, pp. 187–198. ACM (2001)
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)
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)
Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science 196(1-2), 71–107 (1998)
Michaelson, G., Scaife, N., Bristow, P., King, P.: Nested Algorithmic Skeletons from Higher Order Functions. Parallel Algorithms and Appl. 16, 181–206 (2001)
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)
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)
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)
Hey, A.J.G.: Experiments in MIMD parallelism. Future Generation Computer Systems 6(3), 185–196 (1990)
Foster, I.: Designing and building parallel programs: concepts and tools for parallel software engineering. Addison–Wesley (1995)
Grama, A.Y., Kumar, V., Gupta, A., Karypis, G.: Introduction to parallel computing. Addison–Wesley (2003)
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)
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)
Dieterle, M.: Parallele funktionale Implementierung von Master-Worker-Skeletten. Diplomarbeit, Philipps-Universität Marburg (2007) (in German)
Reinders, J.: Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O’Reilly Media, Inc. (2007)
Lämmel, R.: Google’s mapreduce programming model — revisited. Science of Computer Programming 70(1), 1–30 (2008)
Dean, J., Ghemawat, S.: MapReduce: a flexible data processing tool. Communications of the ACM 53, 72–77 (2010)
Friedman, D.P., Wise, D.S.: CONS should not evaluate its arguments. In: Automata, Languages, and Programming, pp. 257–281 (1976)
Wray, S.C., Fairbairn, J.: Non-strict languages — programming and implementation. Computer Journal 32(2), 142–151 (1989)
Stephens, R.: A survey of stream processing. Acta Inform. 34(7), 491–541 (1997)
Conery, J.S., Kibler, D.F.: Parallel interpretation of logic programs. In: FPCA 1981, pp. 163–170. ACM (1981)
Cohen, H.: A Course in Computational Algebraic Number Theory. Springer (2000)
Miller, G.L.: Riemann’s hypothesis and tests for primality. Journal of Computer and System Sciences 13(3), 300–317 (1976)
Rabin, M.O.: Probabilistic algorithm for testing primality. Journal of Number Theory 12(1), 128–138 (1980)
Adleman, L.M., Pomerance, C., Rumely, R.S.: On distinguishing prime numbers from composite numbers. Annals of Mathematics 117(1), 173–206 (1983)
Cohen, H., Lenstra Jr., H.W.: Primality testing and Jacobi sums. Mathematics of Computation 42(165), 297–330 (1984)
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)
Welch, P.H.: Graceful termination–graceful resetting. In: Bakker, A.W.P. (ed.) Applying Transputer-Based Parallel Machines, pp. 310–317. IOS Press (1989)
Brown, N.C.C.: Communicating Haskell processes: Composable explicit concurrency using monads. In: Communicating Process Architectures, pp. 67–84 (2008)
Hahnel, T.: The Rabin–Miller Prime Number Test on Systola 1024 on the Background of Cryptography. Master’s thesis, University of Karlsruhe (1998)
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)
Schmidt, B., Schimmler, M., Schroeder, H.: High-Speed Cryptography. In: Embedded Cryptographic Hardware: Methodologies & Architectures. Nova Science Publishers (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)