[发明专利]多核分片XML并行解析方法无效
申请号: | 201110317045.8 | 申请日: | 2011-10-18 |
公开(公告)号: | CN102495722A | 公开(公告)日: | 2012-06-13 |
发明(设计)人: | 唐雪飞;陈科;汪海良;李应洪 | 申请(专利权)人: | 成都康赛电子科大信息技术有限责任公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/50;G06F17/30 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 周永宏 |
地址: | 610054 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种多核分片XML并行解析方法,通过多核处理器利用多线程技术,根据XML的大小将XML分片,即将XML文档分解成为若干相对独立和完整的XML片段,各个片段使用外键关联;采用分治策略对各XML片段进行并行解析,最后完成结果合并,最终形成一个完整的XML解析结果。通过多核并行解析,可大大提高XML的解析速度和效率。本发明可应用在对XML性能要求较高,或XML文档较为庞大的系统中,如分布式系统、Web Service和云计算平台等。 | ||
搜索关键词: | 多核 分片 xml 并行 解析 方法 | ||
【主权项】:
1.一种多核分片XML并行解析方法,其特征在于:包括如下步骤:第一步、构造多线程并行:1)使用FORK-JOIN结构来描述如何创建并发线程;2)将FORK出来的线程放入线程池,由线程池负责线程的生命周期管理;3)在多线程环境下,采用mutex变量作为互斥信号量,实现多线程环境下的资源访问的同步和互斥;第二步、创建主线程,由主线程初始化全局变量,用于进行子线程同步及记录查询结果;第三步、多核并行处理器分配,用于完成进程和线程到处理器节点的分配:1)任务分配模型的建立:设多核并行处理器包含Nnode个处理节点
每个处理器包含Ncore个处理器核
待分配的并行程序有Nproc个进程
进程Pi包含Mi个线程
并行程序的总线程个数
设待分配的并行程序为一个无向图G=(V,E),其中V是节点的集合{Vi},节点Vi对应一个二元组<Ti,Pi>,其中Ti是节点对应的线程号,Pi为该线程所属的进程号;E是无向边的集合{Eij};连接节点Vi和Vj的边Eij∈E,表示线程Ti和Tj间的通信或共享数据,边的权值Wij表示两个线程通信或共享数据的频繁程度;2)进行两轮操作,第一轮操作完成进程到处理节点的分配,第二轮操作完成处理节点内线程到处理器核的分配,每一轮操作包含多次迭代过程:a)对第一轮操作,初始的任务关系图以进程为单位进行初步划分,第一轮操作的结束条件是图中复合节点个数≤处理节点个数,结束时图中每个复合节点为一个子图,对应一个处理节点,包含在子图中的线程分配给该处理节点;b)对第一轮操作划分出的每个子图进行第二轮操作,第二轮操作的结束条件是图中复合节点个数≤处理器核个数,结束时图中每个复合节点对应一个处理器核,包含在其中的线程分配给该处理器核;第四步、多核XML分片:1)使用DOM将XML文档载入到内存,得到XML的树型结构;2)对XML进行子片划分:采用(x,y)表示一个XML子片,其中x代表子片的起点,y代表子片的终点,定义一个空闲子片为未被处理器占用的XML子片,其中该子片中的所有结点都未被任何一个处理器或子线程处理;3)一个子片S(x,y)和另一子片S′(x′,y′)采用以下公式进行分配:FP(S,S′)=max((x-x′)g(x-y)g(y-y′)g(x′-y′))第五步、分片XML解析结果归并:1)分片XML解析结果统一存放:设XML分片数为n,则采用数组part[n]对各个XML片进行存放,其中:part[i]=第i个XML分片解析结果,0≤i<n2)对part[n]进行归并。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都康赛电子科大信息技术有限责任公司,未经成都康赛电子科大信息技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110317045.8/,转载请声明来源钻瓜专利网。
- 上一篇:一种分色戒指的加工方法
- 下一篇:一种兰花盆景无土栽培方法