斯坦福大学开发出超算编程语言,大大节省程序员时间和成本
超级计算机在解决科学领域重大挑战方面具有优势,但是编程操控这些“大家伙”并非易事。美国研究人员新开发出一种程序语言,让非计算机背景的人也能便捷利用超级计算机处理问题。
如今的超级计算机比过去更为复杂,现有编程语言的发展却不能与之匹配。前沿科学领域的研究人员需要使用超算来分析海量数据,但不可能每个研究人员都是计算机专家,编程的难度阻碍了对超算的应用。目前广泛使用来操控超算的仍是 40 多年前发明的 C++ 语言,在当时主要的微处理器是中央处理单元(CPU),它可以一个接一个地计算,即串行处理。而现在的超算更多地使用另一种微处理器,也就是图形处理单元(GPU),它可以同时处理多个相似的计算任务,即并行处理。
美国斯坦福大学通信与网络教授亚历克斯·艾肯的团队日前开发出了新的计算机程序语言“Regent”,这种用户友好型语言在操作超算处理任务方面比 C++ 更便捷高效。
它能简化超级计算机程序员的工作,例如将串行处理任务分配给 CPU,而将并行处理任务分配给 GPU。
程序员先使用 Regent 语言将自己的计算任务进行编译,存入该团队开发的名为“Legion”的第二个软件层;Legion 再据此生成机器代码,也就是超算可以理解的指令,指挥计算机执行任务。Regent 和 Legion 间的配合让程序员可以更方便地做出一些决策,比如在哪儿存储数据,这直接影响到计算的成本和速度。
美国能源部 SLAC 国家加速器实验室科学家埃利奥特·斯洛特在使用了该新程序语言后表示,这一语言节省了程序员时间和成本,“现在我可以先对计算任务进行编程,随后再安置数据,不需要重复写代码,非常简单”。
尽管新程序语言的推行都需要克服惯性,研究者对 Regent 程序语言的推广充满信心。美国能源部目前正在大力推进百亿亿次级超级计算机项目,超算软件正是其支持的研发重点之一。