Abstract
Current trends in system design are pointing to using more and more processing units and storage units in a single system. In order to generate programs for these types of distributed memory machines, the challenge is to coordinate and schedule multiple functional units to perform computations efficiently.
In this paper, we describe how our compiler can automate the process and generate good parallel programs from sequential programs. We show how to turn the straight-line code into a task graph which exhibits maximum parallelism possible. Then we give an algorithm for assigning computation to processors to minimize communication cost. Finally, we give an algorithm to allocate registers across processors using an interference graph.
Supported in part by the Advanced Research Projects Agency of the Department of Defense under ONR Contract N00014-92-J-1989, by ONR Contract N00014-92-J-1839, United States-Israel Binational Science Foundation Grant 92-00234 and in part by the U.S. Army Research Office through the Mathematical Science Institute of Cornell University.
Supported by a Fannie and John Hertz Foundation Fellowship.
Preview
Unable to display preview. Download preview PDF.
References
P.P. Chang, S.A. Mahlke, W.Y. Chen, N.J. Warter, and W.W. Hwu, “IMPACT: An Architectural Framework for Multiple-Instruction-Issue Processors” Proceedings of the 18th International Symposium on Computer Architecture, pp. 266–275, May 1991
S.A. Mahlke, W.Y. Chen, W.W. Hwu, B.R. Rau, and M.S. Schlansker, “Sentinel Scheduling for VLIW and Superscalar Processors” Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 238–259, Sept. 1992
K. Ebcioglu, R.D. Groves, K.-C. Kim, G.M. Silberman, and I. Ziv, “VLIW Compilation Techniques in a Superscalar Environment” Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, SIGPLAN notices, pp. 38–48 June 1994
S.S. Pinter, “Register Allocation with Instruction Scheduling: a New Approach” Proceedings of the ACM SIGPLAN'93 Conference on Programming Language Design and Implementation, SIGPLAN notices, pp. 248–257, June 1993
C. Norris and L.L. Pollock, “Register Allocation over the Program Dependence Graph” Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, SIGPLAN notices, pp. 266–277, June 1994
G.J. Chaitin, “Register Allocation and Spilling via Graph Coloring” Proceedings of the ACM SIGPLAN'82 Symposium on Compiler Construction', SIGPLAN Notices, pp. 98–105, June 1982
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hao, B., Pearson, D. (1995). Instruction scheduling and global register allocation for SIMD multiprocessors. In: Ferreira, A., Rolim, J. (eds) Parallel Algorithms for Irregularly Structured Problems. IRREGULAR 1995. Lecture Notes in Computer Science, vol 980. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60321-2_6
Download citation
DOI: https://doi.org/10.1007/3-540-60321-2_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60321-4
Online ISBN: 978-3-540-44915-7
eBook Packages: Springer Book Archive