gpt4 book ai didi

c - 如何将 grep 测试划分为并行任务

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:22 25 4
gpt4 key购买 nike

我想写一个类似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

最佳答案

首先,您的运行时统计信息看起来该程序是 I/O 受限的。有大量的空闲 CPU。因此,使 CPU 部分并行不太可能产生太大的积极影响。事实上,这可能会使情况变得更糟,因为磁盘缓存可能效率较低。

蒂姆·布雷 (Tim Bray) 在 http://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder 上有一个关于解决类似问题的长期系列文章。

他得到了很多人的帮助来调查类似的问题(扫描系统日志),因此您可能会在那里找到一些现成的帮助。

关于c - 如何将 grep 测试划分为并行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9750463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com