科学家提出百亿亿次超算应用发展建议

作者: 2015-07-28 14:39 来源:战略情报研究部
放大 缩小

由于目前没人确切地知道未来的百亿亿次计算将采用哪种架构,超算应用是否能跟上百亿亿次计算(exascale)的发展步伐已成为一项棘手的挑战。针对该问题,来自IBM与欧洲多家研究机构的科学家在2015年6月发文指出了相关挑战与发展建议[1]

科学家指出百亿亿次超算应用的发展面临四大关键挑战,包括正式建模、静态分析与优化、运行时分析与优化、自主计算。针对这些挑战,科学家建议基于百亿亿次系统目前的假设和可用的数据,采取连续和逐步改进的方式,将现有超算应用移植到未来的百亿亿次计算系统上。其他建议包括:

1、将能够抓住关键功能和非功能特性的高级应用程序表达与抽象模型相结合,可以帮助程序员改进应用,并能帮助运行时系统处理性能、能量优化和自我故障管理等问题。

2、利用封装了百亿亿次计算当前假设的可调的抽象模型对超算应用进行先期改进,然后再针对具体的执行平台进行后期调整。

3、正式建模是基础要求,重要的不是软件的执行目标,而是相关的资源足迹,即计算任务之间是如何开展通信和同步的,计算任务所需要的资源(如内存和计算时间),计算任务如何访问和移动数据。

4、为了让超算应用能适应一个特定的计算架构,需要在不同的粒度层面(如程序语句、程序主体和程序整体)捕捉软件模块的资源足迹。因此,建模语言必须具有针对任务级资源足迹的大规模并行操作指令。

5、用抽象的行为规范语言来支持资源的足迹,并在模型中描述任务和部署。在得到部署前,这些模型可以用来预测代码的非功能性行为,也可以用来比较使用了形式化方法的部署。

6、“特定域百亿亿次语言”(DSEL)也是一个重要因素,它能帮助程序员表达出可扩展、并行性超算应用代码的非功能特性(如方案的所需时间、恢复或能源效率)。                            

(唐川)


[1] Challenges and Recommendations for Preparing HPC Applications for Exascale . http://arxiv.org/pdf/1503.06974v2.pdf. 

附件: