Skip to main content
QUICK REVIEW

[论文解读] Collective Mind, Part II: Towards Performance- and Cost-Aware Software Engineering as a Natural Science

Grigori Fursin, Abdul Wahid Memon|arXiv (Cornell University)|Jun 20, 2015
Parallel Computing and Optimization Techniques参考文献 42被引用 10
一句话总结

本文提出了 Collective Mind,一种协作式、公开可访问的性能与成本感知软件工程基础设施,支持在多样化硬件平台上持续自动调优与知识共享。通过轻量级封装和集中式存储库,它能够追踪不同硬件配置下的优化结果,借助众包实验与机器学习技术,实现执行时间、能耗及其他成本的帕累托最优解。

ABSTRACT

Nowadays, engineers have to develop software often without even knowing which hardware it will eventually run on in numerous mobile phones, tablets, desktops, laptops, data centers, supercomputers and cloud services. Unfortunately, optimizing compilers are not keeping pace with ever increasing complexity of computer systems anymore and may produce severely underperforming executable codes while wasting expensive resources and energy. We present our practical and collaborative solution to this problem via light-weight wrappers around any software piece when more than one implementation or optimization choice available. These wrappers are connected with a public Collective Mind autotuning infrastructure and repository of knowledge (c-mind.org/repo) to continuously monitor various important characteristics of these pieces (computational species) across numerous existing hardware configurations together with randomly selected optimizations. Similar to natural sciences, we can now continuously track winning solutions (optimizations for a given hardware) that minimize all costs of a computation (execution time, energy spent, code size, failures, memory and storage footprint, optimization time, faults, contentions, inaccuracy and so on) of a given species on a Pareto frontier along with any unexpected behavior. The community can then collaboratively classify solutions, prune redundant ones, and correlate them with various features of software, its inputs (data sets) and used hardware either manually or using powerful predictive analytics techniques. Our approach can then help create a large, realistic, diverse, representative, and continuously evolving benchmark with related optimization knowledge while gradually covering all possible software and hardware to be able to predict best optimizations and improve compilers and hardware depending on usage scenarios and requirements.

研究动机与目标

  • 解决在缺乏目标部署环境先验知识的情况下,优化异构且持续演化的硬件平台软件的日益增长的挑战。
  • 克服当前编译器因编译器标志与配置搜索空间持续扩大而无法充分利用优化机会的局限性。
  • 构建一个可扩展的、社区驱动的系统,用于在真实环境中共享和追踪软件优化、性能指标及硬件特性。
  • 通过整合众包、大数据分析与机器学习技术,实现持续、可复现的实验与知识发现。
  • 通过提供一个持续增长、具有代表性且不断演化的基准与优化知识库,支持实际的软硬件协同设计。

提出的方法

  • 为软件组件(称为“计算物种”)开发轻量级封装,以暴露编译器标志、并行化参数和算法变体等配置选项。
  • 将这些封装与公共的 Collective Mind 存储库及自动调优基础设施集成,以在多样化硬件平台上收集性能与成本指标。
  • 通过 Collective Mind 节点进行众包,将耗时的自动调优任务分发至通用 Android 设备及其他系统。
  • 应用多目标优化技术,识别同时最小化多个成本(执行时间、能耗、内存、代码大小等)的帕累托最优配置。
  • 使用基于 JSON 的 API 和 Web 服务,支持程序化访问知识库,并与 IDE、Docker 及基准测试工具集成。
  • 支持手动分类(如维基百科)与自动化数据分析,包括主动学习与特征选择,以关联优化成功率与软件输入、硬件特性及系统配置。

实验结果

研究问题

  • RQ1协作式、社区驱动的基础设施在多大程度上能提升在多样化硬件平台上发现与共享最优软件优化的能力?
  • RQ2在通用设备上进行众包自动调优,能在多大程度上减少识别高性能软件配置的时间与成本?
  • RQ3一个统一的、持续演化的优化知识库能否改善工业环境中的编译器调优与硬件验证?
  • RQ4多目标优化与帕累托前沿分析在识别性能与成本指标之间权衡关系方面的有效性如何?
  • RQ5此类系统在多大程度上能支持可复现、可持续且可作为成果评估的研究工作,以推动软件工程与系统性能研究?

主要发现

  • Collective Mind 基础设施成功收集了约 15,000 个数据集,涵盖约 300 种软件物种,证明了其可扩展性与真实世界适用性。
  • 工业合作伙伴利用该系统改进了其针对 ARM 和 Intel 处理器的内部 GCC 编译器启发式策略,实现了可测量的性能提升,并在硬件验证过程中检测到架构错误。
  • 一位客户的静态编译图像处理应用程序被成功改造为自调优系统,在最小化能耗、开发时间与上市时间的同时最大化性能。
  • 该方法成功将高级优化技术(如多面体源到源转换与运行时自适应)整合进一个统一且可扩展的框架中。
  • 该系统支持构建大规模、真实且持续演化的基准,包含优化知识,促进了跨平台比较与模型训练。
  • 公开的存储库与开源基础设施促进了学术界与工业界的协作,支持成果评估与可持续的软件工程实践。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。