未来几周,我们将会探讨一下未来计算机架构的未来发展趋势。上一期,我们探讨了处理器。这一期,让我们来探讨一下内存存储方面的发展趋势。 主要参考文献包括: Onur Mutlu and Lavanya Subramanian, ResearchProblems and Opportunities in Memory Systems InvitedArticle in SupercomputingFrontiers and Innovations (SUPERFRI) , 2015. https://users.ece.cmu.edu/~omutlu/pub/memory-systems-research_superfri14.pdf 这篇文章的作者 Onur Mutlu ,是大名鼎鼎的 Onur ,做内存计算的大概都知道这位大哥,最近从 CMU 挪窝到 ETHZ 。下面我们来一起看看这篇文章。文章里面讲了囊括了很多技术性的解法,但是我们主要想通过数据来说话,来看看内存系统的发展方向。 内存架构发展的趋势 : Onur 从三个方面来探讨未来发展的趋势: systems/architecture front, applications front,technology front. - Architecture: 这里强调了 heterogeneous processing cores 对内存系统的 QoS 的需求 - Application: 随着更多的应用在内存里面常驻,产生对内存系统的不同要求。例如,图应用需要的更多的是 latency, 而 OLAP 数据库更多的是带宽。 - Technology: nvram 是主角,还有就是千呼万唤的 Intel Xpoint. 在 Onur 看来,下面这些 Technical challenges 是主要的挑战。个人认为现在单单看内存本身已经比较局限,更多的需要和系统和应用相结合, Onur 提出的三个 challenges 里面,解决方案不少都是跟上层结合的。大家感兴趣可以看这个文章,洋洋洒洒 30 多页啊啊。 1) Overcome scaling challenges with DRAM, 2) Enable the use of emerging memory technologies, 3) Design memory systems that provide predictable performanceand quality of service to applications and users 由于时间关系,下面我就根据这个文章,结合我的理解,来分别讲讲这三个挑战为啥是个问题,他们的影响是什么。各种具体解决方案可以看文章。 Overcome scaling challenges with DRAM They have identified three major challenges as impediments to effectivescaling of DRAM to smaller technology nodes: 1) the growing cost ofrefreshes,2) increase in write latency, and 3) variation in the retention timeof a cell over time DRAM Capacity Latency Over Time. 关于前两点,大家看下图就明白了。 Scaling 带来的另外一个问题是可靠性。在这篇论文里面, FlippingBits in Memory Without Accessing Them: An Experimental Study of DRAMDisturbance Errors, (Kim et al., ISCA 2014) 讲了不少关于内存可靠性的内容,大家感兴趣可以看看。 最后一个因素就是功耗。 有一些研究工作 指出,内存功耗可以占 整个机器的40-50%。这个比例当然是每个机器不一样的,但是如果未来机器具有很大的内存,目前已经有单机TB级别的,内存功耗就不容小觑了。另外一个坏消息是,DRAM consumes power even when not used (periodic refresh),这个就是之前的那个关于refresh的图了。 Emerging memory technologies 主要是看新的内存硬件技术 (e.g.,NVRAM) 如何改变 DRAM 整个生态圈。以前大家都期盼 NVRAM 替代 DRAM ,但是貌似最近大家更接受 DRAM+NVRAM 混合。至于怎么混合,貌似还没有定论,一个原因可能是因为大部分的 NVRAM 都还是在实验室里面。唯一一个已经公布的 Intel Xpoint ,大家也是等啊等啊。不管怎么样, 这是一个大家都在盯着的领域,不仅仅是计算机架构的,还有各种应用和系统的,包括数据库,操作系统等等领域。 Onur 写道 “We believe emerging technologiesenable at least three major system-level opportunities that canimprove overall system efficiency: 1) hybrid main memory systems, 2)non-volatilemain memory, 3) merging of memory and storage.” 其实,这里强调的是 system-level ,下面两个图分别是讲: 1) 平行架构 , 2) NVM 作为外部存储部件。不管是哪个,对上层应用和系统都是很大的挑战。一方面,我们有如此多的 legacy code base, 如何让这些 legacy code 能够利用到新的硬件特性 , 可喜的是 Linux 内核开发社区已经注意到这个问题,并计划对新型的 NVM 进行支持。此外,一些研究团队提出支持 NVM 的文件系统如 BPFS 、 PMFS 、 SCMFS 等,在内核层面支持 NVM 对应用程序的透明性,但增加了用户空间与内核空间数据拷贝的开销 。另外一方面,新的应用如何把 NVRAM 用到极致 , 从性能和能耗等方面目前都还有探索的空间。我们需要从系统的层面来平衡这个事情。 Predictable memory performance 内存计算已经在很多领域有着广泛的应用。随着应用的增多和多核的普及,内存系统如何提供可预测的性能变成一个大问题。他们的实验里面看到最高有 5 倍的 slowdown (下图) . 因此, Onur 写道 ” Towards this end,previous works have explored two different solution directions: 1) to mitigateinterference,thereby reducing application slowdowns and improving overallsystem performance, 2) to precisely quantify and control the impact ofinterference on application slowdowns, thereby providing performance guaranteesto applications that need such guarantees.” 其他相关工作: 相关的工作其实有很多,这里我就讲讲几个最近我看过的,觉得很有意思的: 中科院计算所的 YungangBao 提出了 PARD , The Computer as a Network (CaaN). 这个项目非常有意思的结合软件定义网络来提供 QoS, 可以说是解决 Onur 提到的第三个挑战 . 据说,他们这一套软硬件方案已经用到某公司的实际部署。 华中科技大学的 Xuanhua Shi 组最近做了一个关于内存计算的生命周期管理器 。这个工作虽然跟内存架构不相关,但是体现了一个问题:软件管理是很有必要的,最近不少基于 java 的内存计算系统 (e.g.,Spark) 都在争取把内存管起来。当然随着内存系统架构的发展,内存管理变得更加复杂,也变得更加的有挑战性。 3D 堆叠和 HighBandwidth Memory ( HBM ) 应该也是一个亮点。 AMDand NVIDIA GPU 都会在下一代产品里面支持, Intel KNL 里面也有。如何使用这块高带宽而且容量还不小的内存 (=16GB) 是个幸福的烦恼, 哈哈。 最近在 ISCA 2016 上面, FredChong and Yuan Xie 他们合作提出了 Mellow Writes: Extending Lifetimein Resistive Memories through Selective Slow Write Backs 来延长 resistivememory 的生命并且控制在很小的性能损失 。这个想法是基于一下两个观察 : 第一, Fortypical Resistive Memory technologies, slower writes are predicted to have aquadratic endurance advantage! 第二, Memorybanks are idle for most of the time. 见下图// 我认为这里的实验可以做的更好,如果考虑多核多应用。 有了这两个观察,我想大家也就不难想出下一部的解决方案了,就是找出那些可以慢慢的写,但是对性能又不会有很大影响的写操作。具体可以看看看看他们的论文。我们自己小组跟香港浸会大学做了一个工作如何使用 NVRAM 来进行 “Real-TimeIn-Memory Checkpointing for Future Hybrid Memory Systems” . 我们跟上面这个 ISCA 的论文有类似之处,就是充分利用 idle period 来做些有用的事情,但是同时尽可能小的影响应用性能。 最后,我们小组在这个方向上也是做了不少的工作,从闪存开始,我们是第一个团队做出高性能的 B+tree index (FB-Tree) , 后来陆陆续续做了一些 buffermanagement 的工作 (FD-buffer ) ,还有就是和 JianliangXu@HKBU 合作在 NVRAM 上面如何提高事务处理的性能 。最近,我们针对 NVRAM 的一致性问题提出了 NV-tree . 最最后,我们的期待啊,您什么时候出来啊? Jiuyue Ma,Xiufeng Sui, Ninghui Sun, Yupeng Li, Zhihao Yu, Bowen Huang, Tiani Xu, ZhichengYao, Yun Chen, Haibin Wang, Lixing Zhang, YungangBao, Supporting DifferentiatedServices in Computers via Programmable Architecture for Resourcing-on-Demand(PARD) , in the 20th International Conference on Architectural Support forProgramming Languages and Operating Systems (ASPLOS), 2015. Lu Lu,Xuanhua Shi, Yongluan Zhou, Xiong Zhang, Hai Jin, Cheng Pei, Ligang He,YuanzhenGeng, Lifetime-Based Memory Management for Distributed DataProcessing Systems. Proceedings of the VLDB Endowment (PVLDB), New Delhi,India, Sept. 5-9, 2016. LunkaiZhang, Brian Neely, Diana Franklin, Dmitri Strukov, Yuan Xie, Frederic T.Chong. Mellow Writes: Extending Lifetime in Resistive Memories throughSelective Slow Write Backs, In the proceedings of the 43rd Annual Intl.Symposium on Computer Architecture (ISCA) , June 2016. Seoul, Korea. Shen Gao*,Bingsheng He, Jianliang Xu. Real-Time In-Memory Checkpointing for Future HybridMemory Systems. ACM ICS 2015: 2015 International Conference on Supercomputing. http://www.comp.nus.edu.sg/~hebs/pub/DRAMCheckpoint-ICS15.pdf Yinan Li,Bingsheng He, Robin Jun Yang, Qiong Luo and Ke Yi. Tree Indexing on Solid StateDrives. Proceedings of the VLDB Endowment, Volume 3 Issue 1-2, September 2010, pp.1195--1206. Sai TungOn*, Shen Gao, Bingsheng He, Ming Wu, Qiong Luo, Jianliang Xu. FD-Buffer: ACost-Based Adaptive Buffer Replacement Algorithm for Flash Memory Devices. IEEETC 2014: IEEE Transactions on Computers, vol.63, no.9, pp.2288--2301, Sept.2014. Sai TungOn, Jianliang Xu, Byron Choi, Haibo Hu, Bingsheng He. Flag Commit: SupportingEfficient Transaction Recovery on Flash-based DBMSs. TKDE 2012: IEEETransactions on Knowledge and Data Engineering, Volume: 24, Issue: 9, Page(s):1624-1639. Jun Yang,Qingsong Wei, Cheng Chen, Chundong Wang, and Khai Leong Yong, Bingsheng He.NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems. FAST'15:13th USENIX Conference on File and Storage Technologies. Author byBingsheng He (commented by Haikun Liu) * 本文仅供学术交流所用,图片文字版权归各自拥有者。 关注我们:
国家科学评论 微信号 NatlSciRev 功能介绍 《国家科学评论》(National Science Review,NSR)由中国科学院主管、科学出版社主办,致力于全方位、多角度报道中外自然科学各领域的重要成就。 高性能计算在解决大规模复杂问题方面具有战略地位,并显著地促进了社会经济的发展,在过去40多年里一直是很活跃的研究领域。高性能计算是一个高度学科交叉的领域,它的成功与否与超级计算机、并行算法、并行编程、基于网络的高性能计算环境以及高性能计算应用密切相关。高性能计算应用对超级计算机的需求促进了计算机体系结构和核心技术的发展,如最近兴起的异构加速体系结构已被TOP50中众多超级计算机使用;在基于网络的高性能计算基础设施方面,美国开发的XSEDE和OSG是网络基础设施的典型代表;中国的高技术计划大力支持这个方向的研发,促进了中国的国家高性能计算环境—中国国家网格服务环境的诞生。高性能计算应用领域十分广泛,如油气勘探、环境保护、材料设计、产品设计优化、全球气候变化以及药物研发、大数据分析和图像语音识别等,这些应用也是促进其发展的重要动力。 为了介绍高性能计算领域的最新动态,由 钱德沛 教授担任客座编辑组织, 《国家科学评论》 杂志2016年第1期出版了关于高性能计算的前沿进展专题。在该专题中, 唐志敏 研究员在亮点文章中以天河2号为例讨论了超级计算机互连的问题。 Josep Torrellas 教授撰写了关于极限规模计算机体系结构的论文; 谢向辉 研究员点评了高性能计算机低能耗技术的趋势与展望; 孙家昶 教授和 杨超 研究员总结了大规模并行算法研究; 莫则尧 研究员撰写了高性能计算的编程框架; Jack Dongarra 教授介绍了衡量超级计算机的评测新标准HPCG; 徐志伟 、 迟学斌 、 肖侬 研究员综述了中国20年来的高性能计算环境的发展; 蒋华良 研究员和 于坤千 研究员介绍了高性能计算在药物研发和分子模拟中的应用。 陈左宁 院士在访谈中介绍了开发百亿亿级计算系统的挑战与可能的解决方案,访谈由 陈文光 教授撰写。 专题文章链接如下,敬请关注: GUEST EDITORIAL Depei Qian High performance computing:a brief review and prospects http://nsr.oxfordjournals.org/content/3/1/16.full RESEARCHHIGHLIGHT Zhimin Tang TH Express-2 reaches new heights for super computer interconnects http://nsr.oxfordjournals.org/content/3/1/17.full PERSPECTIVES Josep Torrellas Extreme-scale computer architecture http://nsr.oxfordjournals.org/content/3/1/19.full Xianghui Xie Low-power technologies in high-performance computer: trends and perspectives http://nsr.oxfordjournals.org/content/3/1/23.full Jiachang Sun, Chao Yang, and Xiao-Chuan Cai Algorithm development for extreme-scale computing http://nsr.oxfordjournals.org/content/3/1/26.full Zeyao Mo High-performance programming frameworks for numerical simulation http://nsr.oxfordjournals.org/content/3/1/28.full Jack Dongarra, Michael A. Heroux, and Piotr Luszczek A new metric for ranking high-performance computing systems http://nsr.oxfordjournals.org/content/3/1/30.full REVIEWS Zhiwei Xu, Xuebin Chi, and Nong Xiao High-performance computing environment: a review of twenty years of experiments in China http://nsr.oxfordjournals.org/content/3/1/36.full Tingting Liu, Dong Lu, Hao Zhang, Mingyue Zheng, Huaiyu Yang, Yechun Xu, Cheng Luo, Weiliang Zhu, Kunqian Yu, and Hualiang Jiang Applying high-performance computing in drug discovery and molecular simulation http://nsr.oxfordjournals.org/content/3/1/49.full INTERVIEW Wenguang Chen The demands and challenges of exascale computing: an interview with Zuoning Chen http://nsr.oxfordjournals.org/content/3/1/64.full