Speculative Parallelization of a Randomized Incremental Convex Hull Algorithm
Finding the fastest algorithm to solve a problem is one of the main issues in Computational Geometry. Focusing only on worst case analysis or asymptotic computations leads to the development of complex data structures or hard to implement algorithms. Randomized algorithms appear in this scenario as a very useful tool in order to obtain easier implementations within a good expected time bound. However, parallel implementations of these algorithms are hard to develop and require an in-depth understanding of the language, the compiler and the underlying parallel computer architecture. In this paper we show how we can use speculative parallelization techniques to execute in parallel iterative algorithms such as randomized incremental constructions. In this paper we focus on the convex hull problem, and show that, using our speculative parallelization engine, the sequential algorithm can be automatically executed in parallel, obtaining speedups with as little as four processors, and reaching 5.15x speedup with 28 processors.
KeywordsConvex Hull Incremental Algorithm Shared Structure Complex Data Structure Incremental Construction
Unable to display preview. Download preview PDF.
- 2.CGAL, Computational Geometry Algorithms Library, http://www.cgal.org/
- 4.Cintra, M., Llanos, D.R.: Toward efficient and robust software speculative parallelization on multiprocessors. In: Proc. of the SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), June 2003, pp. 13–24 (2003)Google Scholar
- 5.Cintra, M., Martínez, J.F., Torrellas, J.: Architectural support for scalable speculative parallelization in shared-memory multiprocessors. In: Proc. of the 27th Intl. Symp. on Computer Architecture (ISCA), June 2000, pp. 256–264 (2000)Google Scholar
- 6.Clarkson, K.L.: Randomized geometric algorithms. In: Du, D.-Z., Hwang, F. (eds.) Computing in Euclidean Geometry, 2nd edn. Lect. Notes Series on Computing, vol. 4, pp. 149–194. World Scientific, Singapore (1995)Google Scholar
- 10.Hammond, L., Willey, M., Olukotun, K.: Data speculation support for a chip multiprocessor. In: Proc. of the 8th Intl. Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), October 1998, pp. 58–69 (1998)Google Scholar
- 12.Gupta, M., Nim, R.: Techniques for run-time parallelization of loops. Supercomputing (November 1998)Google Scholar
- 13.Mehlhorn, K., Näher, S.: LEDA: A Platform for Combinatorial and Geometric Computing. Cambridge University Press, Cambridge (2000)Google Scholar
- 14.Mulmuley, K.: Computational Geometry: An Introduction Through Randomized Algorithms. Prentice Hall, Englewood Cliffs (1994)Google Scholar
- 16.Sohi, G., Breach, S., Vijaykumar, T.: Multiscalar processors. In: Proc. of the 22nd Intl. Symp. on Computer Architecture (ISCA), June 1995, pp. 414–425 (1995)Google Scholar