Compilation techniques for parallel systems
β Scribed by Rajiv Gupta; Santosh Pande; Kleanthis Psarris; Vivek Sarkar
- Publisher
- Elsevier Science
- Year
- 1999
- Tongue
- English
- Weight
- 270 KB
- Volume
- 25
- Category
- Article
- ISSN
- 0167-8191
No coin nor oath required. For personal study only.
β¦ Synopsis
Over the past two decades tremendous progress has been made in both the design of parallel architectures and the compilers needed for exploiting parallelism on such architectures. In this paper we summarize the advances in compilation techniques for uncovering and eectively exploiting parallelism at various levels of granularity. We begin by describing the program analysis techniques through which parallelism is detected and expressed in form of a program representation. Next compilation techniques for scheduling instruction level parallelism (ILP) are discussed along with the relationship between the nature of compiler support and type of processor architecture. Compilation techniques for exploiting loop and task level parallelism on shared-memory multiprocessors (SMPs) are summarized. Locality optimizations that must be used in conjunction with parallelization techniques for achieving high performance on machines with complex memory hierarchies are also discussed. Finally we provide an overview of compilation techniques for distributed memory machines that must perform partitioning of both code and data for parallel execution. Communication optimization and code generation issues that are unique to such compilers are also brieΒ―y discussed.
π SIMILAR VOLUMES
## Abstract The main function of parallelizing compilers is to analyze sequential programs, in particular the loop structure, to detect hidden parallelism and automatically restructure sequential programs into parallel subtasks that are executed on a multiprocessor. This article describes the desig