Abstract
The polyhedral model is now a well established and effective formalism for program optimization and parallelization. However, finding optimal transformations is a long-standing open problem. It is therefore important to develop tools that, rather than following predefined optimization criteria, allow practitioners to explore different choices through script-driven or user-guided transformations. More than practitioners, such flexibility is even more important for compiler researchers and auto-tuner developers. In addition, tools must also raise the level of abstraction by representing and manipulating reductions and scans explicitly. And third, the tools must also be able to explore transformation choices that consider memory (re)-allocation.
AlphaZ is a system that allows exploration of optimizing transformations in the polyhedral model that meets these goals. We illustrate its power through two examples of optimizations that existing parallelization tools cannot perform, but can be systematically applied using our system. One is time-tiling of a code from PolyBench that resembles the Alternating Direction Implicit (ADI) method, and the other is a transformation that brings down the algorithmic complexity of a kernel in UNAfold, a sequence alignment software, from O(N 4) to O(N 3).
This work was funded in part by the National Science Foundation, Award Number: 0917319.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
- Memory Allocation
- Design Space Exploration
- Polyhedral Model
- Automatic Parallelizers
- Alternate Direction Implicit
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.
References
Bastoul, C.: Code generation in the polyhedral model is easier than you think. In: Proceedings of the 13th IEEE International Conference on Parallel Architecture and Compilation Techniques, PACT 2004, Washington, DC, USA, pp. 7–16 (2004)
Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical automatic polyhedral parallelizer and locality optimizer. In: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2008, pp. 101–113. ACM, New York (2008)
Chen, C., Chame, J., Hall, M.: Chill: A framework for composing high-level loop transformations. U. of Southern California, Tech. Rep., pp. 08–897 (2008)
Darte, A., Schreiber, R., Villard, G.: Lattice-based memory allocation. IEEE Transactions on Computers 54(10), 1242–1257 (2005)
Feautrier, P.: Dataflow analysis of array and scalar references. International Journal of Parallel Programming 20(1), 23–53 (1991)
Gautam, G., Rajopadhye, S.: Simplifying reductions. In: POPL 2006: Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 30–41. ACM, New York (2006)
Hartono, A., Baskaran, M.M., Bastoul, C., Cohen, A., Krishnamoorthy, S., Norris, B., Ramanujam, J., Sadayappan, P.: Parametric multi-level tiling of imperfectly nested loops. In: Proceedings of the 23rd International Conference on Supercomputing, pp. 147–157. ACM, New York (2009)
Irigoin, F., Jouvelot, P., Triolet, R.: Semantical interprocedural parallelization: An overview of the pips project. In: Proceedings of the 5th International Conference on Supercomputing, pp. 244–251. ACM (1991)
Irisa, C.: The MMAlpha environment
Kelly, W., Pugh, W., Rosser, E.: Code generation for multiple mappings. In: Proceedings of the Fifth Symposium on the Frontiers of Massively Parallel Computation, pp. 332–341. IEEE (1995)
Kim, D., Rajopadhye, S.: Efficient Tiled Loop Generation: D-Tiling. In: Gao, G.R., Pollock, L.L., Cavazos, J., Li, X. (eds.) LCPC 2009. LNCS, vol. 5898, pp. 293–307. Springer, Heidelberg (2010)
Le Verge, H.: Reduction Operators in Alpha. In: Etiemble, D., Syre, J.-C. (eds.) PARLE 1992. LNCS, vol. 605, pp. 397–411. Springer, Heidelberg (1992), see also, Le Verge Thesis (in French)
Lyngs, R., Zuker, M., Pedersen, C., et al.: Fast evaluation of internal loops in rna secondary structure prediction. Bioinformatics 15(6), 440–445 (1999)
Markham, N., Zuker, M.: Software for nucleic acid folding and hybridization. Methods Mol. Biol. 453, 3–31 (2008)
Mauras, C.: ALPHA: un langage équationnel pour la conception et la programmation d’architectures parallèles synchrones. Ph.D. thesis, L’Université de Rennes I, IRISA, Campus de Beaulieu, Rennes, France (December 1989)
Maydan, D., Amarasinghe, S., Lam, M.: Array-data flow analysis and its use in array privatization. In: Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 2–15. ACM (1993)
Meister, B., Leung, A., Vasilache, N., Wohlford, D., Bastoul, C., Lethin, R.: Productivity via automatic code generation for PGAS platforms with the R-Stream compiler. In: Workshop on Asynchrony in the PGAS Programming Model (2009)
Pathan, T.: RNA Secondary Structure Prediction using AlphaZ. Master’s thesis, Colorado State University, Computer Science Department (August 2010)
Pop, S., Cohen, A., Bastoul, C., Girbal, S., Silber, G., Vasilache, N.: Graphite: Loop optimizations based on the polyhedral model for gcc (2006)
Pouchet, L.N.: PolyBench, http://www.cs.ucla.edu/~pouchet/software/polybench/
Pouchet, L.N., Bastoul, C., Cohen, A., Vasilache, N.: Iterative optimization in the polyhedral model: Part I, one-dimensional time. In: IEEE/ACM Fifth International Symposium on Code Generation and Optimization (CGO 2007), pp. 144–156. IEEE Computer Society Press, San Jose (2007)
Pouchet, L.N., Bondhugula, U., Bastoul, C., Cohen, A., Ramanujam, J., Sadayappan, P.: Hybrid iterative and model-driven optimization in the polyhedral model. Tech. Rep. 6962, INRIA Research Report (June 2009)
Quilleré, F., Rajopadhye, S.: Optimizing memory usage in the polyhedral model. ACM Trans. Program. Lang. Syst. 22(5), 773–815 (2000)
Shen, T., Wonnacott, D.: Code generation for memory mappings. In: Proceedings of the 1998 Mid-Atlantic Student Workshop on Programming Languages and Systems (1998)
Strout, M., Carter, L., Ferrante, J., Simon, B.: Schedule-independent storage mapping for loops. ACM SIGOPS Operating Systems Review 32(5), 24–33 (1998)
Thies, W., Vivien, F., Sheldon, J., Amarasinghe, S.: A unified framework for schedule and storage optimization. ACM SIGPLAN Notices 36(5), 232–242 (2001)
Vasilache, N., Meister, B., Hartono, A., Baskaran, M., Wohlford, D., Lethin, R.: Trading off memory for parallelism quality. In: International Workshop on Polyhedral Compilation Techniques, IMPACT (2012)
Vasilache, N.: Scalable Program Optimization Technique. The Polyhedral Model. Ph.D. thesis, University of Paris-Sud 11 (2007)
Verdoolaege, S.: isl: An Integer Set Library for the Polyhedral Model. In: Fukuda, K., van der Hoeven, J., Joswig, M., Takayama, N. (eds.) ICMS 2010. LNCS, vol. 6327, pp. 299–302. Springer, Heidelberg (2010)
Wonnacott, D.: Achieving scalable locality with time skewing. International Journal of Parallel Programming 30(3), 181–221 (2002)
Yi, Q.: Poet: a scripting language for applying parameterized source-to-source program transformations. Software: Practice and Experience (2011)
Yuki, T., Basupalli, V., Gupta, G., Iooss, G., Kim, D., Pathan, T., Srinivasa, P., Zou, Y., Rajopadhye, S.: Alphaz: A system for analysis, transformation, and code generation in the polyhedral equational model. Tech. rep., CS-12-101, Colorado State University (2012)
Yuki, T., Gupta, G., Pathan, T., Rajopadhye, S.: Systematic implementation of fast-i-loop in UNAfold using AlphaZ. Tech. rep., CS-12-102, Colorado State University (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yuki, T., Gupta, G., Kim, D., Pathan, T., Rajopadhye, S. (2013). AlphaZ: A System for Design Space Exploration in the Polyhedral Model. In: Kasahara, H., Kimura, K. (eds) Languages and Compilers for Parallel Computing. LCPC 2012. Lecture Notes in Computer Science, vol 7760. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37658-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-37658-0_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-37657-3
Online ISBN: 978-3-642-37658-0
eBook Packages: Computer ScienceComputer Science (R0)