Making computer engineering a science;
Systematizing program and system analysis and optimization using auto-tuning, machine learning and social networking.
Continuing innovation in science and technology is vital for our society and requires ever increasing computational resources. However, delivering such resources became intolerably complex, ad-hoc, costly and error prone due to an enormous number of available design and optimization choices combined with the complex interactions between all software and hardware components, and a large number of incompatible analysis and optimization tools. As a result, understanding and modeling of the overall relationship between end-user algorithms, applications, compiler optimizations, hardware designs, data sets and run-time behavior, essential to provide better solutions and computational resources, became simply infeasible as confirmed by many recent long-term international research visions about future computer systems.
Currently, we see 2 main paths for computer engineering:
Since 1996, we are working on gradual systematization of knowledge about design and optimization of computer systems based on our background in physics and AI. We are developing collaborative experimental methodology, repository, tools and publication model for computer engineering (cTuning initiative) that favors collaborative discovery, sharing and reuse of knowledge. This technology allows users to:
Having common collaborative R&D repository and infrastructure allows users to focus their effort on novel approaches combined with with data mining, classification and predictive modeling rather than spending considerable effort on building new tools with already existing functionality or using some ad-hoc tuning heuristics. It also allows conferences and journals to favor publications that can be collaboratively validated by the community.
Since 2007, we have released all experimental data and tools for our cTuning-related publications [Fur2009], [FCOP2007], [FKMP2011], [FT2010] which allowed further collaborative validation, reproducibility and extension of this technology together with IBM, CAPS, ARC, Intel/CEA Exascale Lab, Google, University of Edinburgh, ICT, UPC, NCAR!
We believe that cTuning may finally complete the puzzle about how to consolidate various ad-hoc techniques and tools together to build efficient self-tuning computer systems. Therefore we strongly advocate for further collaborative R&D and new publication model. If you are interested, join us at upcoming events or use our mailing list and collaborative wiki to participate in discussions and collaborative developments.
We would like to thank all our colleagues for interesting and sometimes tough discussions, feedback, collaborations and support during development of cTuning technology.