Abstract
In this paper, we propose a new automatic data alignment model called segmented alignment. The conventional data alignment model, such as that used in High-Performance Fortran (HPF), aligns arrays with the whole index domain. The principle of our proposed segmented alignment is to allow alignment relations within delimited index domains. We first provide motivating examples to illustrate how code fragments of HPF with EOSHIFT or CSHIFT operations, or produced by synthesis operations can benefit from our enhanced alignment scheme. Second, we show that this new model can be implemented in HPF-like languages by adding WHEN and IN constructs to them. In addition, we show that the new proposed schemes for WHEN and IN constructs can be emulated using standard HPF syntax. Finally, we address issues related to automatic data alignment for the new proposed model, and present an algorithm to automatically align programs using our segmented alignment scheme. Since the optimal algorithm to do this is NP-hard, a practical heuristic is also given. Our experiments were performed on a DEC Alpha Farm with HPF environments. Our experiments confirm our theory that our proposed alignment scheme can significantly enhance not only the performance of HPF code fragments with EOSHIFT or CSHIFT operations, but also that of codes produced by synthesis operations.
Similar content being viewed by others
Explore related subjects
Discover the latest articles and news from researchers in related subjects, suggested using machine learning.References
J. C. Adams, W. S. Brainerd, J. T. Martin, B. T. Smith, and J. L. Wagener. Fortran 90 Handbook Complete ANSI/ISO Reference. Intertext Publications McGraw-Hill Book Company, 1992.
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers Principles, Techniques, and Tools. Addison-Wesley Publishing Company, 1986.
J. M. Anderson and M. S. Lam. Global optimizations for parallelism andlocality on scalable parallel machines. In Proceedings of the ACMSIGPLAN'93 Conference on Programming Language Design and Implementation, pp. 112–125, June 1993.
R. Bixby, K. Kennedy, and U. Kremer. Automatic data layour using 0–1 Intefer programming. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, Montreal, Canada, August 1994.
Z. Bozkus, A. Choudhary, G. Fox, T. Haupt, S. Ranka, and M. Y. Wu. Compiling Fortran 90D/HPF for distributed memory MIMD computers. Journal of Parallel and Distributed Computing, 21(1):15–26, 1994.
T. A. Budd. An APL compiler for a vector processor. ACMT ransactions on Programming Languages and Systems, 6(3):297–313, 1984.
S. Chatterjee, J. R. Gilbert, R. Schreiber, and S.-H. Teng. Automatic array alignment in data-parallel programs. In Proceedings of the Twentieth Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, SC, pp. 16–28, January 1993.
J. R. Gilbert and R. Schreiber. Optimal expression evaluation for data parallel architectures. Journal of Parallel and Distributed Computing, 13:58–64, 1991.
L. J. Guibas and D. K. Wyatt. Compilation andd elayedevaluation in APL. In Proceeding of the Fifth Annual ACM Symposium on Principles of Programming Languages, pp. 1–8, 1978.
M. Gupta and P. Banerjee. Demonstration of automatic data partitioning techniques for parallelizing compilers on multicomputers. IEEE Transactions on Parallel and Distributed Systems, 3:179–193, Mar. 1992.
M. Gupta and P. Banerjee. PARADIGM: A compiler for automatic data distribution on multicomputers. In ACM Inter national Conference on Supercomputing, Tokyo, July 1993.
J. Harris, J. Bircsak, M. R. Bolduc, J. A. Diewald, I. Gale, N. W. Johnson, S. Lee, C. A. Nelson, and C. D. Offner. Compiling High Performance Fortran for Distributed-memory Systems. Digital Technical Journal, 7(3):5–23, 1995.
G. H. Hwang, J. K. Lee, and D. C. Ju. An array operation synthesis scheme to optimize Fortran 90 programs. In Proceedings of ACMSIGPLAN Conference on Principles and Practice of Parallel Programming, pp. 112–122, July 1995. Also, ACMSigplan Notices, 30(8), 1995.
G. H. Hwang, J. K. Lee, and D. C. Ju. Array operation synthesis to optimize HPF programs. In Proceedings of the 1996 International Conference on Parallel Processing, 3:1–8, August, 1996.
G. H. Hwang, J. K. Lee, and D. C. Ju. A function-composition approach to synthesize Fortran 90 array operations. Journal of Parallel and Distributed Computing, 54:1–47, 1998.
K. Kennedy and U. Kremer. Automatic data layout for distribution-memory machines. ACM Transactions on Parallel Languages and Systems, 20(4):869–916, 1998.
K. Knob, J. D. Lukas, and G. L. Steele. Data optimization: allocation of arrays to reduce communication on SIMD Machines. Journal of Parallel and Distributed Computing, 2:102–118, 1990.
C. Koelbel. Compile-time generation of regular communications patterns. In Proceedings of Supercomputing'91, pages 101–110, 1991.
C. Koelbel, D. Loveman, R. Schreiber, G. Steele, and M. Zosel. The High Performance Fortran Handbook, MIT Press, Cambridge, 1994.
J. K. Lee and D. Gannon. Object-Oriented Parallel Programming: Experiments and Results. In Proceedings of Supercomputing' 91, New Mexico, November, 1991.
J. Li and M. Chen. The data alignment phase in compiling programs for distributed-memory machines. Journal of Parallel and Distributed Computing, 13:213–221, Oct. 1991.
J. Li and M. Chen. Compiling communication-efficient programs for massively parallel machines. IEEE Transactions On Parallel and Distributed Systems, 2(3), 1991.
A. Mohamer, G. Fox, G. Laszewski, M. Parashar, T. Haupt, K. Mills, Y. Lu, N. Lin, and N. Yeh. Applications benchmark set for Fortran-D and high performance Fortran. Technical Report SCCS327, NPAC, Syracuse University.
M. Philippsen and M. U. Mock. Data andprocess alignment in Modula-2*. In Automatic Parallelization: New Approaches, pp. 177–191. Verlag Vieweg, 1994.
M. Philippsen. Automatic alignment of array data and process to reduce communication time on DMPPs. In Proceedings of the Fifth ACMSIGPLAN Symposium on Principles & Practice of Parallel Programming, pp. 112–122. ACM Press. Santa Barbara, CA. 1995.
W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery. Numerical Recipes in Fortran90: The Art of Parallel Scientific Computer, Volume 2 of Fortran Numerical Recipes, Second Edition. Cambridge University Press, 1996
J. R. Rice and J. Jing. Problems to test parallel andvector languages. Purdue University Technical Report CSD-TR-1016, 1990.
T. J. Sheffier, R. Schreiber, J. R. Gilbert, and S. Chatterjee. Aligning parallel arrays to reduce communication. In Proceedings of Frontiers' 95, pp. 324–331. McLean, VA, February 1995.
H. Zima and B. Chapman. Compiling for distributed-memory systems. In Proceeding IEEE, 81(2):264–287, 1993.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Hwang, GH., Chen, CW., Lee, J.K. et al. Segmented Alignment: An Enhanced Model to Align Data Parallel Programs of HPF. The Journal of Supercomputing 25, 17–41 (2003). https://doi.org/10.1023/A:1022852522319
Issue Date:
DOI: https://doi.org/10.1023/A:1022852522319