论文部分内容阅读
分子模拟(Molecular Simulation)是21世纪初发展起来的一门技术,它是计算机科学和基础自然科学相结合产生的产物。随着分子模拟相关研究的不断深化以及借助分子模拟来进行研究的不断深入,分子模拟过程中的模型越来越复杂。每次进行分子模拟之后所产生的数据量是非常巨大的。而分子模拟的关键在于对分子模拟所产生的数据进行分类、提取、分析,进而获取到对实验有用的数据与结果。现有的分子模拟数据分析系统通常是分子模拟系统的一部分。在之前,由于实验的规模比较小,分子模拟相关技术处于初级阶段等原因,故而分子模拟产生的数据量比较小,现有的分子模拟数据的分析模式能够有效而快速的获取到科研人员所需要的数据。但是,随着分子模拟所产生的数据量的不断增长,达到“大数据”级别的容量时,在一次分子模拟之后产生的数据量达到GB甚至是TB级别时,运用传统的分子模拟系统进行处理时,这种模式的弊端就显而易见了。在现有的处理模式之下,当用户发送一条查询之后,系统需要根据查询所依赖的相关数据,首先对全部数据进行扫描,进而定位到所需的数据,然后将所需要的数据全部装载进入内存,最后才能对相关的数据进行处理来获取所需数据。当这一条查询过后,用户发送一条新的信息,系统就需要重复这样一轮的动作。由于所操作的数据量是非常巨大的,这样的模式会导致非常巨大的I/O以及CPU负载。在当前一般的用于科研计的算机硬件设备条件之下,来执行如此的操作,效率将是非常低下的。Apache Spark是当前大数据处理平台之中的明星。经过6年的发展,Spark现在已经成为了时下最热门的分布式大数据处理平台。Spark技术核心是内存计算技术,即主要使用了内存计算技术来达到加速的目的。Spark作为一项如此高效的大数据处理平台,将其引入分子模拟所产生的海量数据的分析之中将极大的提高分子模拟数据分析的效率,促进基础自然学科的研究。为了达到此目标,我们设计实现了基于Spark的分布式分子模拟数据分析系统。通过结合分子模拟的具体需求,对Spark进行了有针对性的订制,使之能够在处理分子模拟数据时保持其高效快速的特性而又能满足分子模拟数据处理时的特殊需要。本系统主要从三个层面着手进行订制,包括Apache Spark层,分子模拟RDD层和分子模拟查询处理层。并且系统中使用的Cache机制,可以将中间状态的计算结果保存在内存或者硬盘之中,在下一次的使用时免去了重复计算和从硬盘装载进入内存的过程,极大的减轻了CPU负载和I/O负载。在本文最后,我们使用本系统进行的实验,根据实验结果,充分证明了本系统的有效性和高效性。