受到推崇的, 2024

编辑的选择

这种新的编程语言在大数据上承诺速度提升4倍

--°--∫—Ä--Æ--∑—Å --ª—È—Å—Ã —Ñ —Ç—É--º--∞--Ω—Ã

--°--∫—Ä--Æ--∑—Å --ª—È—Å—Ã —Ñ —Ç—É--º--∞--Ω—Ã
Anonim

传统数据集的内存管理可能会有足够的挑战,但是当大数据进入图片时,情况会有所减缓。麻省理工学院本周宣布的一种新的编程语言旨在解决这个问题,到目前为止,已经发现它可以为普通算法提供四倍的速度提升。

局部性原则是当今大多数计算机芯片管理内存管理的原因,如果一个程序需要存储在某个内存位置的大量数据,通常也会假定需要相邻的数据块。然而,在大数据中,情况并非总是如此。相反,程序往往只能处理大量数据集中的少数数据项。

从主存储器获取数据是当今芯片的主要性能瓶颈,因此不得不频繁获取数据会使执行速度大大降低

[进一步阅读:你的新电脑需要这15个免费的优秀程序]

“就好像每次你想要一勺麦片时,你打开冰箱,打开牛奶盒,倒入一勺牛奶,关闭纸箱,然后放回冰箱,“麻省理工学院电子工程和计算机科学博士生弗拉基米尔基里安斯基解释说,”考虑到这一挑战,Kiriansky和麻省理工学院计算机科学与人工智能实验室(CSAIL)的其他研究人员)已经创建了Milk,这是一种新的语言,让应用程序开发人员可以更有效地管理大型数据集中分散数据点的程序中的内存。

本质上,Milk向OpenMP添加了一些命令, s C和Fortran,这使得为多核处理器编写代码变得更加容易。使用它,程序员在任何遍历大数据集合的指令周围插入一些额外的代码行,以寻找相对较少的项目。然后,牛奶的编译器会计算出如何管理相应的内存。

用一个用牛奶编写的程序,当一个核心发现它需要一段数据时,它不会要求它 - 和相关的数据 - 从main记忆。相反,它会将数据项的地址添加到本地存储的地址列表中。当列表变得足够长时,芯片的所有内核都会将它们的列表放在一起,将彼此靠近的地址分组在一起,然后将它们重新分配给内核。这样,每个核心只请求它知道它需要的数据项,并且可以有效地检索。

在几种常见算法的测试中,用新语言编写的程序比用现有语言编写的程序快四倍说。随着研究人员努力进一步改进技术,这可能会变得更好。他们本周在国际并行体系结构和编译技术大会上发表了关于该项目的论文。

Top