Optimizing supercompilers for supercomputers
Michael Wolfe
Abstract
Between a problem statement and its solution as a computer simulation are several steps, from choosing a method, writing a program, compiling to machine code, making runtime decisions, and hardware execution. Here we will look at the middle three decision points. What decisions should be and must be left to the programmer? What decisions should be and must be relegated to a compiler? What decisions should be and must be left until runtime? Given my background, I will focus a great deal on the importance of compilers in supercomputing, and compare and contrast the advantages and impacts of compiler solutions to the "Performance + Portability + Productivity" problem with language and runtime solutions.
Topics & Concepts
CompilerComputer scienceSoftware portabilityProgrammerProgramming languageJust-in-time compilationDynamic compilationFocus (optics)Statement (logic)Operating systemOptimizing compilerParallel computingLawOpticsPolitical sciencePhysicsDistributed and Parallel Computing SystemsParallel Computing and Optimization TechniquesCloud Computing and Resource Management