IEEE Transactions on Computers · 1987 · 612 citations · 17 references
ComputingComputer ScienceHigh-performance ComputingParallel AlgorithmsParallel ComputingSchedulingParallel Computer ArchitectureParallel Computing SystemsParallel Performance AnalysisPerformance OptimizationShared-memory MultiprocessingShared-memory ParallelismParallel Loop SchedulingParallel SchedulingProcessor ConfigurationScheduling AlgorithmsScheduling In Multiprocessor SystemsShared MemoryShared Memory SystemsSynchronization Overhead
This paper proposes guided self-scheduling, a new approach for scheduling arbitrarily nested parallel program loops on shared memory multiprocessor systems. Utilizing loop parallelism is clearly most crucial in achieving high system and program performance. Because of its simplicity, guided self-scheduling is particularly suited for implementation on real parallel machines. This method achieves simultaneously the two most important objectives: load balancing and very low synchronization overhead. For certain types of loops we show analytically that guided self-scheduling uses minimal overhead and achieves optimal schedules. Two other interesting properties of this method are its insensitivity to the initial processor configuration (in time) and its parameterized nature which allows us to tune it for different systems. Finally we discuss experimental results that clearly show the advantage of guided self-scheduling over the most widely known dynamic methods.
17
Optimizing supercompilers for supercomputers
Michael Wolfe · 2020 · 840 citations
The NYU Ultracomputer—Designing an MIMD Shared Memory Parallel Computer
Gottlieb, Grishman, Kruskal et al. · IEEE Transactions on Computers · 1983 · 746 citations
Dependence graphs and compiler optimizations
David J. Kuck, Robert H. Kuhn, David Padua et al. · 1981 · 652 citations · Full text
Optimal scheduling for two-processor systems
E. G. Coffman, Ronald Graham · Acta Informatica · 1972 · 610 citations