数据密集型计算的概念
数据密集型计算:就是并行计算的其中一类。
数据密集型计算,产生了之后的数据密集型科学。
当前,数据密集型科学面临的研究主题:用多种来源的海量时空数据,来模拟全球变化,和区域可持续发展的规律。
数据密集型计算:就是以数据为中心。系统负责获取、维护持续改变的数据集,同时在这些数据集上进行大规模的计算和处理。
数据密集型计算的特点:
(1) 通过高层次的编程模型,支持应用与系统之间的交互,简化应用的并行程序设计。
(2) 支持从简单查询到复杂计算的各种任务,系统具有较强的交互能力。
(3) 采用数据复制、自动选择计算资源等容错机制,来减小故障发生概率。
数据并行性的思想:
把数据切分成多个片段,对每个片段同时执行相同的操作。
假设,1TB的数据存储在磁盘上,磁盘读取带宽为100MB/s。
那么,从一个磁盘上读取,需要花10000秒才能读完1TB的数据集。
但是如果把1TB的数据集,均匀地分布在100个磁盘上,每个磁盘存储10GB数据。
同时驱动100个磁盘,并行地读取数据,那么,只需要100秒就能够读完所有的数据(效率提高了100倍)。
数据本地性的思想:
在数据密集型计算中,充分利用数据本地性,可以提高系统的吞吐量。
数据本地性的思想:
(1) 把任务放置在离输入数据最近的节点运行。
(2) 网络带宽远远低于计算节点本地磁盘的带宽总和。就是把任务调度到数据所在的节点上运行,是最高效的,可以直接处理本地磁盘中的数据,避免消耗网络带宽。
(3) 机架内两个节点之间的带宽,远远大于跨机架的两个节点之间的带宽。所以,把任务调度到同一个机架内的节点,是一个次优选择。
(4) 在调度任务时,应当移动代价很小的计算,而不是移动代价昂贵的数据。避免有限的网络带宽处于饱和状态。
数据密集型计的应用
1. 基因工程领域
基因工程:就是计算不同生物的基因组,来分析和发现生物信息如何在DNA中进行编码的。随着新的基因序列不断被发现,基因数据库也会变得越来越大。
美国国家生物技术创新中心(National Centre for Biotechnology Information,NCBI)里面有和生物技术和生物医学相关的一系列数据库,是生物信息学非常重要的资源。
主要数据库包括:DNA序列GenBank,和生物医学文献的数据库PubMed。
NCBI自1992年开始负责维护DNA序列数据库GenBank。
GenBank数据库每日都会实时更新,并和另外两家数据库(欧洲的EMBL与日本的DDBJ)交换数据,确保三家数据库的序列数据的一致性。
到2006年8月为止,GenBank数据库已经存储了大概650亿个核苷酸序列信息。
如果,用传统的方式,对这些数据进行处理和计算的话是十分困难的。
2. 天文计算领域
在天文领域,每天都有大量的图像数据产生,并且需要对这些原始数据进行存储和处理。
具体的项目:例如,
LSST项目
大口径全景巡视望远镜LSST(Large Synoptic Survey Telescope)项目,现在改名叫:薇拉·鲁宾(Vera C. Rubin)天文台。是智利目前正在建设的一个天文台。
这个天文台的主要任务:就是进行天气天文观测。
所以会产生大量的图像数据:
它的相机,预计每年会拍摄超过 20万张照片(未压缩的大小为 1.28 PB),远远超过人类可以查看的数量。 所以,管理和分析望远镜的图像数据会是这个项目技术上最困难的部分。
平方公里阵列项目(Square Kilometre Array ,SKA)
这是一个政府间射电望远镜项目,计划在澳大利亚和南非建造。
这个SKA,大约每秒产生200GB的数据量,并且需要千万亿次/秒的计算速度来处理这些数据。
最后,才可以获得宇宙的射线图谱。
3. 商业计算领域
- Google公司:每天要接收全球 35 亿次的搜索,和每年 1.2 万亿次搜索。
- 百度:要处理的数据量达到10 ~ 50PB。它在2012 年 12 月的时候,有大概145 亿次的搜索,占全球搜索的第二。
- Facebook:在2011年10 ~ 12月,平均每天有超过25亿张的照片上传,照片所占用的空间超过100PB。
这些大的数据量,也在改变各个领域的计算方式。
比如:
- Google公司:就用数据密集型的计算模式,来为大众市场组织信息;
- 美国国防部:通过无数的传感器和数据密集型计算,来保持态势感知;
- 美国国家海洋和大气管理局(The US National Oceanic and Atmospheric Administration,NOAA),和美国宇航局(NASA):用数据密集型计算,产生了大量的地球观测数据,可以用于行星动力学和生态系统等领域。
- 美国能源部(The US Department of Energy):也是非常依赖数据,他们需要从数据里提取对他们有用的信息。而且,他们通过实时分析巨型数据流,然后识别恶意内容,来保护他们的计算机网络。
⚠️:能源部对以数据为中心的计算需求,在2个方面,不同于与其他的组织:
1. 首先,他们擅长用先进的计算方式,来模拟复杂的物理和工程系统。
能源部的研究人员,经常在世界最大的计算机上,计算时变三维系统的精细模型。
这些模拟会产生海量的数据集,它们很难提取和归档,更不用说分析了。
所以,他们面对的这个数据分析的问题,是一项比较重大的科学挑战。
2. 其次,美国能源部管理着美国一些最先进的实验资源。
这些实验设备,也会产生了巨量数据,但是,这些数据集大大超过了现有的分析能力。
如果不能对数据流进行分析,那么可能会错过一些很重要的科学发现。
补充书籍:
《面向大数据的数据密集型计算应用》(Data Intensive Computing Applications for Big Data)。
书里讲了大数据的技术概念,通过机器学习、并行计算等方法,进行的数据密集型计算。有兴趣的可以看看。