Abstract
This article discusses techniques for compiling high-level, explicitly-parallel languages for massively parallel machines.
We present mechanisms for translating asynchronous as well as synchronous parallelism for both SIMD and MIMD machines. We show how the parallelism specified in a program is mapped onto the available processors and discuss an effective optimization that eliminates redundant synchronization points. Approaches for improving scheduling, load balancing, and co-location of data and processes are also presented. We conclude with important architectural principles required of parallel computers to support efficient, compiled programs.
Our discussion is based on the language Modula-2*, an extension of Modula-2 for writing highly parallel programs in a machine-independent, problem-oriented way. The novel attributes of Modula-2* are that programs are independent of the number of processors, independent of whether memory is shared or distributed, and independent of the control mode (SIMD or MIMD) of a parallel machine. Similar extensions could easily be included in other languages.
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
Akl SG. The Design and Analysis of Parallel Algorithms. Prentice Hall, Englewood Cliffs, New Jersey, 1989.
American National Standards Institute, Inc., Washington, D.C. ANSI, Programming Language Fortran (Fortran90), Draft S8, Version 114 (X3.91990), 1990.
Bal HE, Steiner JS, Tanenbaum AS. Programming languages for distributed computing systems. ACM Computing Surveys, 21 (3): 261–322, 1989.
Banerjee U. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, Dordrecht, London, 1988.
Fox G, Hiranandani S, Kennedy K, Koelbel C, Kremer U, Tseng CW, Wu MY. Fortran D language specification. Technical Report CRPCTR90079, Center for Research on Parallel Computation, Rice University, 1990.
Fox GC. What have we learnt from using real parallel machines to solve real problems. In Proc. of the Third Conf. on Hypercube Concurrent Computers and Applications, vol 2, pp 897–955, Pasadena, CA, 1988. ACM Press, New York.
Gibbons A, Rytter W. Efficient Parallel Algorithms. Cambridge University Press, 1988.
Heinz EA. Automatische Elimination von Synchronisationsbarrieren in synchronen FORALLs. Master’s thesis, University of Karlsruhe, Department of Informatics, 1991.
Hillis WD, Steele GL. Data parallel algorithms. Communications of the ACM, 29 (12): 1170–1183, 1986.
Knobe K, Lukas JD, Steele GL. Data optimization: Allocation of arrays to reduce communication on SIMD machines. Journal of Parallel and Distributed Computing, 8 (2): 102–118, 1990.
Knobe K, Natarajan V. Data optimization: Minimizing residual inter-processor data motion on SIMD machines. In Frontiers ‘80: The Third Symposium on the Frontiers of Massively Parallel Computation, College Park, University of Maryland, 1990.
Koelbel C, Mehrotra P. Supporting shared data structures and distributed memory architectures. In Proc. of the 2nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp 177–186, 1990.
Kretzschmar R. Ein Modula-2*-Compiler für die Connection Machine CM-2. Master’s thesis, University of Karlsruhe, Department of Informatics, 1991.
Lukowicz P. Code-Erzeugung für AJodula-2* für verschiedene Maschinenarchitekturen. Master’s thesis, University of Karlsruhe, Department of Informatics, 1992.
McGraw J, Skedzielewski S, Allan S, Oldehoeft R, Glauert J, Kirkham C, Noyce B, Thomas R. SISAL Language Reference Manual. Lawrence Livermore National Laboratory, 1985.
McGraw JR. The VAL language: Description and analysis. ACM Transactions on Programming Languages and Systems, 4 (1): 44–82, 1982.
Mehrotra P, Rosendale JV. The BLAZE language: A parallel language for scientific programming. Parallel Computing, 5: 339–361, 1987.
Metcalf M, Reid J. Fortran 90 Explained. Oxford Science Publications, 1990.
Ousterhout JK, Scelza DA, Sindhu PS. Medusa: An experiment in distributed operating system structure. Communications of the ACM, 23 (2): 92205, 1980.
Polychronopoulos CD. Parallel Programming and Compilers. Kluwer Academic Publishers, Boston, Dordrecht, London, 1989.
Prentice Hall, Englewood Cliffs, New Jersey. INMOS Limited: Occam Programming Manual, 1984.
Rogers AM. Compiling for locality of reference. Technical Report TR 91–1195, Department of Computer Science, Cornell University, 1991.
Rosing M, Schnabel R, Weaver R. DINO: Summary and example. In Proc. of the Third Conf. on Hypercube Concurrent Computers and Applications, pp 472–481, Pasadena, CA, 1988. ACM Press, New York.
Sankoff D, (eds) JBK. Time Warps, String Edits, and Macromolecules: The Theory and Practice of Sequence Comparison. Addison-Wesley, Reading, Mass., 1983.
Thinking Machines Corporation, Cambridge, Massachusetts. *Lisp Reference Manual, Version 5. 0, 1988.
Thinking Machines Corporation, Cambridge, Massachusetts. C* Programming Guide, Version 6. 0, 1990.
Tichy WF, Herter CG. Modula-2*: An extension of Modula-2 for highly parallel, portable programs. Technical Report No. 4/90, University of Karlsruhe, Department of Informatics, 1990.
Tichy WF, Philippsen M, Hatcher P. A critique of the programming language C. Technical Report No. 17/91, University of Karlsruhe, Department of Informatics, 1991.
U.S. Government, Ada Joint Program Office. ANSI/MIL-Std 1815 A, Reference Manual for the Ada Programming Language, 1983.
Weiss M. Strip mining on SIMD architectures. In 1991 ACM International Conference on Supercomputing, pp 234–243, Cologne, Germany, 1991.
Wolfe M. Optimizing Supercompilers for Supercomputers. Research Monographs in Parallel and Distributed Computing. Pitman, London, 1989.
Wolfe MJ, Tseng CW. The power test for data dependence. Technical Report CSE 90–015, Oregon Graduate Listitute, 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag London
About this paper
Cite this paper
Philippsen, M., Tichy, W.F. (1992). Compiling for Massively Parallel Machines. In: Giegerich, R., Graham, S.L. (eds) Code Generation — Concepts, Tools, Techniques. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3501-2_6
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3501-2_6
Publisher Name: Springer, London
Print ISBN: 978-3-540-19757-7
Online ISBN: 978-1-4471-3501-2
eBook Packages: Springer Book Archive