Collective Mind 第二部分:迈向作为自然科学的性能与成本感知软件工程
软件工程
2015-06-23 v1 机器学习
性能
摘要
如今,工程师常常不得不在甚至不知道软件最终将在众多手机、平板电脑、台式机、笔记本电脑、数据中心、超级计算机和云服务上运行于何种硬件的情况下开发软件。不幸的是,优化编译器已不再跟上计算机系统日益增加的复杂性,并可能产生严重性能低下的可执行代码,同时浪费昂贵的资源和能源。我们提出了一种实用且协作的解决方案,通过在任何软件片段周围包裹轻量级包装器(当存在多个实现或优化选择时)来解决此问题。这些包装器与公共的 Collective Mind 自动调优基础设施和知识库(c-mind.org/repo)相连,以跨众多现有硬件配置以及随机选择的优化持续监控这些片段(计算物种)的各种重要特征。类似于自然科学,我们现在可以持续跟踪获胜解决方案(针对给定硬件的优化),这些方案在帕累托前沿上最小化给定物种的计算的所有成本(执行时间、能耗、代码大小、故障、内存和存储占用、优化时间、错误、争用、不准确性等)以及任何意外行为。然后社区可以协作地对解决方案进行分类、修剪冗余项,并使用软件的各种特征、其输入(数据集)和所用硬件手动或利用强大的预测分析技术将它们关联起来。我们的方法随后可帮助创建一个大型、真实、多样、具代表性且持续演进的基准测试以及相关优化知识,同时逐步覆盖所有可能的软件和硬件,以便能够根据使用场景和需求预测最佳优化并改进编译器和硬件。
引用
@article{arxiv.1506.06256,
title = {Collective Mind, Part II: Towards Performance- and Cost-Aware Software Engineering as a Natural Science},
author = {Grigori Fursin and Abdul Memon and Christophe Guillon and Anton Lokhmotov},
journal= {arXiv preprint arXiv:1506.06256},
year = {2015}
}
备注
Presented at the 18th International Workshop on Compilers for Parallel Computing (CPC'15), London, UK