IEEE Transactions on Parallel and Distributed Systems · 2018 · 59 citations · 31 references
ComputingComputer EngineeringComputer ScienceOperating SystemsParallel AlgorithmsParallel ComputingCpu SchedulingLatency OptimizationParallel ArchitecturesParallel Computing SystemsParallel Runtime SystemsPerformance OptimizationEnergy-delay OptimizationEnergy-delay TradeoffOpenmpParallel Performance OptimizationThread ParallelismThread-based ParallelismThread-level ParallelismThreading
Efficiently exploiting thread-level parallelism has been challenging for software developers. As many parallel applications do not scale with the number of cores, the task of rightly choosing the ideal amount of threads to produce the best results in performance or energy is not straightforward. Moreover, many variables may change according to the system at hand (e.g., application, input set, microarchitecture, number of cores) and even during execution. Existing solutions lack transparency (demand changes in the original code) or adaptability (do not automatically adjust to applications at run-time). In this scenario, we propose Aurora, an OpenMP framework that is completely transparent to both the designer and end-user. Without any code transformation or recompilation, it is capable of automatically finding, at run-time and with minimum overhead, the optimal number of threads for each parallel loop region and re-adapt in cases the behavior of a region changes during execution. When executing fifteen well-known benchmarks on four multi-core processors, Aurora improves the Energy-Delay Product by up to 98, 86 and 91 percent over the standard OpenMP execution, the OpenMP feature that dynamically adjusts the number of threads, and the Feedback-Driven Threading, respectively.
31
Christian Bienia, Sanjeev Kumar, Jaswinder Pal Singh et al. · 2008 · 3.4K citations
Rodinia: A benchmark suite for heterogeneous computing
Shuai Che, Michael Boyer, Jiayuan Meng et al. · 2009 · 3K citations