GNU/Linux 命令行中的并行处理
Parallel processing in GNU/Linux command line
一些 GNU/Linux 命令行程序(例如 "oggenc",以 ogg vorbis 格式编码音频)仅使用您 CPU 的所有内核中的一个。
问题是,在我的例子中,我有 4 个内核,而程序只使用 1 个内核,使 CPU 以 25% 的速度工作(只有一个内核以 100% 的速度工作,但其他 3 个是该任务的 0%)。
是否可以强制为命令行程序使用更多内核?
对于 zip、tar、oggenc 等某些类型的任务来说会很棒
PS:我找到了一个名为 "parallel" 的程序,但我没有实现如何使其正常工作...:(
当你构建Linux内核时你可以使用-j参数使command.Then你可以看到使用了多个内核。
make -j X
make -j 核心数+1
使用 GNU Parallel,您可以:
parallel gzip ::: *
parallel opusenc {} {.}.opus ::: *.wav
GNU Parallel 是一个通用的并行器,可以很容易地在同一台机器上或在您可以通过 ssh 访问的多台机器上并行 运行 作业。
如果您有 32 个不同的作业要 运行 在 4 CPU 秒内执行,一个直接的并行化方法是 运行 每个 CPU 8 个作业:
GNU Parallel 在一个进程完成时生成一个新进程 - 保持 CPU 处于活动状态,从而节省时间:
安装
出于安全原因,您应该使用包管理器安装 GNU Parallel,但如果 GNU Parallel 未打包用于您的发行版,您可以进行个人安装,这不需要 root 访问权限。这样做可以在 10 秒内完成:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
有关其他安装选项,请参阅 http://git.savannah.gnu.org/cgit/parallel.git/tree/README
了解更多
查看更多示例:http://www.gnu.org/software/parallel/man.html
观看介绍视频:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
完成教程:http://www.gnu.org/software/parallel/parallel_tutorial.html
注册电子邮件列表以获得支持:https://lists.gnu.org/mailman/listinfo/parallel
一些 GNU/Linux 命令行程序(例如 "oggenc",以 ogg vorbis 格式编码音频)仅使用您 CPU 的所有内核中的一个。 问题是,在我的例子中,我有 4 个内核,而程序只使用 1 个内核,使 CPU 以 25% 的速度工作(只有一个内核以 100% 的速度工作,但其他 3 个是该任务的 0%)。
是否可以强制为命令行程序使用更多内核?
对于 zip、tar、oggenc 等某些类型的任务来说会很棒
PS:我找到了一个名为 "parallel" 的程序,但我没有实现如何使其正常工作...:(
当你构建Linux内核时你可以使用-j参数使command.Then你可以看到使用了多个内核。
make -j X
make -j 核心数+1
使用 GNU Parallel,您可以:
parallel gzip ::: *
parallel opusenc {} {.}.opus ::: *.wav
GNU Parallel 是一个通用的并行器,可以很容易地在同一台机器上或在您可以通过 ssh 访问的多台机器上并行 运行 作业。
如果您有 32 个不同的作业要 运行 在 4 CPU 秒内执行,一个直接的并行化方法是 运行 每个 CPU 8 个作业:
GNU Parallel 在一个进程完成时生成一个新进程 - 保持 CPU 处于活动状态,从而节省时间:
安装
出于安全原因,您应该使用包管理器安装 GNU Parallel,但如果 GNU Parallel 未打包用于您的发行版,您可以进行个人安装,这不需要 root 访问权限。这样做可以在 10 秒内完成:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
有关其他安装选项,请参阅 http://git.savannah.gnu.org/cgit/parallel.git/tree/README
了解更多
查看更多示例:http://www.gnu.org/software/parallel/man.html
观看介绍视频:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
完成教程:http://www.gnu.org/software/parallel/parallel_tutorial.html
注册电子邮件列表以获得支持:https://lists.gnu.org/mailman/listinfo/parallel