2013 · 12 citations · 12 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureParallel ComputingCpu SchedulingData ParallelismHardware AccelerationParallel ArchitecturesParallel Computer ArchitecturePerformance OptimizationMicroarchitectural OptimizationParallel SchedulingParallelism ExploitationParallelization
How can we exploit a microprocessor as efficiently as possible? The "classic" approach is static optimization at compile-time, conservatively optimizing a program while keeping all possible uses in mind. Further optimization can only be achieved by anticipating the actual usage profile: If we know, for instance, that two computations will be independent, we can run them in parallel. However, brute force parallelization may slow down execution due to its large overhead. But as this depends on runtime features, such as structure and size of input data, parallel execution needs to dynamically adapt to the runtime situation at hand.
12
Maurice Herlihy, J. Eliot B. Moss · 1993 · 2.2K citations
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul et al. · 1995 · 1K citations · Full text