System Software for Parallel Computing. Two System Software Components Hard to do the innovation...

8
System Software for Parallel Computing

Transcript of System Software for Parallel Computing. Two System Software Components Hard to do the innovation...

Page 1: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

System Software for Parallel Computing

Page 2: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

• Two System Software Components• Hard to do the innovation• Replacement for Tradition Optimizing

Compilers• Replacement for conventional large

monolithic OS

Page 3: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

Quick View of Optimizing Compiler source program scanning stream parsing AST type of AST AST[ 3 addr.code] of tokens I.Code & Symbol table Resource Allocation [ Registers ] Code Generation Many Cycles Target Code

Front End LA SA SA I.Code

Back End

Analysis Transformations

Page 4: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

Autotuners vs Traditional Compilers

• Quality of Generated Code• Which Optimizations to perform• Choosing parameters for the optimizations• Selecting from among alternative

implementations • Resulting Optimizing Space

Page 5: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

Difficulty of Enhancing Modern Compilers

• Constraints of Modern Compilers• Million lines of code• New optimizations are difficult to add• Large investment• Functional Correctness is more imp than

output code quality• Hence peak performance may still require

handcrafting of the program

Page 6: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

Promise of Search Based Autotuners

• Search based technique used in several areas of code generation

• Generates many variants of a given kernel• Benchmarks each variant by running on the

target platform• Time to complete on the target platform ( tries

many or all optimization switches )• Often find non-intuitive loop unrolling or register

blocking factors that lead to better performance

Page 7: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

Recent Autotuners • Earlier Auto -Tuners were used concentrate on non-intuitive loop unrolling• Recent Auto-Tuners are applicable for general-purpose parallel programs• Auto-Tuning Cycle• Auto-Tuners as Libraries• Auto-Tuners as Stand-Alone Application• Integrating Auto-Tuners as part of Operating System• Compiler Extensions for Auto-Tuning

Note: Taken from More recent paper " Auto-Tuning Support for Manycore applications - Perspectives for Operating Systems and Compilers

Page 8: System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.

References

• High-Performance Compilers for Parallel Computing by Michael Wolfe

• Optimizing Compilers for Modern Architectures: A Dependence-based Approach by Randy Allen

• C.A. Schaefer, V.Pankratius and W.F.Ticy. Atune-IL: An instrumentation language for autotuning parallel applications. Technical Report, University of Karlsruhe, 2009