宝马线上娱乐-业界公认的最权威网站,欢迎光临!

宝马线上娱乐_宝马线上娱乐平台_宝马线上娱乐2011

程序员可以在任何指令中插入一些额外的代码行

时间:2019-03-15 11:26来源:未知 作者:admin 点击:
在今天的计算机芯片中,内存管理基于计算机科学家所谓的局部性原理:如果程序需要存储在某个内存位置的大量数据,那么它可能也需要相邻的块。 但是,这个假设在大数据时代就已

  在今天的计算机芯片中,内存管理基于计算机科学家所谓的局部性原理:如果程序需要存储在某个内存位置的大量数据,那么它可能也需要相邻的块。

  但是,这个假设在大数据时代就已经破裂,现在计算机程序更频繁地处理大量数据集中任意分散的几个数据项。由于从主存储库中获取数据是当今芯片的主要性能瓶颈,因此不得不更频繁地获取数据会大大减慢程序执行速度。

  本周,在麻省理工学院计算机科学与人工智能实验室(CSAIL)的国际会议上,来自麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员正在推出一种名为Milk的新编程语言,它允许应用程序开发人员在处理分散的程序中更有效地管理内存。大数据集中的数据点。

  在几种常见算法的测试中,用新语言编写的程序的速度是用现有语言编写的程序的四倍。但研究人员认为,进一步的工作将产生更大的收益。

  电子工程和计算机科学教授Saman Amarasinghe解释说,当今的大数据集对现有的内存管理技术造成了问题,并不是因为它们很大,因为它们是计算机科学家所说的“稀疏”。对于大数据,解决方案的规模不一定与问题的规模成比例地增加。

  “在社交场合,我们过去常常会看到较小的问题,”Amarasinghe说。“如果你看看这个[CSAIL]建筑中的人,我们都是联系在一起的。但是如果你看一下这个星球尺度,我就不会扩展我的朋友数量。这个星球有数十亿人,但我仍然只有几百个朋友。突然间你有一个非常稀疏的问题。“

  同样,Amarasinghe说,一个在线名顾客可能希望为其访客提供其20本最受欢迎的书籍清单。然而,并不是说拥有一百万客户的在线书商希望向其访问者提供其最受欢迎的20,000本书的列表。

  今天的计算机芯片没有针对稀疏数据进行优化 - 事实上,情况恰恰相反。因为从芯片的主存储库中获取数据很慢,现代芯片中的每个内核或处理器都有自己的“缓存”,这是一个相对较小的本地高速存储体。核心不是一次从主存储器中获取单个数据项,而是获取整个数据块。并且根据地点原则选择该块。

  很容易看出局部性原理如何与图像处理一起工作。如果程序的目的是将可视过滤器应用于图像,并且它一次在图像的一个块上工作,那么当核心请求块时,它应该接收其高速缓存可以容纳的所有相邻块,因此它可以在块之后逐块消磨而不再获取任何数据。

  但是,如果该算法仅对在线本书感兴趣,则该方法不起作用。如果它请求与一本书相关的数据,那么与100本相邻书籍相关的数据可能是无关紧要的。

  一次转到单个数据项的主存储器是非常低效的。“就像每次你想要一勺麦片一样,你打开冰箱,打开牛奶盒,倒一勺牛奶,关上纸箱,然后把它放回冰箱里,”弗拉基米尔基里安斯基说,他是一名博士生在电子工程和计算机科学和新论文的第一作者。他与Amarasinghe和Yunming Zhang一起加入,他也是电气工程和计算机科学的博士生。

  Milk只是向OpenMP添加了一些命令,这是C和Fortran等语言的扩展,可以更轻松地为多核处理器编写代码。使用Milk,程序员可以在任何指令中插入一些额外的代码行,这些指令遍历大型数据集,寻找相对较少的项目。Milk的编译器 - 将高级代码转换为低级指令的程序 - 然后计算出如何相应地管理内存。

  使用Milk程序,当核心发现它需要一块数据时,它不会从主存储器请求它 - 以及相关数据的缓存。相反,它将数据项的地址添加到本地存储的地址列表中。当列表足够长时,所有芯片的核心汇集它们的列表,将那些彼此靠近的地址组合在一起,并将它们重新分配给核心。这样,每个核心只请求它知道它需要的数据项,并且可以有效地检索它们。

  这是高级描述,但细节变得更加复杂。事实上,大多数现代计算机芯片都有几种不同级别的缓存,每种缓存都比上一种更高但效率稍低。Milk编译器不仅要跟踪存储器地址列表,还要跟踪存储在这些地址的数据,并且它会定期在缓存级别之间进行混洗。它还必须决定应该保留哪些地址,因为它们可能会被再次访问,哪些地址要丢弃。改进编制这个错综复杂的数据芭蕾的算法是研究人员看到希望进一步提高性能的地方。

  “当今许多重要的应用程序都是数据密集型的,但不幸的是,内存和CPU之间性能差距的不断扩大意味着它们并没有充分利用当前的硬件,”斯坦福大学计算机科学助理教授Matei Zaharia说。“牛奶有助于通过优化常见编程结构中的内存访问来解决这一差距。这项工作将有关内存控制器设计的详细知识与编译器的知识相结合,以实现对当前硬件的良好优化。“

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
最新评论 进入详细评论页>>
推荐内容