CN105868300B - 一种众核环境下的字符串匹配方法 - Google Patents
一种众核环境下的字符串匹配方法 Download PDFInfo
- Publication number
- CN105868300B CN105868300B CN201610173374.2A CN201610173374A CN105868300B CN 105868300 B CN105868300 B CN 105868300B CN 201610173374 A CN201610173374 A CN 201610173374A CN 105868300 B CN105868300 B CN 105868300B
- Authority
- CN
- China
- Prior art keywords
- matching
- core
- text
- string
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 abstract description 32
- 230000010354 integration Effects 0.000 abstract description 2
- 230000011218 segmentation Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 101150039208 KCNK3 gene Proteins 0.000 description 1
- 101150083764 KCNK9 gene Proteins 0.000 description 1
- -1 Task2 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种众核环境下的字符串匹配方法,将待匹配的文本串进行切割为若干文本块后,根据模式集中的模式串长度通过处理器不同的核进行匹配。利用不同的处理器核心处理不同的文本串,再将处理的结果进行统计整合。能够适应处理文本是离散不连续的情况,避免由于有模式串出现了划分而导致的漏匹配。并且能够降低字符串匹配的时间开销。
Description
技术领域
本发明涉及计算机及通信技术领域,具体涉及一种众核环境下的字符串匹配方法。
背景技术
目前,8核以上的多核处理器已经占据处理器市场的重要部分。而以Tilera为代表的众核处理器(ManyCore)也发展迅速,出现了36核、72核乃至128核的处理器产品。这些处理器产品一方面可应用于通用服务器市场,另一方面则应用于某些专用服务器市场,比如网络处理服务器,进行网络流量的处理。同时,众核处理器的出现,为计算机的设计提出了新的挑战。
在网络处理中,字符串匹配应用十分普遍,广泛应用于代码检测,漏洞挖掘等工作中。但是一般的模式匹配方法均是基于单核处理器进行设计,而同时设计比较复杂,面向多核,尤其是面向众核环境的模式匹配方法,仍然缺乏有效手段。
串匹配方法的串匹配,即字符串匹配,又称模式匹配,是计算机中处理数据的基本功能,数据库检索、网络入侵检测等工作的基础。待匹配文本、数据,网络流量包都需要采用一定的匹配算法进行串匹配,模式匹配的速度和容量很大程度上决定着程序的运行效率。目前的串匹配方法很多,但大多是针对单颗处理器进行设计,针对众核环境,面临着需要进行核间交互,增大计算复杂性等问题。
将模式匹配算法移植到众核平台有几种可能的方式。参考传统多核处理器上模式匹配的优化,众核处理器上的模式匹配算法可能有以下几种可能的方法:
1,多个核协同完成同一个算法流程。这种方式实际上是将多个核整合成一个核,最大化芯片的处理能力。不过这种方式由于自动机存在状态跳转等问题,对核间通信要求较高,实现难度较大。
2,不同的核处理不同的规则的方法。这里面又可能包含两种方式,一种是串行的方法,按照顺序处理不同的规则。一种是并行的方法,将不同核处理的结果反馈整合。这种处理方法需要根据规则集的大小进行切割。这种方式导致同一个匹配文本需要根据切割后规则集的数量进行多次匹配,增加了匹配的次数,导致因这种切割而降低的时间开销并不会随着切割数量的增加而线性降低。
3,不同的核并行的运行模式匹配线程,各个核之间运行各自的模式匹配算法模块,只是共享自动机内存。这种方法的优势是各个模块之间互无关系,互不影响。这种方式仅对处理网络流具有较好的适应性。
4,拿出专门的核作模式匹配。这种处理方式是将所有的模式匹配模块限定在一个内核上,由于众核的优势在于核数众多,而单个核的处理能力较低,这种方式没有充分发挥众核芯片的处理能力。实验表明,这种方式下模式匹配算法的处理能力囿于单个核的处理能力而性能较低。因此,这种方式较适用于对模式匹配算法需求不大的软件程序设计中,另外,这种方式对系统总体性能影响不大。
5,拿出专门的核处理其他工作,用大部分核处理匹配,并根据方案3进行调整,实现对处理器使用核数的调整。在节约资源的同时,提高系统的工作效率。但是也带来了设计复杂度提高的问题。
发明内容
针对上述现有技术存在的问题,本发明的目的在于提供一种众核环境下的字符串匹配方法,利用不同的处理器核心处理不同的文本串,再将处理的结果进行统计整合。能够适应处理文本是离散不连续的情况,避免由于有模式串出现了划分而导致的漏匹配。并且能够降低字符串匹配的时间开销。
为达上述目的,本发明采用的具体技术方案是:
一种众核环境下的字符串匹配方法,包括以下步骤:
将待匹配的文本串切割为若干文本块后,根据模式集中的模式串长度通过处理器不同的核进行匹配;
如文本串为离散存储的,则每个由一个处理器的核进行匹配的文本块的长度ni为:
其中,q为模式集中最长的模式串长度,n为文本串长度;t为文本块的数量;
如文本串为连续存储的,则每个由一个处理器的核进行匹配的文本块的长度ni为:
其中,m为模式集中最短的模式串长度。
进一步地,所述文本块的数量t与处理器中作为模式匹配工具的核的数量相同
进一步地,所述文本块的数量t与处理器的核数相同。
进一步地,还包括:将t个处理器的核上的匹配的结果反馈并进行统计。
进一步地,所述处理器的核对文本块依据Wu‐Manber算法进行串匹配。
进一步地,所述文本块的数量t大于处理器的核数,进行匹配时,首先逐个将与处理器的核数对应数量的文本块分到处理器的核上进行匹配;当有一处理器的核完成匹配时,则将其余文本块中的一个的分到前述完成匹配的处理器的核上进行匹配。
进一步地,处理器的一管理核心根据用于匹配的处理器的核的情况,将文本块分配到不同的处理器的核。
进一步地,处理器的核对一文本块进行匹配后,将匹配结果返回给管理核心。
进一步地,管理核心根据已经完成的匹配结果,将其余文本块中的一个的分到前述完成匹配的处理器的核上进行匹配。
通过采取上述技术方案,由于文本串的随机性较好,分配的不均匀性会比较低,能够获得接近处理器的可用核数线程数的加速比。从而字符串匹配的时间开销。适应众核环境,提升众核处理器性能。
附图说明
图1为本发明一实施例中众核环境下的字符串匹配方法的流程示意图。
图2为本发明另一实施例中众核环境下的字符串匹配方法的流程示意图。
具体实施方式
工作原理简述:
在并行模式匹配方法开发中,需要考虑的最主要问题是如何将工作量均匀地分配到各个处理线程,以充分利用多核多线程技术提升加速比。
对于并行的模式匹配问题,有两种工作量分配的方式可以考虑。一种是划分模式集,将模式集按照一定的策略均匀地分到不同的处理线程中。另一种是划分文本,将待匹配的文本串划分成几个小的文本块,送到不同的线程也即处理器的可用核来处理。
如果对模式集进行划分,同一个文本串在不同的处理线程中进行多次匹配,每个线程由于模式集的减小带来的性能提升是有限的,最终的加速比仍然会受限于匹配速度最慢的线程。很难找到一张那个合适的方案可以讲模式集均衡地分配到各个线程,分配的不均衡最终会影响并行化模式匹配方法的综合性能。
而划分文本串的并行化方案要优于模式集切分方案,因为真实应用场景下,文本串的随机性要好于模式集,分配的不均匀性会比较低,可获得接近线程数及处理器核数的加速比。
利用不同的处理器核心处理不同的文本串,再将处理的结果进行统计整合。这种方法可能需要将将待匹配的长文本串进行切割。如果处理文本是离散不连续的,比如网络入侵检测的数据包,则需要将内容动态地分配到不同的处理核心上,本申请主要针对这种算法进行了改进。
本申请对带匹配的文本串的切割的一个具体方案如下:假设处理器的核数即多线程数为t,模式集中最短模式串长度为m,最长模式串长度为q,文本串长度为n。将整个文本串划分为t份,每一份由一个处理器的核即一个线程进行处理。每一份文本块的长度为:
前t‐1个文本块后又加入了q‐1个字符,可以保证每一个可能匹配的模式串总是可以完整地出现在某一个文本块中,防止出现由于有模式串出现了划分而导致的漏匹配。文本串切分后,实际匹配字节数为n`=(n/t+q‐1)×(t‐1)+n/t=n+(q‐1)×(t‐1),则多匹配的字节数为Δn=(q‐1)×(t‐1)远小于n。所以由于划分而多出来的匹配时间消耗是可以忽略不计的。
如果文本串是连续存储在内存当中的,上面的文本串划分策略还可以进一步优化,仍然将整个文本串划分为t份,每一份由一个线程进行处理,每一份文本块的长度变为:
这里前t‐1个文本块后只需要加入m‐1个字符,是因为文本串连续存储,划分时只需要保证所有模式串的最优m窗口中的m个字节总是可以完整地出现某一个文本块里,匹配验证时,算法会跨过文本块进行字符比较,最终确认匹配。这种方案下,由于文本串划分而多匹配的字节数变成Δn=(m‐1)(t‐1)<(q‐1)(t‐1),消耗进一步下降。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。
实施例1:
本实施例以Wu‐Manber经典算法为例,结合图1,描述众核环境下基于文本串切分的并行模式匹配方法流程如下:
1,根据处理器芯片的分配情况,统计处理器可使用的核数T。
2,确定一定数量的众核处理器的处理核作为模式匹配工具,即确定文本串需要切分的数量T。
3,利用文本串切分模型对文本串进行切分,切分为T个子串,切分过程参考上文,在此不再赘述。
4,将T个子串划分到处理器的T个核上。
5,在处理器的T个核上依据Wu‐Manber算法进行串匹配,存储匹配结果。
6,将T个核上匹配的结果反馈并进行统计。
流程结束。
实施例2:针对超长文本条件下动态调整的文本串切分并行模式匹配方法。
上文提出的基于文本串切分的并行模式匹配算法,可以有效地提高处理器的利用效率。不过,文本串匹配的时间决定于处理最慢的处理核心,主要原因是文本串中词频的分布不均。随着文本串长度的增长,这种处理上的时差将会放大。
这时候,就需要对文本串的切分方法作进一步的优化。在超长文本的情况下,本申请提出基于流水线模式的文本串切分处理方法。将超长文本切分为一个个小的任务包,将逐个任务包分到处理核上。当有处理核心完成匹配时,再将新的任务包分配到核心上,实现各个核心任务上的负载均衡。图2为处理过程示意图。
处理流程如下:
1,将待匹配的超长文本按照文本串切分模型划分为N个子任务(Task1,Task2,Task3,……);
2.管理核心(图中MangeCore)根据用于匹配的核的情况,将子任务分配到不同的匹配核上;(图中虚线)
3.匹配核对子任务进行匹配,匹配完毕后,将结果返回给管理核心;(图中右侧线)
4.管理核心根据已经完成的匹配结果,将新的子任务分配到已完成匹配的核上(图中Task5,Task6);
5.新的任务到已完成匹配的核进行匹配;(图中黑色箭头)
……
6.匹配完毕,对匹配结果进行整合。
流程结束。
实际运行结果:
为了比较以上众核环境下算法在众核处理器平台的运算速度,本申请选用了1U72核的Tilera GX72服务器与双路6核Intel的服务器进行了对比。测试环境如下:特征串长度范围:4-100字节;特征串长度分布8-16字节的占80%;特征串数量5万。测试文本采用字符集大小为256,随机产生的32MB文本,然后按照命中率的不同随机插入字符串。首先,测试了不同平台单个核的处理能力:
测试 | Tilera单核处理能力 | X86处理能力 |
测试集1 | 29.17MB/s | 136.06MB/s |
从上表可以看出,Tilera单核处理能力与x86服务器相比具有较大差距。接下来,我们利用上述模型进行了Tilera众核服务器和x86服务器的性能比较,结果如下:
从上表中可以看出,使用以上方法的众核平台执行速度大约是x86平台下执行速度的3-6倍。而且测试数据越大,众核性能的优势更大。以上方法对于提高众核平台处理能力具有十分重要作用。同时也可以看出,该方法下处理器性能是比较稳定的,覆盖了特征串分布的不同情况。
显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Claims (9)
1.一种众核环境下的字符串匹配方法,包括以下步骤:
将待匹配的文本串切割为若干文本块后,根据模式集中的模式串长度通过处理器不同的核进行匹配,每个处理器的核匹配一个文本块;
如文本串为离散存储的,则每个由一个处理器的核进行匹配的文本块的长度ni为:
其中,q为模式集中最长的模式串长度,n为文本串长度;t为文本块的数量;
如文本串为连续存储的,则每个由一个处理器的核进行匹配的文本块的长度ni为:
其中,m为模式集中最短的模式串长度。
2.如权利要求1所述的众核环境下的字符串匹配方法,其特征在于,所述文本块的数量t与处理器中作为模式匹配工具的核的数量相同。
3.如权利要求1所述的众核环境下的字符串匹配方法,其特征在于,所述文本块的数量t与处理器的核数相同。
4.如权利要求1至3任一项所述的众核环境下的字符串匹配方法,其特征在于,还包括:将t个处理器的核上的匹配的结果反馈并进行统计。
5.如权利要求1至3任一项所述的众核环境下的字符串匹配方法,其特征在于,所述处理器的核对文本块依据Wu-Manber算法进行串匹配。
6.如权利要求1所述的众核环境下的字符串匹配方法,其特征在于,所述文本块的数量t大于处理器的核数,进行匹配时,首先逐个将与处理器的核数对应数量的文本块分到处理器的核上进行匹配;当有一处理器的核完成匹配时,则将其余文本块中的一个的分到前述完成匹配的处理器的核上进行匹配。
7.如权利要求6所述的众核环境下的字符串匹配方法,其特征在于,处理器的一管理核心根据用于匹配的处理器的核的情况,将文本块分配到不同的处理器的核。
8.如权利要求7所述的众核环境下的字符串匹配方法,其特征在于,处理器的核对一文本块进行匹配后,将匹配结果返回给管理核心。
9.如权利要求8所述的众核环境下的字符串匹配方法,其特征在于,管理核心根据已经完成的匹配结果,将其余文本块中的一个的分到前述完成匹配的处理器的核上进行匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610173374.2A CN105868300B (zh) | 2016-03-24 | 2016-03-24 | 一种众核环境下的字符串匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610173374.2A CN105868300B (zh) | 2016-03-24 | 2016-03-24 | 一种众核环境下的字符串匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105868300A CN105868300A (zh) | 2016-08-17 |
CN105868300B true CN105868300B (zh) | 2019-05-07 |
Family
ID=56625757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610173374.2A Active CN105868300B (zh) | 2016-03-24 | 2016-03-24 | 一种众核环境下的字符串匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105868300B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407238B (zh) * | 2020-03-16 | 2024-09-24 | 北京灵汐科技有限公司 | 一种具有异构处理器的众核架构及其数据处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559018A (zh) * | 2013-10-23 | 2014-02-05 | 东软集团股份有限公司 | 基于gpu计算的字符串匹配方法和系统 |
CN105404635A (zh) * | 2014-09-16 | 2016-03-16 | 华为技术有限公司 | 字符串匹配的方法、设备和异构计算系统 |
-
2016
- 2016-03-24 CN CN201610173374.2A patent/CN105868300B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559018A (zh) * | 2013-10-23 | 2014-02-05 | 东软集团股份有限公司 | 基于gpu计算的字符串匹配方法和系统 |
CN105404635A (zh) * | 2014-09-16 | 2016-03-16 | 华为技术有限公司 | 字符串匹配的方法、设备和异构计算系统 |
Non-Patent Citations (3)
Title |
---|
"Bit-Parallel Multiple Pattern Matching";Tuan Tu Tran etc.;《Parallel Processing and Applied Mathematics/Parallel Biocomputing Conference》;20111231;论文第1-4节 |
"Improvement on Wu-Manber Multi-pattern Matching Algorithm";Liang Zhang etc.;《2013 3rd International Conference on Computer Science and Network Technology》;20131231;论文摘要 |
"串匹配算法的并行实现";马明;《电脑知识与技术》;20091231;第5卷(第34期);论文摘要,第2.1.2节 |
Also Published As
Publication number | Publication date |
---|---|
CN105868300A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166282B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
US7644142B2 (en) | Methods and apparatus to perform process placement for distributed applications | |
CN101296114B (zh) | 基于流的并行模式匹配方法和系统 | |
CN102611622B (zh) | 一种弹性云计算平台下工作负载的调度方法 | |
CN109885397B (zh) | 一种边缘计算环境中时延优化的负载任务迁移算法 | |
CN109726004B (zh) | 一种数据处理方法及装置 | |
Li et al. | Real-time scheduling based on optimized topology and communication traffic in distributed real-time computation platform of storm | |
CN110308980A (zh) | 数据的批量处理方法、装置、设备及存储介质 | |
CN103503412B (zh) | 用于调度资源的方法及装置 | |
Alam et al. | A reliability-based resource allocation approach for cloud computing | |
CN105488134A (zh) | 大数据处理方法及大数据处理装置 | |
CN112269656A (zh) | 一种基于多核处理器的应用配置方法、装置和系统 | |
CN102831102A (zh) | 一种在计算机集群上进行矩阵乘积运算的方法和系统 | |
CN111338787A (zh) | 一种数据处理方法及装置、存储介质、电子装置 | |
CN109285015B (zh) | 一种虚拟资源的分配方法及系统 | |
CN105868300B (zh) | 一种众核环境下的字符串匹配方法 | |
CN114116228A (zh) | 一种任务分配方法、装置、设备及存储介质 | |
CN109918277A (zh) | 电子装置、系统日志聚类分析结果的评价方法及存储介质 | |
US20170192479A1 (en) | Apparatus and method for limiting power in symmetric multiprocessing system | |
CN112380001A (zh) | 日志输出方法、负载均衡设备及计算机可读存储介质 | |
CN112912849B (zh) | 一种基于图数据的计算运行调度方法、系统、计算机可读介质及设备 | |
CN116662001A (zh) | 一种事件处理方法及装置 | |
CN110879753A (zh) | 基于自动化集群资源管理的gpu加速性能优化方法和系统 | |
CN111176847B (zh) | 物理核超多线程服务器上大数据集群性能优化方法及装置 | |
CN113590322A (zh) | 一种数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |