中文

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