龙星课程: 局部性原理在计算机和分布式系统中的应用

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




【今年的龙星课程,张晓东教授讲授了他的杀手锏:data locality。 在首篇的slides里边,张教授讲了下当前系统研究面临的问题和如何作一个 balancing system 。上次 Lawrence National Laboratory 的人来我们这里,我问他为什么 Blue Gene 的 CPU frequency 这么低,他说主要考虑的是 power density。 张教授也强调了 application, runtime system, kernel & arch co-design 来解决问题的重要性。 我们也在作类似的  java runtime, kernel & arch 的 co-design。 不过 co-design 工业界应该是领先很多。 这就是张教授牛的原因了,很多工作直接被工业界拿走应用在 product 中。非常喜欢 张教授的一句话: Practical benefits in the real world often result from basic research at a fundamental level.】

课件下载地址 http://mail.ustc.edu.cn/~wbdai/dragonstar/doc/dragonStar-2010-USTC.rar

http://mail.ustc.edu.cn/~wbdai/dragonstar/html/course.html
课程简介


在计算机系统中,数据的存储、访问和传输已成为阻碍系统性能的主要瓶颈,访问数据的速度远远低于计算的速度,而对数据访问的需求已经成为计算机运行的主要部分。 数据在计算机系统中的存储层次也变得越来越深:从硬件快速寄存器(Registers)到快速存储器(Cache)再到主存的DRAM,通过数据总线,系统可以与各种磁盘,如半导体的固态存储器(Solid State Device)或机械的硬磁盘等。通过互联网,计算机之间还可以通过网络进行大规模的远程存储、访问和通讯。
计算机系统中的数据访问的速度和效率是由两个基本要素决定的:(1)点与点之间的传输的速度(Bandwidth);(2)在某点读或写数据的时间延迟(Latency)。在过去的20多年里,在计算机的各个不同的联结点之间数据的传输速度,有了很大的提高,但数据访问的延迟却没能有效地改善。为了解决这一对越来越突出的矛盾,在计算机系统设计和实现中,三种最有效的硬件或软件的方法是:缓存(Caching),备份(Replication)和预取(Prefetching)。

课程大纲


这门课以上面提到的三个基本技术为核心,全面介绍计算机各个存储层面上的最有代表性和最先进的数据管理方法。课程安排如下:

(一) 硬件快速存储器(Cache)的设计与改进

(1) 基本结构
(2) 命中率和访问延迟的取舍
(3) 高命中率和低访问延迟Cache的设计
(4) 多核处理器(Multicore)中的Cache管理

(二) 主存DRAM内局部性(Locality)的挖掘

(1) DRAM缓存区(row buffer)的结构
(2) 在DRAM内局部性丢失的原因
(3) 一种保留局部性的内存地址空间的映射方法
(4) 嵌入Cache 的DRAM的设计与系统应用

(三) 内存和磁盘管理中的核心技术:替换算法

(1) LRU算法优点以及难以解决的问题
(2) LIRS算法是如何解决LRU问题的
(3) Clock-pro: LIRS是如何实现在操作系统内核的
(4) BP-wrapper:消除替换算法在系统实现中的同步竟争

(四) 提高操作系统对磁盘的管理功能和效率

(1) 操作系统对磁盘管理的局限性
(2) 扩大操作系统的视野去获得关键的磁盘数据存储地址信息
(3) DULO-Caching和DULO-Prefetchin:感知磁盘数据分布的缓存(Caching)和预取(Prefetching)方法以及系统实现

(五) 固态闪存系统(Solid State Device Flash Memory)

(1) SSD Flash Memory的结构和性能
(2) SmartSaver: 利用闪存来降低磁盘能耗
(3) SSD的读、写,以及缓存的高效管理

(六) 在互联网和无线网上的数据管理和有效传输

(1) Stretched Exponential Distribution: 为什么P2P在互联网上是传输多媒体的一种最有效的方法?
(2) 数据缓存在无线网上的作用

(4个打分, 平均:5.00 / 5)

雁过留声

“龙星课程: 局部性原理在计算机和分布式系统中的应用”有5个回复

  1. Multithreaded 于 2010-08-18 3:51 下午

    Using Multi-column cache for way prediction sounds too complicated.

    Does anyone know whether this technique has been successfully applied in practice? I.e., which processor design?

  2. 继续 于 2010-11-07 5:50 下午

    张晓东:有感“千人计划” 凝聚人才
    http://www.1000plan.org/blog/288_42

  3. 楼上楼下 于 2010-11-11 5:11 上午

  4. Juneja@Tung 于 2012-03-16 6:49 下午

    数据访问的速度和效率是由两个基本要素决定的:(1)点与点之间的传输的速度(Bandwidth);(2)在某点读或写数据的时间延迟(Latency)。在过去的20多年里,在计算机的各个不同的联结点之间数据的传输速度,有了很大的提高,但数据访问的延迟却没能有效地改善。为了解决这一对越来越突出的矛盾,在计算机系统设计和实现中,三种最有效的硬件或软件的方法是:缓存(Caching),备份(Replication)和预取(Prefetching)。

    预取?比如CS:IP预先算好下一条指令地址?学习~

  5. multithreaded 于 2012-03-17 9:28 上午

    再加一条,压缩(Compression)。 通过压缩可以减少footprint,以空间换取时间。