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

简介:

本周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 通过优化常见编程架构中的内存访问来帮助解决这一差距。这项成果结合了内存控制器设计的详细知识和相关编译器的知识,能为当前的硬件实现良好的优化。」

PS : 本文由雷锋网(公众号:雷锋网)独家编译,未经许可拒绝转载!

via MIT


本文作者:李尊


本文转自雷锋网禁止二次转载,原文链接

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
计算机视觉
ICLR 2024:首个从互联网视频中学习通用图像匹配器的框架
【2月更文挑战第16天】ICLR 2024:首个从互联网视频中学习通用图像匹配器的框架
13 1
ICLR 2024:首个从互联网视频中学习通用图像匹配器的框架
|
存储 缓存 NoSQL
社交网络场景下大规模图存储实践——Facebook TAO
社交网络场景下大规模图存储实践——Facebook TAO
156 0
社交网络场景下大规模图存储实践——Facebook TAO
|
机器学习/深度学习 人工智能 分布式计算
一万亿模型要来了?谷歌大脑和DeepMind联手发布分布式训练框架Launchpad
AI模型进入大数据时代,单机早已不能满足训练模型的要求,最近Google Brain和DeepMind联手发布了一个可以分布式训练模型的框架Launchpad,堪称AI界的MapReduce。
222 0
一万亿模型要来了?谷歌大脑和DeepMind联手发布分布式训练框架Launchpad
|
机器学习/深度学习 人工智能 自然语言处理
Jeff Dean谈2020年机器学习趋势:多任务和多模式学习将成为突破口
谷歌AI负责人Jeff Dean 近日接受专访,讨论了2020 年机器学习领域趋势,他认为在规模更大的多任务学习和多模式学习方面,AI将取得新的里程碑。而正如谷歌在Transformer上的工作引领了NLP领域的发展,Jeff Dean认为应该将重点放在基础研究上。
138 0
Jeff Dean谈2020年机器学习趋势:多任务和多模式学习将成为突破口
|
机器学习/深度学习 人工智能 算法
兼容PyTorch、TF,史上最灵活Python机器学习框架发布 | 一周AI最火论文
兼容PyTorch、TF,史上最灵活Python机器学习框架发布 | 一周AI最火论文
252 0
|
SQL 机器学习/深度学习 人工智能
蚂蚁金服开源的机器学习工具 SQLFlow,有何特别之处?
近日,蚂蚁金服副 CTO 胡喜正式宣布开源机器学习工具 SQLFlow,他在大会演讲中表示:“未来三年,AI 能力会成为每一位技术人员的基本能力。
3563 0
|
机器学习/深度学习 算法 物联网
机器学习之于IOT浅见
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
992 0
|
机器学习/深度学习 异构计算
|
机器学习/深度学习 算法 算法框架/工具
深入Facebook机器学习部门:服务、模型、框架和硬件(贾扬清等HPCA论文)
近日 Facebook 研究团队公开一篇 HPCA 2018 论文,作者包括 Caffe 作者贾扬清等人,深度揭示了 Facebook 内部支持机器学习的硬件和软件基础架构。Facebook 的几乎所有的服务都广泛应用机器学习,其中计算机视觉只占资源需求的一小部分。
4242 0