超级计算机在解决科学领域重大挑战方面具有优势,但是编程操控这些“大家伙”并非易事。美国研究人员新开发出一种程序语言,让非计算机背景的人也能便捷利用超级计算机处理问题。

如今的超级计算机比过去更为复杂,现有编程语言的发展却不能与之匹配。前沿科学领域的研究人员需要使用超算来分析海量数据,但不可能每个研究人员都是计算机专家,编程的难度阻碍了对超算的应用。目前广泛使用来操控超算的仍是40多年前发明的C++语言,在当时主要的微处理器是中央处理单元(CPU),它可以一个接一个地计算,即串行处理。而现在的超算更多地使用另一种微处理器,也就是图形处理单元(GPU),它可以同时处理多个相似的计算任务,即并行处理。

美国斯坦福大学通信与网络教授亚历克斯·艾肯的团队日前开发出了新的计算机程序语言“Regent”,这种用户友好型语言在操作超算处理任务方面比C++更便捷高效。它能简化超级计算机程序员的工作,例如将串行处理任务分配给CPU,而将并行处理任务分配给GPU。

程序员先使用Regent语言将自己的计算任务进行编译,存入该团队开发的名为“Legion”的第二个软件层;Legion再据此生成机器代码,也就是超算可以理解的指令,指挥计算机执行任务。Regent和Legion间的配合让程序员可以更方便地做出一些决策,比如在哪儿存储数据,这直接影响到计算的成本和速度。

美国能源部SLAC国家加速器实验室科学家埃利奥特·斯洛特在使用了该新程序语言后表示,这一语言节省了程序员时间和成本,“现在我可以先对计算任务进行编程,随后再安置数据,不需要重复写代码,非常简单”。

尽管新程序语言的推行都需要克服惯性,研究者对Regent程序语言的推广充满信心。美国能源部目前正在大力推进百亿亿次级超级计算机项目,超算软件正是其支持的研发重点之一。


责任编辑:王丰旭