Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >DFS环境中的并行Regex匹配

DFS环境中的并行Regex匹配
EN

Stack Overflow用户
提问于 2010-11-22 17:11:49
回答 1查看 333关注 0票数 0

我正在尝试将grep并行化为一个大学项目。我的假设是,在实际的正则表达式匹配中抛出更多的线程将效率低下:它们处理数据的速度比从磁盘读取数据的速度要快。但是,我正在开发一个MPI集群,它使用Lustre DFS系统,允许我跨多个存储池对数据进行条带化。

我希望以某种方式利用这一点,利用多个磁盘,减少硬盘I/O造成的瓶颈。经过一些初步测试,我无法找到一种将DFS最大化的解决方案。

我试过:

  1. :一个大的、单一的文件,跨多个OST文件。每个线程读取与条带大小相同的数据块(例如条带大小/ ==线程读取大小)。我的意图是,每个线程从不同的OST读取数据(除了重叠/边框cases).
  2. Multiple,较小的文件外,每个线程都被条带化到自己的OST中)。每个线程读取一个完整的文件,但是每个文件位于不同的OST.

上。

如果没有加速的话,每个病例都能提供很少的信息。我希望得到一个合理的加速(最多2倍的整体应该是好的)。

我应该担心I/O瓶颈吗?

在编写C代码时,如何利用DFS?我试着读取与条纹大小匹配的偏移量以及位于不同OST和(我假设)不同磁盘上的文件中的数据。

有办法实现可伸缩的并行grep/regex匹配器吗?

EN

回答 1

Stack Overflow用户

发布于 2010-11-23 02:04:20

这与其说是回答,不如说是延伸的评论.

您是试图编写并行grep,还是试图编写运行在不同数据并行上的grep?我可以读到你的问题,表明你正在考虑其中一个或两者。如果我是对的(请注意,当我试图解释问题时,我通常是错的)我建议你把这两个问题分开,先处理其中一个,然后再加上另一个。

如果您的场景是在许多小文件上运行grep,那么这将非常容易并行化,您只需要某种类型的调度程序将工作打包成大致相等的块。

如果您的场景是在一个(或几个)大文件上使用grep,那么我可以看到以块形式读取文件的好处,每个进程一个块(或)。我看到的问题是,一些匹配的分辨率将跨块。我觉得这是个有趣的问题,但你是一个能接触最新文献的大学生,所以你会比我了解得更多。

如果您的场景是编写并行grep,即在执行时使用多个处理器核的程序,那么这可能是一个更有趣(即困难)的问题。因为grep是通过构造FA来工作的,而且由于FAs通常被建模为图,而且由于图可以(如果满足某些标准)被分解为子图,这可能是可行的--您只需并行化FA的构造,为子图生成线程,并收集结果。我想负载平衡会很困难。

我对并行文件系统没有深入的了解,但我认为我的建议是正确的,即只有当集群中的不同节点读取DFS上的文件的不同部分时,才能获得好处。如果您使用的是线程,这意味着您的线程必须位于集群中不同的节点上?

对你的问题给出一些糟糕的答案。

  • ,我该担心I/O瓶颈吗?-当然。您将在足够精细的级别上度量grep的性能,以确定在其各个阶段(包括构造FA、读取输入文件等)花费了多少时间。grep是一个非常成熟的产品,它已经花费了大量的优化努力,所以你已经为自己设定了一个艰难的目标。您还将测量集群文件系统的特性和线程间通信时间,诸如此类。
  • 在编写C代码时如何利用DFS?-无法帮助您,但我认为文件系统API提供了必要的功能;你似乎试图直接解决磁盘硬件问题。
  • 有办法实现一个可伸缩的并行grep/regex匹配器吗?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4251823

复制
相关文章
系统培训配置问题:系统培训配置错误,导致培训效果不佳
是山河呀
2025/02/11
1330
LSTM时间序列预测中的一个常见错误以及如何修正
当使用LSTM进行时间序列预测时,人们容易陷入一个常见的陷阱。为了解释这个问题,我们需要先回顾一下回归器和预测器是如何工作的。预测算法是这样处理时间序列的:
deephub
2024/05/10
6541
LSTM时间序列预测中的一个常见错误以及如何修正
《大话数据结构》冒泡排序错误修正
书中本意是想省略后端顺序表中无用的查找,但是忽略了一个问题。 原书中代码大意为: void bubblesort(Graph *g,int len){ int i,j; int flag = 1; for(i=0; i < len && flag; i++){ flag = 0; //printf("len %d",len); for(j = len-1; j>i; j--){ i
用户1154259
2018/01/17
9870
如何修正Netty编解码的缺陷
即从io.netty.buffer. ByteBuf ( 原始数据流) =》 io.netty.buffer .ByteBuf ( 用户数据)
JavaEdge
2021/02/22
6830
hive相关错误
1.java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://ip地址:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous
编程那点事
2023/02/25
2530
PySpark|ML(评估器)
在PySpark中包含了两种机器学习相关的包:MLlib和ML,二者的主要区别在于MLlib包的操作是基于RDD的,ML包的操作是基于DataFrame的。根据之前我们叙述过的DataFrame的性能要远远好于RDD,并且MLlib已经不再被维护了,所以在本专栏中我们将不会讲解MLlib。
数据山谷
2020/11/24
1.6K0
PySpark|ML(评估器)
SVN使用指南【工作培训版】
为什么要使用配置管理 及时了解团队中其他成员的进度。 轻松比较不同版本间的细微差别; 记录每个文件成长的每步细节,利于成果的复用(reuse); 资料共享,避免以往靠邮件发送文件造成的版本混乱; 人人为我,我为人人。所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本; 协同工作,大大提高团队工作效率,无论团队成员分布在天涯还是海角; ---- 1、Subversion/TortoiseSVN的版本控制系统 Subversion:是一个开源的版本控制系统,拥有CVS的大部分特征,并在CVS的基础
Java帮帮
2018/03/15
2.5K0
SVN使用指南【工作培训版】
用相关性分析做培训的课后评估
我们在上一个章节讲到了相关性数据分析的一些概念和设计的流程,今天我们来讲下相关性分析在人力资源数据领域的里的应用,相关性的分析可以帮助我们去判断各个维度的数据和综合的数据之前,哪些因素会影响到我们综合的数据评估,比如我们在做培训的课后评估的时候都会对讲师或者培训组织进行评分,这个时候就可以用到相关性分析。
王佩军
2020/07/28
5740
用相关性分析做培训的课后评估
路径分析如何操作?模型如何修正?
路径分析,也称通径分析(有时也称结构方程模型,一般情况下如果包括测量模型和结构模型,则称为结构方程模型;如果只包括结构模型,则称为路径分析)。路径分析在于研究模型影响关系,用于对模型假设进行验证。比如下图的模型框架:希望研究工作条件,人际关系对于公司满意度的影响;同时还希望研究公司满意度和机会感知对于离职倾向的影响。路径有一共有4条(即4对影响关系),路径分析可以同时研究此4对影响关系。
全栈程序员站长
2022/09/23
1.1K0
路径分析如何操作?模型如何修正?
没有相关工作经验 如何轻松应对面试?
首先从公司培养成本上来说,没有经验的求职者,企业需要花钱和时间去培养他们,一旦他有了工作经验,有些人就会觉得当前公司的福利和待遇已经无法与他的付出相匹配的时候,那么他就会选择跳槽。
用户1730674
2019/03/19
2.7K0
没有相关工作经验 如何轻松应对面试?
VS2005 编译 Qt4.8.2库,并修正源码中的错误
从昨天开始利用VS2005对Qt4.8.2库进行编译,在编译到某个文件时,总是报错,提示VS的cl.exe和nmake.exe返回致命错误。错误罗列如下:
用户3519280
2023/07/06
2880
解的个数 未完成
#include<iostream> #include<cstdio> using namespace std; int x,y; int tot=1; int a,b,c,p,q,r,s; int exgcd(int a,int b,int & x,int & y) {     if(b==0)     {         x=1;         y=0;         return a;     }     int r=exgcd(b,a%b,x,y);     int tmp;     tmp=x
attack
2018/04/12
6720
java大数据培训,如何选择适合自己的培训机构开发_大数据培训课程哪个好
大家好,又见面了,我是你们的朋友全栈君。 如何挑选Java大数据培训机构?对于有java的基础的人来说,可以视情况直接跳过java阶段的学习,那么学习时间就可以少一个多月时间,当然前提是基础
全栈程序员站长
2022/11/01
2.1K0
java大数据培训,如何选择适合自己的培训机构开发_大数据培训课程哪个好
Linux下如何优雅地修正命令?
如何快速纠正你的linux命令?我们在输入命令的时候,难免会出现输入命令错误,或者输入过多,过少的情况,那么除了各种按方向键退回之外,还有什么快速纠正命令的方法? 本文用|表示光标位置。
编程珠玑
2020/03/25
6530
webpack、npm 相关错误汇总
使用webstorm搭建vue项目,报如上错误。 本地node版本为10。 原因: 版本10 fs.promises的API是实验性的,webstorm不允许使用。 解决:卸载掉原有node.js,重新安装node.js 8版本。
城市中的游牧民族
2019/02/21
2.7K0
webpack、npm 相关错误汇总
Tomcat是如何修正JDK原生线程池bug的?
为提高处理能力和并发度,Web容器一般会把处理请求的任务放到线程池,而JDK的原生线程池先天适合CPU密集型任务,于是Tomcat改造之。
JavaEdge
2021/10/18
6430
pmp培训机构哪个好?各pmp培训机构排名如何?
PMP 机构排名的话,没有官方数据,但是好一点的机构的通过率普遍在 95% 以上,还是很不错的。
全栈程序员站长
2022/11/17
2.1K0
pmp培训机构哪个好?各pmp培训机构排名如何?
您与此网站建立的连接并非完全安全
刚搭建的 HTTPS 协议,还没有过一天 在浏览器中访问就会出现 您与此网站建立的链接并非安全
hedeqiang
2019/12/17
2.1K0
Tomcat是如何修正JDK原生线程池bug的?
为提高处理能力和并发度,Web容器一般会把处理请求的任务放到线程池,而JDK的原生线程池先天适合CPU密集型任务,于是Tomcat改造之。
JavaEdge
2021/12/07
4450
Tomcat是如何修正JDK原生线程池bug的?
修正《用Docker快速搭建Go开发环境》文章中的一处错误
上周写的文章《五分钟用Docker快速搭建Go开发环境》,文章发出去后有不少阅读量,而且从后台看的数据 60%的人都读完了。今天我自己用下面命令往 容器里的 Go 项目里下载包时发现了一处错误
KevinYan
2020/02/17
5790
修正《用Docker快速搭建Go开发环境》文章中的一处错误

相似问题

姜戈QuerySet TypeError

11

姜戈__init__ QuerySet

19

姜戈过滤querySet联盟?

318

按字段中的值计算queryset中的对象。姜戈

12

姜戈。获取模板中当前使用的对象

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档