From cTuning.org
Line 16: | Line 16: | ||
For the first time, Grigori utilized his [[CTools:ICI|Interactive Compilation Interface]] for [http://www.pathscale.com PathScale compiler] with loop vectorization, tiling, unrolling, interchange, fission/fusion, pipelining, prefetching and array padding to make static self-tuning binaries that can automatically learn from the past experience and adapt/react to various environments, run-time behavior and contentions that is important to improve efficiency and cost of both embedded systems and HPC data centers (cloud computing). | For the first time, Grigori utilized his [[CTools:ICI|Interactive Compilation Interface]] for [http://www.pathscale.com PathScale compiler] with loop vectorization, tiling, unrolling, interchange, fission/fusion, pipelining, prefetching and array padding to make static self-tuning binaries that can automatically learn from the past experience and adapt/react to various environments, run-time behavior and contentions that is important to improve efficiency and cost of both embedded systems and HPC data centers (cloud computing). | ||
- | This technique opened up many research possibilities | + | This technique opened up many research possibilities, has been used in multiple research projects in collaboration with UPC, ICT, IBM, CAPS Enterprise, STMicro, has been supported by [http://cTuning.org/project-milepost MILEPOST], [http://www.hipeac.net HiPEAC] and [http://code.google.com/soc Google Summer of Code] grants, has been referenced in patents and has been extended to speed up iterative compilation ({{Ref|FCOP2005}}, {{Ref|FCOP2006}}), enable transparent continuous collective optimization ({{Ref|FT2009}},{{Ref|FMPP2007}}), enable portable program characterization techniques based on reactions to optimizations ({{Ref|FT2009}}), enable predictive scheduling for heterogeneous multicore systems ({{Ref|JGVP2009}}), enable adaptive libraries based on dataset characterization using machine learning and decision trees ({{Ref|LCWP2009}}) among many other usages based on continuous transparent run-time program optimization and adaptation as a reaction to dynamic changes in program behavior and environment. |
We are gradually working to move this framework to mainline GCC combined with [[CTools:ICI|ICI]] (though source-to-source adaptation framework can still be useful). We are working to provide a unified view of heterogeneous architectures and optimizations with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems. We would like to use this framework to automatically detect contentions in computing systems and react to such changes. We also hope to provide a unified view of heterogeneous architectures (CPU/GPU, CELL-like, FPGA, accelerators), optimizations and data movement/partitioning with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems. | We are gradually working to move this framework to mainline GCC combined with [[CTools:ICI|ICI]] (though source-to-source adaptation framework can still be useful). We are working to provide a unified view of heterogeneous architectures and optimizations with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems. We would like to use this framework to automatically detect contentions in computing systems and react to such changes. We also hope to provide a unified view of heterogeneous architectures (CPU/GPU, CELL-like, FPGA, accelerators), optimizations and data movement/partitioning with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems. |
Revision as of 15:56, 28 October 2010
![]() |
Universal Adaptation Framework |
Statically enabling run-time optimization and adaptation |
Web shortcut: http://cTuning.org/unidapt Navigation: cTuning.org > CTools
For the first time, Grigori utilized his Interactive Compilation Interface for PathScale compiler with loop vectorization, tiling, unrolling, interchange, fission/fusion, pipelining, prefetching and array padding to make static self-tuning binaries that can automatically learn from the past experience and adapt/react to various environments, run-time behavior and contentions that is important to improve efficiency and cost of both embedded systems and HPC data centers (cloud computing). This technique opened up many research possibilities, has been used in multiple research projects in collaboration with UPC, ICT, IBM, CAPS Enterprise, STMicro, has been supported by MILEPOST, HiPEAC and Google Summer of Code grants, has been referenced in patents and has been extended to speed up iterative compilation (FCOP2005, FCOP2006), enable transparent continuous collective optimization (FT2009,FMPP2007), enable portable program characterization techniques based on reactions to optimizations (FT2009), enable predictive scheduling for heterogeneous multicore systems (JGVP2009), enable adaptive libraries based on dataset characterization using machine learning and decision trees (LCWP2009) among many other usages based on continuous transparent run-time program optimization and adaptation as a reaction to dynamic changes in program behavior and environment. We are gradually working to move this framework to mainline GCC combined with ICI (though source-to-source adaptation framework can still be useful). We are working to provide a unified view of heterogeneous architectures and optimizations with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems. We would like to use this framework to automatically detect contentions in computing systems and react to such changes. We also hope to provide a unified view of heterogeneous architectures (CPU/GPU, CELL-like, FPGA, accelerators), optimizations and data movement/partitioning with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems. You are welcome to join the project, provide feedback and help with developments. ![]() ![]() ![]() |
|
You are welcome to join us and participate in discussions, developments or provide feedback and suggestions to extend UNIDAPT Framework.