论文部分内容阅读
随着科技水平的不断提高和电子计算机的出现,人类探索世界的工具、方法和实验环境发生巨大变革,已经由远古时期的经验性考察转变到以处理、分析和挖掘海量数据为核心的阶段。科学计算就是在这种情况下产生的一门交叉性学科,将计算机应用于科学研究和工程技术中遇到的数学计算,成为科学、工程、商业领域必不可少的研究计算工具。在科学计算中,数据爆发式增长,1012量级的数据随处可见;数据间关系错综复杂,简单的关系结构难以完整表达;计算复杂性高,传统的描述性查询语言SQL难以满足计算需求。因此,如何设计一个高效的、满足这些需求的通用大规模数据并行处理和分析系统是一个巨大的挑战。 科学计算数据管理平台HoneyComb是一个正在设计和实现的处理、分析大规模科学数据的分布式管理系统,本文根据科学计算的基本需求和其本身的局部性特点,完成了其中基于多维数组模型的计算模块的设计与实现。首先提炼了一套较为完善的多维数组算子库,给出其代数定义和表示,它们涵盖了传统关系数据库中的所有关系操作。有些常用计算可以基于这些基础算子进行扩展,算子库对用户自定义函数的支持则大大增加了它的计算表达能力,使得大多数科学计算都可以用它们来表示。然后通过扩展一些向量运算函数,包括位索引、位计数和坐标转化函数等,结合科学计算的局部性特点,在多维数组模型的基础上实现了所有算子。最后文中讨论了算子内的并行计算问题,结合算子的特点给它们分类:根据算子对边界数据的依赖情况分为独立算子、边界依赖算子和无限依赖算子,根据算子的可拆分情况分为全局算子和局部算子。根据这两种分类方式,详细地分析讨论合并技术和冗余存储技术,并利用所定义的算子实现了对它们的支持,从而达到算子并行执行的目的。 通过在实际科学数据上进行的实验对比,可以很明显地看出本文设计并实现的多维数组算子系统雏形具有较好的性能和可扩展性,能够有效地满足科学计算的基本需求。