MIT最新发布编程语言Milk,加速大数据时代并行运算

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:

导读:本周MIT最新发布新编程语言Milk,新的程序语言在大数据方面能实现比现有语言快四倍的处理速度。


MIT最新发布编程语言Milk,加速大数据时代并行运算

在当下的计算机芯片中,内存管理是基于计算机科学家所称的局部性原理(principle of locality)来实现的:

如果一个程序需要某个内存位置的数据块,它可能也需要数据块临近位置的数据。

但是在大数据时代,这种假设已不再成立。如今的计算机程序更多地是在大型数据集中离散地获取一点点数据。由于从主要内存位中获取数据已成了当下芯片的最大性能瓶颈,所以不得不更加频繁地获取数据,这也明显拖慢了程序运行的速度。

本周在国际并行体系结构和编译技术会议(International Conference on Parallel Architectures and Compilation Techniques)上,来自麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员发布了一种新的编程语言——Milk,它能让应用程序开发者在处理大数据集里的离散数据点问题中更有效率地管理内存。

通过测试几种通用的算法,使用新语言Milk编写的程序实现了比现有编程语言快4倍的速度。但是研究者相信通过更进一步的研究可以实现更好地结果。

电气工程和计算机科学教授Saman Amarasinghe 说,当下大数据集给已有的内存管理技术带来问题的原因不仅在于因为它们的规模巨大,更多的是因为它们是稀疏的(sparse)。也就是说,问题解决方案的规模并不一定是与问题的规模成正比增加。

“在社交环境中,我们通常倾向于注重更小的问题。” Amarasinghe说“如果你只关注在这种建筑[CSAIL]内的人的话,你能发现我们都是朋友的。但是如果你以地球的层面来看待的话,朋友的数量并不会增加。整个地球有几十亿人口,但是我也仅仅只有几百个朋友。这就是一个很明显的稀疏性问题。”

同样Amarasinghe提到,一个在线书店可能为其1000名顾客提供最流行的20本书籍的书单。但是但其顾客数增加到100万时,它并不会相应地提供最流行的20000本书籍的书单。

局部思考(Thinking locally)

当下的计算机芯片并没有专门针对稀疏数据进行优化,而且可以说是完全相反。因为从芯片的主要内存位读取数据是缓慢的,当下的芯片中每个内核或者每个处理器都有自己的“缓存”,一个相关的小型、本地、高速的内存位。芯片中的内核会一次读取一个完整的数据块,而不是在主内存中每次提取一个单独的数据。而读取的数据块是通过局部性原理来进行选择的。

通过图像处理的例子可以很容易看清局部性原理的本质:

如果一个程序的目的是将视觉过滤器应用到图像中,且它每次只作用在图像的一个数据块上。那么每次芯片内核请求一个区块数据时,它应该收到自身缓存能接受的所有临近区块数据。因此它可以一个一个区块处理,且不再获取更多的数据。

但是如果该算法的兴趣是在线书店200万数据库中的20本书的话,该方式将不再适用。如果它请求与某一本书相邻的数据,很有可能其相邻的100种书的数据都是没有关联的。

从主内存中每次只读取一个数据是非常低效的,这篇论文的第一作者Vladimir Kiriansky 提到

就像是每次你想要一勺食品时,你都需要打开冰箱、打开牛奶盒、倒出一勺牛奶、盖上牛奶盒、将它放回冰箱。

他是电气工程和计算机科学的博士生。Amarasinghe 和 Yunming Zhang 是他的论文合作者,Zhang 也是一位电气工程和计算机科学的博士生。

批处理(Batch processing)

Milk简单地增加了一些命令到OpenMP中。其中OpenMP 是一种能够用在C或Fortran等语言中的扩展,可以用来更轻松地为多核处理器编写代码。使用Milk的话,程序员可以在任何指令附近插入几行代码,其可以在整个大数据集中进行迭代,寻找相对较少数量的项。Milk 的编译器(将高级代码转换成低级指令的程序)可以据此找到管理内存的方法。

使用 Milk 程序时,如果一个内核发现它需要一项数据时,它并不会请求从主内存中读取它(以及相邻的数据)。它会将该数据的地址添加到一个本地存储的地址列表中。当这个列表足够长时

芯片所有内核将会池化(pool)它们的列表

将这些地址按临近排布的形式组合到一起

重新分配给内核

这样一来,每个内核都只请求了自己所需要的数据项,并且可以有效地进行检索。

这样描述的话层级较高,但实际上细节会复杂得多。事实上大部分现代计算机芯片都有多级缓存,且一级比一级大(但效率也因此更低)。Milk编译器不仅必须跟踪内存地址表,还要跟踪这些地址中存储的数据,而且它常常将这两者在各级缓存之间进行切换。它也必须决定哪些地址应当被保留(可能需要再次访问),哪些应当被丢弃。研究学者希望能够进一步提升这种编排复杂数据的算法,从而进一步提升性能表现。

「当下许多重要的应用都是数据密集型的,但不幸的是,内存和CPU之间的性能差距越来越大,这意味着当前的硬件还没有发挥出它们的全部潜力。」斯坦福大学计算机科学助理教授 Matei Zaharia 说,「Milk 通过优化常见编程架构中的内存访问来帮助解决这一差距。这项成果结合了内存控制器设计的详细知识和相关编译器的知识,能为当前的硬件实现良好的优化。」


本文转自d1net(转载)

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
6月前
|
人工智能 测试技术 编译器
Python潮流周刊#9:如何在本地部署开源大语言模型?
Python潮流周刊#9:如何在本地部署开源大语言模型?
126 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
社区供稿 | 元象发布255B大规模MoE开源大模型,落地应用登顶港台榜
元象XVERSE发布 中国最大MoE开源模型:XVERSE-MoE-A36B,加速AI应用低成本部署,将国产开源提升至国际领先水平。
社区供稿 | 元象发布255B大规模MoE开源大模型,落地应用登顶港台榜
|
4月前
|
人工智能
ACM最新论文戳破大公司开源谎言,GenAI时代到底如何定义开源模型
【7月更文挑战第2天】ACM论文揭示GenAI开源真相,指出开源模型常缺乏开放数据集、完整代码与功能,质疑大公司仅借开源名义吸引利益。论文倡导重新定义开源,提议全面评估框架、加强监管及教育,确保真开源,促进领域健康发展。[链接:https://dl.acm.org/doi/3630106.3659005]
71 16
|
4月前
|
人工智能
语言≠思维,大模型学不了推理:一篇Nature让AI社区炸锅了
【7月更文挑战第3天】新研究表明语言和思维是分离的,引发AI社区激烈讨论。论文通过fMRI实验显示语言处理与思维在大脑中独立,即使无语言人们仍能推理。这质疑了AI仅通过语言学习高级智能的可能性,暗示应更关注模拟人类思维。[[1](https://www.nature.com/articles/s41586-024-07522-w)]
79 1
|
机器学习/深度学习 人工智能 安全
这款编译器能让Python和C++一样快:最高提速百倍,MIT出品
这款编译器能让Python和C++一样快:最高提速百倍,MIT出品
120 0
|
机器学习/深度学习 JavaScript 前端开发
微软行星云计算Planetary Computer——定了用python作为主要语言,告别GEE的JavaScript痛苦!
微软行星云计算Planetary Computer——定了用python作为主要语言,告别GEE的JavaScript痛苦!
410 0
微软行星云计算Planetary Computer——定了用python作为主要语言,告别GEE的JavaScript痛苦!
|
机器学习/深度学习 数据库 异构计算
谷歌提前开源AlphaFold 2!Nature、Science同时公开两大蛋白质结构预测工具(二)
昨日,DeepMind和华盛顿大学分别在nature和Science两大顶级杂志发布了各自预测蛋白质结构的工具,并同时开源了代码。
380 0
谷歌提前开源AlphaFold 2!Nature、Science同时公开两大蛋白质结构预测工具(二)
|
机器学习/深度学习 人工智能 算法
谷歌提前开源AlphaFold 2!Nature、Science同时公开两大蛋白质结构预测工具(一)
昨日,DeepMind和华盛顿大学分别在nature和Science两大顶级杂志发布了各自预测蛋白质结构的工具,并同时开源了代码。
322 0
谷歌提前开源AlphaFold 2!Nature、Science同时公开两大蛋白质结构预测工具(一)
|
机器学习/深度学习 人工智能 机器人
Reddit热议:轻量型视频理解+动作识别的开源框架Sense火热出炉
不需要姿态估计、骨架追踪,仅靠端到端深度学习,即可实现视频理解和行为识别——获得微软1000万美元融资后,初创公司Twentybn推出最新推理工具Sense,集合数据处理、模型训练等多种功能一体,帮你实现诸如手势识别,健身跟踪,健身重复计数器和卡路里计算等多种任务!
301 0
Reddit热议:轻量型视频理解+动作识别的开源框架Sense火热出炉
|
机器学习/深度学习 人工智能 自然语言处理
Jeff Dean谈2020年机器学习趋势:多任务和多模式学习将成为突破口
谷歌AI负责人Jeff Dean 近日接受专访,讨论了2020 年机器学习领域趋势,他认为在规模更大的多任务学习和多模式学习方面,AI将取得新的里程碑。而正如谷歌在Transformer上的工作引领了NLP领域的发展,Jeff Dean认为应该将重点放在基础研究上。
166 0
Jeff Dean谈2020年机器学习趋势:多任务和多模式学习将成为突破口
下一篇
无影云桌面