浅谈大数据背景下的计算机体系结构存储层次结构研究-(百度移动端笔试题之一)...

因为无知,所以无畏, 呵呵...

来源: http://rainytech.blog.51cto.com/3514342/1204450

大数据时代已经到来,面对各行各业日益增长的海量信息数据,我们应该如何去收集数据、存储数据(storing)、保留筛选数据(preserving)、分析数据、以及根据数据分析的结果采取相应行动的一系列过程,在大数据背景下这些问题都面临着巨大的挑战。


今天,我想从计算机体系结构中的存储层次结构(memory hierarchy)的角度出发,讨论一下在如今的大数据背景下,存储层次结构应该需要进行哪些创新,才能适应日益增长的大数据应用。


存储层次结构从处理器上的私有(private cache)和共享缓存(shared cache)、主存(memory)、外部存储(storage)等这三级结构。

(1) 处理器缓存相关的创新

处理器缓存的具体实现是由硬件决定的,其上的缓存组织形式以及缓存块的替换算法也都是硬件厂商决定的。但是,就研究而论,可以对缓存的组织形式和缓存块的替换算法等在simics和gem5等模拟器上实现。处理器上缓存的性能是计算机系统中最能直接影响应用程序性能的地方。一般缓存的设计是按照系统中适合各种应用程序的通用场景设计的,而现在的大数据环境下,应用数据的组织形式和使用方式都有所不同(比如海量图片的处理、地图位置信息的处理等等),因此,具有针对性地使用处理器缓存,以达到更好的性能和QoS保证是一个比较不错的尝试。


目前在研究的针对NUMA架构的服务器上,对共享缓存的使用进行优化,调度系统中的任务,使各个NUMA节点的共享缓存能够更加合理的使用,提高系统的吞吐率。通过调度的方法解决共享缓存资源竞争的问题,已经是一个研究比较多的点了。从目前看,这种方式可以提高性能,但是有比较大的不确定性。并不是所有场景都能通过调度解决性能问题。在这个调度方法提出来之前,采用动态的缓存分块技术解决共享缓存资源利用问题的方法是一种研究比较成熟的技术。调度和分块这两种技术能否进行结合使用,取长补短,调度方式更加灵活,相应系统的程序行为变化比较及时,而分块的方法更能够保证程序性能的稳定性。因此,两种技术相结合,既能提高性能,同时也保证程序的QoS。


传统操作系统的应用进程对处理器缓存的使用特点和在虚拟化环境下的缓存使用特点应该是不一样的(有待实验验证)。 虚拟化带来更多的系统开销,虚拟机之间的切换开销要远大于普通进程之间的切换开销,同时,在虚拟机环境下,TLB的使用也和传统OS对TLB的使用也有所不同。特别是虚拟机里运行特殊的应用时,比如移动应用APP的服务端程序跑在虚拟机中,对处理器缓存和TLB的使用特点需要进一步研究,提出能够更好适应这些大数据背景下的新型应用场景。


和缓存相关的还有就是移动端的智能设备,现在智能手机的硬件处理能力越来越强。已经出现8核处理器(4个大核+4个小核),这种异构多核处理器的架构,对系统软件的设计提出了更高的要求,如何实现异构处理器平台上的缓存有效利用、调度管理等问题也已经摆在我们面前。


以上几点是自己感兴趣和在做的内容,关于缓存的内容还有很多。

(2)主存相关的创新

目前的主存介质主要还是以DRAM为主。 主存是计算机系统中很重要,也是很复杂的一块内容。单纯的一个Linux内核中的内存管理模块子系统就已经足够复杂。如何能够高效地利用主存,减少运行的应用程序访问外存的次数,是一直需要不断提高的技术点。我只把自己感兴趣的几点内容写一写,相信以后还会有补充。


我以前的研究主要集中在主存这部分,试图建立一个分布式共享内存(Distributed Shared Memory)的系统。但是,我目前感觉分布式的共享内存系统已经不适应现在的大数据的应用场景了,以前的DSM系统是为了解决单台机器无法提供足够内存容量(访存空间)和性能,把多台机器的物理地址编址成统一的内存地址,可以让跑在DSM系统上的程序可以透明地访问内存不在本地机器上的数据。但是,这种方式产生了巨大的开销,内存数据一致性的协议也是非常地复杂。我觉得,现在的分布式大型应用,单个线程对性能的要求都不会超过一台服务器所能够提供的范围。而线程与线程之间可以通过消息通信的机制进行数据的同步和共享,这种方式更加高效,更具备可扩展性。 其实,某种意义上,NUMA架构就是软件DSM系统的硬件实现。


为了更加充分地利用内存资源,现在的memcached项目是业界普遍采用的方式,以提高数据中心对实时性要求较高的应用访问数据的响应速度。Memcached使用key-value的形式存储数据在内存中,通过哈希表和缓存替换算法维护存储在主存中的数据。我觉得,在大数据应用场景下,in-memory的处理特性是一个大趋势,这方面应该有非常广阔的研究前景。但是,需要比较好的系统结构的基础以及对并行算法有比较深入的研究。这是分布式的问题,单台机器上性能提升是一个永恒的话题,但是分布式的问题更具挑战性,意义也是非常大的。分布式系统中存在的问题更多,性能提升空间更大。


和主存相关的还有就是主存和外存的接口处,以及处理器和主存的接口处。我觉得这两个接口处是存在问题比较多的地方,现在的多核处理器在访问内存数据的使用还是需要排队访问内存的,这就导致的多核处理器访问内存的性能瓶颈,如何提升并行内存访问的性能是一个巨大的难题,可以借鉴GPU的模式,怎么提高并行性。就算有那么一点点的提高,我觉得都是一个比较大的贡献了。 第二个接口处,就是主存和外存的接口,现在外存的介质丰富起来了,不仅有机械磁盘,还有固态硬盘,手机上的闪存等。这些介质的工作原理是非常不一样的,而现在主存和外存的接口是统一的,这样一来,难免影响新型的存储介质的性能发挥。这方面的研究也是一个比较重要的点,毕竟目前计算机系统中最大的性能瓶颈在于外部IO访存的速度过慢。


当然,主存中还有很多问题需要解决,比如虚拟化环境下,目前的页表维护工作我总觉得是非常地冗长和繁杂的,效率也不够高,这是一项巨大的工程,如果能在这里面找到新的问题,提出创新的解决方案,是一件令人激动的事情。 还有,虚拟机的内存共享问题,如何识别虚拟机之间(同一台物理机上的虚拟机之间以及不同物理机上的虚拟机之间)的数据共享情况,通过调度,进一步提高内存的利用率,也是一件非常值得做的事情。

(3)外部存储相关的创新

我个人觉得,外部存储是大数据的基石。没有外部存储技术的快速发展,也没有今天大数据概念的提出。现在外部存储的容量越来越大,但是,仍然不能够满足存储现在人们利用各种设备生产的数据。因此,如何提高数据存储的效率,去除冗余的数据,保证数据存储的可靠性等方面都是亟待解决的问题。


关于外部存储,我觉得非常重要的一个方向是大规模分布式文件系统的设计。这种大规模分布式文件系统(hdfs、ceph文件系统等)都还不是很成熟,也肯定存在诸多问题。性能问题,扩展性问题,稳定性问题等等。这些都是亟待解决的,而且对于大规模的数据,其文件类型也是千差万别的,怎么样去设计文件系统去适应各种不同类型的文件(文字、图片、视频、地图信息等等)。起初,我是对分布式文件系统比较感兴趣的,但是,现在精力不够,不知道哪一天又会重新去研究它。


外部存储需要创新的地方是如何高效可靠地利用SSD存储介质,提高外部存储的访问性能,保证寿命、降低能耗等等。由于SSD的工作原理和传统的机械硬盘相差较大,目前的文件系统其实不能够很好地发挥出SSD硬盘的特性。怎么去设计一种新的系统结构,包括和内存的结合,Linux内核的文件缓存部分和文件系统以及设备驱动这些方面都存在需要改进的地方,需要提出创新解决问题的方法。


先写这么多吧,感觉离自己期望写出来的东西还有点远,慢慢进步吧!



数据结构 栈、队列、数组和链表 阅读详情

相关推荐

[完整版附录]Computer architecture 计算机体系结构量化研究方法

[完整版附录] 英文版 Computer architecture 计算机体系结构量化研究方法。把网上的多个附录统一下载,并进行打包和上传。

浅谈大数据背景下的计算机体系结构存储层次结构研究

大数据时代已经到来,面对各行各业日益增长的海量信息数据,我们应该如何去收集数据、存储数据(storing)、保留筛选数据(preserving)、分析数据、以及根据数据分析的结果采取相应行动的一系列过程,在大数据背景下这些问题都面临着巨大的挑战。         今天,我想从计算机体系结构中的存储层次结构(memory hierarchy)的角度出发,讨论一下在如今的大数据背景下,存储层

RainyCheng的专栏 1745

计算机体系结构 — 量化研究方法 英文第五版 Computer Architecture A Quantitative Approach

计算机体系结构 — 量化研究方法 英文第五版 官方电子版 清晰 Computer Architecture A Quantitative Approach 5th English

大数据计算机体系结构相关知识

1.计算机体系结构整体概要: 基于Hadoop和Spark的云计算模型分析比较,Spark集群cache失效,集群本身对于内存的需求较大,以及云计算对于虚拟化的特殊需求,核心理念:大型服务器公司对于硬件的虚拟化,以改变软件的透明度; 大型互联网公司对于大数据服务器核心技术的高度重视,服务器本地数据和远程数据区别,本地运行和虚拟机运行区别; System概念,软件和硬件两个组成部分,核心理念:

yuyezhulan的专栏 1288

面向大数据异构系统的神威并行存储系统

点击上方蓝字关注我们面向大数据异构系统的神威并行存储系统何晓斌1,蒋金虎21国家并行计算工程技术研究中心,北京 1000802复旦大学计算机科学技术学院,上海 200433论文引用...

weixin_45585364的博客 1480

浅谈大数据背景下的计算机体系结构存储层次结构研究-(百度移动端笔试题之一)

因为无知,所以无畏, 呵呵... 来源: http://rainytech.blog.51cto.com/3514342/1204450 大数据时代已经到来,面对各行各业日益增长的海量信息数据,我们应该如何去收集数据、存储数据(storing)、保留筛选数据(preserving)、分析数据、以及根据数据分析的结果采取相应行动的一系列过程,在大数据背景下这些问题都面临着巨大的挑战。

1621

计算机系统结构-量化研究方法(中文版)

本书是对应的英文版的翻译版本.

大数据时代下的数据安全探讨

网络时代的发展日新月异,技术与体验的改变与改进正变得异常迅速。如今,我们的网络已经从千兆迈向了万兆时代,这便使得诸多网络安全设备要分析的数据包数据量急剧上升,而且每天互联网都产生着大量数据,大数据时代不可避免的到来了,带来机遇的同时也引发了一些列的数据安全问题,文中就此进行了分析,以期给出大数据时代数据安全保障对策。

计算机体系结构的论文,简述计算机体系结构软件模拟技术论文

计算机体系结构软件模拟技术的产生是科技信息社会中计算机系统发展的基础。虽然我国对于计算机体系结构软件模拟技术的研发已有很长一段时间,但是基于该种技术的复杂性,在实际开发环节中存在着很多问题,这些问题的存在制约着时计算机系统的发展。因此,需要对这些问题进行分析,并且提出有效的对策。1 计算机体系结构软件模拟技术产生背景计算机体系结构软件模拟技术所应用的系统结构为计算机软件系统中,该技术的具体应用能够...

weixin_36299242的博客 329

Gems+simics模拟器

<br />模拟器啊模拟器,何时才能看懂着手修改呢?<br />真可谓磨死你,气死你啊.............<br />等待一个过路的高手............

唯有前进值得敬仰 1449

大数据面试题—数据结构

1)给⼀个超过100G⼤⼩的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 2)与上题条件相同,如何找到top K的IP?如何直接⽤Linux系统命令实现? 3)给定100亿个整数,设计算法找到只出现⼀次的整数 4)给两个⽂件,分别有100亿个整数,我们只有1G内存,如何找到两个⽂件交集 5)1个⽂件有100亿个int,1G内存,设计算法找到出...

qq_37941471的博客 1911

计算机体系结构:量化研究方法》阅读笔记

计算机体系结构:量化研究方法》阅读笔记 计算机学科综合了数学,逻辑学,物理学多门基础学科,并在此基础上衍生了各种各样的算法,如果我们只以简单的一门学科的角度去看待他,有时候会陷入困惑,从一个系统的角度去看待,才符合计算机的发展历史。 以系统工程的角度看,就会涉及到两个问题:体系结构和优化。可以说计算机的演化的方向就是:设计更好的计算机层次体系得到一个具有更好性能的计算机。 谈到体系结构,最重要的...

physicerr的博客 4871

GEM5 模拟器简介

GEM5是一款模块化的离散事件驱动全系统模拟器,它结合了M5和GEMS中最优秀的部分,是一款高度可配置、集成多种ISA和多种CPU模型的体系结构模拟器。M5是由Michigan大学开发的一款开源的多处理机模拟器,受到了业内的广泛关注,很多高水平论文都采用M5作为研究工具。另一方面,Wisconsin推出的GEMS能够对储存层次进行详细而灵活的模拟,包括对多种不同的cache一致性协议和互联模型的支

AddyLee的专栏 2万+

Atitit it计算机应用体系图  大数据 爬虫 非结构数据 nosql redis mongodb 分布式存储 es搜索 可视化 多媒体与office 19.1. 14.3 计

Atitit it计算机应用体系图 大数据 爬虫 非结构数据 nosql redis mongodb 分布式存储 es搜索 可视化 多媒体与office 19.1. 14.3 计算机图形学 296 14、 音视频  游戏 304 14 18. 第13章 人工智能 266 13 18.1. 13.1 思维机 266 13 18.2....

attilax的专栏 329

计算机体系结构:量化研究方法:第5版

计算机体系结构:量化研究方法:第5版》 基本信息 原书名:Computer Architecture:A Quantitative Approach,Fifth Edition 作者: ()John L. Hennessy David A. Patterson [作译者介绍] 译者: 贾洪峰 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115297655 上架时间:2...

weixin_33946605的博客 3092

计算机体系结构量化研究方法学习笔记(二)——第二章 存储器层次结构设计

一、引言 一种经济型方案——存储器层次结构,利用了局部性原理。 一般情况下,低层级存储器中的数据是其上一级存储器中数据的超集。 Intel Core i7为例,每个时钟周期可以有每个核心生成两次数据存储器引用,i7有4个核心,时钟频率为3.2GHz,除了大约128亿次128位指令引用的峰值指令要求外,每秒最多还可生成256亿次64位数据存储器引用,总峰值带宽为409.6GB/s。二DRAM的峰值带宽只有25GB/s(6%)。 传统上,存储器层次结构的重点是优化存储器平均访问时间,这一时间由访存访问时

konghhhhh的博客 1264

关于海量数据处理的各种常用数据结构浅谈

  随着互联网的兴起,越来越多的内容被放到互联网中,从而导致海量数据处理受到更多人的重视,尤其是在百度、腾讯等这些涉及海量数据的公司。下面我们简单谈一下关于海量数据处理的一些常用数据结构。包括哈希、bitmap、Bloom filter、堆、mapreduce、trie树。 (1)哈希   对于哈希,相信大家都不会陌生。其基本原理不再说明,哈希的一个关键点是哈希函数的选择,如何使映射...

dengdiaoji0891的博客 525
上一篇: C语言中的面向对象技术---模拟对象(百度移动端笔试题之一)
下一篇: 浅谈大数据背景下的计算机体系结构存储层次结构研究-(百度移动端笔试题之一)...
iteye_21202
博客等级 码龄8年 142粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值