2003 · 16 citations · 15 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureParallel ComputingDistributed Memory ParallelismInstruction SchedulingInstruction Set ArchitectureParallel ArchitecturesParallel Computer ArchitectureSuperscalar ProcessingCompilation For Parallel ArchitecturesCompiler DesignMimd ArchitecturesParallel ProcessingRisc ArchitecturesRisc AssemblyVector ProcessingVector Processing Units
The author describes the techniques that are used by the CM Compiler Engine to map the fine-grained array parallelism of languages such as Fortan 90 and C onto the Connection Machine (CM) architectures. The same compiler is used for node-level programming of the CM-5, for global programming of the CM-5, and for global programming of the SIMD (single-instruction multiple-data) CM-2. A new compiler phase is used to generate two classes of output code: code for a scalar control processor, which executes SPARC assembler, and code aimed at a model of the CM-5's parallel-processing elements. The model is embodied in a new RISC (reduced instruction set computer)-like vector instruction set called PEAC. The control program distributes parallel data at runtime among the processor nodes of the target machine. Each of these nodes is itself superpipelined and superscalar. An innovative scheduler overlaps the execution of multiple PEAC operations, while conventional vector processing techniques keep the pipelines filled.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>
15
Optimizing supercompilers for supercomputers
Michael Wolfe · 2020 · 840 citations
Wendell J. Bouknight, Stewart A. Denenberg, Deacon McIntyre et al. · Proceedings of the IEEE · 1972 · 235 citations
Code scheduling and register allocation in large basic blocks
James Goodman, Wei‐Chung Hsu · 2014 · 178 citations