【发布时间】:2012-02-16 18:07:21
【问题描述】:
我想使用 CUDA 在多个文件中并行搜索给定的字符串。我计划使用 pfac 库来搜索给定的字符串。问题在于如何并行访问多个文件。
示例:我们有一个文件夹,其中包含 1000 多个必须搜索的文件。
这里的问题是我应该如何访问给定文件夹中的多个文件。文件夹中的文件应该是动态获取的,并且应该为每个线程分配一个文件来搜索给定的字符串。
有可能吗????
编辑:
在这篇文章中:very fast text file processing (C++)。他正在使用 boost 库在 16 秒内读取一个 3 GB 的文本文件。而在我的情况下,我必须读取 1000 个较小的文件
谢谢
【问题讨论】:
-
通常有多少个文件? 10 秒、100 秒、1000 秒,还有更多?
-
有可能。问题在于,由于单磁头,从磁盘读取它们本质上是顺序的。如果搜索是一个类似搜索的字符串,你可能很难在这方面击败 grep。
-
所以你的意思是可以并行读取文件,但这会比 grep 慢。我必须在文件内容中搜索给定的字符串,如果你弄错了,我不是在搜索文件名.
-
是的,这对于 CUDA 来说似乎不是一个好方法——从磁盘读取文件然后将数据复制到 GPU 内存的成本可能远远大于任何可能的速度优势字符串搜索。唯一有意义的方法是,如果您需要对同一组文件进行多次搜索,并且可以同时将所有文件加载到 GPU 内存中。
-
如果这听起来很傻,我很抱歉,因为我是 cuda 的新手,但是将文件传输到 GPU 内存是强制性的。我不想将文件复制到 GPU 内存。还有其他选择吗???
标签: boost cuda pattern-matching parallel-processing