我想编写一个程序,就像grep
命令来处理我的sql文件。我希望它能在工作时使用我所有的核心。使用MPI或Pthreads无关紧要。但是,如何将文件分成4个文件?我的意思是,如果我有700MB大小的txt文件,如何使每个线程处理该文件的1/4。如何将grep测试划分为并行任务
在我看来,我需要知道这个文件有多少行,然后,为每个线程设置不同的文件偏移量。这是一个好方法,以及如何获得总数的线数?
可能得到的文件有多少行有需要很长的时间:
[email protected] ~ % 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'需要多长时间。这应该返回行数(即:需要多长时间?) – 2012-03-17 13:49:31
您是否在寻找类似[GNU parallel](http://en.wikipedia.org/wiki/GNU_parallel)的内容? – Pascal 2012-03-17 13:52:05
@JonasWielicki这将需要很长时间。我编辑我的问题,只需添加'wc -l'所花费的时间。谢谢〜 – madper 2012-03-17 13:54:50