Regent语言:来自斯坦福的超级计算机编程语言

厚技术说我想昨天分享

斯坦福大学开发了一种用于编程超级计算机的新语言Regent。用户可以对计算任务进行编程,然后定位数据,这非常简单,无需重写代码。科学家希望创建一个不需要每个研究人员成为计算机科学家的编程环境。

科学前沿面临的巨大挑战是超级计算机可以应对,但这些机器的难度已成为进步的障碍。

几十年前,计算机价格昂贵,复杂且罕见。但PC革命改变了这一点,科学家们从提供更小,更快,更易于使用,更易于访问和更便宜的计算机中受益。他们开发了计算机技术来研究细胞的内部运作,遥远恒星的轨道以及远远超出其观察能力的其他现象。

但对于最先进的研究人员来说,新的和复杂的仪器开始产生越来越多的数据,需要超级计算机来分析结果。编程这些硬件所需的软件过于复杂,试图分析这些庞大数据集的科学家通常很难掌握。

image.php?url=0Mr3UcWatl

但好消息即将到来。由斯坦福大学计算机科学家Alex Aiken领导的团队开发的新编程语言Regent将使超级计算机编程更易于使用。

“我们希望创建一个编程环境,每个研究人员都不需要成为计算机科学家,”阿尔卡特朗讯的通信和网络教授Aiken说,他是粒子物理学和天体物理学和光子学教授。

Regent帮助解决超级计算领域的最大挑战。超级计算机比以往任何时候都复杂得多,目前的编程语言一直在努力跟上。谈到超级计算机,大众汽车的想法可能会出现像Matrix Matrix这样的巨型机器,但它实际上是由数千个微处理器组成的阵列。

科学家通常用C ++编写这些数组。 C ++是40年前的一种编程语言。那时,主微处理器是中央处理单元,CPU。 CPU可以一个接一个地快速解决问题,程序员将其称为串行问题。

但是现在,第二种类型的微处理器对于超级计算变得重要,即图形处理单元或GPU。开始时,为了玩电脑游戏,您可以控制屏幕上的无数像素并执行并行计算。

事实证明,并行处理在机器学习等应用中非常有用。 C ++已经升级,以跟上这波硬件变化。不幸的是,补丁的添加使得语言越来越难以使用。 Regent可以让超级计算机程序员更容易地执行诸如将串行处理任务分配给CPU并将并行处理任务分配给GPU的操作。

一旦Regent在概念层面构建程序,程序员的意图就被编译成一个名为Legion的第二层软件。

Legion生成机器代码,指导超级计算机硬件如何执行程序的精确指令。 Regent和Legion之间的紧密集成使程序员更容易做出其他重要决定;值得注意的是超级计算机必须分析的数据的位置。

Elliott Slaughter是SLAC国家加速器实验室的科学家。他几乎从一开始就与Regent和Legion合作过。他说,两层之间的整合可以节省程序员的资金和时间。计算机消耗能量,这需要成本,移动数据的成本可能是对该数据执行计算的成本的100倍。

此外,大型实验通常依赖于收集大量数据的仪器。根据Slaughter的说法,有些仪器可以收集相当于每秒20张DVD的数据用于持续15分钟的实验。即使您以光速移动光纤,也会从仪器向超级计算机生成大量数据,这可能会导致滞后,这可能会损坏分析。

“存储数据的地方是程序员需要做出的重要决定,”Slaughter说。 Regent和Legion通过为程序员提供前所未有的控制来存储数据,同时等待计算,从而节省了资金和时间。

“你可以先执行计算任务,然后轻松找到数据,而无需重写代码,”他说。

丽晶会受欢迎吗?研究人员表示,新语言必须克服许多惯性。 “这是一种非常不同的编程方式,”艾肯说。 “研究人员需要一段时间才能采用所需的心态。”

但有两个因素对它有好处。首先,超级计算硬件继续改进。美国能源部正在推动其Exascale计算计划的发展,该计划的目标是在2021年左右将超级计算能力提高50倍。能源部正在支持包括Regent在内的软件项目,以帮助保持编程同步。

此外,许多想要使用超级计算机的科学家并不熟悉当前的工具,并对编写大型实验所需的陡峭学习曲线持怀疑态度。即使是经验丰富的超级计算机程序员也可能会发现当前系统很麻烦并且想知道是否有更好的方法。艾肯说:“我们经常与科学家交谈,他们意识到摄政王对他们来说更容易生活。”

收集报告投诉

斯坦福大学开发了一种用于编程超级计算机的新语言Regent。用户可以对计算任务进行编程,然后定位数据,这非常简单,无需重写代码。科学家希望创建一个不需要每个研究人员成为计算机科学家的编程环境。

科学前沿面临的巨大挑战是超级计算机可以应对,但这些机器的难度已成为进步的障碍。

几十年前,计算机价格昂贵,复杂且罕见。但PC革命改变了这一点,科学家们从提供更小,更快,更易于使用,更易于访问和更便宜的计算机中受益。他们开发了计算机技术来研究细胞的内部运作,遥远恒星的轨道以及远远超出其观察能力的其他现象。

但对于最先进的研究人员来说,新的和复杂的仪器开始产生越来越多的数据,需要超级计算机来分析结果。编程这些硬件所需的软件过于复杂,试图分析这些庞大数据集的科学家通常很难掌握。

image.php?url=0Mr3UcWatl

但好消息即将到来。由斯坦福大学计算机科学家Alex Aiken领导的团队开发的新编程语言Regent将使超级计算机编程更易于使用。

“我们希望创建一个编程环境,每个研究人员都不需要成为计算机科学家,”阿尔卡特朗讯的通信和网络教授Aiken说,他是粒子物理学和天体物理学和光子学教授。

Regent帮助解决超级计算领域的最大挑战。超级计算机比以往任何时候都复杂得多,目前的编程语言一直在努力跟上。谈到超级计算机,大众汽车的想法可能会出现像Matrix Matrix这样的巨型机器,但它实际上是由数千个微处理器组成的阵列。

科学家通常用C ++编写这些数组。 C ++是40年前的一种编程语言。那时,主微处理器是中央处理单元,CPU。 CPU可以一个接一个地快速解决问题,程序员将其称为串行问题。

但是现在,第二种类型的微处理器对于超级计算变得重要,即图形处理单元或GPU。开始时,为了玩电脑游戏,您可以控制屏幕上的无数像素并执行并行计算。

事实证明,并行处理在机器学习等应用中非常有用。 C ++已经升级,以跟上这波硬件变化。不幸的是,补丁的添加使得语言越来越难以使用。 Regent可以让超级计算机程序员更容易地执行诸如将串行处理任务分配给CPU并将并行处理任务分配给GPU的操作。

一旦Regent在概念层面构建程序,程序员的意图就被编译成一个名为Legion的第二层软件。

Legion生成机器代码,指导超级计算机硬件如何执行程序的精确指令。 Regent和Legion之间的紧密集成使程序员更容易做出其他重要决定;值得注意的是超级计算机必须分析的数据的位置。

Elliott Slaughter是SLAC国家加速器实验室的科学家。他几乎从一开始就与Regent和Legion合作过。他说,两层之间的整合可以节省程序员的资金和时间。计算机消耗能量,这需要成本,移动数据的成本可能是对该数据执行计算的成本的100倍。

此外,大型实验通常依赖于收集大量数据的仪器。根据Slaughter的说法,有些仪器可以收集相当于每秒20张DVD的数据用于持续15分钟的实验。即使您以光速移动光纤,也会从仪器向超级计算机生成大量数据,这可能会导致滞后,这可能会损坏分析。

“存储数据的地方是程序员需要做出的重要决定,”Slaughter说。 Regent和Legion通过为程序员提供前所未有的控制来存储数据,同时等待计算,从而节省了资金和时间。

“你可以先执行计算任务,然后轻松找到数据,而无需重写代码,”他说。

丽晶会受欢迎吗?研究人员表示,新语言必须克服许多惯性。 “这是一种非常不同的编程方式,”艾肯说。 “研究人员需要一段时间才能采用所需的心态。”

但有两个因素对它有好处。首先,超级计算硬件继续改进。美国能源部正在推动其Exascale计算计划的发展,该计划的目标是在2021年左右将超级计算能力提高50倍。能源部正在支持包括Regent在内的软件项目,以帮助保持编程同步。

此外,许多想要使用超级计算机的科学家并不熟悉当前的工具,并对编写大型实验所需的陡峭学习曲线持怀疑态度。即使是经验丰富的超级计算机程序员也可能会发现当前系统很麻烦并且想知道是否有更好的方法。艾肯说:“我们经常与科学家交谈,他们意识到摄政王对他们来说更容易生活。”