论文部分内容阅读
在Web和企业信息化等领域,XML已经被接受为一种标准的信息交换格式。XML的自描述,与平台无关的特性使得它被用作不同系统间通信的数据格式,如用于Web Services中SOAP消息的载体。但是,XML消息的冗余,结构过于灵活等特点也给软件开发人员带来性能方面的很大挑战。
XML解析器读取文件使得其中的数据能够被上层应用和编程语言进行操作和处理,XML解析是对XML处理的主要性能瓶颈之一。多核平台下基于数据并行的并行XML解析已经被提出。但是,由于XML的非规则特性和多核平台上解析程序低效的内存访问,并行XML解析的整体性能和扩展性不高。
XML解析并行化性能提高的主要障碍之一是数据依赖造成的高同步开销。本文在系统分析的基础上,定义了XML解析正确性的两个依赖关系:命名空间依赖和位置关系依赖。通过对标准规范的和具体的实例分析说明了这两个依赖关系是正确解析的充分条件。
为了具体研究XML解析过程的访存模式及其存在的问题,我们分析了目前广泛使用的libxml2解析器的内存管理机制,发现在多核平台上内存复用率低,管理开销大以及处理器核间访问频繁等两大特点。本文提出了基于线程环境可感知的内存复用管理机制解决了上述问题,提高性能最高可达26.4%。为了对比研究的需要,实现了基于现有并行XML解析模型PXP的方法:基于阶段的并行XML解析方法(Stage based Parallel Parsing,SBPP)。
为了更进一步提高多核平台CPU利用率和内存访问效率,本文提出了阶段重叠的并行XML解析方法(Stage Overlapped Parallel Parsing,SOPP)。该方法通过预解析和解析阶段的线程间时间重叠,线程内空间重叠,提高了CPU利用率,减小了低效的内存访问。通过与SBPP的性能比较,SOPP的加速比在Dell1900(2*Intel Xeon5310)和Sun Fire1000(1*Sun Ultra-Spare T1)上分别提高了50%和33%。本文同时对(1)输入数据集大小;(2)上下文切换机制,动态内存管理机制;(3)硬件平台cache结构,硬件线程的支持等三个方面对SOPP性能,扩展性方面的影响进行了分析和评价。结果表明SOPP从这几个方面验证了设计目标,从而表现出良好的性能和扩展性。