一句话:综述数据密集型可扩展计算与异构计算给软件工程带来的挑战,并介绍面向该领域的自动化调试、测试与重构技术及经验。
随着大数据、机器学习和 AI 的发展,传统软件工程技术需要重新设计,以满足开发者的生产率需求。同时,GPU、FPGA 等专用硬件加速器已成为主流计算平台的一部分,但异构应用开发仍局限于少数具备硬件知识的程序员。本文综述数据密集型可扩展计算与异构计算这一新领域中的软件开发挑战,并给出面向数据密集和计算密集场景的自动化软件工程技术示例,涵盖调试、测试与重构,同时分享构建这些技术所得的经验教训。论文以领域挑战梳理、技术案例与经验总结为主,旨在为软件工程社区设计新一代工具提供方向,而非报告受控实验或定量评估结果。
With the development of big data, machine learning, and AI, existing software engineering techniques must be re-imagined to provide the productivity gains that developers desire. Furthermore, specialized hardware accelerators like GPUs or FPGAs have become a prominent part of the current computing landscape. However, developing heterogeneous applications is limited to a small subset of programmers with specialized hardware knowledge. To improve productivity and performance for data-intensive and compute-intensive development, now is the time that the software engineering community should design new waves of refactoring, testing, and debugging tools for big data analytics and heterogeneous application development. In this paper, we overview software development challenges in this new data-intensive scalable computing and heterogeneous computing domain. We describe examples of automated software engineering (debugging, testing, and refactoring) techniques that target this data and compute intensive domain and share lessons learned from building these techniques.