【发布时间】:2012-03-17 13:47:20
【问题描述】:
我想写一个类似grep命令的程序来处理我的sql文件。我希望它在工作时可以使用我所有的内核。使用 MPI 或仅使用 Pthreads,没关系。但是,如何将文件分成 4 个文件?我的意思是,如果我有一个 700mb 大小的 txt 文件,如何让每个线程处理该文件的 1/4。
在我看来,我需要知道这个文件有多少行,然后为每个线程设置不同的文件偏移量。这是一个好方法,以及如何获得总行数?
也许得到文件有多少行需要很长时间:
madper@myhost ~ % time wc -l lineitem.tbl
6001215 lineitem.tbl
wc -l lineitem.tbl 0.20s user 0.40s system 4% cpu 12.996 total
【问题讨论】:
-
如果没有数据,很难测试
wc -l需要多长时间。那应该返回行数(即:需要多长时间?) -
你在寻找类似GNU parallel的东西吗?
-
@JonasWielicki 这需要很长时间。我编辑我的问题,只需添加
wc -l花费的时间。谢谢~ -
@Pascal 非常感谢!但我需要写一篇来培养技能。
标签: c regex multithreading grep parallel-processing